校园网.新视野教育全国计算机等级考试二级C语言教程课后习题解析1新视野教育二级C语言教程课后习题详解(以修订版教材为准)第一章C语言的基础知识第二节熟悉VisualC++1.C语言源程序名的后缀是BA).exeB).cC).objD).cp*C语言源程序的拓展名为.C2.下列叙述中错误的是DA)计算机不能直接执行用C语言编写的源程序B)C程序经C编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以直接运行*后缀为.obj的目标文件不能直接运行3.用C语言编写的代码程序BA)可立即执行B)是一个源程序C)经过编译即可执行D)经过编译解释才能执行第三节标识符1.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是BA)大写字母B)连接符C)数字字符D)下划线*标识符的命名中不能出现连接符2.以下选项中不合法的标识符是CA)printB)FORC)&aD)_00*标识符中不能出现“&”3.以下叙述中错误的是AA)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识*用户自定义标识符不允许使用关键字4.可在C程序中用作用户标识符的一组标识符是AA)andB)DateC)HiD)case_2007y-m-dDr.TomBigl*B答案出现了连接符、C答案出现小数点、D答案出现关键字5.以下不合法的用户标识符是CA)j2_KEYB)DoubleC)4dD)_8_*开头第一个字符不能为数字校园网.新视野教育全国计算机等级考试二级C语言教程课后习题解析26.以下不能定义为用户标识符的是DA)MainB)_0C)_intD)sizeof*sizeof为关键字7.下列选项中,不能用作标识符的是DA)_1234_B)_1_2C)int_2_D)2_int_*开头第一个字符不能为数字8.以下4组用户定义标识符中,全部合法的一组是AA)_mainB)IfC)txtD)intenclude-maxREALk_2sinturbo3COM_001*B答案出现连接符、C答案出现数字开头、D答案出现关键字第五节整数和实数1.以下选项中正确的整型常量是CA)10110BB)0386C)0XffaD)x2a22.以下关于long、int和short类型数据占用内存大小的叙述中正确的是DA)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定3.以下选项中不属于C语言的类型的是DA)signedshortintB)unsignedlongintC)unsignedintD)longshort4.以下选项中合法的实型常数是CA)5E2.0B)E-3C).2E0D)1.3E5.以下选项中,不能作为合法常量的是BA)1.234e04B)1.234e0.4C)1.234e+4D)1.234e06.以下选项中可作为C语言合法常量的是AA)-80.B)-080C)-8e1.0D)-80.0e7.以下符合C语言语法的实型常量是CA)1.2E0.5B)3.14.159EC).5E-3D)E158.以下不合法的数值常量是CA)011B)lelC)8.0E0.5D)0xabcd9.以下选项中,合法的一组C语言数值常量是BA)028B)12.C).177D)0x8A5e-3OXa234c1.510,000校园网.新视野教育全国计算机等级考试二级C语言教程课后习题解析3-0xf4.5e0Oabc3.e510.下列定义变量的语句错误的是DA)int_int;B)doubleint_;C)longFor;D)floatUS$;第六节算术表达式与赋值表达式习题1.表达式3.6-5/2+1.2+5%2的值是DA)4.3B)4.8C)3.3D)3.8*3.6-2+1.2+1=3.82.设有定义:floatx=123.4567;,则执行以下语句后输出的结果是_____。123.460000printf(%f\n,(int)(x*100+0.5)/100.0);*(int)12346.17/100.0=12346/100.0=123.46格式控制为“%f”3.设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式×h计算结果不相符的是BA)(a+b)*h/2B)(1/2)*(a+b)*hC)(a+b)*h*1/2D)h/2*(a+b)*因为1/2=0,故B答案结果不相符第七节自加自减运算符、逗号表达式习题1.设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为______。3*表达式3的值为整个表达式的值2.设有定义:intk=0;,以下选项的4个表达式中与其他3个表达式的值不相同的是AA)k++B)k+=1C)++kD)k+1*执行k++,表达式的值为k自加之前的值03.有以下程序Bmain(){chara1='M',a2='m';printf(%c\n,(a1,a2));}以下叙述中正确的是A)程序输出大写字母MB)程序输出小写字母mC)格式说明符不足,编译出错D)程序运行时产生出错信息*逗号表达式的值为最后一个表达式的值4.有以下程序:Bmain(){inta=0,b=0;a=10;/*给a赋值b=20;给b赋值*/校园网.新视野教育全国计算机等级考试二级C语言教程课后习题解析4printf(a+b=%d\n,a+b);/*输出计算结果*/}程序运行后的结果是A)a+b=30B)a+b=10C)30D)程序出错*本题要注意的是注释部分应该包括:/*给a赋值b=20;给b赋值*/,也就是说“b=20;”也被系统作为注释处理第八节字符1.以下选项中不属于字符常量的是()。BA)'C'B)CC)'0'D)'\072'2.已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是()。BA)kk='A'&&kk='Z'B)!(kk='A'‖kk='Z')C)(kk+32)='a'&&(kk+32)='z'D)kk=65&&kk913.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句printf(%d,%d,c1,c2-2);后,输出结果是()。CA)A,BB)A,68C)65,66D)65,684、以下不合法的字符型常量是BA)'\x13'B)'\018'C)'65'D)'\n'5.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是()。DA)c=c-'Z'+'z'B)c=c+32C)c=c-'A'+'a'D)c='A'+c-'a'第九节位运算1.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是AA)a^bB)a|bC)a&bD)a42.有以下程序#includestdio.hmain(){inta=1,b=2,c=3,x;x=(a^b)&c;printf(%d\n,x);}程序的运行结果是DA)0B)1C)2D)33.有以下程序main()校园网.新视野教育全国计算机等级考试二级C语言教程课后习题解析5{unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf(%d\n,d);}程序运行后的输出结果是BA)3B)4C)5D)64.若变量已正确定义,则以下语句的输出结果是()。Bs=32;s^=32;printf(%d,s);A)-1B)0C)1D)32*两个相同的数进行按位异或,结果为05.设有以下语句inta=1,b=2,c;c=a^(b2);执行后,c的值为DA)6B)7C)8D)9第二章数据输出与输入第二节数据输出1.有以下程序段charch;intk;ch='a';k=12;printf(%c,%d,,ch,ch,k);printf(k=%d\n,k);已知字符a的ASCII十进制代码为97,则执行上述程序段后输出结果是DA)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=122、有以下程序段:main(){intx,y,z;x=y=1;z=x++,y++,++y;printf(“%d,%d,%d\n”,x,y,z);}程序运行后的输出结果是CA)2,3,3B)2,3,2C)2,3,1D)2,2,1*分析过程见教材25页例3校园网.新视野教育全国计算机等级考试二级C语言教程课后习题解析63.有以下程序,其中%u表示按无符号整数输出main(){unsignedshortx=0xFFFF;/*x的初值为十六进制数*/printf(%u\n,x);}程序运行后的输出结果是BA)-1B)65535C)32767D)0XFFFF4.以下叙述中不正确的是AA)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在C语言中,整数可以以十进制、八进制或十六进制的形式输出D)使用putchar函数可以不要输出项5.设有以下程序main(){intc=35;printf(%d,c&c);}程序运行后的输出结果是CA)0B)70C)35D)53*两个相同的数进行按位与时,结果等于本身6.以下程序运行后的输出结果是______________。88main(){intx=0210;printf(%X\n,x);}*将八进制数转为十六进制数输出第三节数据输入1.以下程序运行时若从键盘输入:102030回车。输出结果是____。A#includestdio.hmain(){inti=0,j=0,k=0;scanf(%d%*d%d,&i,&j,&k);printf(%d,%d,%d,i,j,k);}A)10,30,0B)10,20,30C)0,0,0D)程序出错*注意%*d为跳过输入的数据2.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33回车。输出结果是B#includestdio.h校园网.新视野教育全国计算机等级考试二级C语言教程课后习题解析7main(){chara,b;a=getchar();scanf(%d,&b);a=a-‘A’+’0’;b=b*2;printf(%c%c,a,b);}A)程序段有语法错B)1BC)165D)1b*a=a-‘A’+’0’;即a=66-65+48b=b*2;即b=33*2得出结果后找到对应的字符输出3.有以下程序main(){intm=0256,n=256;printf(%o%o\n,m,n);})。A)02560400B)0256256C)256400D)400400*m为八进制数n为十进制数%O指输出八进制数输出是不带前导4.有以下程序main(){inta=666,b=888;printf(%d\n,a,b);}程序运行后的输出结果是()。BA)错误信息B)666C)888D)666,888*%d只与输出列表中的变量a对应,注意区别printf(“%d\n”,(a,b));5.设有以下程序main(){intx=102,y=012;printf(%2d,%d\n,x,y);}执行后输出结果是CA)10,01B)02,12C)102,10D)02,10*%d为输出十进制整数,所以要将八进制转为十进制6.执行以下程序时输入1234567CR,则输出结果是________。1234#includestdio.hmain(){校园网.新视野教育全国计算机等级考试二级C语言教程课后习题解析8inta=1,b;scanf(%2d%2d,&a,&b);printf(