《计算机等级考试C语言辅导.ppt》由会员分享,可在线阅读,更多相关《计算机等级考试C语言辅导.ppt(392页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、笔试内容分析考点:考点:C语言程序的基本结构语言程序的基本结构nC语言程序由若干个函数构成。函数是语言程序由若干个函数构成。函数是C语言程序的基本单语言程序的基本单位。每个位。每个C语言程序必须有且只有一个主函数。语言程序必须有且只有一个主函数。nC语言程序总是从语言程序总是从main()函数开始执行,并在函数开始执行,并在main()函数中函数中结束。结束。#include main()int a,b,c,s;a=8;b=12;c=6;/*变量赋值*/s=a+b*c;printf(“s=%dn”,s);考点:考点:C语言程序的基本结构语言程序的基本结构n函数中的语句放在一对花括号函数中的语句
2、放在一对花括号内,称为函数体。内,称为函数体。n函数体中可以有任意多个语句,每个语句必须以分号结束。函数体中可以有任意多个语句,每个语句必须以分号结束。一行可由一个语句或多个语句组成。一行可由一个语句或多个语句组成。#include main()int a,b,c,s;a=8;b=12;c=6;/*变量赋值*/s=a+b*c;printf(“s=%dn”,s);考点:考点:C语言程序的基本结构语言程序的基本结构n大小写在大小写在C中是有区别的。中是有区别的。n/*和和*/中的语句为注释语句不编译执行。中的语句为注释语句不编译执行。#include main()int a,b,c,s;a=8;b
3、=12;c=6;/*变量赋值*/s=a+b*c;printf(“s=%dn”,s);考点:考点:C语言程序的基本结构语言程序的基本结构n头文件可以认为是头文件可以认为是C语言提供的库函数的集合,语言提供的库函数的集合,一些同类的库函数放在一起就形成了一个头文件。一些同类的库函数放在一起就形成了一个头文件。源程序中,当使用某一库函数时,必须将它所在源程序中,当使用某一库函数时,必须将它所在的头文件以文件包含预处理。的头文件以文件包含预处理。#include main()int a,b,c,s;a=8;b=12;c=6;/*变量赋值*/s=a+b*c;printf(“s=%dn”,s);往年真题往
4、年真题n(2006年年4月选择第月选择第14题)以下叙述中错误的是(题)以下叙述中错误的是()qA)C语言源程序经编译后生成后缀为语言源程序经编译后生成后缀为.obj的目标程序的目标程序qB)C程序经过编译、连接步骤之后才能形成一个真正程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件可执行的二进制机器指令文件qC)用)用C语言编写的程序称为源程序,它以语言编写的程序称为源程序,它以ASCII代码形代码形式存放在一个文本文件中式存放在一个文本文件中qD)C语言中的每条可执行语句和非执行语句最终都将语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令被转换成二进制
5、的机器指令n(2007年年9月选择第月选择第11题)题)C语言源程序名的后缀是语言源程序名的后缀是qA).exe B).CqC).obj D).cpn(2006年年4月选择第月选择第18题)以下四个程序中,完题)以下四个程序中,完全正确的是全正确的是qA)#include B)#include main();main()/*programming*/*/programming/*/printf(programming!n);printf(programming!n);qC)#include D)include main()main()/*/*programming*/*/*programmin
6、g*/printf(programming!n);printf(programming!n);n(2007年年4月选择第月选择第15题)对于一个正常运行题)对于一个正常运行的的C程序,以下叙述中正确的是程序,以下叙述中正确的是 qA)程序的执行总是从)程序的执行总是从main函数开始,在函数开始,在main函函数结束数结束qB)程序的执行总是从程序的第一个函数开始,在)程序的执行总是从程序的第一个函数开始,在main函数结束函数结束qC)程序的执行总是从)程序的执行总是从main函数开始,在程序的最函数开始,在程序的最后一个函数中结束后一个函数中结束qD)程序的执行总是从程序的第一个函数开始,
7、在)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束程序的最后一个函数中结束考点:数据类型考点:数据类型数数数数据据据据类类类类型型型型基基基基本本本本类类类类型型型型构构构构造造造造类类类类型型型型指指指指针针针针类类类类型型型型空空空空类类类类型型型型字字字字符符符符类类类类型型型型整整整整型型型型实实实实型型型型枚枚枚枚举举举举类类类类型型型型数数数数组组组组类类类类型型型型结结结结构构构构体体体体共共共共用用用用体体体体整型整型n十进制形式:与数学上的整数表示相同;q 例如:12,-100,0n八进制形式:在数码前加数字0;q 例如:012=1*81+2*80=10(十
8、进制)n十六进制形式:在数码前加0X。q 例如:0 x12=1*161+2*160=18(十进制)*八进制的数码范围为八进制的数码范围为07;018 *十六进制的数码除了数字十六进制的数码除了数字09外外,还使用英文字母还使用英文字母a f(或或A F)表示表示1015。如:如:0 x1e 整型整型n根据数据所占的二进制位数分为:qintqshortqlong;n 同样存储长度的数据又分qunsignedqsigned;n 故可组合出六种类型。实型实型n十进制小数形式:3.4 4.3n指数形式:12.5e-6 表示12.510-6n分类:qfloat qdouble必须是整型字符型字符型n用单
9、引号括起来的一个字符;如:A、1、?等。n用单引号括起来的由反斜杠()引导的转义字符字符形式 功能 n 换行 t 横向跳格 b 退格 r 回车 反斜杠字符 单引号字符 ddd 8进制数表示的ASCII码对应的字符 xhh 16进制数表示的ASCII码对应的字符常量常量n常量:程序运行期间值不改变的量常量:程序运行期间值不改变的量n整型常量:整型常量:q256,-75,0(十进制整型常量十进制整型常量)q0237,045,0621(八进制整型常量八进制整型常量)q0 x28AF,0 xED4(十六进制整型常量十六进制整型常量)q435L,8350L(长整型常量长整型常量)q096,48EA,0
10、xK(错误错误)n实型常量实型常量q28.76,2.34E+8(正确)(正确)q6.4E+4.8,E9(错误)(错误)变量变量n概念:程序运行期间值可以被改变的量概念:程序运行期间值可以被改变的量n定义:类型名定义:类型名 变量名变量名qint a,b;qint a=3,b=4;n注意:变量必须先定义后使用注意:变量必须先定义后使用往年真题往年真题n(2006年年4月选择第月选择第11题)以下不合法的用户标题)以下不合法的用户标识符是识符是qA)j2_KEYB)DoubleqC)4dD)_8_n(2007年年4月选择第月选择第13题)按照题)按照C语言规定的用语言规定的用户标识符命名规则,不能
11、出现在标识符中的是户标识符命名规则,不能出现在标识符中的是 qA)大写字母)大写字母B)连接符)连接符qC)数字字符)数字字符D)下划线)下划线n(2005年年4月选择第月选择第12题)以下选项中可作为题)以下选项中可作为C语言合法常量的是语言合法常量的是qA)-80.B)-080qC)-8e1.0D)-80.0en(2006年年4月选择第月选择第12题)以下不合法的数值题)以下不合法的数值常量是常量是qA)011B)1e1qC)8.0E0.5D)0 xabcdn(2006年年4月选择第月选择第13题)以下不合法的字符常量是题)以下不合法的字符常量是qA)018B)qC)D)xccn(2007
12、年年9月选择第月选择第16题)以下关于题)以下关于long、int和和short类型数据占用内存大小的叙述中正确的是类型数据占用内存大小的叙述中正确的是qA)均占)均占4个字节个字节 qB)根据数据的大小来决定所占内存的字节数)根据数据的大小来决定所占内存的字节数qC)由用户自己定义)由用户自己定义 qD)由)由C语言编译系统决定语言编译系统决定n(2007年年4月填空第月填空第10题)以下程序的输出结果题)以下程序的输出结果是是【】【】。#include main()printf(“%dn”,strlen(“IBMn012001”);n(2007年年9月选择第月选择第26题)已知字符题)已知
13、字符A的的ASC代码值是代码值是65,字符变量,字符变量c1的值是的值是A,c2的值是的值是D。执行语句。执行语句printf(%d,%d,c1,c2-2);后,输出结果是后,输出结果是qA)A,B B)A,68 qC)65,66D)65,68考点:运算符和表达式考点:运算符和表达式 n掌握每个运算符的功能掌握每个运算符的功能n掌握表达式值的求解掌握表达式值的求解q优先级优先级q结合性结合性算术运算符算术运算符n+(加加):3+4、+3n-(减减):3-5、-5n*(乘乘):3*5n/(除除):q5/2的值为的值为2;5.0/2的值为的值为2.5;n%(取余取余):q5%3的值为的值为2;-5
14、%3的值为的值为-2;q5%(-3)的值为的值为2;-5%(-3)的值为的值为-2;q12.3%3 若若a能被能被b整除,则有:整除,则有:a%b=0 优先级优先级:()()*、/、%+、-结合性结合性:从左至右;:从左至右;往年真题往年真题n(2006年年4月选择第月选择第14题)表达式题)表达式3.6-52+1.2+52的值是的值是qA)4.3B)4.8qC)3.3 D)3.8赋值运算符赋值运算符n运算符运算符 =n形式形式 变量名变量名=表达式表达式n求值规则求值规则 将将“=”右边表达式的值赋给左边的变量右边表达式的值赋给左边的变量n结合性结合性 自右至左自右至左n表达式的值被赋值变量
15、的值表达式的值被赋值变量的值被赋值的对象一定是变量(1)x=4*3(2)x=x+1(3)x=y=12/4往年真题往年真题n(2007年年9月选择第月选择第17题)若变量均已正确定题)若变量均已正确定义并赋值,以下合法的义并赋值,以下合法的C语言赋值语句是语言赋值语句是qA)x=y=5;B)x=n%2.5;qC)x+n=i;D)x=5=4+1;自增自减运算自增自减运算n+i:先加:先加1后使用后使用i的值(或减的值(或减1););ni+:先使用:先使用i的值再增的值再增1(或减(或减1););qi=3;j=+i;等价于等价于i=i+1;j=i;(先加后用先加后用)所以所以i的值为的值为4,j的值
16、为的值为4。qi=3;j=i+;等价于等价于j=i;i=i+1;(先用后加先用后加)所以所以i的值为的值为4,j的值为的值为3。n-和和+的规则类似的规则类似运算对象一定是变量往年真题往年真题n(2005年年4月选择第月选择第17题)有以下程序,运行后的输题)有以下程序,运行后的输出结果是出结果是main()int m=12,n=34;printf(%d%d,m+,+n);printf(%d%d,n+,+m);qA)12353514B)12353513qC)12343514D)12343513关系表达式关系表达式n运算符:运算符:=!=n优先级:优先级:(=)(=!=)n结合性:自左至右结合性
17、:自左至右n表达式的值:表达式的值:q若为真,则结果为若为真,则结果为1;q若为假,则结果为若为假,则结果为0。35 的值为的值为 0;32 的值为的值为 0;3+(43)*4的值为的值为 3;3+4&|n结合性:自左至右结合性:自左至右n表达式的值表达式的值 q真(真(1)q假(假(0)int a=5;float b=3.5;!a (0)!(a b)(1)a&b (1)!a&b (0)!a&!b (0)!(a&b)(0)短路原理短路原理n在逻辑表达式的求解中,并不是所有的逻辑运在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符都被执行,只是在必须执行下一个逻
18、辑运算符才能求出表达式的解时,才执行该运算符。算符才能求出表达式的解时,才执行该运算符。q(1)a=0;b=1;c=a+&(b=3);结果结果:a为为1,b为为1,c为为0。q (2)a=1;b=1;c=0;d=-a b-(c=b+3);结果结果:a为为0,b为为0,c为为0,d为为1。往年真题往年真题n(2007年年4月填空第月填空第11题)已定义题)已定义char ch$;int i=1,j;n执行执行j=!ch&i+以后,以后,i的值为的值为【11】。复合赋值运算符复合赋值运算符n*=、/=、%=、+=、-=等 n复合运算符是一个运算符,但功能上,是两个运算符功能的组合。a+=b 相当于
19、相当于 a=a+b a*=b 相当于相当于 a=a*b a*=b+c 相当于相当于 a=a*(b+c)而不是而不是 a=a*b+c条件运算符条件运算符n形式:?:n求值规则求解表达式1值为真表达式的值为表达式2表达式的值为表达式3是否int max,a=5,b=3;max=ab?a:b max及赋值表达式的值均为及赋值表达式的值均为5;ab?a:b+1 条件表达式的值为条件表达式的值为4。往年真题往年真题n(2007年年9月选择第月选择第21题)设有条件表达式:题)设有条件表达式:(EXP)?i+;j-,则以下表达式中,则以下表达式中(EXP)完全等完全等价的是价的是qA)()(EXP=0)B
20、)()(EXP!=0)qC)()(EXP=1)D)()(EXP!=1)qIf(x!=0)与与if(x)等价等价往年真题往年真题n(2007年年9月填空第月填空第7题)以下程序的功能是题)以下程序的功能是:输出输出a、b、c三个变量中的最小值。请填空。三个变量中的最小值。请填空。#includemain()int a,b,c,t1,t2;scanf(%d%d%d,&a,&b,&c);t1=ab?【7】;t2=ct1?【8】;printf(%dn,t2);逗号表达式逗号表达式n形式形式 逗号表达式逗号表达式1,逗号表达式,逗号表达式2,n求值规则求值规则 从左至右依次计算各表达式的值从左至右依次计
21、算各表达式的值n优先级优先级 最低最低n结合性结合性 自左至右自左至右n表达式的值表达式的值 最后一个表达式的值最后一个表达式的值 a b y 表达式表达式 y=a=4,b=5,a+b;4 5 4 9 y=(a=4,b=5,a+b);4 5 9 9往年真题往年真题n(2007年年4月填空第月填空第6题)执行以下程序后的输出结果题)执行以下程序后的输出结果是是【6】。main()int a=10;a=(3*5,a+4);printf(“a=%dn”,a);往年真题往年真题n(2005年年9月选择第月选择第34题)有以下程序题)有以下程序main()char a1=M,a2=m;printf(%c
22、n,(a1,a2);以下叙述中正确的是以下叙述中正确的是qA)程序输出大写字母)程序输出大写字母MqB)程序输出小写字母)程序输出小写字母mqC)格式说明符不足,编译出错)格式说明符不足,编译出错qD)程序运行时产生出错信息)程序运行时产生出错信息类型转换类型转换n字符型和整型可以相互转换字符型和整型可以相互转换n算术运算时,如果有一个数据是实型的,在数算术运算时,如果有一个数据是实型的,在数据都自动转换成据都自动转换成double类型进行运算类型进行运算n强制类型转换强制类型转换char ch=a;int i=13;float x=3.65;double y=7.528e-6;i+ch+x*
23、yfloat a,b;(int)(a+b)3.C语言基本语句语言基本语句.ppt 2 C语言语法基础知识点分析知识点分析n学好语法基础是掌握后续知识的前提,平均考查分值大约学好语法基础是掌握后续知识的前提,平均考查分值大约10分,是重点掌握内容,但也不必深究,也不必强记。分,是重点掌握内容,但也不必深究,也不必强记。n重要考点重要考点qC程序的构成与格式程序的构成与格式q数据类型数据类型q运算符和表达式。运算符和表达式。编程环境编程环境nTCnVC+上机调试程序的过程上机调试程序的过程考点:考点:C语言程序的基本结构语言程序的基本结构nC语言程序由若干个函数构成。函数是语言程序由若干个函数构成
24、。函数是C语言程序的基本单语言程序的基本单位。每个位。每个C语言程序必须有且只有一个主函数。语言程序必须有且只有一个主函数。nC语言程序总是从语言程序总是从main()函数开始执行,并在函数开始执行,并在main()函数中函数中结束。结束。#include main()int a,b,c,s;a=8;b=12;c=6;/*变量赋值*/s=a+b*c;printf(“s=%dn”,s);考点:考点:C语言程序的基本结构语言程序的基本结构n函数中的语句放在一对花括号函数中的语句放在一对花括号内,称为函数体。内,称为函数体。n函数体中可以有任意多个语句,每个语句必须以分号结束。函数体中可以有任意多个
25、语句,每个语句必须以分号结束。一行可由一个语句或多个语句组成。一行可由一个语句或多个语句组成。#include main()int a,b,c,s;a=8;b=12;c=6;/*变量赋值*/s=a+b*c;printf(“s=%dn”,s);考点:考点:C语言程序的基本结构语言程序的基本结构n大小写在大小写在C中是有区别的。中是有区别的。n/*和和*/中的语句为注释语句不编译执行。中的语句为注释语句不编译执行。#include main()int a,b,c,s;a=8;b=12;c=6;/*变量赋值*/s=a+b*c;printf(“s=%dn”,s);考点:考点:C语言程序的基本结构语言程
26、序的基本结构n头文件可以认为是头文件可以认为是C语言提供的库函数的集合,语言提供的库函数的集合,一些同类的库函数放在一起就形成了一个头文件。一些同类的库函数放在一起就形成了一个头文件。源程序中,当使用某一库函数时,必须将它所在源程序中,当使用某一库函数时,必须将它所在的头文件以文件包含预处理。的头文件以文件包含预处理。#include main()int a,b,c,s;a=8;b=12;c=6;/*变量赋值*/s=a+b*c;printf(“s=%dn”,s);往年真题往年真题n(2006年年4月选择第月选择第14题)以下叙述中错误的是(题)以下叙述中错误的是()qA)C语言源程序经编译后生
27、成后缀为语言源程序经编译后生成后缀为.obj的目标程序的目标程序qB)C程序经过编译、连接步骤之后才能形成一个真正程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件可执行的二进制机器指令文件qC)用)用C语言编写的程序称为源程序,它以语言编写的程序称为源程序,它以ASCII代码形代码形式存放在一个文本文件中式存放在一个文本文件中qD)C语言中的每条可执行语句和非执行语句最终都将语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令被转换成二进制的机器指令n(2007年年9月选择第月选择第11题)题)C语言源程序名的后缀是语言源程序名的后缀是qA).exe B).C
28、qC).obj D).cpn(2006年年4月选择第月选择第18题)以下四个程序中,完题)以下四个程序中,完全正确的是全正确的是qA)#include B)#include main();main()/*programming*/*/programming/*/printf(programming!n);printf(programming!n);qC)#include D)include main()main()/*/*programming*/*/*programming*/printf(programming!n);printf(programming!n);n(2007年年4月选择第月
29、选择第15题)对于一个正常运行题)对于一个正常运行的的C程序,以下叙述中正确的是程序,以下叙述中正确的是 qA)程序的执行总是从)程序的执行总是从main函数开始,在函数开始,在main函函数结束数结束qB)程序的执行总是从程序的第一个函数开始,在)程序的执行总是从程序的第一个函数开始,在main函数结束函数结束qC)程序的执行总是从)程序的执行总是从main函数开始,在程序的最函数开始,在程序的最后一个函数中结束后一个函数中结束qD)程序的执行总是从程序的第一个函数开始,在)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束程序的最后一个函数中结束考点:数据类型考点:数据类型数
30、数数数据据据据类类类类型型型型基基基基本本本本类类类类型型型型构构构构造造造造类类类类型型型型指指指指针针针针类类类类型型型型空空空空类类类类型型型型字字字字符符符符类类类类型型型型整整整整型型型型实实实实型型型型枚枚枚枚举举举举类类类类型型型型数数数数组组组组类类类类型型型型结结结结构构构构体体体体共共共共用用用用体体体体整型整型n十进制形式:与数学上的整数表示相同;q 例如:12,-100,0n八进制形式:在数码前加数字0;q 例如:012=1*81+2*80=10(十进制)n十六进制形式:在数码前加0X。q 例如:0 x12=1*161+2*160=18(十进制)*八进制的数码范围为八进
31、制的数码范围为07;018 *十六进制的数码除了数字十六进制的数码除了数字09外外,还使用英文字母还使用英文字母a f(或或A F)表示表示1015。如:如:0 x1e 整型整型n根据数据所占的二进制位数分为:qintqshortqlong;n 同样存储长度的数据又分qunsignedqsigned;n 故可组合出六种类型。实型实型n十进制小数形式:3.4 4.3n指数形式:12.5e-6 表示12.510-6n分类:qfloat qdouble必须是整型字符型字符型n用单引号括起来的一个字符;如:A、1、?等。n用单引号括起来的由反斜杠()引导的转义字符字符形式 功能 n 换行 t 横向跳格
32、 b 退格 r 回车 反斜杠字符 单引号字符 ddd 8进制数表示的ASCII码对应的字符 xhh 16进制数表示的ASCII码对应的字符常量常量n常量:程序运行期间值不改变的量常量:程序运行期间值不改变的量n整型常量:整型常量:q256,-75,0(十进制整型常量十进制整型常量)q0237,045,0621(八进制整型常量八进制整型常量)q0 x28AF,0 xED4(十六进制整型常量十六进制整型常量)q435L,8350L(长整型常量长整型常量)q096,48EA,0 xK(错误错误)n实型常量实型常量q28.76,2.34E+8(正确)(正确)q6.4E+4.8,E9(错误)(错误)变量
33、变量n概念:程序运行期间值可以被改变的量概念:程序运行期间值可以被改变的量n定义:类型名定义:类型名 变量名变量名qint a,b;qint a=3,b=4;n注意:变量必须先定义后使用注意:变量必须先定义后使用往年真题往年真题n(2006年年4月选择第月选择第11题)以下不合法的用户标题)以下不合法的用户标识符是识符是qA)j2_KEYB)DoubleqC)4dD)_8_n(2007年年4月选择第月选择第13题)按照题)按照C语言规定的用语言规定的用户标识符命名规则,不能出现在标识符中的是户标识符命名规则,不能出现在标识符中的是 qA)大写字母)大写字母B)连接符)连接符qC)数字字符)数字
34、字符D)下划线)下划线n(2005年年4月选择第月选择第12题)以下选项中可作为题)以下选项中可作为C语言合法常量的是语言合法常量的是qA)-80.B)-080qC)-8e1.0D)-80.0en(2006年年4月选择第月选择第12题)以下不合法的数值题)以下不合法的数值常量是常量是qA)011B)1e1qC)8.0E0.5D)0 xabcdn(2006年年4月选择第月选择第13题)以下不合法的字符常量是题)以下不合法的字符常量是qA)018B)qC)D)xccn(2007年年9月选择第月选择第16题)以下关于题)以下关于long、int和和short类型数据占用内存大小的叙述中正确的是类型数
35、据占用内存大小的叙述中正确的是qA)均占)均占4个字节个字节 qB)根据数据的大小来决定所占内存的字节数)根据数据的大小来决定所占内存的字节数qC)由用户自己定义)由用户自己定义 qD)由)由C语言编译系统决定语言编译系统决定n(2007年年4月填空第月填空第10题)以下程序的输出结果题)以下程序的输出结果是是【】【】。#include main()printf(“%dn”,strlen(“IBMn012001”);n(2007年年9月选择第月选择第26题)已知字符题)已知字符A的的ASC代码值是代码值是65,字符变量,字符变量c1的值是的值是A,c2的值是的值是D。执行语句。执行语句prin
36、tf(%d,%d,c1,c2-2);后,输出结果是后,输出结果是qA)A,B B)A,68 qC)65,66D)65,68考点:运算符和表达式考点:运算符和表达式 n掌握每个运算符的功能掌握每个运算符的功能n掌握表达式值的求解掌握表达式值的求解q优先级优先级q结合性结合性算术运算符算术运算符n+(加加):3+4、+3n-(减减):3-5、-5n*(乘乘):3*5n/(除除):q5/2的值为的值为2;5.0/2的值为的值为2.5;n%(取余取余):q5%3的值为的值为2;-5%3的值为的值为-2;q5%(-3)的值为的值为2;-5%(-3)的值为的值为-2;q12.3%3 若若a能被能被b整除,
37、则有:整除,则有:a%b=0 优先级优先级:()()*、/、%+、-结合性结合性:从左至右;:从左至右;往年真题往年真题n(2006年年4月选择第月选择第14题)表达式题)表达式3.6-52+1.2+52的值是的值是qA)4.3B)4.8qC)3.3 D)3.8赋值运算符赋值运算符n运算符运算符 =n形式形式 变量名变量名=表达式表达式n求值规则求值规则 将将“=”右边表达式的值赋给左边的变量右边表达式的值赋给左边的变量n结合性结合性 自右至左自右至左n表达式的值被赋值变量的值表达式的值被赋值变量的值被赋值的对象一定是变量(1)x=4*3(2)x=x+1(3)x=y=12/4往年真题往年真题n
38、(2007年年9月选择第月选择第17题)若变量均已正确定题)若变量均已正确定义并赋值,以下合法的义并赋值,以下合法的C语言赋值语句是语言赋值语句是qA)x=y=5;B)x=n%2.5;qC)x+n=i;D)x=5=4+1;自增自减运算自增自减运算n+i:先加:先加1后使用后使用i的值(或减的值(或减1););ni+:先使用:先使用i的值再增的值再增1(或减(或减1););qi=3;j=+i;等价于等价于i=i+1;j=i;(先加后用先加后用)所以所以i的值为的值为4,j的值为的值为4。qi=3;j=i+;等价于等价于j=i;i=i+1;(先用后加先用后加)所以所以i的值为的值为4,j的值为的值
39、为3。n-和和+的规则类似的规则类似运算对象一定是变量往年真题往年真题n(2005年年4月选择第月选择第17题)有以下程序,运行后的输题)有以下程序,运行后的输出结果是出结果是main()int m=12,n=34;printf(%d%d,m+,+n);printf(%d%d,n+,+m);qA)12353514B)12353513qC)12343514D)12343513关系表达式关系表达式n运算符:运算符:=!=n优先级:优先级:(=)(=!=)n结合性:自左至右结合性:自左至右n表达式的值:表达式的值:q若为真,则结果为若为真,则结果为1;q若为假,则结果为若为假,则结果为0。35 的值
40、为的值为 0;32 的值为的值为 0;3+(43)*4的值为的值为 3;3+4&|n结合性:自左至右结合性:自左至右n表达式的值表达式的值 q真(真(1)q假(假(0)int a=5;float b=3.5;!a (0)!(a b)(1)a&b (1)!a&b (0)!a&!b (0)!(a&b)(0)短路原理短路原理n在逻辑表达式的求解中,并不是所有的逻辑运在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。算符才能求出表达式的解时,才执行该运算符。q(1)a=0;b=1;c=a+&
41、(b=3);结果结果:a为为1,b为为1,c为为0。q (2)a=1;b=1;c=0;d=-a b-(c=b+3);结果结果:a为为0,b为为0,c为为0,d为为1。往年真题往年真题n(2007年年4月填空第月填空第11题)已定义题)已定义char ch$;int i=1,j;n执行执行j=!ch&i+以后,以后,i的值为的值为【11】。复合赋值运算符复合赋值运算符n*=、/=、%=、+=、-=等 n复合运算符是一个运算符,但功能上,是两个运算符功能的组合。a+=b 相当于相当于 a=a+b a*=b 相当于相当于 a=a*b a*=b+c 相当于相当于 a=a*(b+c)而不是而不是 a=a
42、*b+c条件运算符条件运算符n形式:?:n求值规则求解表达式1值为真表达式的值为表达式2表达式的值为表达式3是否int max,a=5,b=3;max=ab?a:b max及赋值表达式的值均为及赋值表达式的值均为5;ab?a:b+1 条件表达式的值为条件表达式的值为4。往年真题往年真题n(2007年年9月选择第月选择第21题)设有条件表达式:题)设有条件表达式:(EXP)?i+;j-,则以下表达式中,则以下表达式中(EXP)完全等完全等价的是价的是qA)()(EXP=0)B)()(EXP!=0)qC)()(EXP=1)D)()(EXP!=1)qIf(x!=0)与与if(x)等价等价往年真题往年
43、真题n(2007年年9月填空第月填空第7题)以下程序的功能是题)以下程序的功能是:输出输出a、b、c三个变量中的最小值。请填空。三个变量中的最小值。请填空。#includemain()int a,b,c,t1,t2;scanf(%d%d%d,&a,&b,&c);t1=ab?【7】;t2=ct1?【8】;printf(%dn,t2);逗号表达式逗号表达式n形式形式 逗号表达式逗号表达式1,逗号表达式,逗号表达式2,n求值规则求值规则 从左至右依次计算各表达式的值从左至右依次计算各表达式的值n优先级优先级 最低最低n结合性结合性 自左至右自左至右n表达式的值表达式的值 最后一个表达式的值最后一个表
44、达式的值 a b y 表达式表达式 y=a=4,b=5,a+b;4 5 4 9 y=(a=4,b=5,a+b);4 5 9 9往年真题往年真题n(2007年年4月填空第月填空第6题)执行以下程序后的输出结果题)执行以下程序后的输出结果是是【6】。main()int a=10;a=(3*5,a+4);printf(“a=%dn”,a);往年真题往年真题n(2005年年9月选择第月选择第34题)有以下程序题)有以下程序main()char a1=M,a2=m;printf(%cn,(a1,a2);以下叙述中正确的是以下叙述中正确的是qA)程序输出大写字母)程序输出大写字母MqB)程序输出小写字母)
45、程序输出小写字母mqC)格式说明符不足,编译出错)格式说明符不足,编译出错qD)程序运行时产生出错信息)程序运行时产生出错信息类型转换类型转换n字符型和整型可以相互转换字符型和整型可以相互转换n算术运算时,如果有一个数据是实型的,在数算术运算时,如果有一个数据是实型的,在数据都自动转换成据都自动转换成double类型进行运算类型进行运算n强制类型转换强制类型转换char ch=a;int i=13;float x=3.65;double y=7.528e-6;i+ch+x*yfloat a,b;(int)(a+b)3 C语言基本语句知识点分析知识点分析n主要为后续学习打下基础,直接考查并不太多
46、主要为后续学习打下基础,直接考查并不太多n重要考点重要考点q输入输出函数的使用。输入输出函数的使用。q格式控制字符格式控制字符考点:数据输入输出语句及函数考点:数据输入输出语句及函数 n语句的概念语句的概念n字符输入输出函数字符输入输出函数n格式化输入输出函数格式化输入输出函数语句语句n语句以分号结束语句以分号结束n空语句空语句q;n复合语句复合语句q char a1=M,a2=m;printf(%cn,(a1,a2);q可以理解为一条语句可以理解为一条语句程序基本结构程序基本结构n顺序结构顺序结构n选择结构选择结构n循环结构循环结构字符输入输出函数字符输入输出函数nputchar(char)
47、q功能:输出一个字符功能:输出一个字符q举例:举例:putchar(a)putchar(n)putchar(97)ngetchar()q功能:输入一个字符功能:输入一个字符q举例:举例:ch=getchar()格式化输出函数格式化输出函数n格式:格式:printf(“格式控制字符串格式控制字符串”,输出项列表输出项列表)n功能:功能:按指定格式输出数据按指定格式输出数据n举例:举例:int i=97;printf(“i=%d,%cn”,i,i);n格式控制串中包含格式控制串中包含q普通字符普通字符:原样输出:原样输出q转义字符转义字符:输出特定字符,如:输出特定字符,如n表示换行表示换行q格式
48、字符格式字符:按照指定的格式输出数据:按照指定的格式输出数据格式控制字符格式控制字符n格式字符格式字符q%d:有符号十进制整数:有符号十进制整数q%u:无符号十进制整数:无符号十进制整数q%o:无符号八进制整数:无符号八进制整数q%x:无符号十六进制整数:无符号十六进制整数q%c:一个字符:一个字符q%s:字符串:字符串q%f:小数形式输出,默认:小数形式输出,默认6位小数位小数n宽度指示符指示最小输出宽度,不足则补空格,多出则按宽度指示符指示最小输出宽度,不足则补空格,多出则按实际输出。实际输出。n精度指示符指示最少小数位数,不足则补精度指示符指示最少小数位数,不足则补0,多出则按实,多出则
49、按实际输出。际输出。printf(“%8d”,100);printf(“%3d”,4560);printf(“%8.2f”,3.14159);printf(“%c”,100);格式化输入函数格式化输入函数n格式:格式:scanf(“格式控制字符串格式控制字符串”,地址列表地址列表)n功能:从键盘输入若干数据给指定的单元功能:从键盘输入若干数据给指定的单元n举例:举例:scanf(“%d”,&i);scanf(“%d,%d”,&a,&b)n注意:输入多个数据时,如果指定了分隔字符,则必须使用注意:输入多个数据时,如果指定了分隔字符,则必须使用指定字符分隔;如果没有,可以使用空格、指定字符分隔;如
50、果没有,可以使用空格、TABn格式控制串中包含格式控制串中包含q普通字符普通字符:原样输入:原样输入q格式字符格式字符:按照指定的格式输入数据:按照指定的格式输入数据一定是地址往年真题往年真题n(2009年年3月选择第月选择第15题)程序段的输出结果题)程序段的输出结果是(是()int x=12;double y=3.141593;printf(“%d%8.6f”,x,y);qA)123.141593B)12 3.141593 qC)12,3.141593D)123.1415930n(2007年年4月选择第月选择第19题)有以下程序,其中题)有以下程序,其中%u表示表示按无符号整数输出按无符号