新视野二级C语言《笔试习题集》参考答案解析.pdf

上传人:奔*** 文档编号:89651569 上传时间:2023-05-08 格式:PDF 页数:58 大小:10.04MB
返回 下载 相关 举报
新视野二级C语言《笔试习题集》参考答案解析.pdf_第1页
第1页 / 共58页
新视野二级C语言《笔试习题集》参考答案解析.pdf_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《新视野二级C语言《笔试习题集》参考答案解析.pdf》由会员分享,可在线阅读,更多相关《新视野二级C语言《笔试习题集》参考答案解析.pdf(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言基础知识一,选择题1答案是A2345注:67891011A 正确B 什可以作为复合语句的标志C m ain函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解答案是AA 错误 用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A 选项错误。这个题目考察用户标识符答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。这个题目考察用户标识符的概念。答案是Bdefine是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,i f 是关键字,而关键字不能是用户标识符,

2、所以if不可以是用户标识符答案是Dlong是关键字,参照附录二6-1 3 考察用户标识符概念答案是DD 答案以数字2 开头了,不符合标识符定义答案是CC 答案以数字开头了答案是Di n t 是关键字答案是B基案A 是关键字,答案C 是以数字开头了,不符合概念,答案D 出现了小数点答案是A答案A 出现了小数点答案是C答案C 以数字开头了1213141516171819202122答案是AB答案中float是关键字,C答案中3 c以数字3开头了,D答案中-5d中-不属于字母,数字,下划线中一种答案是AB答案中-m ax中-错误,C答案中3 c o M以字母3开头了,D答案中in t是关键字,不是用

3、户标识符答案是BA答案中1 5.后面不应该有点,C答案中出现了逗号,D中字母B有问题答案是DVisual C+6.0中int类型的变量占的字节数为4。答案是BB中出现了 8,而八进制只能有0到7组成答案是D答案D中开头是0不是。答案是C答案A中E后面是整数,0.5是小数答案B中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空答案是BB中0.4是小数,不正确答案是CC中0.5是小数,不正确23242

4、52627282930313233答案是D3.6-572+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数答案是D%不能用于实型的计算答案是DD答案中$不属于字母,数字,下划线答案是AA答案是逗号表达式,B答案中*+1=丫是赋值表达式,左边只能是变量,而这里是x+1,同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/l 0答案是A荣题考察的是注释需要注意的地方;具体解答见课本第2页中间部分答案是B答案A中n 2没有定义,答案C中在定义f之前不能使用它,答案D中E后面必须是整数答案是C考察的是强制类

5、型转换,正确的是k%(int)f答案是D本题目类似与第七课时的例一,解题方法是要抓住+m,-n,-m,表达式的值是变量变化之后的值,而n-表达式的值是变量n变化之前的值答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数答案是CA答案中运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误答案是c本题目考察的是课本第15页的关于自加与自减运算符的第一点说3435363738394041424344明,即增量运算符的运算对象只能是变量,而在C 答案中+(i+l)中,i+1是表达式答

6、案是B本题目考察的是整数除以整数结果是整数,在B 答案中1/2结果是0,导致整个表达式的值是0,明显是错误的答案是D对于+、一单目运算符来说,其运算对象可以是char型、int型和float型变量答案是A荣题目主要考察n+表达式的值是n 变化之前的值,然后使n 的值增加1答案是Bc=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因为 c 是 int 型的,所以c 的值是1,做此题目需要仔细阅读题目答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的答案是Dlong和 short不能相互修饰

7、答案是C标识符中不能有$答案是CA 选项中,在变量赋值时不能赋给表达式,而 y*5是表达式;选项B中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D中,%(求余运算符)运算对象只能是整形数。答案是A选项A 中,b 变量还没有定义答案是C选项A 中 long是关键字;选项B 中 符 号 不 属 于 字 母、数字或下划线;选项D 中,int是关键字。答案是B选项A 中,八进制数只能由07 之间的数字组成;选项C,十六进制数应该以0X 开头,并且由09 以及af 组成,Oabc不正确;选项D 中 10,000包含逗号,不正确。45 答案是BC 语言的标识符中只能包含字线、数字和下划线,没有

8、连接符。46 答案是C既然在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似。这样使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,需要先将存储单元中的ASCII码转换成相应字符,然后输出。以整数形式输出时,直接将ASCII码作为整数输出。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算。47 答案是D不同的计算机系统或者编译系统,对 3 种整数类型所占用的字节数有不同的规定。48 答案是A选项B 中求余运算()的运算对象必须是整型;选项C 中,赋值运算符(=)的左边必须是变量,不能是常量

9、或表达式;选项D 与选项 C 同理。49 答案是A+运算符有前缀和后缀两种形式,本题中的选项C 就是前缀形式,其表达式的值为增1后的值,而选项A 为后缀形式,其表达式的值为增1之前的值。而选项B 和 D 的表达式都是k 加 1之后的值50 答案是A51 答案是C选项A 中将一个变量j 的值赋给了一个表达式,这种写法是错误的,只能给变量赋值,而不能给常量和表达式赋值;选项B 中强制类型转换的格式使用出错,强制类型转换时,类型标识符必须用括号括起来;选项D 中,求余运算符()的两端必须是整形数。52 答案是D争符常量是用单引号括起来的单个字符,所以选项B 错误;此外还有一种特殊的字符专为控制设计,

10、称为转义字符,有三种转义字符:一种是由一个“”开头加一个普通字符组成,代表一个字符。如 表示一个单引号字符,所以选项D 正确;表示一个斜杠字符,而选项C 中的 则是错误的;用“”与其后的13 位八进制数字构成的字符序列,表示ASCII码等值于该八进制数的字符;用“x”与其后的12 位十六进制数字构成的字符序列,表示ASCII码等值于该十六进制数的字符;所以选项A 错误。53 答案是B字符常量是用单引号括起来的单个字符,所以选项A 正确;此外还有一种特殊的字符专为控制设计,称为转义字符,有三种转义字符:一种是由一个“”开头加一个普通字符组成,代表一个字符。如 n 表示一个换行符,所以选项D 正确

11、;用“”与其后的13 位八进制数字构成的字符序列,表示ASCII码等值于该八进制数的字符,所以选项B 错误,因为9 不是八进制数字;用“x”与其后的12位十六进制数字构成的字符序列,表示ASCII码等值于该十六进制数的字符;所以选项C 正确。54 答案是D大写字母的ASCII码值比小写字母的ASCII码值小3255 答案是A 项 A 中的字符变量ch只能接收单个字符,a b 不是单个字符,所以错误。56 答案是Bchar x=C 将一个大写字母赋给了字符型变量x;然后通过x=x+32将 x 中字符的ASCII码值加3 2,即为小写字符c 的ASCII码值;然后将x 以字符形式输出,即为小写字母

12、c。57 答案是A语句charx,y;定义两个字符型变量x,y;然后通过x=B-A+a 将用大写字母B 的ASCII码送去大写字母A 的ASCII码,结果便为1,然后再加上小写字每a 的ASCH码,结果就为小写字母b的ASCII码,然后再赋值给变量x;通过y=x+2,将变量x 中的ASCII码值加2,即变成小写字母d 的 ASCII码值再赋值给变量y;然后以数值形式输出变量x 中的ASCII码值为9 8,再以字符形式输出变量y 中的字符为d。58 答案是B选项A 中字符 0 的 ASCII码值为4 8,所以A 的结果不为1;选项 B 中 0 代表空值,空值NULL的ASCII码值为0 所以结果

13、为1;选项C 中字符 1 的ASCII码值为4 9,所以结果不为1;选项D 相当于用0-48结果也不为lo59 答案是D如果要表示十六进制字符,则要用x,开头,所以选项A 错误;如果要表示八进制,则 0 开头,后面跟13 位的八进制数,八进制数由07 组成,不包含8,所以选项B 错误;用单引号括起来的单个字符才是字符常量,所 以 C 错误;而 n 是转义字符,用来表示回车符。6 0 答案是B用单引号括起来的单个字符,称为字符常量,所以选项B错误。6 1 答案是C先将c l 变量中的字符的A S C I I 码值输出,即为6 5,将变量c 2 中字符的A S C H 码值减2 后输出,即为6 6

14、。6 2 答案是A我们知道异或运算,只有两个操作数不同,结果才为lo所以1 1 =1,1 7=0,由此可推理,任何数与1 进行异或运算都得它的相反数;变量 b中的高4位为1,所以要让变量a 的高4 位取反,即可让变量a和变量b 进行异或运算。6 3 答案是A变量c l和 c 2 中的值相同,所以转换成二进制数后,对应的二进制位上的值也相同,当两值相同时,只有进行异或运算,结果才为0,所以c c 2 值为0。所以本题的正确答案为A。6 4 答案是A4 1 3 转换成对应的二进制数即1 0 0 1 0 1 1=1 1 1 再转换为十进制数即为7;而4&3 转换成对应的二进制数即1 0 0&0 1

15、1=0 0 0,再转换为十进制数即为0;所以选择A。6 5 答案是Dx/y的值为1,z 的值也为1,1 和 1 求反进行与运算,结果一定为0。所以本题选择D。6 6 答案是D2+x=0 0 0 0 0 0 1 0+1 0 1 0 0 1 1 1=1 0 1 0 1 0 0 1 ;3=0 0 0 0 0 0 1 1=1 1 1 1 1 1 0 0;所以就相当于 1 0 1 0 1 0 0 1 7 1 1 1 1 1 0 0=0 1 0 1 0 1 0 1,所以选择 D。6 7 答案是Da=0 x 3 转换为二进制数即为0 0 0 0 0 0 1 1;b=a l0 x 8 转换为二进制数即为0 0

16、 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0=0 0 0 0 1 0 1 1 即 b=ll,b l 即0 0 0 0 1 0 1 1 1=0 0 0 1 0 1 1 0 即 c=2 2,所以本题选择 D。二,填空题1 位 0 12 关键字预定义标识符 用户标识符3 84 八 十 十六5 i nt f loa t d ou b le6 54-3.6/2=5+1.8=6.87 15 16 a+表达式的值是a 变化之前的值,当然a 本身增加了 18 把 10赋给变量B9 123.46(int)(x*100+0.5)/100.0=(int)(12345.67+0.5)/100.0=(i

17、nt)(12346.17)/100.0=12346/100.0=123.46o10 3整个表达式是一个逗号表达式,变量n 和 i 赋值为2 后,通过+i将i 的值增加1变为3,然后再通过i+为i 增加1,整个逗号表达式的值为i+的值,此时是后缀,所以整个i+表达式的值为3,而变量i的值为2。11 11110111第 11题没有详细解析而且答案出错:xAyl=00000010A00000101l=l 1111101A00001010=l 111011112 2只有 和 b 是正确的13 2 20.000000 x=f*=n/=(c=50)是一个赋值表达式,它的顺序是从右向左赋值,先执行 c=50

18、,然后执行n/=50即 n=n/50=100/50=2,接着执行f*=2即f=f*2=10*2=20.000000,最后再将值赋给变量X。输出变量n 和x 的值,即为 2 20.000000。14 a=14表达式a=(3*5,a+4)的括号中是一个逗号表达式,其结果是最后一个表达式的值,即将a+4=14的值赋给变量a。所以输出结果为a=14。第二章顺序结构一 选择题1,答案是C随意使用空语句会导致逻辑上出现错误,不要随便使用。2,答案是B语句必须以分号结尾,A,C,D 表达式后面均没有分号。3,答案是Cin t x=1 3,y=4;说明x,y 均为整型,所以x/y 只取整数部分(舍去法),值为

19、3,把 3 赋值给x,整个x=x/y 表达式的值为左边变量x的值,所以输出为 3。4,答案是Aa,b 均为整型,a/b 是取a+b 所得商的整数部分,所以是0,再把0赋值给 c,所以是c的值是0。5,答案是DA 注释语句可以放在代码的任何位置B 将 r 定义为整型不会在编译时出错,会自动进行类型转换C 变量s 为浮点型,格式描述符f 时正确的D 五是非法的变量6,答案是D(x,y)是逗号表达式,它的值只有一个,所以格式说明符的个数和输出项的个数是相等的。并且逗号表达式的值为最后一个表达式的值,最后一个表达式是y=2 0 0 3,所以整个表达式的值是2 0 0 3,因此输出值为2 0 0 3。7

20、,答案是Am 是十进制整数以十进制有符号的形式输出,即照原样输3 2 76 7,n=0 3 2 76 7,0 3 2 76 7是八进制的整数以八进制无符号形式输出,去掉前面的0。见教材P 3 48,答案是Cm,n的值都是十六进制数O x a b c,m-=n 即是m=m-n,把m-n 的值赋给m,即把0 赋给m,再把m 值以十六进制无符号的形式输出,输出的十六进制数不用在前面O x 或者0 X。见教材P 3 59,答案是B表达式i一一的值是在变量自减之前的值,i 的初值为1 0,所以该表达式的值也为1 0;表达式j+的值是变量自加之后的值,j 初值为1,所以该表达式在值是2。10,答案是Cm=

21、0 2 5 6,即m 是八进制的数0 2 5 6,要以八进制无符号的形式输出,即输出2 5 6;n=2 5 6,即n是十进制的数2 5 6,也要以八进制无符号的形式输出,首先要把十进制数转化为八进制数,2 5 6 转化为八进制为0 40 0,以无符号形式输出,即输出40 0。1 b 答案是B在 prin t f 语句中,格式控制的个数只有一个,即d,而输出项有两项,即a 和 b。而得到的结果应该只有一个,所以应该输出第一个变量的值,即变量a的值。1 2,答案是C家一个数据的输出控制宽度是2 位,但是x的值是1 0 2,占3位,要输出的数据宽度大于规定的输出宽度,所以按数据的实际宽度输出,输出1

22、 0 2。第二个数据要求以十进制形式输出,输出控制宽度是2,y的值为0 1 2,是八进制数,所以要转换成十进制数1 0 后再输出。13,答案是B表达式a=f/=c*=(x=6.5),按从右到左结合,先把6.5赋值给x,再执行c=c*6.5,c的值变为6 5,再 执 行 f =f/6 5,为浮点数的除法,f的值为1.5 3,再把f的值赋给a,a为整型数据,执行强制类型转换,a的值为 l o a对应的输出格式为d,即输出1;c对应的输出格式为d,输出6 5,f 对应的输出格式3.I f,即输出控制宽度为3 位,保留小数点后一位小数,即输出L5,x 对应的输出格式也为3.I f,输出6.5。1 4,

23、答案是Df l o a t x=-1 2 3.45 6;说明x为单精度浮点数据,单精度浮点数据对应的输出格式应该为%f。15,答案是Cm=(k+=i*=k);按从右到左结合,先执行i=i*k;即 i 被赋值为4,再执行k=k+4;k 被赋值为6,最后把6 赋给m,输出m 和 i 的值。1 6,答案是C略(参 考 1 2 题)17,答案是Dm+遵循从右向左结合的原则;U 1+的值为m 自增之前的值,所以执行完x =-m+以后,x被赋值为一3;表达式x=x+8/+n 中有加号除号,先算8/+n,+n 的值为自增之后的值为5,8/5 取整为1,即 x =x +8/+n转化为x=x+l,即把x+1 的

24、值赋给x,x的值变为一2。18,答案是DA输入函数应为s c a n f ();B,C输入数据列表必须是地址表达式;19,答案是A从键盘输入数据的格式必须与输入控制要求的格式一样B 答案三个之间不要有空格;C 答案用逗号分开是多余的;D 答案格式不匹配。2 0,答案是A格式控制要求输入的两个数据之间要用逗号隔开,A 没有逗号所以错误,D两个输入数之间的回车换行可以忽略。2 1,答案是Cx 乘以1 0 0 是为了把x小数点后的两位小数变为整数,再加上0.5,如果小数点后一位大于等于5则会进一位,如果小数点后一位小于5则不会出现进位的情况,再对其进行强制类型转换,采用舍去法丢掉小数部分,即对x 乘

25、上1 0 0 后的数实现了小数位到整数位的四舍五入。最后再除以1 0 0.0,把数字变回原来的大小,整数与浮点数相除结果为浮点数,即实现了要求。22,答案是C从键盘输入数据的格式必须与输入控制要求的格式一样。23,答案是B输入控制中第一个数要求以“2d”形式输入,即要求输入一个两位的数,而从键盘输入的数为8 7 6,所以从左到右取两位数字8 7,即把8 7 赋值给整型变量a,余下的6再赋值给浮点型变量b,自动进行类型转换,b的值为6.0 0 0 0 0 0,后面输入的5 4 3则没有赋值给变量。24,答案是D“%”会输出一个“”,“d”会照原样输出,因为没有格式说明,m,n无法输出到屏幕。25

26、,答案是D第 1 个输出语句要求c h 以9 6 c (字符)形式输出所以为输出“a”,以9 6 d (整数)形式输出为,字符转换为整型要使用A S CI I 码所以为“9 7”,k没有对应的输出符所以没有输出,第 2 个输出语句要求以整型方式输出k 得到“1 2”。结果为“a,9 7,k=1 2”26,答案是Ba+b 的结果为30,按照“a+b=%d n”的输出格式得到输出结果“a+b=30”B27,答案是Bp r i n t f 可以没有输出项,没有输出项的p r i n t f 只是没有输出内容;整数不能以十二进制输出,g e t c h a r ()只能读入字符。28,答案是Ag e

27、t c h a r ()可以读入空格符合回车符。二 填 空 题1,一条语句 分号2,8 8首先将八进制数0 21 0 转化为十六进制的数0 X 8 8,输出格式说明要以十六进制无符号的形式输出,所以省略0 X,直接输出8 8。3,1 1把十进制数转化为八进制数,以无符号的形式输出4,25 21 37b 为八进制数0 25,c为十六进制数0 X 25,首先把b、c 都转化为十进制的整数,分别为21、37,按照输出格式要求a、b、c以十进制整数形式输出,中间以空格分开,所以输出为25 21 3705,n l=%d n n 2=%d除了 n l,n 2的值之外,还必须加入“n l =”“n 2=”照

28、原样输出的字符,很明显在两个数据之间还加了换行符。6,i=1 0,j=20 回车格式控制中加入了格式说明以外的其他字符,则在输入数据时这些字符也要同样输入。输入格式控制为i=%d,j=%d,所以则应该从键盘输入i=1 0,j=207,26 1a为十进制数1 7 7 转化为八进制的数为0 26 1,以无符号的形式输出为26 18,1 6a的初值为0,在表达式a+=(a=8)中,a首先被赋值为8,再执行操作a=a+a,所以a 最后被赋值为1 6,即输出a的值为1 69,p r i n t f (r ta=%d,b=%d,?,a,b);1 0,B 6 6B 在 A S CI I 码中派在A的后面A为

29、6 5,那么B为6 6。1 1,1 00 1 2为八进制数,转换为十进制为1 0。1 2,1 2 34在 s c a n f 函数中指定了宽度为2,输入1 234 5 6,a=1 2,b=34,后面的5 6 7无效。1 3,1 2程 序 运 行 时 输 入 1 2,g e t c h a r ()函数只能接受单个字符,所以c h l=r ,c h 2=,2 on l=c h l-,0,转化为 A S CI I 码计算 n 1=5 0-4 9,n l 的值为 l0 n 2=n l*1 0+(c h 2-O )转化为 A S CH 码计算 n 2=1*1 0+(5 1-4 9),n 2 的值为 1

30、 2。第三章选择结构一、选择题1、D此题主要是考语句的特征。一条语句只包含一个分号,D项有两个分号,应该是两条语句,所以选D。2、C此题主要是考真假条件的等价。题目中的E为非0 时条件为真,为 0 时为假。那么把非0 和 0 带到选项中可知,C 项正好是E为0 时表达式为真,非 0时为假,所以选C。3、D任意合法的表达式都可以作为逻辑运算符的运算对象4、D此题主要是考逻辑运算和关系运算的优先级别.只要掌握!、算术运算和&的优先级别便可选对.这儿种运算符的具体优先级关系见见教材P 1 8 8,附录5、A此题主要是考逻辑运算符!、&和|之间的优先级别。!最高,&次之,I|最低。先求得!a为 0,所

31、以不必计算!b的值,即!a&!b 的值为0,由c=0,!c=l,而 0|1 1=1,所以选A o6、A此题主要是考了逻辑、关系和算术运算,熟练掌握逻辑运算、关系运算和算术运算的优先级别后,就不难了。A选项中!a为 0,所以!a=l 为假,那么就不用计算&后面的表达式了,因为0 与任何数均为假;B项中先计算出a b 为假,则(a b)&!c也为假,而 0|1=1;C项中a 和 b 均为真,所以a&b的值为1;D 项中先计算出(b+b)&(c-a)=l,又 a=2,2|l=l 所以选A。7、D此题考到了+运算符以及逻辑运算。当计算机碰到a&b 时,先计算表达式a的值,若为真才会计算表达式b的值,否

32、则将不会去计算b的值,因为一旦 a=0,则0&b 必为0;而 a|b 则正好是相反的,即先计算表达式a的值,若 a为假才会计算表达式b的值,否则将不会去计算b的值,因为一旦a=l,则 l|b 的值必为1,理解了这两点后,我们在看题目:i+=l 的值为1,此时 i 为2,所以计算&后的表达式,首先计算+j=3 的值为1,j 的值为3,由上面的原理我们可知,U后面的表达式不用再计算,所以此时i,j,k的值分别为2,3,308、D此题和题2非常的相似,也是考真假条件的转换,其中D项中只有k为 0时,!k%2=l 才成立,显然和A、B、C 三项不同。9、C此题主要是考if 和 e l s e 的配对问

33、题。见教材P 5 1。1 0、D此题主要是考if 和 e l s e 的-一 般形式。if 后面的语句要么是单条语句,要么是由 扩起来的复合语句,不能是if 后有两条语句的,所以本题程序在运行的时候会出错。1 1、C此题考到了关系运算和逻辑运算及一定数学知识。|x-y|1 0可等价为-1 0 x-y 1 0,首先选项A 表示x-y的绝对值小于1 0,与题中的数学关系一样;将-1 0 x-y a 为真,所以(n=b a)为 1,那么将不会去计算m=a b的值,k 被并赋值1,所以m依然为0。1 5、C此题主要是考查if-e l s e-if 和 if 语句。具体分析见教材第4 9 页例7。1 6

34、、C此题主要是考查if-e l s e-if 以及关系表达式的运算。首先判断第一个条件 a b c的值为0,所以不执行第一条语句;在判断第二个条件,c T=c表达式的结果为假,所以也不执行其下面的语句,因此执行最后一条语句,将输出d+2的值为4 o17、C此题主要是考查条件表达式和条件运算符。首先要注意条件表达式的结合方向,它是从右至左的(可参照附录三)第一个条件表达式的值为a,第二个条件表达式的值为c ,而 c=6,所以答案选CO18、A 此题主要是考查i f-e l se 语句和条件表达式的转化。只要理解了 i f-e l se语句和条件表达式的运算规则的话,就很容易选出A19 D此题主要

35、是考查在swi tc h 语句中b re ak 和 d e f au l t的作用及b re ak 的适用范围。详细说明可参看教材第三章P 5 3 对 swi tc h 的说明部分。20、B此题考查的是条件表达式求解问题。先看第一个条件表达式语句,a b 为真,所以k=b=2;再看第二个条件表达式语句,k c 为假,所以k=k=2选 B21、A此题考查的是条件表达式的求解顺序。参照附录三可知,它的结合方向是自右至左,所以先求得右边一个条件表达式的值为2,再求得左边一个的值为1,即选A22 C此题考查的是真假条件的等价问题。x-y为真表示x-y是非0 的,也即x-y 0即选C2 3 答案是BC

36、语言的字符以其A SC I I 码的形式存在,所以要确定某个字符是大写字母,只要确定它的A SC H 码在 A 和 Z 之间就可以了,选项A 和 C符合要求。大写字母的A SC H 码值的范围为6 5 到 9 0,所以D 选项符合要求,所以只有C 是错误的。2 4 答案是B满足表达式(c =2&c =6)的整型变量c的值是2,3,4,5,6。当变量c的值不为2,4,6 时,其值只能为3 或 5,所以表达式c!=3 和 c!=5 中至少有一个为真,即不论c 为何值,B选项中的表达式的值都为真,所以B选项正确。2 5 答案是A条件x=O l l x=l为真,所以执行y=l,然后执行y=x*x-(x

37、-2)*(x-2)=l-(-l)*(-l)=l-l=0,所以选择 A。2 6答案是B当表达式E X P为非0值时条件成立,即执行语句i+;当E X P等于0时执行语句j 这就等同于条件表达式“(E X P!=0)?i+:j 所以本题选择B o2 7答案是DC语言的字符以其A SC I I码的形式存在,所以要确定某个字符是大写字母,只要确定它的A S C H码在A和 Z 之间就可以了,选项B的书写格式错误,而选项C不符合要求。大写字母的A S C H码值的范围为6 5到9 0,所以A选项不符合要求,小写字母的A S C H码比大写字母的A S C H码大3 2,所以只有D是正确的。2 8答案是D

38、奇数和2求余一定不为0,所以当x为奇数时,x%2=0是不成立的,值为0,此题选择D o2 9答案是B两个i f语句的判断条件都不满足,程序只执行了 c=a这条语句,所以变量c的值等于3,变量b的值没有变化,程序输出的结果是3,5,3o所以本题选择B o30答案是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这是嵌套形式的swi tc h语句,因为b re ak结构影

39、响较大,而此程序中的第一个c ase后没有b re ak语句,程序执行时,x=l,执行内嵌的swi tc h语句,因y=0,执行a+,使变量a的值为1并终止内层swi tc h结构,回到外层。程序继续执行c ase 2后面的语句a+;b+;,这使变量a,b的值分别为2和1,外层swi tc h语句结束。所以此题选择D。33答案是Db re ak与c on ti n u e语句都可用于swi tc h语句中。选择D。二、填空题1、答案是:1 0 2 0 0分析:多数同学得到的答案是1 0 2 0 1,显然是没有弄清楚第三条赋值语句:c=(a 灿 1)|1 6/13 1).这是将后面一个逻辑表达式

