C语言1--5章复习题与答案解析.docx
一.选择题1、假设a为int类型,且其值为3,那么执行完表达式a+=a=a*a后,a的值是(A.-3B.9C.-12D.62、假设有定义:inta=8zb=5zc;执行语句c=ab+0.4;后,c的值为(A.1.4B.lC.2.0D.23、有如下程序:voidmain()(inti,sum;for(i=l;i<=3;sum+)sum+=i;printf("%dn"zsum);)该程序的执行结果是(A.6B.3C.死循环DQ4、以下关于表达式的描述中,错误的选项是()oA,常量和变量都是表达式。B.运算符类型对应表达式的类型。C.每一个表达式都有自己的值。D.表达式必须以分耳结尾.5、C语言中,合法的长整型常数是()。A.,t'B."A"C.65D.a6、假设己定义X和y为d。UbIe类型,那么表达式x=l;y=(x+3)A的值是A.1B.2C.2.00000D.2.500007、表达式:10!=9的值是()oA. trueB.非零值C.0D.18、以下程序的输出结果是()。include<stdio.h>voidmain()(printf("%dn",NULL);)A.不确定的B.0C.-lD.19、请选出合法的C语言赋值语句。()A.a=b=58B.i+;C.a=58zb=58D.k=int(a+b);10、假设intb=2;表达式(b>>2)(b>>l)的值是()。A.0B.2C.4D.811、关于语句Printf("helloworldn");,以下描述中错误的选项是A.printf()是格式化输出函数,用于输出信息。B. printf()括号中的内容为函数的参数。C. printf()号中的内容会全部输出到控制台上。D. n表示换行操作。12、以下选项中,哪一项不是C语言中的位运算符A.&B.C.D.13、以下程序的输出结果是()。voidmain()charc=,z,;printf("%c"zc-25);)A.aB.ZC.z-25D.y14、假设要求在if后一对圆括号中表示a不等于O的关系,那么能正确表示这一关系的表达式为().A.a<>OB.!aC.a=OD.a15、以下循环体的执行次数是(voidmain()(itij;for(i=O,j=l;i<=j+l;i+=2,j-)printf("%dn",i);)A.3B.2C.lD.016、以下运算符中优先级最高的是(A.IB.&&C.+D=17、假设有以下定义和语句:charcl=,b,zc2='e'printf(',%d,%cn"zc2-clzc2-,a,+,A,);那么输出结果是()。A.2zMB.3,EC2,ED.输出项与对应的格式控制不一致,输出结果不确定18、假设有以下程序段:intcl=l,c2=2,c3;c3=1.0/c2*cl;那么执行后,c3中的值是()。A.0B.0.5C.lD.219、假设变量a是int类型,并执行了语句:a=W+L6;那么以下描述中,正确的选项是(A.a的值是字符CB.a的值是浮点型C.不允许字符型和浮点型相加D.a的值是字符火的ASCII值加上120、假设有定义:intx,i;那么以下for循环语句:for(i=0,x=0;i<=9&&x!=876;i+)SCanf("%d",&x);以下选项中,描述正确的选项是()A.最多执行10次B.最多执行9次C.是无限循环D.循环体一次也不执行21、假定有以下变量定义:intk=7,x=12;那么能使值为3的表达式是(A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(×%=k)-(k%=5)22、两次运行下面的程序,如果从键盘上分别输入6和4,那么输出结果是(voidmain()(intx;scanf("%d"x);if(x+>5)printf("%d",x);elseprintf("%dn",x-);)A.7和5B.6和3C.7和4D.6和423、假设己定义X和y为double类型,那么表达式:x=l,y=x+M的值是().A.1B.2C.2.0D.2.524、执行下面程序片段的结果是()。intx=23;do(printf("%2d",x-);while(!×);A.打印出321B.打印出23C.不打印任何内容D.陷入死循环25、以下选项中合法的字符常量是(A."B,'B.,010,C.68D.D26、将二进制数OoooIOIl进展>>位运算,将其结果转换为十进制是OoA.101B.lC.llD.527、以下说法中正确的选项是(A.在switch语句中一定要使用break语句B.在switch语句中不一定要使用break语句C. break语句是switch语句的一局部D. break只能用于switch语句中28假设有如下的变量定义:inti=8,k,a,b;UnSignedlOngW=5;doublex=1.42,y=5.2;那么以下符合C语言语法的表达式是()oA.a+=a-=(b=4)*(a=3)B.x%(-3)C.a=a*3=2D.y=float(i)29、假设a为int型变量,那么以下C语言表达中,不能表达数学关系式10<a<15的是A,10<a<15B. a=lla=12a=13a=14C. a>10&&a<15D.!(a<=10)&&!(a>=15)30、表示关系x<=y<=z的C语言表达式为(A.(X<=Y)&&(Y<=Z)B.(X<=Y)AND(Y<=Z)C.(X<=Y<=Z)D.(X<=Y)&(Y<=Z)二.判断题1、C语言属于机器语言,(X)2、C语言中的逻辑值“真”是用1表示的,逻辑值“假是用。表示的。()3、在C语言中转义字符有特殊的含义,它以反斜杠开头,后面接特定的字符。(J)4、机器语言是由二进制数。和1组成的一串指令。(7)5、COntinUe只能用于循环语句。(×)6、C语言中的逻辑值“真”是用1表示的,逻辑值“假是用0表示的。(J)7、将浮点型数据转换为整型数据时,小数点后的数会进展四舍五入。(X)8、字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的双引号0引起来。(X)9、通常将不可改变的数值称为常量。(J)10、变量虽有不同的数据类型,但它们所占内存的大小是一样的。(X)11、位运算符“<<"就是将操作数所有二进制位向左移动一位。运算时,右边的空位补Oo左边移走的局部舍去。(J)12、十进制数10转换为二进制为IOl0。()13、计算机使用特定的整数编码来表示对应的字符,我们通常使用的英文字符编码是ASClI。()14、逻辑运算符用于判断数据的真假,其结果为“真或"假”。()15、十进制转换成二进制可以采用除2取余的方式。()16、变量的值保存在内存单元上,是可以被改变的。()17、十进制和二进制只是针对数字的不同表示方式,无论采用哪种方式表示一个数,它的值都是一样的。()18、位运算符是针对二进制数的每一位进展运算的符号,是专门针对数字0和1进展操作的。()19、SiZeof运算符的功能是获取某一数据或数据类型在内存中所占的字节数。(J)20、两个二进制数进展运算,如果二进制位上只有一个值为1,那么该位的运行结果为Oo(X).填空题1、在C语言中根据运算符进展运算需根据变量的个数可以将运算符分为单目运算符、双目运算符和(三目)运算符。2、定义变量intX=1.20,那么d格式输出X的结果为(13、运算符“|表示或操作,当且仅当运算符两边的表达式结果都为假时,其结果为(假)o4、运算符“&&表示与操作,当且仅当运算符两边的表达式结果都为真时,其结果才为(真),否那么结果为假。5、假设有定义intX=7;那么表达式x=3;的值为(2)。6、计算机语言可分为三大类,即机器语言、汇编语言和(高级语言)。7、在进展取模运算时,运算结果的正负取决(被模数)的符号,与模数的符号无关。8、在进展除法运算时,当除数和被除数都为整数时,得到的结果也是一个(整数9、C语言中的数据类型可分为4种,分别是(基本类型)、构造类型、指针类型、空类型。10、注释有两种类型,分为(单行注释)和多行注释。11、整型变量是用来存储整型数据,1实型)变量用来存储小数类型。12、实型常量也称为浮点数常量,可以分为单精度浮点数和(双精度)两种类型。13、SiZeOf运算符用于获取某一数据或(数据类型)在内存中所占的字节数。14、在C语言中,如果除法运算有浮点数参与运算,得到一个(浮点)型结果。15、C语言的比较运算中,“真”用数字"11)”来表示,"假用数字“(0)来表示。16、在C语言中,常量包括整型常量)、浮点数常量、字符常量等。17、在C语言中,运算符都有一定的结合性,那么赋值运算符的结合性为(左结合)。18、赋值运算符的作用就是将常量、变量或(表达式)的值赋给某一个变量。19、a=10,b=20,那么表达式!a<b的值为。20、在C语言中,(SiZeof)运算符可以求算出数据字节数。21、关系运算符中表示不等于的运算符是"(!=)。22、关系运算符的结果用逻辑值(真)和(假)来表示。23、在C语言的运算符中,(关系)运算符和逻辑运算符是用“真和"假”来表达结果。24、C语言中的基本数据类型分别是整型变量、实型变量、(字符型)、枚举型变量。四.阅读程序,填空。1、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:通过输入成绩,为成绩评等级,90-100为A,8089为B,7079为C,6069为D,60以下为Eo#include<stdio.h>voidmain()(intscore;printf(,Pleaseinputyourscore:");scanf("%d",&score);switch(score/10)(case10:case9:printf("YourlevelisA.r);break;case8:printf(",YourlevelisB.n");break;case7:printf("YourlevelisC.n");break;case6:printf("YourlevelisD.n");break;(defaultprintf("YourlevelisE.n");)2、请阅读下面的程序,在空白处填写正确的代码,该程序的功能是:从键盘上输入一行字符1不多于40个,以回车换行符作为输入完毕标记),将其中的大写字母改为小写字母,其它字符不变,然后逆向输出。voidmain()(chara40;intn=0;do(scanf(%c",&an);if(anl>='A'&&anl<='Z)an+=32;n+;while(an-l!=,n,);n=n-2;while(n>=0)printf("%c"zan-);)3、请阅读下面的程序,在空白处填写正确的代码,该程序