配色: 字号:
第1章
2022-03-24 | 阅:  转:  |  分享 
  
中国高等院校计算机基础教育课程体系规划教材C程序设计(第五版)1第章程序设计和C语言计算机程序指令可以被计算机理解并执行的基本操作命令。程序
一组计算机能识别和执行的指令。一个特定的指令序列用来完成一定的功能。软件与计算机系统操作有关的计算机程序、规程、规则,以及可能有的
文件、文档及数据。计算机语言机器语言汇编语言高级语言计算机能直接识别和接受的二进制代码称为机器指令。机器指令的集合就是该计算机的机
器语言。特点:难学,难记,难检查,难修改,难以推广使用。依赖具体机器难以移植。机器语言的符号化。用英文字母和数字表示指令的符号语言
。特点:相比机器语言简单好记,但仍然难以普及。汇编指令需通过汇编程序转换为机器指令才能被计算机执行。依赖具体机器难以移植。高级语言
更接近于人们习惯使用的自然语言和数学语言。特点:功能强大,不依赖于具体机器。用高级语言编写的源程序需要通过编译程序转换为机器指令的
目标程序。B87F01BB210203D8B81F042BC3MOVAX383MOVBX
545ADDBXAXMOVAX1055SUBAXBXS=1055-(383+545)高级语言的发展
01非结构化的语言02结构化语言规定:程序必须由具有良好特性的基本结构(顺序结构、选择结构、循环结构)构成,程序中的流程不允许随意
跳转,程序总是由上而下顺序执行各个基本结构。特点:程序结构清晰,易于编写、阅读和维护。03面向对象的语言C语言的发展1972—19
73年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言。最初的C语言只是为描述和实现UNIX操作系统提供
一种工作语言而设计的。随着UNIX的日益广泛使用,C语言也迅速得到推广。1978年以后,C语言先后移植到大、中、小和微型计算机上。
C语言便很快风靡全世界,成为世界上应用最广泛的程序设计高级语言。以UNIX第7版中的C语言编译程序为基础,1978年,Brian
W.Kernighan和DennisM.Ritchie合著了影响深远的名著TheCProgrammingLanguage
,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它是实际上第一个C语言标准。1983年,美国国家标准协会(ANSI),根
据C语言问世以来各种版本对C语言的发展和扩充,制定了第一个C语言标准草案(’83ANSIC)。1989年,ANSI公布了一个完
整的C语言标准——ANSIX3.159—1989(常称为ANSIC或C89)。1990年,国际标准化组织ISO(Intern
ationalStandardOrganization)接受C89作为国际标准ISO/IEC9899:1990,它和AN
SI的C89基本上是相同的。1999年,ISO又对C语言标准进行了修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加
了一些功能,尤其是C++中的一些功能,并在2001年和2004年先后进行了两次技术修正,它被称为C99,C99是C89的扩充
。D.M.Ritchie目前由不同软件公司所提供的一些C语言编译系统并未完全实现C99建议的功能,它们多以C89为基础开发。C
语言的特点语言简洁、紧凑,使用方便、灵活010802生成目标代码质量高,程序执行效率高运算符丰富C0703程序可移植性好数据类
型丰富允许直接访问物理地址能进行位(bit)操作能实现汇编语言的大部分功能可以直接对硬件进行操作因此C语言既具有高级语言的功能,又
具有低级语言的许多功能,可用来编写系统软件0604具有结构化的控制语句用函数作为程序的模块单位,便于实现程序的模块化C语言是完全模
块化和结构化的语言05语法限制不太严格,程序设计自由度大最简单的C语言程序main是函数的名字,表示“主函数”;每一个C语言程序都
必须有一个main函数。main前面的int表示此函数的类型是int类型(整型),即在执行主函数后会得到一个值(即函数值),其
值为整型。return0;的作用是当main函数执行结束前将整数0作为函数值,返回到调用函数处。函数体由花括号{}括起来。pr
intf是C编译系统提供的函数库中的输出函数(详见第4章)。printf函数中双引号内的字符串″ThisisaCprogr
am.″按原样输出。\n是换行符,即在输出″ThisisaCprogram.″后,显示屏上的光标位置移到下一行的开头。每个
语句最后都有一个分号,表示语句结束。程序分析【例1.1】要求在屏幕上输出:ThisisaCprogram.解题思路:在主
函数中用printf函数原样输出以上文字。#include //这是编译预处理指令intmain() //
定义主函数{ //函数开始的标志printf("ThisisaCprogram.\n"); //输出所指定的一行信息
return0;//函数执行完毕时返回函数值0} //函数结束的标志最简单的C语言程序【例1.1】要求在屏幕上输出:This
isaCprogram.解题思路:在主函数中用printf函数原样输出以上文字。#include
//这是编译预处理指令intmain() //定义主函数{ //函数开始的标志printf("ThisisaCpr
ogram.\n"); //输出所指定的一行信息return0;//函数执行完毕时返回函数值0} //函数结束的标志最简单的
C语言程序程序分析#include //这是编译预处理指令intmain() //定义主函数{ //函数
开始的标志printf("ThisisaCprogram.\n"); //输出所指定的一行信息return0;/
/函数执行完毕时返回函数值0} //函数结束的标志main是函数的名字,表示“主函数”;每一个C语言程序都必须有一个main函
数。main前面的int表示此函数的类型是int类型(整型),即在执行主函数后会得到一个值(即函数值),其值为整型。return
0;的作用是当main函数执行结束前将整数0作为函数值,返回到调用函数处。函数体由花括号{}括起来。最简单的C语言程序程序分析#i
nclude //这是编译预处理指令intmain() //定义主函数{ //函数开始的标志prin
tf("ThisisaCprogram.\n"); //输出所指定的一行信息return0;//函数执行完毕时返回函
数值0} //函数结束的标志printf是C编译系统提供的函数库中的输出函数(详见第4章)。printf函数中双引号内的字符串″T
hisisaCprogram.″按原样输出。\n是换行符,即在输出″ThisisaCprogram.″后,显示屏上
的光标位置移到下一行的开头。每个语句最后都有一个分号,表示语句结束。最简单的C语言程序程序分析#include
//这是编译预处理指令intmain() //定义主函数{ //函数开始的标志printf("ThisisaC
program.\n"); //输出所指定的一行信息return0;//函数执行完毕时返回函数值0} //函数结束的标志在使
用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息,程序第1行“#include”的作用就是用来
提供这些信息的。stdio.h是系统提供的一个文件名,stdio是standardinput&output的缩写,文件后缀.
h的意思是头文件(headerfile),因为这些文件都是放在程序各文件模块的开头的。输入输出函数的相关信息已事先放在stdio
.h文件中。最简单的C语言程序程序分析#include //这是编译预处理指令intmain() //定义
主函数{ //函数开始的标志printf("ThisisaCprogram.\n"); //输出所指定的一行信息
return0;//函数执行完毕时返回函数值0} //函数结束的标志//表示从此处到本行结束是“注释”,用来对程序有关部分进行必
要的说明。在写C程序时应当多用注释,以方便自己和别人理解程序各部分的作用。在程序进行预编译处理时将每个注释替换为一个空格,因此在编
译时注释部分不产生目标代码,注释对运行不起作用。注释只是给人看的,而不是让计算机执行的。注释以//开始的单行注释以/开始,以/
结束的块式注释这种注释可以单独占一行,也可以出现在一行中其他内容的右侧。此种注释的范围从//开始,以换行符结束。如果注释内容一行内
写不下,可以用多个单行注释。//第一行注释//继续注释这种注释可以包含多行内容。它可以单独占一行(在行开头以/开始,行末以/结
束),也可以包含多行。编译系统在发现一个/后,会开始找注释结束符/,把二者间的内容作为注释。/一整块都是注释/注意:在字符
串中的//和/都不作为注释的开始。而是作为字符串的一部分。注释#includeintmain() {pr
intf("//howdoyoudo!\n");return0;}#includeintmain(
) {printf("/howdoyoudo!/\n");return0;}最简单的C语言程序【例1.2】求两个整
数之和解题思路:设置3个变量,a和b用来存放两个整数,sum用来存放和数。用赋值运算符“=”把相加的结果传送给sum。#incl
ude //这是编译预处理指令intmain()//定义主函数{//函数开始inta,b,sum;
//本行是程序的声明部分,定义a,b,sum为整型变量a=123;//对变量a赋值b=456;//对变量b赋值sum=a+
b; //进行a+b的运算,并把结果存放在变量sum中printf("sumis%d\n",sum); //输出结果
return0; //使函数返回值为0}//函数结束最简单的C语言程序程序分析#include //这是编
译预处理指令intmain()//定义主函数{//函数开始inta,b,sum;//本行是程序的声明部分,定义a,b,
sum为整型变量a=123;//对变量a赋值b=456;//对变量b赋值sum=a+b; //进行a+b的运算,并把结果
存放在变量sum中printf("sumis%d\n",sum); //输出结果return0; //使函数返回值
为0}//函数结束输出时用sum的值取代%dprintf("sumis%d\n",sum);printf("sumis
%d\n",sum);printf函数圆括号内有两个参数。第一个参数是双引号中的内容sumis%d\n,它是输出格式字符串,
作用是输出用户希望输出的字符和输出的格式。其中sumis是用户希望输出的字符,%d是指定的输出格式,d表示用“十进制整数”形式输
出。圆括号内第二个参数sum表示要输出变量sum的值。在执行printf函数时,将sum变量的值(以十进制整数表示)取代双引号中的
%d。最简单的C语言程序【例1.3】求两个整数中的较大者#include//主函数intmain()//定义
主函数{//主函数体开始 intmax(intx,inty); //对被调用函数max的声明 inta,b,c;//定义
变量a,b,c scanf("%d,%d",&a,&b); //输入变量a和b的值 c=max(a,b);//调用max函数,将
得到的值赋给c printf("max=%d\n",c); //输出c的值 return0;//返回函数值为0}//主函数体结
束//求两个整数中的较大者的max函数intmax(intx,inty) //定义max函数,函数值为整型,形式参数x和y
为整型{intz;//max函数中的声明部分,定义本函数中用到的变量z为整型if(x>y)z=x; //若x>y成立,将x的
值赋给变量zelsez=y;//否则(即x>y不成立),将y的值赋给变量zreturn(z);//将z的值作为max函数值,返回
到调用max函数的位置}解题思路:用一个函数来实现求两个整数中的较大者。在主函数中调用此函数并输出结果。最简单的C语言程序本程
序包括两个函数:①主函数main;②被调用的函数max。max函数的作用是将x和y中较大者的值赋给变量z,最后通过return语句
将z的值作为max的函数值返回给调用max函数的主函数。scanf是输入函数的名字(scanf和printf都是C的标准输入输出函
数)。该scanf函数的作用是输入变量a和b的值。max(a,b)调用max函数。在调用时将a和b作为max函数的实际参数的值分别
传送给max函数中的形式参数x和y。程序分析#include//主函数intmain()//定义主函数{//
主函数体开始 intmax(intx,inty); //对被调用函数max的声明 inta,b,c;//定义变量a,b,
c scanf("%d,%d",&a,&b); //输入变量a和b的值 c=max(a,b);//调用max函数,将得到的值赋给
c printf("max=%d\n",c); //输出c的值 return0;//返回函数值为0}//主函数体结束//求两个
整数中的较大者的max函数intmax(intx,inty) //定义max函数,函数值为整型,形式参数x和y为整型{i
ntz;//max函数中的声明部分,定义本函数中用到的变量z为整型if(x>y)z=x; //若x>y成立,将x的值赋给变量z
elsez=y;//否则(即x>y不成立),将y的值赋给变量zreturn(z);//将z的值作为max函数值,返回到调用max
函数的位置}最简单的C语言程序#include//主函数intmain()//定义主函数{//主函数体开始
intmax(intx,inty); //对被调用函数max的声明 inta,b,c;//定义变量a,b,c scanf
("%d,%d",&a,&b); //输入变量a和b的值 c=max(a,b);//调用max函数,将得到的值赋给c print
f("max=%d\n",c); //输出c的值 return0;//返回函数值为0}//主函数体结束//求两个整数中的较大者
的max函数intmax(intx,inty) //定义max函数,函数值为整型,形式参数x和y为整型{intz;//
max函数中的声明部分,定义本函数中用到的变量z为整型if(x>y)z=x; //若x>y成立,将x的值赋给变量zelsez=
y;//否则(即x>y不成立),将y的值赋给变量zreturn(z);//将z的值作为max函数值,返回到调用max函数的位置}注
意:本例程序中两个函数都有return语句,请注意它们的异同。两个函数都定义为整型,都有函数值,都需要用return语句为函数指定
返回值。main函数中的return语句指定的返回值一般为0。max函数的返回值是max函数中求出的两数中的最大值z,只有通过re
turn语句才能把求出的z值作为函数的值并返回调用它的main函数中。C语言程序的结构预处理指令#include>intmain(){ intmax(intx,inty); inta,b,c; scanf("%d,%d",&
a,&b); c=max(a,b); printf("max=%d\n",c); return0; }intmax(int
x,inty) { intz; if(x>y)z=x; elsez=y; return(z);}一个程序由一个或多个源
程序文件组成源程序文件包括:预处理指令、全局声明、函数定义函数时C程序的主要组成部分一个C语言程序是由一个或多个函数组成的,其中必须包含唯一一个main函数程序中被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制设计的函数一个函数包括两个部分:函数首部和函数体,函数体一般包括声明部分和执行部分程序总是从main函数开始执行程序中的操作是由函数中的C语句完成的在每个数据声明和语句的最后必须有一个分号C语言本身不提供输入输出语句,输入输出操作由函数完成程序应当包含注释main函数库函数调用自定义函数调用int max (intx, inty)↓ ↓ ↓ ↓ ↓ ↓函数类型 函数名 参数类型 参数名 参数类型 参数名自定义函数函数首部函数体声明部分执行部分执行部分执行部分运行C程序的步骤与方法开始编辑源程序f.c编译目标程序f.obj有错?有无可执行目标程序f.exe连接库函数和其他目标程序执行结果正确?不正确正确结束程序设计的任务问题分析设计算法编写程序运行程序分析结果对源程序进行编辑、编译和连接编写程序文档
献花(0)
+1
(本文系太好学原创)