计算机等级考试C语言辅导.ppt_第1页
计算机等级考试C语言辅导.ppt_第2页
计算机等级考试C语言辅导.ppt_第3页
计算机等级考试C语言辅导.ppt_第4页
计算机等级考试C语言辅导.ppt_第5页
已阅读5页,还剩387页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

笔试内容分析,考点:C语言程序的基本结构,C语言程序由若干个函数构成。函数是C语言程序的基本单位。每个C语言程序必须有且只有一个主函数。 C语言程序总是从main()函数开始执行,并在main()函数中结束。,#include main() int a,b,c,s; a=8;b=12;c=6;/*变量赋值*/ s=a+b*c; printf(“s=%dn”,s); ,考点:C语言程序的基本结构,函数中的语句放在一对花括号内,称为函数体。 函数体中可以有任意多个语句,每个语句必须以分号结束。一行可由一个语句或多个语句组成。,#include main() int a,b,c,s; a=8;b=12;c=6;/*变量赋值*/ s=a+b*c; printf(“s=%dn”,s); ,考点:C语言程序的基本结构,大小写在C中是有区别的。 /*和*/ 中的语句为注释语句不编译执行。,#include main() int a,b,c,s; a=8;b=12;c=6;/*变量赋值*/ s=a+b*c; printf(“s=%dn”,s); ,考点:C语言程序的基本结构,头文件可以认为是C语言提供的库函数的集合,一些同类的库函数放在一起就形成了一个头文件。源程序中,当使用某一库函数时,必须将它所在的头文件以文件包含预处理。,#include main() int a,b,c,s; a=8;b=12;c=6;/*变量赋值*/ s=a+b*c; printf(“s=%dn”,s); ,往年真题,(2006年4月选择第14题)以下叙述中错误的是( ) A)C语言源程序经编译后生成后缀为.obj的目标程序 B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 (2007年9月选择第11题)C语言源程序名的后缀是 A).exe B).C C).obj D).cp,(2006年4月选择第18题)以下四个程序中,完全正确的是 A)#include B)#include main(); main() /*programming*/ /*/ programming /*/ printf(“programming!n“); printf(“programming!n“); C)#include D)include main() main() /*/*programming*/*/ /*programming*/ printf(“programming!n“); printf(“programming!n“);,(2007年4月选择第15题)对于一个正常运行的C程序,以下叙述中正确的是 A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束,考点:数据类型,整型,十进制形式:与数学上的整数表示相同; 例如: 12, -100, 0 八进制形式:在数码前加数字0; 例如: 012=1*81+2*80=10(十进制) 十六进制形式:在数码前加0X。 例如: 0x12=1*161+2*160=18(十进制),* 八进制的数码范围为07; 018 * 十六进制的数码除了数字09外, 还使用英文字母a f (或A F)表示1015。 如:0x1e ,整型,根据数据所占的二进制位数分为: int short long; 同样存储长度的数据又分 unsigned signed; 故可组合出六种类型。,实型,十进制小数形式:3.4 4. .3 指数形式:12.5e-6 表示12.510-6 分类: float double,必须是整型,字符型,用单引号括起来的一个字符;如:A、 1、?等。 用单引号括起来的由反斜杠()引导的转义字符 字符形式 功能 n 换行 t 横向跳格 b 退格 r 回车 反斜杠字符 单引号字符 ddd 8进制数表示的ASCII码对应的字符 xhh 16进制数表示的ASCII码对应的字符,常量,常量:程序运行期间值不改变的量 整型常量: 256,-75,0 (十进制整型常量) 0237,045,0621 (八进制整型常量) 0x28AF,0xED4 (十六进制整型常量) 435L,8350L (长整型常量) 096,48EA,0xK (错误) 实型常量 28.76,2.34E+8 (正确) 6.4E+4.8,E9 (错误),变量,概念:程序运行期间值可以被改变的量 定义:类型名 变量名 int a,b; int a=3,b=4; 注意:变量必须先定义后使用,往年真题,(2006年4月选择第11题)以下不合法的用户标识符是 A)j2_KEY B)Double C)4d D)_8_ (2007年4月选择第13题)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是 A)大写字母 B)连接符 C)数字字符 D)下划线,(2005年4月选择第12题)以下选项中可作为C语言合法常量的是 A)-80. B)-080 C)-8e1.0 D)-80.0e (2006年4月选择第12题)以下不合法的数值常量是 A)011 B)1e1 C)8.0E0.5 D)0xabcd,(2006年4月选择第13题)以下不合法的字符常量是 A)018 B) C) D)xcc (2007年9月选择第16题)以下关于long、int和short类型数据占用内存大小的叙述中正确的是 A)均占4个字节 B)根据数据的大小来决定所占内存的字节数 C)由用户自己定义 D)由C语言编译系统决定,(2007年4月填空第10题)以下程序的输出结果是【】。 # include main() printf(“%dn”,strlen(“IBMn012001”); (2007年9月选择第26题)已知字符A的ASC代码值是65,字符变量c1的值是A,c2的值是D。执行语句printf(“%d,%d“,c1,c2-2);后,输出结果是 A)A,B B)A,68 C)65,66 D)65,68,考点:运算符和表达式,掌握每个运算符的功能 掌握表达式值的求解 优先级 结合性,算术运算符,+(加): 3+4、 +3 -(减): 3-5、 -5 *(乘): 3*5 /(除): 5/2的值为2;5.0/2的值为2.5; %(取余): 5%3的值为2; -5%3的值为-2; 5%(-3)的值为2; -5%(-3)的值为-2; 12.3%3 若a能被b整除,则有:a%b=0 优先级:() *、/、% +、- 结合性:从左至右;,往年真题,(2006年4月选择第14题)表达式3.6-52+1.2+52的值是 A)4.3 B)4.8 C)3.3 D)3.8,赋值运算符,运算符 = 形式 变量名=表达式 求值规则 将“=”右边表达式的值赋给左边的变量 结合性 自右至左 表达式的值被赋值变量的值,被赋值的对象一定是变量,(1) x=4*3 (2) x=x+1 (3) x=y=12/4,往年真题,(2007年9月选择第17题)若变量均已正确定义并赋值,以下合法的C语言赋值语句是 A)x=y=5; B)x=n%2.5; C)x+n=i; D)x=5=4+1;,自增自减运算,+i:先加1后使用i的值(或减1); i+:先使用i的值再增1(或减1); i=3; j=+i; 等价于i=i+1;j=i;(先加后用) 所以i的值为4,j的值为4。 i=3;j=i+; 等价于j=i;i=i+1; (先用后加) 所以i的值为4,j的值为3。 -和+的规则类似,运算对象一定是变量,往年真题,(2005年4月选择第17题)有以下程序,运行后的输出结果是 main() int m=12,n=34; printf(“%d%d“,m+,+n); printf(“%d%d “,n+,+m); A)12353514 B)12353513 C)12343514 D)12343513,关系表达式,运算符:= = != 优先级: (= ) ( = != ) 结合性:自左至右 表达式的值: 若为真,则结果为1; 若为假,则结果为0。,35 的值为 0; 32 的值为 0; 3+(43)*4的值为 3; 3+43*4 的值为 1;,逻辑运算符,运算符:&(与) |(或) !(非) 逻辑量:0假 非0真 优先级: !&| 结合性:自左至右 表达式的值 真(1) 假(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),短路原理,在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。 (1)a = 0; b = 1; c = a+ 结果: a为0,b为0,c为0,d为1。,往年真题,(2007年4月填空第11题)已定义 char ch$; int i=1,j; 执行j=!ch&i+以后,i的值为【11】。,复合赋值运算符,*=、/=、 %=、 +=、 -= 等 复合运算符是一个运算符,但功能上,是两个运算符功能的组合。,a+=b 相当于 a=a+b a*=b 相当于 a=a*b a*=b+c 相当于 a=a*(b+c) 而不是 a=a*b+c,条件运算符,形式: ? : 求值规则,int max,a=5,b=3; max=ab?a:b max及赋值表达式的值均为5; ab?a:b+1 条件表达式的值为4。,往年真题,(2007年9月选择第21题)设有条件表达式:(EXP)?i+;j-,则以下表达式中(EXP)完全等价的是 A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1) If(x!=0) 与if(x)等价,往年真题,(2007年9月填空第7题)以下程序的功能是:输出a、b、c三个变量中的最小值。请填空。 #include main() int a,b,c,t1,t2; scanf(“%d%d%d“, ,逗号表达式,形式 逗号表达式1,逗号表达式2, 求值规则 从左至右依次计算各表达式的值 优先级 最低 结合性 自左至右 表达式的值 最后一个表达式的值,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,往年真题,(2007年4月填空第6题)执行以下程序后的输出结果是【6】。 main() int a=10; a=(3*5,a+4); printf(“a=%dn”,a); ,往年真题,(2005年9月选择第34题)有以下程序 main() char a1=M, a2=m; printf(“%cn“, (a1, a2) ); 以下叙述中正确的是 A)程序输出大写字母M B)程序输出小写字母m C)格式说明符不足,编译出错 D)程序运行时产生出错信息,类型转换,字符型和整型可以相互转换 算术运算时,如果有一个数据是实型的,在数据都自动转换成double类型进行运算 强制类型转换,char ch=a; int i=13; float x=3.65; double y=7.528e-6; i+ch+x*y,float a,b; (int)(a+b),3.C语言基本语句.ppt,2 C语言语法基础,知识点分析,学好语法基础是掌握后续知识的前提,平均考查分值大约10分,是重点掌握内容,但也不必深究,也不必强记。 重要考点 C程序的构成与格式 数据类型 运算符和表达式。,编程环境,TC VC+,上机调试程序的过程,考点:C语言程序的基本结构,C语言程序由若干个函数构成。函数是C语言程序的基本单位。每个C语言程序必须有且只有一个主函数。 C语言程序总是从main()函数开始执行,并在main()函数中结束。,#include main() int a,b,c,s; a=8;b=12;c=6;/*变量赋值*/ s=a+b*c; printf(“s=%dn”,s); ,考点:C语言程序的基本结构,函数中的语句放在一对花括号内,称为函数体。 函数体中可以有任意多个语句,每个语句必须以分号结束。一行可由一个语句或多个语句组成。,#include main() int a,b,c,s; a=8;b=12;c=6;/*变量赋值*/ s=a+b*c; printf(“s=%dn”,s); ,考点:C语言程序的基本结构,大小写在C中是有区别的。 /*和*/ 中的语句为注释语句不编译执行。,#include main() int a,b,c,s; a=8;b=12;c=6;/*变量赋值*/ s=a+b*c; printf(“s=%dn”,s); ,考点:C语言程序的基本结构,头文件可以认为是C语言提供的库函数的集合,一些同类的库函数放在一起就形成了一个头文件。源程序中,当使用某一库函数时,必须将它所在的头文件以文件包含预处理。,#include main() int a,b,c,s; a=8;b=12;c=6;/*变量赋值*/ s=a+b*c; printf(“s=%dn”,s); ,往年真题,(2006年4月选择第14题)以下叙述中错误的是( ) A)C语言源程序经编译后生成后缀为.obj的目标程序 B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 (2007年9月选择第11题)C语言源程序名的后缀是 A).exe B).C C).obj D).cp,(2006年4月选择第18题)以下四个程序中,完全正确的是 A)#include B)#include main(); main() /*programming*/ /*/ programming /*/ printf(“programming!n“); printf(“programming!n“); C)#include D)include main() main() /*/*programming*/*/ /*programming*/ printf(“programming!n“); printf(“programming!n“);,(2007年4月选择第15题)对于一个正常运行的C程序,以下叙述中正确的是 A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束,考点:数据类型,整型,十进制形式:与数学上的整数表示相同; 例如: 12, -100, 0 八进制形式:在数码前加数字0; 例如: 012=1*81+2*80=10(十进制) 十六进制形式:在数码前加0X。 例如: 0x12=1*161+2*160=18(十进制),* 八进制的数码范围为07; 018 * 十六进制的数码除了数字09外, 还使用英文字母a f (或A F)表示1015。 如:0x1e ,整型,根据数据所占的二进制位数分为: int short long; 同样存储长度的数据又分 unsigned signed; 故可组合出六种类型。,实型,十进制小数形式:3.4 4. .3 指数形式:12.5e-6 表示12.510-6 分类: float double,必须是整型,字符型,用单引号括起来的一个字符;如:A、 1、?等。 用单引号括起来的由反斜杠()引导的转义字符 字符形式 功能 n 换行 t 横向跳格 b 退格 r 回车 反斜杠字符 单引号字符 ddd 8进制数表示的ASCII码对应的字符 xhh 16进制数表示的ASCII码对应的字符,常量,常量:程序运行期间值不改变的量 整型常量: 256,-75,0 (十进制整型常量) 0237,045,0621 (八进制整型常量) 0x28AF,0xED4 (十六进制整型常量) 435L,8350L (长整型常量) 096,48EA,0xK (错误) 实型常量 28.76,2.34E+8 (正确) 6.4E+4.8,E9 (错误),变量,概念:程序运行期间值可以被改变的量 定义:类型名 变量名 int a,b; int a=3,b=4; 注意:变量必须先定义后使用,往年真题,(2006年4月选择第11题)以下不合法的用户标识符是 A)j2_KEY B)Double C)4d D)_8_ (2007年4月选择第13题)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是 A)大写字母 B)连接符 C)数字字符 D)下划线,(2005年4月选择第12题)以下选项中可作为C语言合法常量的是 A)-80. B)-080 C)-8e1.0 D)-80.0e (2006年4月选择第12题)以下不合法的数值常量是 A)011 B)1e1 C)8.0E0.5 D)0xabcd,(2006年4月选择第13题)以下不合法的字符常量是 A)018 B) C) D)xcc (2007年9月选择第16题)以下关于long、int和short类型数据占用内存大小的叙述中正确的是 A)均占4个字节 B)根据数据的大小来决定所占内存的字节数 C)由用户自己定义 D)由C语言编译系统决定,(2007年4月填空第10题)以下程序的输出结果是【】。 # include main() printf(“%dn”,strlen(“IBMn012001”); (2007年9月选择第26题)已知字符A的ASC代码值是65,字符变量c1的值是A,c2的值是D。执行语句printf(“%d,%d“,c1,c2-2);后,输出结果是 A)A,B B)A,68 C)65,66 D)65,68,考点:运算符和表达式,掌握每个运算符的功能 掌握表达式值的求解 优先级 结合性,算术运算符,+(加): 3+4、 +3 -(减): 3-5、 -5 *(乘): 3*5 /(除): 5/2的值为2;5.0/2的值为2.5; %(取余): 5%3的值为2; -5%3的值为-2; 5%(-3)的值为2; -5%(-3)的值为-2; 12.3%3 若a能被b整除,则有:a%b=0 优先级:() *、/、% +、- 结合性:从左至右;,往年真题,(2006年4月选择第14题)表达式3.6-52+1.2+52的值是 A)4.3 B)4.8 C)3.3 D)3.8,赋值运算符,运算符 = 形式 变量名=表达式 求值规则 将“=”右边表达式的值赋给左边的变量 结合性 自右至左 表达式的值被赋值变量的值,被赋值的对象一定是变量,(1) x=4*3 (2) x=x+1 (3) x=y=12/4,往年真题,(2007年9月选择第17题)若变量均已正确定义并赋值,以下合法的C语言赋值语句是 A)x=y=5; B)x=n%2.5; C)x+n=i; D)x=5=4+1;,自增自减运算,+i:先加1后使用i的值(或减1); i+:先使用i的值再增1(或减1); i=3; j=+i; 等价于i=i+1;j=i;(先加后用) 所以i的值为4,j的值为4。 i=3;j=i+; 等价于j=i;i=i+1; (先用后加) 所以i的值为4,j的值为3。 -和+的规则类似,运算对象一定是变量,往年真题,(2005年4月选择第17题)有以下程序,运行后的输出结果是 main() int m=12,n=34; printf(“%d%d“,m+,+n); printf(“%d%d “,n+,+m); A)12353514 B)12353513 C)12343514 D)12343513,关系表达式,运算符:= = != 优先级: (= ) ( = != ) 结合性:自左至右 表达式的值: 若为真,则结果为1; 若为假,则结果为0。,35 的值为 0; 32 的值为 0; 3+(43)*4的值为 3; 3+43*4 的值为 1;,逻辑运算符,运算符:&(与) |(或) !(非) 逻辑量:0假 非0真 优先级: !&| 结合性:自左至右 表达式的值 真(1) 假(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),短路原理,在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。 (1)a = 0; b = 1; c = a+ 结果: a为0,b为0,c为0,d为1。,往年真题,(2007年4月填空第11题)已定义 char ch$; int i=1,j; 执行j=!ch&i+以后,i的值为【11】。,复合赋值运算符,*=、/=、 %=、 +=、 -= 等 复合运算符是一个运算符,但功能上,是两个运算符功能的组合。,a+=b 相当于 a=a+b a*=b 相当于 a=a*b a*=b+c 相当于 a=a*(b+c) 而不是 a=a*b+c,条件运算符,形式: ? : 求值规则,int max,a=5,b=3; max=ab?a:b max及赋值表达式的值均为5; ab?a:b+1 条件表达式的值为4。,往年真题,(2007年9月选择第21题)设有条件表达式:(EXP)?i+;j-,则以下表达式中(EXP)完全等价的是 A)(EXP= =0) B)(EXP!=0) C)(EXP= =1) D)(EXP!=1) If(x!=0) 与if(x)等价,往年真题,(2007年9月填空第7题)以下程序的功能是:输出a、b、c三个变量中的最小值。请填空。 #include main() int a,b,c,t1,t2; scanf(“%d%d%d“, ,逗号表达式,形式 逗号表达式1,逗号表达式2, 求值规则 从左至右依次计算各表达式的值 优先级 最低 结合性 自左至右 表达式的值 最后一个表达式的值,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,往年真题,(2007年4月填空第6题)执行以下程序后的输出结果是【6】。 main() int a=10; a=(3*5,a+4); printf(“a=%dn”,a); ,往年真题,(2005年9月选择第34题)有以下程序 main() char a1=M, a2=m; printf(“%cn“, (a1, a2) ); 以下叙述中正确的是 A)程序输出大写字母M B)程序输出小写字母m C)格式说明符不足,编译出错 D)程序运行时产生出错信息,类型转换,字符型和整型可以相互转换 算术运算时,如果有一个数据是实型的,在数据都自动转换成double类型进行运算 强制类型转换,char ch=a; int i=13; float x=3.65; double y=7.528e-6; i+ch+x*y,float a,b; (int)(a+b),3 C语言基本语句,知识点分析,主要为后续学习打下基础,直接考查并不太多 重要考点 输入输出函数的使用。 格式控制字符,考点:数据输入输出语句及函数,语句的概念 字符输入输出函数 格式化输入输出函数,语句,语句以分号结束 空语句 ; 复合语句 char a1=M, a2=m; printf(“%cn“, (a1, a2) ); 可以理解为一条语句,程序基本结构,顺序结构 选择结构 循环结构,字符输入输出函数,putchar(char) 功能:输出一个字符 举例:putchar(a) putchar(n) putchar(97) getchar() 功能:输入一个字符 举例:ch=getchar(),格式化输出函数,格式:printf(“格式控制字符串”,输出项列表) 功能:按指定格式输出数据 举例:int i=97; printf(“i=%d,%cn”,i,i); 格式控制串中包含 普通字符:原样输出 转义字符:输出特定字符,如n表示换行 格式字符:按照指定的格式输出数据,格式控制字符,格式字符 %d:有符号十进制整数 %u:无符号十进制整数 %o:无符号八进制整数 %x:无符号十六进制整数 %c:一个字符 %s:字符串 %f:小数形式输出,默认6位小数 宽度指示符指示最小输出宽度,不足则补空格,多出则按实际输出。 精度指示符指示最少小数位数,不足则补0,多出则按实际输出。,printf(“%8d”,100); printf(“%3d”,4560); printf(“%8.2f”,3.14159); printf(“%c”,100);,格式化输入函数,格式:scanf(“格式控制字符串”,地址列表) 功能:从键盘输入若干数据给指定的单元 举例:scanf(“%d”, scanf(“%d,%d”,&a,&b) 注意:输入多个数据时,如果指定了分隔字符,则必须使用指定字符分隔;如果没有,可以使用空格、TAB 格式控制串中包含 普通字符:原样输入 格式字符:按照指定的格式输入数据,一定是地址,往年真题,(2009年3月选择第15题)程序段的输出结果是( ) int x=12 ; double y=3.141593; printf(“%d%8.6f”,x,y); A )123.141593 B)12 3.141593 C)12,3.141593 D)123.1415930,(2007年4月选择第19题)有以下程序,其中%u表示按无符号整数输出 main() unsigned int x=0xFFFF; /* x的初值为十六进制数 */ printf(“%un”,x); 程序运行后的输出结果是 A)-1 B)65535 C)32767 D)0XFFFF,(2009年3月选择第23题)有以下程序若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(代表空格,代表回车) #include main() int a1,a2;char c1,c2; scanf(“%d%c%d%c”, A)12a34b B)12a34b C)12,a,34,b D)12a34b,(2008年9月选择第19题)若变量已正确定义为int 型,要通过语句 scanf(%d,%d,%d, 给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(u代表一个空格符) A)uuu1,2,3 B)1u2u3 C)1,uuu2,uuu3 D)1,2,3,(2007年4月选择第16题)设变量均已正确定义,若要通过语句scanf(“%d%c%d%c”, 为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式正确的是(注:代表空格字符) A)10X20Y回车 B)10X20Y回车 C)10X回车 D)10X回车 20Y回车 20Y回车,(2005年9月选择第35题)有以下程序 main() char c1=1,c2=2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); 当运行时输入:a 后,以下叙述正确的是 A)变量c1被赋予字符a,c2被赋予回车符 B)程序将等待用户输入第2个字符 C)变量c1被赋予字符a,c2中仍是原有字符2 D)变量c1被赋予字符a,c2中将无确定值,(2006年4月选择第29题)有以下程序 #include main() char c1,c2,c3,c4,c5,c6; scanf(“cccc“,&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1);putchar(c2); printf(“ccn“,c5,c6); 程序运行后,若从键盘输入12345678 则输出结果是 A)1267 B)1256 C)1278 D)1245,4 C语言程序结构,重要考点: 格式化输出语句 if、switch结构 while、for结构 continue、break语句,基本概念,语句以分号结束 空语句; 复合语句:多条语句,程序基本结构,顺序结构 选择结构 循环结构,字符输入输出函数,putchar(char) 功能:输出一个字符 举例:putchar(a) putchar(n) putchar(97) getchar() 功能:输入一个字符 举例:ch=getchar(),格式化输出函数,格式:printf(“格式控制字符串”,输出项列表) 功能:按指定格式输出数据 举例:int i=97; printf(“i=%d,%cn”,i,i) 格式控制串中包含 普通字符:原样输出 转义字符:输出特定字符,如n表示换行 格式字符:按照指定的格式输出数据,格式控制字符,格式字符 %d:有符号十进制整数 %u:无符号十进制整数 %o:无符号八进制整数 %x:无符号十六进制整数 %c:一个字符 %s:字符串 %f:小数形式输出,默认6位小数 宽度指示符指示最小输出宽度,不足则补空格,多出则按实际输出。 精度指示符指示最少小数位数,不足则补0,多出则按实际输出。,printf(“%8d”,100); printf(“%3d”,4560); printf(“%8.2f”,3.14159); printf(“%c”,100);,格式化输入函数,格式:scanf(“格式控制字符串”,地址列表) 功能:从键盘输入若干数据给指定的单元 举例:scanf(“%d”, scanf(“%d,%d”,&a,&b) 格式控制串中包含 普通字符:原样输入 格式字符:按照指定的格式输入数据,一定是地址,有以下程序段 int a,b,c; a=10; b=50; c=30; if(ab)a=b;b=c;c=a; printf(“a=%d b=%d c=%d n”,a,b,c); 程序的输出结果是 A) a=10 b=50 c=10 B) a=10 b=50 c=30 C) a=10 b=30 c=10 D) a=50 b=30 c=50,有以下程序段 char ch; int k; ch=a; k=12; printf(“%c,%d,“,ch,ch,k); printf(“k=%dn“,k); 已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12,若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d ”,有以下程序 #include main() char c1=1,c2=2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); 当运行时输入:a 后,以下叙述正确的是 A变量c1被赋予字符a,c2被赋予回车符 B程序将等待用户输入第2个字符 C变量c1被赋予字符a,c2中仍是原有字符2 D变量c1被赋予字符a,c2中将无确定值,有以下程序段 int j; float y; char name50; scanf(“% 2d %f%s“, printf(“%d%8.6f”,x,y);的输出结果是 A)123.141593 B)12 3.141593 C)12,3.141593 D)123.141593,34)有以下程序 main() char a1=M, a2=m; printf(“%cn“, (a1, a2) ); 以下叙述中正确的是 A程序输出大写字母M B程序输出小写字母m C格式说明符不足,编译出错 D程序运行时产生出错信息,main( ) int x=102,y=012; printf(“%2d,%2dn”,x,y); 执行后输出结果是() A)10,01 B)002,12 C)102,10 D)02,10 设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf(“i=%d,f=%f“, 为了把100和765.12分别赋给i和f,则正确的输入为 A) 100765.12 B) i=100,f=765.12 C) 100765.12 D) x=100y=765.12,有以下程序 main() int a1,a2;char c1,c2; scanf(“%d%c%d%c”, 若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下 代表空格,代表回车) A)12a34b B)12 a 34 b C)12,a,34,b D)12 a34 b,选择结构,选择结构语句 if switch 主要内容 如何表示条件 如何确定流程走向,if语句,格式1 if(表达式) 语句 功能:首先判断表达式的值,如果为真则执行表达式后面的语句,否则不执行。 流程图,求绝对值 main() int x; scanf(“%d ”, ,可以是任何类型表达式,但都会将其值理解为真或假,if语句,格式2 if(表达式) 语句1 else 语句2 功能:首先判断表达式的值,如果为真则执行表达式语句1,否则执行语句2。 流程图,求较大数 main( ) float a, b; scanf(“%f, %f”, ,if语句嵌套,格式 if(表达式) 语句1 else 语句2,根据性别和身高定身高标准 void main() int tall; char sex; printf( “input sex and tall :” ); scanf( “%c %d”, ,语句中又包含if语句,else和if的配对原则,else总是和前面最近的未经配对的if配对 如果忽略了配对关系,就会产生逻辑错误 为了逻辑清晰,可使用花括号确定对应关系,switch语 句,格式 功能:根据表达式不同的值选择不同的语句执行 举例:,switch(表达式) case 常量1: 语句1; case 常量2: 语句2; case 常量3: 语句3; default: 语句4; ,switch(i) case 1:printf(An); case 2:printf(Bn); case 3:printf(Cn); case 4:printf(Dn); default: printf(En); ,注意: case 常量是一个语句标号(语句的地址),标识入口,而不是表示判断。 若执行某个分支后不再执行其它分支,则应使用break语句,break语句的作用是退出当前结构。,switch(i) case 1:printf(An); break; case 2:printf(Bn); break; case 3:printf(Cn); break; case 4:printf(Dn);break; default: printf(En); ,往年真题,1. int x=1,y=1; If(x=2) y=3;else y=4;执行后,x,y的值分别是( ) A. 1,1 B. 2,3 C. 1,4 D. 2,4 2. 下面程序的运行输出结果是( ) main() int a=1,b=6,c=4,d=2; switch(a+) case 1: c+;d+; case 2: switch(+b) case 7: c+; case 8: d+; case 3: c+;d+;break; case 4:c+;d+; printf(“%d,%dn”,c,d); A. 5,3 B. 7,5 C. 8,6 D. 4,2,往年真题,3. 下面程序的运行是当输入B回车后输出结果是( ) main() char a; scanf(“%c”,往年真题,5. 下列语句错误的是( ) A. if(xy); B. if(x= =y) x+y; C. if(x!=y) scanf(“%d”, A. 输出# B. 输出* C. 有语法错误不能通过编译 D. 可以通过编译但不能通过连接,因而不能运行,往年真题,7. 下列叙述正确的是( ) A. 在switch结构中必须使用break语句 B. break语句是switch语句中的一部分 C. 在switch语句中可根据需要使用或不使用break语句 D. 以上三个结论中有两个结论是正确的 8. C语言规定程序中的else总是与( )配对 A. 编排位置相同的else B. 在其前未配对的if C. 在其前未配对的最近的if D. 同一行上的if,循环结构,循环语句 while do-while for 主要内容 循环条件的表示 程序流程走向 循环次数的确定,while,格式 while (表达式) 循环体语句 功能 通过判断循环控制条件是否满足决定是否继续循环 流程图,while,举例 求1+2+3+100=?,main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(“1+2+3+100=%dn”,sum); ,do- while,格式 do 循环体语句 while (表达式); 功能 通过判断循环控制条件是否满足决定是否继续循环 流程图 与while结构的区别 当初始条件不成立时, while结构一次都不执行循环体, 而do-while结构至少执行一次。,真,假,do-while,举例 求1+2+3+100=?,main() int i,sum=0; i=1; do sum=sum+i; i+; while(i=100); printf(“1+2+3+100=%dn”,sum); ,for,格式 for (表达式1;表达式2;表达式3;) 循环体语句 功能 通过判断循环变量是否处于指定范围决定是否继续循环 流程图 说明 表达式1:初值表达式, 用于初始化循环变量 表达式2:控制表达式, 用于控制循环的条件 表达式3:修改循环变量 三个表达式可视情况缺省,但分号不能省,重点考查内容,for,举例 求1+2+3+100=?,main() int i,sum=0; for(i=1;i=100;i+) sum=sum+i; printf(“1+2+3+100=%dn”,sum); ,continue语 句,功能:提前结束本次循环,即跳过后面尚未执行的循环体语句,继续下一次循环。 举例:显示输入的字符, 如果按的是Esc键, 则退出循环; 如果按的是Enter键, 则不做任何处理,继续输入下一个字符。,main( ) char ch; for (; ;) ch=getch(); /*字符输入函数 */ if (ch=27) break; /* Esc键的ACSII码为27*/ if (ch=13) continue; /*Enter键ACSII码为13 */ putch(ch); /*显示输入的字符*/ ,循环的嵌套,在循环体语句中又有另一个完整的循环结构的形式,称为循环的嵌套。 嵌套在循环体内的循环称语句称为内循环,外面的循环语句称为外循环。 while 、do-while、for三种循环都可以互相嵌套。,往年真题,设x和y均为int型变量,则执行下的循环后,y值为 for(y=1,x=1;y=50;y+) if(x=10)break; if (x%2=1) x+=5; continue; x-=3; A) 2 B) 4 C) 6 D) 8,往年真题,假定a和b为int型变量,则执行以下语句后b的值为 a=1; b=10; do b-=a; a+; while (b-0); A) 9 B) -2 C) -1 D) 8,往年真题,设j为int型变量,则下面for循环语句的执行结果是 for( j=10;j3;j-) if(j%3)j-; -j; -j; printf(“%d “,j); A) 6 3 B) 7 4 C) 6 2 D) 7 3,往年真题,要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是 A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论