C语言-习题集参考答案全部(89页).doc
《C语言-习题集参考答案全部(89页).doc》由会员分享,可在线阅读,更多相关《C语言-习题集参考答案全部(89页).doc(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-目 录第一章 C语言基础知识 参考答案- 2 -第二章 顺序结构 参考答案- 5 -第三章 选择结构 参考答案- 7 -第四章 循环结构 参考答案- 11 -第五章 函数 参考答案- 15 -第六章 指针 参考答案- 18 -第七章 一维数组 参考答案- 21 -第八章 二维数组 参考答案- 28 -第九章 字符串 参考答案- 31 -第十章 对C语言的深入讨论 参考答案- 33 -第十一章 结构体与共用体 参考答案- 34 -第十二章 文件 参考答案- 35 -第 - 92 - 页-第一章 C语言基础知识 参考答案一,选择题1 C2 D3 A4 C5 A6 D 7 C 分析:C答案以数字开
2、头了 8 D 分析:int 是关键字9 C10 D11 B 12 D 分析:Visual C+6.0中int类型的变量占的字节数为4。13 B分析:B中出现了8,而八进制只能有0到7组成14 D分析:答案D中开头是0不是o15 A16 D17 B18 D分析:3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数19 A20C21A22 C23 D24 C分析:考察的是强制类型转换,正确的是k%(int)f 25B26 C27 C28 B29 A分析:本题目主要考察n+表达式的值是n变化之前的值,然后使n的值增加130 A31 D
3、分析:(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的32 D分析:long 和short不能相互修饰33 A34 C35 B36 B分析:C语言的标识符中只能包含字线、数字和下划线,没有连接符。37 D分析:不同的计算机系统或者编译系统,对3种整数类型所占用的字节数有不同的规定。38 B39 A分析:+运算符有前缀和后缀两种形式,本题中的选项C就是前缀形式,其表达式的值为增1后的值,而选项A为后缀形式,其表达式的值为增1之前的值。而选项B和D的表达式都是k加1之后的值40 D分析:字符常量是用单引号括起来的单
4、个字符,所以选项B错误;此外还有一种特殊的字符专为控制设计,称为转义字符,有三种转义字符:一种是由一个“”开头加一个普通字符组成,代表一个字符。如表示一个单引号字符,所以选项D正确;表示一个斜杠字符,而选项C中的则是错误的;用“”与其后的13位八进制数字构成的字符序列,表示ASCII码等值于该八进制数的字符;用“x”与其后的12位十六进制数字构成的字符序列,表示ASCII码等值于该十六进制数的字符;所以选项A错误。41 B分析:字符常量是用单引号括起来的单个字符,所以选项A正确;此外还有一种特殊的字符专为控制设计,称为转义字符,有三种转义字符:一种是由一个“”开头加一个普通字符组成,代表一个字
5、符。如n表示一个换行符,所以选项D正确;用“”与其后的13位八进制数字构成的字符序列,表示ASCII码等值于该八进制数的字符,所以选项B错误,因为9不是八进制数字;用“x”与其后的12位十六进制数字构成的字符序列,表示ASCII码等值于该十六进制数的字符;所以选项C正确。42 D43 B44 A45 B分析:选项A中字符0的ASCII码值为48,所以A的结果不为1;选项B中0代表空值,空值NULL的ASCII码值为0所以结果为1;选项C中字符1的ASCII码值为49,所以结果不为1;选项D相当于用0-48结果也不为1。46 D如果要表示十六进制字符,则要用x开头,所以选项A错误;如果要表示八进
6、制,则0开头,后面跟13位的八进制数,八进制数由07组成,不包含8,所以选项B错误;用单引号括起来的单个字符才是字符常量,所以C错误;而n是转义字符,用来表示回车符。47 C先将c1 变量中的字符的ASCII码值输出,即为65,将变量c2中字符的ASCII码值减2后输出,即为66。48 A变量c1和c2中的值相同,所以转换成二进制数后,对应的二进制位上的值也相同,当两值相同时,只有进行异或运算,结果才为0,所以c1c2值为0。所以本题的正确答案为A。二,填空题1 位 0 12 关键字 预定义标识符 用户标识符3 84 八 十 十六5 int float double6 5+3.6/2=5+1.
7、8=6.87 15 16 a+表达式的值是a变化之前的值,当然a本身增加了18 把10赋给变量B 9 printf(“*a=%d,b=%d*”,a,b); 10 3整个表达式是一个逗号表达式,变量n和i赋值为2后,通过+i将i的值增加1变为3,然后再通过i+为i增加1,整个逗号表达式的值为i+的值,此时是后缀,所以整个i+表达式的值为3,而变量i的值为2。11、112、3第二章 顺序结构 参考答案一 选择题1.C 解析:结构化程序的算法可以解决任何复杂的问题。2.C 解析:C程序的基本组成单位是函数,在C程序中每行可以写多条语句,每条语句以分号结束,每条语句可以占用几行,在几行内写完。3.C
8、解析:随意使用空语句会导致逻辑上出现错误,不要随便使用。4.D5.D6.B7.A8.C9.B 解析:在printf语句中,格式控制的个数只有一个,即d,而输出项有两项,即a和b。而得到的结果应该只有一个,所以应该输出第一个变量的值,即变量a的值。10.C 解析:m=0256,即m是八进制的数0256,要以八进制无符号的形式输出,即输出256;n=256,即n是十进制的数256,也要以八进制无符号的形式输出,首先要把十进制数转化为八进制数,256转化为八进制为0400,以无符号形式输出,即输出400。11.C 解析:第一个数据的输出控制宽度是2位,但是x的值是102,占3位,要输出的数据宽度大于
9、规定的输出宽度,由于数据时右对齐方式,所以按数据的实际宽度输出,输出102。第二个数据要求以十进制形式输出,输出控制宽度是2,y的值为012,是八进制数,所以要转换成十进制数10后再输出。12.C13.A14.D 解析:float x=-123.456;说明x为单精度浮点数据,单精度浮点数据对应的输出格式应该为%f。15.C16.D.解析:m遵循从右向左结合的原则;m的值为m自增之前的值,所以执行完xm以后,x被赋值为3;表达式xx8/+n中有加号除号,先算8/+n,+n的值为自增之后的值为5,8/5取整为1,即xx8/+n转化为xx1,即把x1的值赋给x,x的值变为2。17.B 解析:输入控
10、制中第一个数要求以“2d”形式输入,即要求输入一个两位的数,而从键盘输入的数为876,所以从左到右取两位数字87,即把87赋值给整型变量a,余下的6再赋值给浮点型变量b,自动进行类型转换,b的值为6.000000,后面输入的543则没有赋值给变量。18.B19.B20.A21.A 解析:从键盘输入数据的格式必须与输入控制要求的格式一样,B答案三个之间不要有空格;C答案用逗号分开是多余的;D答案格式不匹配。22.C23.C 解析:x乘以100是为了把x小数点后的两位小数变为整数,再加上0.5,如果小数点后一位大于等于5则会进一位,如果小数点后一位小于5则不会出现进位的情况,再对其进行强制类型转换
11、,采用舍去法丢掉小数部分,即对x乘上100后的数实现了小数位到整数位的四舍五入。最后再除以100.0,把数字变回原来的大小,整数与浮点数相除结果为浮点数,即实现了要求。24.C25.A26.D 解析:第1个输出语句要求ch以%c(字符)形式输出所以为输出“a”,以%d(整数)形式输出为,字符转换为整型要使用ASCII码所以为“97”,k没有对应的输出符所以没有输出,第2个输出语句要求以整型方式输出k得到“12”。结果为“a,97,k=12”。27.C28.D二填空题1.结构化2.一条语句 分号3.884.115.25 21 376.27.58.099.i=10,j=2010.1611.AB回车
12、12.B 6513.3457914.12315.12第三章 选择结构 参考答案一、选择题1、D 逻辑运算符两侧运算对象可以是任意合法的表达式,应该是两条语句,所以选D。2、A 此题主要是考查C语言中if语句的合法条件表达式描述,在C语言中“不等于”用“!=”描述而不是用“”描述。B、C、D选项都是合法的表达式。3、D if语句的表达式可以是任意合法的表达式4、D 此题主要是考逻辑运算和关系运算的优先级别.只要掌握!、算术运算和&的优先级别便可选对.这几种运算符的具体优先级关系见见教材P188,附录三。5、A 此题主要是考逻辑运算符!、&和|之间的优先级别。!最高,&次之,|最低。先求得!a为0
13、,所以不必计算!b的值,即!a&!b的值为0,由c=0,!c=1,而0|1=1,所以选A。6、答案是BC语言的字符以其ASCII码的形式存在,所以要确定某个字符是大写字母,只要确定它的ASCII码在A和Z之间就可以了,选项A和C符合要求。大写字母的ASCII码值的范围为65到90,所以D选项符合要求,所以只有C是错误的。7、D 此题考到了+运算符以及逻辑运算。当计算机碰到a&b时,先计算表达式a的值,若为真才会计算表达式b的值,否则将不会去计算b的值,因为一旦a=0,则0&b必为0;而a|b则正好是相反的,即先计算表达式a的值,若a为假才会计算表达式b的值,否则将不会去计算b的值,因为一旦a=
14、1,则1|b的值必为1,理解了这两点后,我们在看题目:i+=1的值为1,此时i为2,所以计算&后的表达式,首先计算+j=3的值为1,j的值为3,由上面的原理我们可知,|后面的表达式不用再计算,所以此时i,j,k的值分别为2,3,3。8、C 此题主要是从概念上考if和else的配对问题9、A 此题主要是从实际应用上考if和else的配对问题,a=1,则!a的值是假,程序执行第一个if下的第一个else语句,在判断a=0显然条件为假查看第二个if是否有其配对的else,发现没有,则执行最后一条printf语句输出b的值,因为在整个过程中程序没有对b的值做任何改变,所以答案选择A.10、D 此题主要
15、是考if和else的一般形式。if后面的语句要么是单条语句,要么是由 扩起来的复合语句,不能是if后有两条语句的,所以本题程序在运行的时候会出错。11、C 此题考到了关系运算和逻辑运算及一定数学知识。|x-y|10可等价为-10x-y10,首先选项A表示x-y的绝对值小于10,与题中的数学关系一样;将-10x-ybc的值为0,所以不执行第一条语句;在判断第二个条件,c-1=c表达式的结果为假,所以也不执行其下面的语句,因此执行最后一条语句,将输出d+2的值为4 。17、C 此题主要是考查条件表达式和条件运算符。首先要注意条件表达式的结合方向,它是从右至左的(可参照附录三) 第一个条件表达式的值
16、为a,第二个条件表达式的值为c ,而c=6,所以答案选C 。18、A此题主要是考查if-else语句和条件表达式的转化。只要理解了if-else语句和条件表达式的运算规则的话,就很容易选出A。19、D 此题主要是考查在switch语句中break和default的作用及break的适用范围。详细说明可参看教材第三章 P53对switch的说明部分。20、 B 此题考查的是条件表达式求解问题。先看第一个条件表达式语句,ac为假,所以k=k=2选 B21、C 此题考查逻辑与 & 的运算工作特性,&运算的是从左至右,当左边表达式的值为假时,右边的表达式则不执行,因本题中 k1=k1k2的值为0亦为假
17、,该表达式是一个赋值语句,且此时k1的值为0,因而右边的表达式k2=k2k1不执行,因此K2的值没有做任何改变。值依然是20,所以本题选选B。22、C 此题考查的是真假条件的等价问题。x-y为真表示x-y是非0的,也即x-y0 即选C。23 答案是B满足表达式(c=2&cb为0,程序不执行a=b,但执行c=a 此时c的值是3,在第二条if语句的条件表达式中c!=a条件值为0,则不执行c=b因此最终a、b、c的值为3、5、3,因此选B27 答案是DC语言的字符以其ASCII码的形式存在,所以要确定某个字符是大写字母,只要确定它的ASCII码在A和Z之间就可以了,选项B的书写格式错误,而选项C不符
18、合要求。大写字母的ASCII码值的范围为65到90,所以A选项不符合要求,小写字母的ASCII码比大写字母的ASCII码大32,所以只有D是正确的。28 答案是B,此题考查三目运算符的运算特性。29 答案是B,此题考查switch语句运算过程。30 答案是C,表达式y%3=0的值为1,所以执行下面的输出语句,表达式y的值为8,所以输出结果是8。选择C。31 答案是C,表达式x%3的值为2,非0所以执行下面的输出语句,将x-的值8输出,此时x的值变为7,然后再执行下一个输出语句,将-x的值6输出,x的值也变为6,所以选择C。32 答案是D,这是嵌套形式的switch语句,因为break结构影响较
19、大,而此程序中的第一个case后没有break语句,程序执行时,x=1,执行内嵌的switch语句,因y=0,执行a+,使变量a的值为1并终止内层switch结构,回到外层。程序继续执行case 2后面的语句a+;b+;,这使变量a,b的值分别为2和1,外层switch语句结束。所以此题选择D。33 答案是C,switch语句中开关条件必须是整型、字符型和float类型,此外强制类型转换的格式C选项正确。二、填空题1、答案是:(x%3=0)&(x%7=0)2、答案是: 4分析:程序中是一个ifelse结构。分析时要理清if与else的配对情况。3、答案是:4,5,99分析:题中的重点在于两个i
20、f结构,大家要注意两点:第一,如果if后面没有花括号,则它后面的第一条语句是它的结构体,并且只有一条语句。(如果后面是一个结构,则整个结构都属于if结构的结构体)。第二,变量在不断的被重新赋值,所以其值在不断的变化。4、答案是:yes,分析:该题与第二题是同一回事。5、答案是:1。分析:这个题还上一个ifelse结构,考查点仍然是考察考生是否能够正确识别if后面括号里的表达式p=a!=0,根据运算符的优先级知道,这里应该先算a!=0,这是一个逻辑运算,a的值为5,所以a!=0为真,其逻辑值为1,将1赋值给p,所以条件为真,输出p的值,为1。6、答案是:非零7、答案是:585858。分析:题中有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题集 参考答案 全部 89
限制150内