40、的值给(;,那么关于逻辑表达式的考题,无非就是考察运算符的优先级,也就是说先算哪个,后算哪个的问题。在这个题里面,先计算第一个圆括号里面的内容,a 炖的值是1 0,所 以 1 0 1 为假。在逻辑或运算的时候,两个运算对象都为假,则结果为假。所以c的值为0.答案是:1 0 2 0 02、答案是:1分析:程序中是一个i f e l s e 结构。这个题最容易出错的地方在于i f 的条件,注意,里面的是c=a 是一个赋值表达式,不是将c与 a的值进行比较。所以条件为真,输出赋值以后c的值,为 1。3、答案是:4,5,9 9分析:题中的重点在于两个i f 结构,大家要注意两点:第一,如果i f 后面

41、没有花括号,则它后面的第一条语句是它的结构体,并且只有一条语句。(如果后面是一个结构,则整个结构都属于i f 结构的结构体)。第二,变量在不断的被重新赋值,所以其值在不断的变化。4、答案是:y e s分析:该题与第二题是同一回事。5、答案是:1分析:这个题还上一个i f e l s e 结构,考查点仍然是考察考生是否能够正确识别i f 后面括号里的表达式p=a!=0,根据运算符的优先级知道,这里应该先算 a!=0,这是一个逻辑运算,a的值为5,所以a!=0 为真,其逻辑值为1,将 1 赋值给P,所以条件为真,输出P的值,为 1。6、答案是:2 0,0分析:见第3 题分析。7、答案是:5 8 5

42、 8 5 8分析:题中有三个i f 结构,注意,这三个i f 结构是相互独立的,是互不相关的,只要他们的条件成立,就要执行其结构体(后面的输出语句)。通过键盘输入,得 a的值为5 8,所以a 5 0 为真,输出5 8;然后判断a 4 0,仍然为真,再输出5 8,最后判断a 3 0,肯定为真,所以再输出5 8,连续三次输出5 8 o8、答案是:0分析:本题的关键在于关系运算符的运算次序,a=5,b=4,c=3.a b c看起来是真的,但是这这是数学里面是这样的,这里我们要一步步的计算,先算a b,a 确实大于b,所以为真,逻辑值为1,后面的计算就变成了 l c,显然为假,逻辑值为0,并将它赋值给

43、d,所以最后输出d的值为0。9、答案是:3分析:这个题主要考察条件运算符。程序要输出(P/3 0?p/1 0:p%3)这个条件表达式的值。P为 3 0,所以p/3=1 0,1 0 0 显然为真,所以整个表达式的值应该是p/1 0 的值,p/1 0 得 3。1 0、答案是:2 1分析:题中是一个s w i t c h 嵌套结构。里面的s w i t c h 是 c a s e 1 的语句,题的关键点在于这个语句(即里面的这个s w i t c h 结构)的后面并没有跳出整个结构的b re a k 语句。所以,当x=l,与 c a s e 相配以后,执行完后面的语句(即里面的这个s w i t c

44、 h 结构),然后没有遇到b re a k 语句,所以并不跳出结构体,而是继续执行c a s e 2 后面的语句。所以最后得到的结果应该是2 1,而不是1 0 o1 1、答案是:0字符空格的A S C I I 码不为0,所以本题中表达式!c的值为0,b=0&l 的结果显然为0。1 2、答案是:1执 行“j=!c h&i+”时,首先判断j=!c h 的值,因为c h=$不为0,所以j=!ch=O,编译便不再计算表达式i+的值,i 的值不变仍为1。1 3、答案是:-4表达式!n的值为1,所以执行x-=l后x=l;表达式m的值为非0值,所以执行其后的语句x-=2后x的值为-1,表达式x的值也为非0,

45、所以执行其后的语句后x的值为-4,最后输出x的值即为4。1 4、答案是:#&表达式c=5 的值为真,所以表达式的值等于1,因此输出符号“#”,然后执行“b r e a k”,继而去执行“d e f a u l t:p r i n t f (&”);”语句,输出符号1 5、答案是:1因为在条件表达式(a b)a:b 中,比较表达式a b 为真,所以x的值为a的值等于1。后面两个条件表达式中的比较表达式都真,所以最终x的值等于 1。1 6、答案是:a:b c:t l条件表达式类似于i f 语句,根据“?”前面子表达式的逻辑值来判断应该计 算“:”前面的子表达式还是后面的作为整个条件表达式的结果。题

46、目要求输出a、b、c3 个变量中的最小值,所以当a 7 为真,执行循环体,n的值减1 后为9,输出n的值9 N 的值为9,n 7 为真,执行循环体,n的值减1 后为8,输出n的值8 N 的值为8,n 7 为真,执行循环体,n的值减1 后为7,输出n的值7 N 的值为7,n 7 为假,结束循环。2.答案:Ak 的值为5,进入循环,(一k)表达式的值为4 (真),同时k的值改变为4,输出表达式k-=3 的值1,同时k的值为1。k为 1,表达式(一k)的值为0,结束循环。3 .答案:A1.X=0,y=5,z=3,(z 0&x 0&x 0&x 0&x 3-5-7-9,语句s+=l 每次执行使s 增加的

47、数为:2,4,6,8,1 0,所以s的值为自然数P 1 0 中偶数的值。1 0 .答案:C分析:C 项 s=s+l/n,1/n 首先运算,n 为整型变量,1 也是整型变量,当n=21 0时,1/n 的值为整数0,故C 不正确1 1 .答案:A执行第一次循环时,2=7 4=4,2!4 为真继续循环。第二次循环a =3,b=l,2!1 为真继续循环。第三次循环a =2,b =1,2!=1)为真继续循环。第四次循环 a =1,b=l,2!不为假退出循环。1 2.答案:C1 3 .答案:C分析:x的值为1 50执行w h i l e 循环,(x 1 0)为真,执行循环体。执行x+;x的值为1 6。再执

48、行i f 语句。(x/3)为真,执行x+,x的值为1 7,再执行b r e a k;语句,退出循环体,结束w h i l e 语句的执行。最后输出x的值1 7。1 4 .答案:D在循环中当x等于0,3,6,9 时x%3 等于0,这时会进入i f 语句执行p r i n t f语句,在输出前x 会先自加。屏幕上输出1 4 7 1 0。1 5 .答案:D分析:co n t i n u e 语句会提前结束此次循环体的执行,不会结束整个f o r 语句的执行。1 6 .答案:23 4 5选择中没有此答案。解析:本题注意的是在循环第一次进入s w i t ch 语句的时候是执行的d e f a u l

49、t后面的语句块,由于没有b r e a k,所以还会执行ca s e 2:ca s e 4:后面的语句。1 7 .答案:A本题答案为A解析:A首先执行+n,判断条件表达式n =0 为假退出循环。B条件表达式1永远为真是无限循环,C 条件表达式n的值为1 0 永远为真是无限循环,D 没有条件表达式,所以没有退出条件,是无限循环。此题要注意的是0为假,非 0 为真。1 8 .答案:Ad o-w h i l e 循环先执行后判断,先执行循环体中的p r i n t f 语句输出n的值0,在 w h i l e(i+)中 i 先执行再自加,所以w h i l e(i+)的等于w h i l e(0)为

50、假退出循环。输出结果为“0,0”。1 9.答案:D分析:第一次循环x=8,x%3 0,进入i f 语句输出x的值为8,然后x自减1,执行co n t i n u e 立即进行下次循环条件判断。第二次循环x=6,x%3=0,不进入i f 语句,执行i f 语句后面的p r i n t f (%d,”,一X),x 先自减1 再输出得到5。第三次循环x=4,x%3 0,进入i f 语句输出x的值为4,然后x自减1,执行co n t i n u e 立即进行下次循环条件判断。第四次循环x=2,x%3 0,进入i f 语句,输出x的值为2,然后x自减1,执行co n t i n u e 立即进行下次循环

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