校园网新视野教育全国计算机等级考试二级C语言笔试习.pdf
第一章 C语言基础知识一,选择题12345注:67891011答案是AA 正确B 可以作为复合语句的标志C m ain函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解答案是AA 错误 用户标识符:命名时、标识符的选择由用户自定,但是不能与关键字相同,所 以 A 选项错误。这个题目考察用户标识符答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。这个题目考察用户标识符的概念。答案是Bdefine是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,i f 是关键字,而关键字不能是用户标识符,所 以 if不可以是用户标识符答案是Dlo n g 是关键字,参照附录二6-1 3 考察用户标识符概念答案是DD 答案以数字2 开头了,不符合标识符定义答案是CC 答案以数字开头了答案是Di n t 是关键字答案是B答 案 A 是关键字,答 案 C 是以数字开头了,不符合概念,答 案 D 出现了小数点答案是A答 案 A 出现了小数点答案是C答 案 C 以数字开头了1213141516171819202122答案是AB 答案中flo at是关键字,C 答案中3 c 以数字3 开头了,D 答案中-5d中-不 属 于 字 母,数字,下划线中一种答案是AB 答案中-max中-错误,C 答案中3 c o M 以字母3 开头了,D 答案中in t是关键字,不是用户标识符答案是BA 答 案 中 1 5.后面不应该有点,C 答案中出现了逗号,D 中字母B 有问题答案是DVisual C+6.0中int类型的变量占的字节数为4。答案是BB 中出现了 8,而八进制只能有。到 7 组成答案是D答 案 D 中开头是0 不是。答案是C答 案 A 中 E 后面是整数,0.5是小数答 案 B 中 E 后面不能为空答 案 D 中 E 前面不能为空本题目考察指数的表示形式答案是C答 案 A 中 2。有问题,不能为小数形式答 案 B 中 E 前面不能为空答 案 D 中 E 后面不能为空本题目考察指数的表示形式答案是AB 中八进制中不能出现数字8,C 中 e 后面不能是小数,D 中 e 后面不能为空答案是BB 中 0.4是小数,不正确答案是CC 中 0.5是小数,不正确2324252627282930313233答案是D3.6-5/2+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/10答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分答案是B答案A中n 2没有定义,答案C中在定义f之前不能使用它,答案D中E后面必须是整数答案是C考察的是强制类型转换,正确的是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是表达式答案是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不能相互修饰答案是C标识符中不能有$答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达式;选项B中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D中,%(求余运算符)运算对象只能是整形数。答案是A选项A中,b变量还没有定义答案是C选项A中long是关键字;选项B中 符 号 不 属 于 字 母、数字或下划线;选项D中,int是关键字。答案是B选项A中,八进制数只能由07之间的数字组成;选项C,十六进制数应该以0 X开头,并且由09以及af组成,O abc不正确;选项D 中 10,000包含逗号,不正确。45 答案是BC 语言的标识符中只能包含字线、数字和下划线,没有连接符。46 答案是C既然在内存中,字符数据以ASCII码存储,它的存储形式就与整数的存储形式类似。这样使字符型数据和整型数据之间可以通用。一个字符数据既可以以字符形式输出,也可以以整数形式输出。以字符形式输出时,需要先将存储单元中的ASCII码转换成相应字符,然后输出。以整数形式输出时,直接将ASCII码作为整数输出。也可以对字符数据进行算术运算,此时相当于对它们的ASCII码进行算术运算。47 答案是D不同的计算机系统或者编译系统,对 3 种整数类型所占用的字节数有不同的规定。48 答案是A选项B 中求余运算()的运算对象必须是整型;选项C 中,赋值运算符(=)的左边必须是变量,不能是常量或表达式;选项D 与选项C 同理。49 答案是A+运算符有前缀和后缀两种形式,本题中的选项C 就是前缀形式,其表达式的值为增1后的值,而选项A 为后缀形式,其表达式的值为增1之前的值。而选项B 和 D 的表达式都是k 加 1之后的值50 答案是A51 答案是C选项A 中将一个变量j 的值赋给了一个表达式,这种写法是错误的,只能给变量赋值,而不能给常量和表达式赋值;选项B 中强制类型转换的格式使用出错,强制类型转换时,类型标识符必须用括号括起来;选项D 中,求余运算符()的两端必须是整形数。52 答案是D字符常量是用单引号括起来的单个字符,所以选项B 错误;此外还有种特殊的字符专为控制设计,称为转义字符,有三种转义字符:一种是由一个“”开头加一个普通字符组成,代表一个字符。如 表示一个单引号字符,所以选项D 确;表示一个斜杠字符,而选项C 中的 则是错误的;用“”与其后的13 位八进制数字构成的字符序列,表示ASCII码等值于该八进制数的字符;用“X”与其后的12 位十六进制数字构成的字符序列,表示ASCII码等值于该十六进制数的字符;所以选项A 错误。53 答案是B字符常量是用单引号括起来的单个字符,所以选项A 正确;此外还有一种特殊的字符专为控制设计,称为转义字符,有三种转义字符:一种是由一个“”开头加一个普通字符组成,代表一个字符。如,n 表示一个换行符,所以选项D 正确;用“”与其后的13 位八进制数字构成的字符序列,表示ASCII码等值于该八进制数的字符,所以选项B 错误,因为9 不是八进制数字;用“x”与其后的12位十六进制数字构成的字符序列,表示ASCII码等值于该十六进制数的字符;所以选项C 正确。54 答案是D大写字母的ASCII码值比小写字母的ASCII码值小3255 答案是A选项A 中的字符变量ch只能接收单个字符,a b 不是单个字符,所以错误。56 答案是Bcharx=C 将一个大写字母赋给了字符型变量x;然后通过x=x+32将 x 中字符的ASCII码值加3 2,即为小写字符c 的ASCII码值;然后将x 以字符形式输出,即为小写字母c。57 答案是A语句charx,y;定义两个字符型变量x,y;然后通过x=B-A+a 将用大写字母B 的ASCII码送去大写字母A 的ASCII码,结果便为1,然后再加上小写字每a 的AS C11码,结果就为小写字母b的ASCII码,然后再赋值给变量X;通过y=x+2,将 鳗 x 中的ASCII码值加2,即变成小写字母d 的 ASCII码值再赋值给变量y;然后以数值形式输出变量x 中的ASCII码值为9 8,再以字符形式输出变量y 中的字符为d。58 答案是B选项A 中字符 0 的 ASCH码值为4 8,所以A 的结果不为1;选项 B 中0 代表空值,空值NULL的ASCII码值为。所以结果为1;选项C 中字符1 的 ASCH码值为4 9,所以结果不为1;选项D 相当于用0 4 8 结果也不为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,将变量c2中字符 的A S C H码值减2后输出,即为6 6。6 2 答 案 是A我们知道异或运算,只有两个操作数不同,结果才为l o所以0 7 =1,lAl=0,由此可推理,任何数与1进行异或运算都得它的相反数;变量b中的高4位 为1,所以要让变量a的高4位取反,即可让变量a和变量b进行异或运算。6 3 答案是A变 量cl和c2中的值相同,所以转换成二进制数后,对应的二进制位上的值也相同,当两值相同时,只有进行异或运算,结果才为0,所 以cc2值 为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 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 l 0 x 8转换为二进制数即为0 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0=0 0 0 0 1 0 1 1 即 b=l l ,b l 即0 0 0 0 1 0 1 1 1=0 0 0 1 0 1 1 0 即 c=2 2,所以本题选择 D o二,填空题1 位 0 12 关 键 字 预 定 义 标 识 符 用户标识符3 84 八 十 十六5 int float double6 5+3.6/2=5+l.8=6.87 15 16 a+表达式的值是a变化之前的值,当然a本身增加了 18 把10赋给变量B9 123.46(int)(x*100+0.5)/100.0=(int)(l 2345.67+0.5)/100.0=(int)(l 2346.17)/100.0=12346/100.0=123.46o10 3整个表达式是一个逗号表达式,变量n和i赋值为2后,通过+i将i的值增加1变为3,然后再通过i+为i增加1,整个逗号表达式的值为i+的值,此时是后缀,所以整个i+表达式的值为3,而变量i的值为2o11 11110111第11题没有详细解析而且答案出错:xAy l=-00000010A000001011=11111101A00001010=l 111011112 2只有 V和 b 是正确的13 2 20.000000 x=f*=n/=(c=50)是一个赋值表达式,它的顺序是从右向左赋值,先执行c=5 0,然后执行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,答案是Ci n t x=13,y=4;说明x,y 均为整型,所以x/y 只取整数部分(舍去法),值为3,把 3 赋值给x,整个x=x/y 表达式的值为左边变量x的值,所以输出为3o4,答案是Aa,b均为整型,a/b 是取a +b所得商的整数部分,所以是0,再把0 赋值给 c,所以是c的值是0。5,答案是DA 注释语句可以放在代码的任何位置B 将 r 定义为整型不会在编译时出错,会自动进行类型转换C 变量s 为浮点型,格式描述符f 时正确的D n 是非法的变量6,答案是D(x,y)是逗号表达式,它的值只有一个,所以格式说明符的个数和输出项的个数是相等的。并且逗号表达式的值为最后一个表达式的值,最后一个表达式是y=2003,所以整个表达式的值是2003,因此输出值为2003。7,答案是Am 是十进制整数以十进制有符号的形式输出,即照原样输32767,*032767,032767是八进制的整数以八进制无符号形式输出,去掉前面的0。见教材P 348,答 案 是Cm,n的值都是十六进制数O x a b c,m-=n即是m=m-n,把m-n的值赋给m,即把0赋 给m,再把m值以十六进制无符号的形式输出,输出的十六进制数不用在前面O x或 者0X。见教材P 359,答 案 是B表 达 式i 的值是在变量自减之前的值,i的初值为10,所以该表达式的值也为10;表达式j+的值是变量自加之后的值,j初 值 为1,所以该表达式在值是2。1 0,答 案 是Cm=0256,即m是八进制的数0256,要以八进制无符号的形式输出,即输出256;n=256,即n是十进制的数256,也要以八进制无符号的形式输出,首先要把十进制数转化为八进制数,256转化为八进制为0400,以无符号形式输出,即输出400。1 1,答 案 是B在p r i n t f语句中,格式控制的个数只有一个,即d,而输出项有两项,即a和b。而得到的结果应该只有一个,所以应该输出第一个变量的值,即变量a的值。1 2,答 案 是C第一个数据的输出控制宽度是2位,但 是x的 值 是102,占3位,要输出的数据宽度大于规定的输出宽度,所以按数据的实际宽度输出,输 出102。第二个数据要求以十进制形式输出,输出控制宽度是2,y的值为012,是八进制数,所以要转换成十进制数10后再输出。1 3,答 案 是B表达式a =f/=c*=(x=6.5),按从右到左结合,先 把6.5赋 值 给x,再 执 行c=c*6.5,c的 值 变 为6 5,再 执 行f =f/65,为浮点数的除法,f的值为1.53,再 把f的值赋给a,a为整型数据,执行强制类型转换,a的值为l o a对应的输出格式为%d,即 输 出1;c对应的输出格式为d,输出65,f对应的输出格式3.I f,即输出控制宽度为3位,保留小数点后一位小数,即输出L 5,x对应的输出格式也为%3.I f,输 出6.5。1 4,答 案 是Df l o a t x=-123.456;说明x为单精度浮点数据,单精度浮点数据对应的输出格式应该为外f。1 5,答 案 是Cm=(k+=i*=k);按从右到左结合,先执行i =i*k;即i被赋值为4,再执行k=k+4;k被赋值为6,最后把6赋给m,输出m和i的值。1 6,答 案 是C略(参 考12题)1 7,答 案 是Dm+遵循从右向左结合的原则;m+的值为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的值赋给x,x的值变为一2。1 8,答 案 是DA输入函数应为s c a n f ();B,C输入数据列表必须是地址表达式;1 9,答 案 是A从键盘输入数据的格式必须与输入控制要求的格式一样B答案三个之间不要有空格;C答案用逗号分开是多余的;D答案格式不匹配。2 0,答 案 是A格式控制要求输入的两个数据之间要用逗号隔开,A没有逗号所以错误,D两个输入数之间的回车换行可以忽略。21,答 案 是Cx乘 以1 0 0是为了把x小数点后的两位小数变为整数,再加上0.5,如果小数点后一位大于等于5则会进一位,如果小数点后一位小于5则不会出现进位的情况,再对其进行强制类型转换,采用舍去法丢掉小数部分,即对x乘 上1 0 0后的数实现了小数位到整数位的四舍五入。最后再除以1 0 0.0,把数字变回原来的大小,整数与浮点数相除结果为浮点数,即实现了要求。2 2,答 案 是C从键盘输入数据的格式必须与输入控制要求的格式一样。2 3,答 案 是B输入控制中第一个数要求以“2 d”形式输入,即要求输入一个两位的数,而从键盘输入的数为8 7 6,所以从左到右取两位数字8 7,即 把8 7赋值给整型变量a,余下的6再赋值给浮点型变量b,自动进行类型转换,b的值 为6.0 0 0 0 0 0,后面输入的5 4 3则没有赋值给变量。2 4,答 案 是D“%”会输出一个”,“d”会照原样输出,因为没有格式说明,m.n无法输出到屏幕。2 5,答 案 是D第1个输出语句要求c h以枇(字符)形式输出所以为输出“a,以刎(整数)形式输出为,字符转换为整型要使用A S C I I码所以为“9 7”,k没有对应的输出符所以没有输出,第2个输出语句要求以整型方式输出k得到“1 2”。结果为“a,9 7,k=1 2”2 6,答 案 是Ba+b的结果为3 0,按 照“a+b=%d n”的输出格式得到输出结果“a+b=3 0”B2 7,答 案 是Bp r i n t f可以没有输出项,没有输出项的p r i n t f只是没有输出内容;整数不能以十二进制输出,get c har ()只能读入字符。2 8,答 案 是Aget c har ()可以读入空格符合回车符。二填空题1,一条语句 分号2,8 8首先将八进制数0 2 1 0转化为十六进制的数0 X 8 8,输出格式说明要以十六进制无符号的形式输出,所以省略0 X,直接输出8 8。3,1 1把十进制数转化为八进制数,以无符号的形式输出4,2 5 2 1 3 7b为八进制数0 2 5,c为十六进制数0 X 2 5,首先把b、c都转化为十进制的整数,分别为2 1、3 7,按照输出格式要求a、b、c以十进制整数形式输出,中间以空格分开,所以输出为2 5 2 1 3 7 o5,n l=%d n n 2=%d除了 n l,n 2的值之外,还必须加入“n i w n 2=”照原样输出的字符,很明显在两个数据之间还加了换行符。6,i=1 0,j=2 0 回车格式控制中加入了格式说明以外的其他字符,则在输入数据时这些字符也要同样输入。输入格式控制为i=%d,j=%d,所以则应该从键盘输入i=1 0,j=2 07,2 6 1a为十进制数1 7 7转化为八进制的数为0 2 6 1,以无符号的形式输出为2 6 18,1 6a的初值为0,在表达式a+=(a=8)中,a首先被赋值为8,再执行操作a=a+a,所以a最后被赋值为1 6,即输出a的值为1 69,p r i n t f (a=%d,b=%d”,a,b);1 0,B 6 6B 在A S C H 码中派在A的后面A为6 5,那么B 为6 6。1 1,1 00 1 2 为八进制数,转换为十进制为1 0。1 2,1 2 3 4在 s c an f 函数中指定了宽度为2,输入1 2 3 4 5 6,a=1 2,b=3 4,后面的5 6 7无效。1 3,1 2程 序 运 行 时 输 入 1 2,get c har ()函数只能接受单个字符,所以c hl=1 ,c h2=2 on l=c hl-,0,转化为 A S C I I 码计算 n 1=5 0-4 9,n l 的值为 l0 n 2=n l*1 0+(c h2-,0)转化为 A S C H 码计算 n 2 =1*1 0+(5 1-4 9),n 2 的值为 1 2。第三章选择结构一、选择题1、D此题主要是考语句的特征。一条语句只包含一个分号,D项有两个分号,应该是两条语句,所以选D。2、C此题主要是考真假条件的等价。题目中的E为非0时条件为真,为。时为假。那么把非0 和 0 带到选项中可知,C项正好是E为0 时表达式为真,非 0时为假,所以选C。3、D任意合法的表达式都可以作为逻辑运算符的运算对象4、D此题主要是考逻辑运算和关系运算的优先级别.只要掌握!、算术运算和&的优先级别便可选对.这几种运算符的具体优先级关系见见教材P1 8 8,附录三。5、A此题主要是考逻辑运算符!、&和I I之间的优先级别。!最高,&次之,I|最低。先求得!a 为0,所以不必计算!b ,即!a&!b 的值为0,由c=0,!c=l,而 0|1=1,所以选A。6、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的值,否则将不会去计算b的值,因为一旦 a=0,则 0&b 必为0;而 a b则正好是相反的,即先计算表达式a 的值,若 a 为假才会计算表达式b的值,否则将不会去计算b的值,因为一旦a=l,则b的值必为1,理解了这两点后,我们在看题目:i+=l 的值为1,此时 i 为2,所以计算&后的表达式,首先计算+j=3 的值为1,j的值为3,由上面的原理我们可知,U 后面的表达式不用再计算,所以此时i,j,k的值分别为2,3,3。8、D此题和题2非常的相似,也是考真假条件的转换,其中D项中只有k为 0时,!k/2=l 才成立,显然和A、B、C三项不同。9、C此题主要是考i f和el s e的配对问题。见教材P5 1。1 0、D此题主要是考i f和 el s e的一般形式。i f后面的语句要么是单条语句,要么是由 扩起来的复合语句,不能是i f后有两条语句的,所以本题程序在运行的时候会出错。1 1、C此题考到了关系运算和逻辑运算及一定数学知识。反-y|G 0 可等价为-1 0 x-y a为真,所以(n=b a)为 1,那么将不会去计算m=a b的值,k 被并赋值1,所以m 依然为0。1 5、C此题主要是考查i f-el s e-i f和 i f语句。具体分析见教材第4 9 页例7。1 6、C此题主要是考查i f-el s e-i f以及关系表达式的运算。首先判断第一个条件 a b c 的值为0,所以不执行第一条语句;在判断第二个条件,c-l =c表达式的结果为假,所以也不执行其下面的语句,因此执行最后一条语句,将输出d+2的值为4 o17、C此题主要是考查条件表达式和条件运算符。首先要注意条件表达式的结合方向,它是从右至左的(可参照附录三)第一个条件表达式的值为a,第二个条件表达式的值为c ,而 c=6,所以答案选CO18、A此题主要是考查i f-e l se 语句和条件表达式的转化。只要理解了 i f-e l se语句和条件表达式的运算规则的话,就很容易选出A19、D此题主要是考查在swi tc h 语句中bre ak 和 d e f au l t的作用及bre ak 的适用范围。详细说明可参看教材第三章P53对 swi tc h 的说明部分。20、B此题考查的是条件表达式求解问题。先看第一个条件表达式语句,a c 为假,所以k=k=2选 B21、A此题考查的是条件表达式的求解顺序。参照附录三可知,它的结合方向是自右至左,所以先求得右边一个条件表达式的值为2,再求得左边一个的值为1,即选A22、C此题考查的是真假条件的等价问题。x-y 为真表示x-y 是非0 的,也即x-y 0即选C2 3 答案是BC语言的字符以其A S C H 码的形式存在,所以要确定某个字符是大写字母,只要确定它的A S C H 码在 A 和 Z 之间就可以了,选项A和C符合要求。大写字母的A S C I I 码值的范围为65到 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-2)*(x-2)=1 -(-1)*(-1 )=1 -1 =0,所以选择 A。2 6答案是B当表达式E X P为非。值时条件成立,即执行语句i+;当E X P等于0时执行语句j 这就等同于条件表达式“(E X P!=0)?i+:j 所以本题选择B o2 7答案是DC语言的字符以其A S C I I码的形式存在,所以要确定某个字符是大写字母,只要确定它的A S C I I码在A,和,V之间就可以了,选项B的书写格式错误,而选项C不符合要求。大写字母的A S C I I码值的范围为6 5到9 0,所以A选项不符合要求,小写字母的A S C H码比大写字母的A S C H码大32,所以只有D是正确的。2 8答案是D奇数和2求余一定不为0,所以当x为奇数时,x%2=0是不成立的,值为0,此题选择D。2 9答案是B两个i f语句的判断条件都不满足,程序只执行了 c=a这条语句,所以变量c的值等于3,变量b的值没有变化,程序输出的结果是3,5,3 o所以本题选择B o3 0答案是C表达式y%3=0的值为1,所以执行下面的输出语句,表达式一y的值为8,所以输出结果是8。选择C。3 1答案是C表达式x%3的值为2,非0所以执行下面的输出语句,将x-的 值8输出,此时x的值变为7,然后再执行下一个输出语句,将一x的值6输出,x的值也变为6,所以选择C。3 2答案是D这是嵌套形式的swi tc h语句,因为bre ak结构影响较大,而此程序中的第一个c ase后没有bre 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。3 3答案是Dbre ak与c o n ti n u e语句都可用于swi tc h语句中。选择D。二、填空题1、答案是:10 20 0分析:多数同学得到的答案是1 0 2 0 1,显然是没有弄清楚第三条赋值语句:c=(a/b l).这是将后面一个逻辑表达式的值给c,那么关于逻辑表达式的考题,无非就是考察运算符的优先级,也就是说先算哪个,后算哪个的问题。在这个题里面,先计算第一个圆括号里面的内容,a%b 的值是1 0,所 以 1 0 1 为假。在逻辑或运算的时候,两个运算对象都为假,则结果为假。所以c的值为0.答案是:1 0 2 0 02、答案是:1分析:程序中是一个i f e ls e 结构。这个题最容易出错的地方在于i f 的条件,注意,里面的是c=a 是一个赋值表达式,不是将c与 a的值进行比较。所以条件为真,输出赋值以后c的值,为 1。3、答案是:4,5,9 9分析:题中的重点在于两个i f 结构,大家要注意两点:第一,如果i f 后面没有花括号,则它后面的第一条语句是它的结构体,并且只有一条语句。(如果后面是-个结构,则整个结构都属于i f 结构的结构体)。第二,变量在不断的被重新赋值,所以其值在不断的变化。4、答案是:y e s分析:该题与第二题是同一回事。5、答案是:1分析:这个题还上一个i f e ls 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 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,并将它赋值给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 r e a k语句。所以,当x=l,与c a s e 相配以后,执行完后面的语句(即里面的这个s w i t c h 结构),然后没有遇到b r e 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=!c h=O,编译便不再计算表达式i+的值,i 的值不变仍为1。1 3、答案是:-4表达式!n的值为1,所以执行x-=l后x=l;表达式m的值为非0值,所以执行其后的语句x-=2后x的值为-1,表达式x的值也为非0,所以执行其后的语句后x的值为4,最后输出x的值即为-4。1 4、答案是:#&表达式c=5 的值为真,所以表达式的值等于1,因此输出符号“#”,然后执行“br e ak ,继而去执行“d e f au l t:p r i n t f (&”);”语句,输出符号1 5、答案是:1因为在条件表达式(ab)a:b中,比较表达式ab为真,所以x的值为a的值等于1。后面两个条件表达式中的比较表达式都真,所以最终x的值等于 l o1 6、答案是:a:b c:t l条件表达式类似于i f 语句,根据“?”前面子表达式的逻辑值来判断应该计 算“:”前面的子表达式还是后面的作为整个条件表达式的结果。题目要求输出a、b、c 3个变量中的最小值,所以当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,(z0&x 0&x 0&x 0&x 3-5-7-9,语 句s+=l每次执行使s增加的数为:2,4,6,8,1 0,所 以s的值为自然数P I O中偶数的值。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!=1 3为真继续循环。第二次循环a=3,b=l,2!刈为真继续循环。第三次循环a=2,b=1,a!=b为真继续循环。第四次循环 a=1,b=l,2!刈为假退出循环。1 2.答案:C1 3.答案:C分析:x的值为1 5。执行w h i l e循环,(x 1 0)为真,执行循环体。执 行x+;x的值为1 6。用I行i f调(x%3)精 执 行x+,x的值为1 7,再执行br e ak;语句,退出循环体,结 束w h i l e语句的执行。最后输出x的 值1 7。1 4.答案:D在循环中当x等 于0,3,6,9时 姗3等 于0,这时会进入i f语句执行p r i n t f语句,在输出前x会先自加。屏幕上输出1 47 1 0。1 5.答案:D分析:c o n t i n u e语句会提前结束此次循环体的执行,不会结束整个f o r语句的执行。1 6.答 案:2345选择中没有此答案。解析:本题注意的是在循环第一次进入s w i t c h语句的时候是执行的d e f au l t后面的语句块,由于没有br e ak,所以还会执行c as e 2:c as 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(O)为假退出循环。输 出 结 果 为“0,0”。1 9.答案:D分析:第一次循环x=8,x%3 0,进 入i f语句输出x的值为8,然 后x自减1,执 行c o 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,执行c o n t i n u e立即进行下次循环条件判断。第四次循环x=2,x%3 0,进入i f语句,输 出x的值为2,然 后x自减1,执 行c o n t i n u e立即进行下次循环条件判断。第五次循环x=0,判断表达式x 0为假。结束循环输出结果为8,5,4,2。答案D20 .C第一次循环y=9,y%3=0,进 入i f语 句y先自减,输 出y的值为8。第二次循环y=7,y%3 0,进入下次循环。第三次循环y=6,y%3=0,进 入i f语 句y先自减