资源描述
2020/4/25,程序设计基础(C语言),1,C程序开发步骤,程序代码的录入,生成源程序*.c,语法分析查错,翻译生成目标程序*.obj,与其它目标程序或库链接装配,生成可执行程序*.exe,2020/4/25,2,【例1-1】编写一个C语言程序,输出“goodafternoon!”。程序如下:/*c1_1.c*/-注释#include-预处理命令voidmain()-函数类型-主函数-参数表-函数头-函数体printf(“goodafternoon!n”);-语句该程序的执行,会在显示器上显示输出:goodmorning!,/*#include称为文件包含命令,扩展名为.h的文件称为头文件*/,/*通过显示器输出goodmorning!*/,程序设计基础(C语言),2020/4/25,程序设计基础(C语言),3,说明:,C语言程序中可以使用注释,但注释内容不参与编译。注释部分的格式是:/*注释内容*/或/注释内容。#include称为文件包含命令,#include是文件包含,其意义是把尖括号或引号内指定的文件包含到本程序来,成为本程序的一部分。被包含的文件通常是由系统提供的,其扩展名为.h。因此也称为头文件或首部文件。C语言的头文件中包括了各个标准库函数的函数原型。因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。详细内容将在后面章节介绍。main是主函数的函数名,表示这是一个主函数。每个完整的C语言源程序都必须有主函数,且只能有一个主函数(main函数),程序执行总是从main函数开始。函数体由一对大括弧括起来。printf函数是一个由系统定义的标准函数,可在程序中直接调用。其功能是将输出的内容送到显示器显示。,2020/4/25,程序设计基础(C语言),4,【例1-2】从键盘输入两个整数,输出求和结果。/*c1_2.c*/#includevoidmain()intx,y,sum;/*定义三个整型变量*/printf(Inputtwonumber:);/*显示提示信息*/scanf(“%d,%d,/*输出两数之和*/,2020/4/25,程序设计基础(C语言),5,程序分析:,该程序中使用了x、y和sum三个变量,所有变量在使用之前必须先定义。scanf函数是一个由系统定义的标准函数,可在程序中直接调用。它的功能是输入变量x和y的值。/*定义三个整型变量*/intmax(inta,intb);/*函数类型说明*/printf(Inputtwonumber:);/*显示提示信息*/scanf(%d%d,/*将c的值返回到主调函数*/,2020/4/25,程序设计基础(C语言),7,程序分析:,本程序包括两个函数:主函数main和自定义函数max。max函数的作用是将a和b中较大者的值赋于变量c;return语句将c的值返回该主调函数main。在调用max函数时,将实际参数x和y的值分别对应传给max函数中的形式参数a和b。ab?a:b是一个条件表达式,当ab成立时,ab?a:b的值为a的值;反之则为b的值。详细内容在第二章中介绍。,2020/4/25,程序设计基础(C语言),8,通过以上3个例子,概括源程序的结构特点:C语言程序为函数模块结构,所有的C语言程序都是由一个或多个函数构成,其中main函数必须有且只能有一个。函数是C语言程序的基本单位。C语言程序总是从主函数开始执行,当执行到调用函数的语句时,程序将控制转移到被调函数中执行,执行结束后,再返回到调用函数继续执行,直到程序执行结束为止。C语言程序的函数是由编译系统提供的标准函数(如printf()、scanf()等)和由用户自己定义的函数。,2020/4/25,程序设计基础(C语言),9,通过以上3个例子,概括源程序的结构特点:(续)源程序中的预处理命令通常放在源文件或源程序的最前面。每一个说明和每一个语句都必须以分号结尾。但是预处理命令、函数头和花括号“”、“”之后不能加分号。标识符、关键字之间必须至少加一个空格以示分隔。若已有明显的分隔符,也可不再加空格。可以在程序的任何位置用/*注释内容*/或/注释内容的形式对程序或语句进行注释。,2020/4/25,程序设计基础(C语言),10,书写程序时应遵循的规则,C语言程序的书写格式非常自由,但从书写清晰,便于阅读,理解,维护的角度出发,建议在书写C语言程序时应遵循以下几个规则:一个说明或一条语句占一行。用括起来的部分,通常表示了程序的某一层次结构。一般与该结构语句的第一个字母对齐,并单独占一行。低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写,同一层次的语句或说明左对齐,以便看起来更加清晰,增加程序的可读性。函数与函数之间加空行,以便清楚地分出程序中有几个函数。在编程时应力求遵循上述规则,以养成良好的编程习惯。,2020/4/25,程序设计基础(C语言),11,VisualC+6.0上机简介,1.3.1关于VisualC+6.0VC是微软公司的产品,微软公司是一家专门从事软件开发、研制的公司。这套软件使用了全然一新的集成开发环境,使用了一系列下拉式菜单,将文本编辑、程序编译、连接以及程序运行一体化,大大方便了程序的开发。,2020/4/25,程序设计基础(C语言)wh,12,VisualC+6.0启动,1.VisualC+6.0集成环境,该集成环境主要由标题栏、菜单栏、工具栏、项目工作区、编辑区和输出区等组成。,2020/4/25,程序设计基础(C语言),13,VisualC+6.0集成环境上机步骤(源程序的编辑、编译、连接和运行),C语言是一种高级语言,存放C语言源程序的文件扩展名必须为“.c”。计算机硬件不能直接执行C语言源程序,必须将其翻译成二进制目标程序。翻译工作是由一个称为编译程序的系统软件完成的,翻译的过程称为编译,编译的结果称为目标程序,存放目标程序的文件扩展名为“.obj”。程序翻译成目标程序后,便可进行连接。“连接”的目的是使程序变成在计算机上可以执行的最终形式。在这一阶段,把系统程序库中的函数与目标程序连接,连接的结果称为可执行程序,存放可执行程序的文件扩展名为“.exe”。,2020/4/25,程序设计基础(C语言)wh,14,2020/4/25,程序设计基础(C语言)wh,15,输入文件名,2020/4/25,程序设计基础(C语言)wh,16,#includevoidmain()printf(Good,morning!n);,2020/4/25,程序设计基础(C语言),17,小结1、C语言是目前世界上最流行和使用得最广泛的高级程序设计语言之一。用C语言编写的程序明显优于其它高级语言,因此许多大型应用软件都是用C语言编写的。2、C语言突出的特点是简洁、紧凑、方便、灵活。它既具有高级语言的特性,又具有低级语言的功能;既可以用来写应用软件,又可以用来写系统软件。,2020/4/25,程序设计基础(C语言),18,3、C语言程序是由函数构成的,一个C语言程序是由一个main()函数,或者一个main()函数和多个其它函数组成的。这些函数可以放在一个程序文件中,也可以放在多个程序文件中,但是整个程序总是从main()主函数开始执行的。4、C语言程序的上机步骤分为编辑、编译、连接和运行四个阶段。上机是检验算法和程序的重要手段,也是学好程序设计最好方法。,2020/4/25,程序设计基础(C语言),19,第二章C语言设计的初步知识,2.1.1标识符和关键字1.关键字关键字也称为系统保留字,它是具有特殊含义的系统保留标识符,仅供C语言系统专用。C语言关键字都用小写字母表示。,2.预定义标识符C语言中提供的库函数名和预编译处理命令都属于预定义标识符,例如include、define、sin、sqrt等,3.用户标识符用户标识符用来命名程序中所用到的变量、符号常量、函数、数组、指针等名字。,32个关键字:(由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile,用户标识符命名规则如下:(1)由英文字母、数字和下划线“_”组成;(2)第一个字符不能是数字;(3)用户标识符长度为18个。不同的编译系统识别标识符的长度不一样,有的编译系统可以识别32个字符。但通常的编译系统只识别前8个字符;(4)C语言区分大小写。英文字母大小写不同,表示的标识符也不同。如A和a、Print和print、Year和year等分别代表不同的标识符;(5)不能使用保留关键字和预定义标识符作为用户标识符。,练习,4以下不合法的用户标识符是Aabc.cBfileCMainDPRINTF5以下不合法的用户标识符是A_123BprintfCAbcDDim7可以在C语言中作用户标识符的一组标识符是AvoiddefineWORDBas_3_123IfCFor-abccaseD2cDOSIG(2010年三月)以下语言用户标识符,不合法的),2020/4/25,程序设计基础(C语言),20,2.2C语言基本元素,2.2.1C语言基本数据类型1.整型,2020/4/25,程序设计基础(C语言),21,2.2C语言基本元素,2.2.2C语言基本数据类型2.实型(浮点型),2020/4/25,程序设计基础(C语言),22,2.3C语言基本元素,2.2.2C语言基本数据类型3.字符型,2020/4/25,程序设计基础(C语言),23,练习,inta=2;charch=x;floatb=3.14;doublec=5.678;10.0中int类型变量所占字节数是A1B2C3D4,2020/4/25,程序设计基础(C语言),24,2.3C语言基本元素,2.3.1常量常量是在程序运行过程中其值保持不变的量。,1.整型常量(整数)(1)十进制整型常量。如9132,-77,0。注意:由于以数字0开头的常数代表八进制数据,所以十进制整型常量不能以0开头。(2)八进制整型常量。以数字0开头,后面数字可由07八个数字组成,如:0624,-0513等,而083,0912是错误的,因为八进制中不使用8和9。(3)十六进制整型常量。以0 x(零X)或0X开头,后面由数字09中和字母AF共16个符号组成,字母不区分大小写,如:0X52,-0X5F,-0 xCDe等。,2020/4/25,程序设计基础(C语言),25,练习,以下选项中正确的整型常量是A12.B-20C1,000D45611合法的八进制数是A0B028C-077D01.012不合法的十六制数是AoxffB0 xabcC0 x11D0 x19,答案:B、C、A,2020/4/25,程序设计基础(C语言),26,2.4C语言基本元素,2.4.2常量分类,2.实型常量(1)十进制小数形式。由整数部分、小数点和小数部分组成,如:2.37,-5.244,0.5等。(2)指数形式。例如1e2表示1102,2.3e-4表示2.310-4,它由有效数字、E(或e)和指数三部分组成。有效数字可用整型数或小数形式的实型数表示,有效数字前的正(负)号表示整个数的正(负);E(或e)是有效数字和指数的分隔标志,前后不能插入空格;指数部分必须是整型数,用来表示10的整数次幂,而且E(或e)前面必须有数字。,2020/4/25,程序设计基础(C语言),27,练习,2.以下选项中正确的实型常量是A0B3.1415C0.329*10D3.以下选项中正确的实型常量是A2.607E-1B0.8103e2C-77.77(e)2D456e-2.3,答案:B、B,2020/4/25,程序设计基础(C语言),28,2.4C语言基本元素,2.4.3常量,3.字符常量字符常量是指括在单引号内的一个字符。如X、6、/*i为整型变量*/floatc,d,e;/*c,d,e为单精度型变量*/doublez;/*z为双精度型变量*/,3.变量的初始化(1)先定义一个变量,然后再给它赋一个值。(2)在定义变量的同时就对变量进行初始化。,2020/4/25,程序设计基础(C语言),33,变量名:习惯用小写字母表示,见名知义常用类型名:整型:int实型:(浮点型)floatdouble字符型:char1、inta=7;2、inta;a=7;,2020/4/25,程序设计基础(C语言),34,变量的定义与使用,变量必须先定义,后使用。#includevoidmain()intx,y;x=3;y=x*x;printf(“%d”,y);,一个变量名只能定义一次。变量一般都定义在程序的头上,不能定义在程序的中间或后面。,2020/4/25,程序设计基础(C语言),35,2.5C语言基本元素,2.5.3数值型表达式的混合运算,同一个表达式中出现多种数值型数据类型,就是数值型表达式的混合运算。混合运算需要进行类型转换,编译系统自动先将各种类型数据转换成同一类型后再运算求值。类型转换规则如图所示。高doublefloatlongunsigned低intchar、short,表示必定进行的转换,2.5C语言基本元素,2.5.3基本运算符与表达式1.算术运算符与表达式,C语言的二元算术运算符有5个,如表所示。由各种算术运算符算术表达式将常量、变量和括号联接起来的式子称为算术表达式。表算术运算符,说明:(1)除运算符(/)要求除数不能为零。当它作用于两个整型和字符型数据时,运算结果只取整数部分,例如,6/4=1。所以在编程时应注意,要得到正确结果,需要定义除数和被除数中一个为实数,则运算结果为double型,如6.0/4=1.5。(2)取余运算符(%)的运算结果为两个整数相除后所得的余数,%不能用于实型数据。,2020/4/25,程序设计基础(C语言),37,练习,6C语言中运算对象必须是整型的运算符是A%B/C!D*表达式3.5+1/2的计算结果是_.表达式3.5+1.0/2的计算结果是_.,2020/4/25,程序设计基础(C语言),38,2.5C语言基本元素,2.5.3基本运算符与表达式3.赋值运算符与表达式,赋值运算符“=”是最基本的运算符,由赋值运算符将变量和表达式组合起来就构成赋值表达式,其一般形式如下:变量=表达式;表达式可以是一个常量、变量或表达式。但赋值运算符左边必须是变量,例如:a=b+3;注意:=表示赋值功能,而=表示判断两个元素值是否相等。如:a=b;,2020/4/25,程序设计基础(C语言),39,2.6C语言基本元素,2.6.1基本运算符与表达式1.复合运算符与表达式,在赋值运算符前加上二元运算符(+,-,*,/,%),就形成了复合运算符(算术赋值运算符),如表所示。,2020/4/25,程序设计基础(C语言),40,(2009年9月15题)若有定义语句:intx=10;,则表达式x-=x+x的值为A)-20B)-10C)0D)10,答案:B,2020/4/25,程序设计基础(C语言),41,2.7C语言基本元素,2.7.1基本运算符与表达式1.自增、自减和取负运算符,一元算术运算符有自增、自减和取负3个运算符。自增运算符(+)将它的操作数加1;自减运算符(-)将它的操作数减1。,说明:(1)自增、自减运算符只能用于变量,它位于变量前或后对变量来说都是做增1(减1)运算。将运算符放在变量前面,称为前置运算;将运算符放在变量的后面,称为后置运算。(2)自增运算符和自减运算符在C程序中常用于循环结构中,使循环变量自动加1或减1。,2020/4/25,程序设计基础(C语言),42,练习题1、#includemain()inta=2,b=5,c,d,e,f;c=a+;d=+a;e=a-;f=-a;2、(2008年4月7题)设变量已正确定义为整型,则表达式n=i=2,+i,i+的值为【】。,答案:c=2d=4e=4f=2,答案:3,2020/4/25,程序设计基础(C语言),43,2.7C语言基本元素,2.7.2基本运算符与表达式2.逗号运算符与表达式,将若干个表达式用逗号“,”结合成一个表达式,称为逗号表达式。其一般格式为:表达式1,表达式2,表达式3,表达式n;逗号表达式的求值是从左到右计算,最后一个表达式的值即为整个逗号表达式的值。例如:#includemain()inta=3,b=8,t;t=a,a=b,b=t;printf(“a=%d,b=%d”,a,b);,结果:a=8,b=3,2020/4/25,程序设计基础(C语言),44,2.7.2运算优先级与结合性,算术运算符的优先级和结合性,()-+(正负号)+-*/%+-=+=-=*=/=%=,例如:-5+3%2=(-5)+(3%2)=-43*5%3=(3*5)%3=0,2020/4/25,程序设计基础(C语言),45,(2009年9月填空6题)若有定义语句:inta=5;,则表达式:a+的值是【】。(2009年3月单选14题)设有定义:intx=2;,以下表达式中,值不为6的是A)x*=x+1B)x+,2*xC)x*=(1+x)D)2*x,x+=2,答案:5,答案:D,2020/4/25,程序设计基础(C语言),46,
展开阅读全文