欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    校园网[1]100分新视野教育全国计算机等级考试二级C语言笔试习题集答案及解析.docx

    • 资源ID:68345334       资源大小:223.25KB        全文页数:180页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    校园网[1]100分新视野教育全国计算机等级考试二级C语言笔试习题集答案及解析.docx

    第一章C语言基础知识一,选择题! 答案是AA正确B 0可以作为复合语句的标志C main函数不是用户命名的D分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA错误 用户标识符:命名时,标识符的选择由用户自定, 但是不能与关键字相同,所以A选项错误。这个题目考察 用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字 母,数字,下划线其中一种。这个题目考察用户标识符的概念。4 答案是Bdefine是预定义标识符,而预定义标识符可以是用户标识符,所 以define可以是用户标识,if是关键字,而关键字不能是用户标识 符,所以if不可以是用户标识符5 答案是Dlong是关键字,参照附录6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint是关键字9 答案是B答案A是关键字,答案C是以数字开头了,不符合概念, 答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C以数字开头了12 答案是AB答案中float是关键字,C答案中3c以数字3开头了,D答案中一5d中一不属于字母,数字,下划线中一种13 答案是AB答案中一max中一错误,C答案中3coM以字母3开头了,D答案中 int是关键字,不是用户标识符14答案是BA答案中15.后面不应该有点,C答案中出现了逗号,D中字母B 有问题15 答案是DVisual C+6. 0中int类型的变量占的字节数为4。16 答案是BB中出现了 8,而八进制只能有。到7组成17 答案是D答案D中开头是不是。18 答案是C答案A中E后面是整数,0. 5是小数答案B中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8, C中e后面不能是小数,D中e后面 不能为空21 答案是BB中0. 4是小数,不正确C中0. 5是小数,不正确23 答案是D3. 6-5/2+1. 2+5%2=3. 6-2+1. 2+1=3. 8本题目考察算术运算符,需要注意整数除以整数结果只能是整数24 答案是D%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+l=y是赋值表达式,左边只能是 变量,而这里是x+1,同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28 答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它, 答案D中E后面必须是整数29 答案是C考察的是强制类型转换,正确的是k%(int)f30 答案是D本题目类似与第七课时的例,解题方法是要抓住+m,n,m,表达式的值是变量变化之后的值,而n表达式的值是变量n变化之前的值31 答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的 样的,但表示的不同的两个数32答案是CA答案中%运算对象不能为实型,26. 8错误,B答案中考察的赋值 运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错 误,同理答案D错误33答案是C本题目考察的是课本第15页的关于自加与自减运算符的第一点说 明,即增量运算符的运算对象只能是变量,而在C答案中+(i+l) 中,i+1是表达式34答案是B本题目考察的是整数除以整数结果是整数,在B答案中 1/2结果是0,导致整个表达式的值是0,明显是错误的35 答案是D对于+、单目运算符来说,其运算对象可以是char型、 int型和float型变36 答案是A本题目主要考察n+表达式的值是n变化之前的值,然37 答案是Bc=a/b+O. 4c=8/5+0, 4 c=l+O. 4 c=l. 4 因为 c 是 int 型的,所以c的值是1 ,做此题目需要仔细阅读题目38 答案是D(int) a+b/b= (int) 5. 5+2. 5/2. 5-5+1. 000000=b=6. 000000同样a, b的类型是double型的39 答案是Dlong和short不能相互修饰40 答案是C标识符中不能有$41 答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达 式;选项B中进行强制类型转换时,类型标识符要加上括 号,所以错误;选项口中, (求余运算符)运算对象只能 是整形数。42 答案是A选项A中,b变量还没有定义43 答案是C选项A中long是关键字;选项B中“-”符号不属于字母、 数字或下划线;选项口中,int是关键字。44 答案是B选项A中,进制数只能由07之间的数字组成;选项C, 十六进制数应该以0X开头,并且由09以及af组成, Oabc不正确;选项D中10, 000包含逗号,不正确。45 答案是BC语言的标识符中只能包含字线、数字和下划线,没有连接符。46 答案是C既然在内存中,字符数据以ASCI!码存储,它的存储形式 就与整数的存储形式类似。这样使字符型数据和整型数据 之间可以通用。个字符数据既可以以字符形式输出,也 可以以整数形式输出。以字符形式榆出时,需栗先将存储 单元中的ASCI!码转换成相应字符,然后输出。以整数形 式输出时,直接将ASCII码作为整数输出。也可以对字符 数据进行算术运算,此时相当于对它们的ASCI!码进行算 术运算。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中强制类型转换的格式使用出错,强制类 型转换时,类型标识符必须用括号括起来;选项口中, 求余运算符()的两端必须是整形数。52 答案是D字符常量是用单引号括起来的单个字符,所以选项B错 误;此外还有一种特殊的字符专为控制设计,称为转义 字符,有三种转义字符:种是由一个“”开头加一个 普通字符组成,代表一个字符。如表示一个单引 号字符,所以选项D正确;,,表示一个斜杠字符,而 选项C中的,则是错误的;用“”与其后的1-3位 进制数字构成的字符序列,表示ASCII码等值于该 进制数的字符;用“x”与其后的1 一2位十六进制数字 构成的字符序列,表示ASCII码等值于该十六进制数的字符;所以选项A错误。53 答案是B字符常量是用单引号括起来的单个字符,所以选项A正确; 此外还有一种特殊的字符专为控制设计,称为转义字符, 有三种转义字符:种是由一个“”开头加一个普通字符 组成,代表一个字符。如,、表示一个换行符,所以选 项D正确;用“”与其后的1一3位进制数字构成的字符 序列,表示ASCII码等值于该进制数的字符,所以选项 B错误,因为9不是八进制数字;用“x”与其后的1 -2 位十六进制数字构成的字符序列,表示ASCII码等值于该 十六进制数的字符;所以选项C正确。54 答案是D大写字母的ASCII码值比小写字母的ASCII码值小3255 答案是A选项A中的字符变量ch只能接收单个字符,匕 不是单 个字符,所以错误。56 答案是Bchar x=将一个大写字母赋给了字符型变量x;然后 通过x=x+32将x中字符的ASCII码值加32,即为小写字 符, 的ASCII码值;然后将x以字符形式榆出,即为小 写字母c。语句charx, y;定义两个字符型变量x, y;然后通过x=5 B,- A a,将用大写字母B的ASCII码送去大写字母 A的ASCII码,结果便为1,然后再加上小写字每a的AS CII 码,结果就为小写字母b的ASCII码,然后再赋值给变量 x;通过y=x+2,将变量x中的ASCII码值加2,即变成小 写字母d的ASCI!码值再赋值给变量y;然后以数值形式输 出变量x中的ASCII码值为98,再以字符形式榆出变量y 中的字符为d。58 答案是B选项A中字符,0,的ASCII码值为48,所以A的结果不 为1;选项B中,、,代表空值,空值NULL的ASCII码值 为所以结果为1;选项C中字符,1,的ASCII码值为49, 所以结果不为1;选项D相当于用0-48结果也不为L59 答案是D如果要表示十六进制字符,则要用x,开头,所以选项 A错误;如果要表示八进制,则,、。,开头,后面跟1一3 位的进制数,进制数由0一组成,不包含8,所以选 项B错误;用单引号括起来的单个字符是字符常量,所 以C错误;而,n,是转义字符,用来表示回车符。60 答案是B用单引号括起来的单个字符,称为字符常量,所以选项B错误。61答案是C先将cl变量中的字符的ASCH码值榆出,即为65,将变量c2中字符的ASCII码值减2后输出,即为66。62 答案是A我们知道异或运算,只有两个操作数不同,结果为L 所以1=1,1=0,由此可推理,任何数与1进行异或运 算都得它的相反数;变量b中的高4位为1,所以要让变 量a的高4位取反,即可让变量a和变量b进行异或运算。63 答案是A变量cl和c2中的值相同,所以转换成二进制数后,对应 的二进制位上的值也相同,当两值相同时,只有进行异或 运算,结果为0,所以cl%2值为。所以本题的正确答 案为A。64 答案是A413转换成对应的二进制数即1001011=111再转换为十进 制数即为7;而4&3转换成对应的二进制数即100&011=000, 再转换为十进制数即为;所以选择A。65 答案是Dx/y的值为1, z的值也为1, 1和1求反进行与运算,结 果一定为。所以本题选择D。66 答案是D2+x=00000010+10100111=10101001;-3=-00000011=11111100 ; 所以就相当于10101001Ali111100=01010101,所以选择瓦67 答案是Da=0x3转换为二进制数即为00000011; b=a|0x8转换为二 进制数即为 00000011100001000=00001011 即 b=ll, b«l 即00001011«l=00010110即c=22,所以本题选择瓦二,填空题68 位 169 关键字预定义标识符用户标识符70 871 八十十六72 intfloatdouble73 5+3.6/2=5+l. 8=6. 874 1516a+表达式的值是a变化之前的值,当然a本身增加了 175 把10赋给变量B76 123.46(int) (x*100+0. 5)/100. 0= (int) (12345. 67+0. 5)/100. 0= (int) (12346. 17)/100. 0=12346/100. 0=123. 46O77 3整个表达式是一个逗号表达式,变量n和i赋值为2后, 通过+i将i的值增加1变为3,然后再通过i+为i增加个i+表达式的值为3,而变量i的值为2。78 11110111第11题没有详细解析而且答案出错:"xAy«l="00000010A00000101«l=11111101A00001010=l 111011179 2只有和''是正确的80 2 20. 000000x=f*=n/= (c=50)是个赋值表达式,它的顺序是从右向左 赋值,先执行c=50,然后执行n/=50即n=n/50=100/50=2, 接着执行f*=2即f=f*2=10*2=2. 000000,最后再将值赋 给变量X。输出变量n和x的值,即为2 20. 000000。81 a=14表达式a=(3*5,a+4)的括号中是个逗号表达式,其结果 是最后个表达式的值,即将a+4=14的值赋给变量a。所 以输出结果为a=14o第二章顺序结构选择题1, 答案是C随意使用空语句会导致逻辑上出现错误,不要随便使用。2, 答案是B语句必须以分号结尾,A,C,D表达式后面均没有分号。3, 答案是Cint x=13, y=4;说明x, y均为整型,所以x/y只取整数部分(舍 去法),值为3,把3赋值给x,整个x=x/y表达式的值为左边 变量x的值,所以输出为3。4, 答案是Aa, b均为整型,a/b是取a + b所得商的整数部分,所以是。,再 把赋值给c,所以是c的值是。5,答案是DA 注释语句可以放在代码的任何位置B将r定义为整型不会在编译时出错,会自动进行类型转换C变量s为浮点型,格式描述符f时正确的D 7T是非法的变量6,答案是D(x,y)是逗号表达式,它的值只有一个,所以格式说明符的个数 和输出项的个数是相等的。并且逗号表达式的值为最后个表 达式的值,最后个表达式是y=2003,所以整个表达式的值是 2003,因此输出值为2003.7,答案是Am是十进制整数以十进制有符号的形式输出,即照原样榆 32767, n=032767, 032767是八进制的整数以八进制无符号形式 输出,去掉前面的。见教材P34m, n的值都是十六进制数Oxabc, m-=n即是m=m-n,把m-n的值赋给m,即把赋给m,再把m值以十六进制无符号的形式输出,输出的十六 进制数不用在前面Ox或者0Xo见教材P359J答案是B表达式i - -的值是在变量自减之前的值,i的初值为10,所以 该表达式的值也为10;表达式j+的值是变量自加之后的值,j 初值为1,所以该表达式在值是2。105答案是Cm=0256,即m是进制的数0256,要以八进制无符号的形式输出,即 输出256; n=256,即n是十进制的数256,也要以进制无符号的形式输 出,首先要把十进制数转化为进制数,256转化为进制为0400,以无符 号影式输出,即输出400。115答案是B在printf语句中,格式控制的个数只有一个,即d,而输出 项有两项,即a和b。而得到的结果应该只有一个,所以应该 输出第一个变量的值,即变量a的值。12,答案是C第一个数据的输出控制宽度是2位,但是x的值是102,占3位, 要输出的数据宽度大于规定的输出宽度,所以按数据的实际宽 度榆出,输出102。第二个数据要求以十进制形式输出,输出控 制宽度是2, y的值为012J是进制数,所以要转换成十进制 数10后再输出。13,答案是B表达式a = f/=c*= (x=6. 5),按从右到左结合,先把6. 5赋值给x, 再执行c = c*6. 5, c的值变为65,再执行f = f/65,为浮点数的 除法,f的值为1.53.,再把f的值赋给a, a为整型数据, 执行强制类型转换,a的值为1。a对应的输出格式为(1,即输 出l;c对应的输出格式为d,输出65, f对应的输出格式 3. If, 即输出控制宽度为3位,保留小数点后一位小数,即输出1.5, x 对应的输出格式也为 3. If,榆出6. 5。14,答案是Dfloat x=-123. 456;说明x为单精度浮点数据,单精度浮点数据 对应的输出格式应该为f。15,答案是Cm=(k+=i*=k);按从右到左结合,先执行i=i*k;即i被赋值为4, 再执行k = k + 4; k被赋值为6,最后把6赋给m,输出m和i 的值。16,答案是C略(参考12题)17,答案是D-m+ +遵循从右向左结合的原则;m+ +的值为m自增之前的 值,所以执行完x = - m + +以后,x被赋值为 3;表达式x = x + 8/+n中有加号除号,先算8/+n,+n的值为自增之后的值为5, 8/5取整为1,即x = x + 8/+n转化为x = x + 1,即把x + 1的值 赋给x, x的值变为 2。18,答案是DA输入函数应为scanf ();B, C输入数据列表必须是地址表达式;19,答案是A从键盘输入数据的格式必须与榆入控制要求的格式样B答案三个之间不要有空格;C答案用逗号分开是多余的;D答 案格式不匹配。20,答案是A格式控制要求输入的两个数据之间要用逗号隔开,A没有逗号所 以错误,D两个输入数之间的回车换行可以忽略。215答案是Cx乘以100是为了把x小数点后的两位小数变为整数,再加上 0.5,如果小数点后一位大于等于5则会进一位,如果小数点后 一位小于5则不会出现进位的情况,再对其进行强制类型转换, 采用舍去法丢掉小数部分,即对x乘上100后的数实现了小数 位到整数位的四舍五入。最后再除以!00.0j把数字变回原来的 大小,整数与浮点数相除结果为浮点数,即实现了要求。22,答案是C从键盘输入数据的格式必须与输入控制要求的格式样。235答案是B输入控制中第一个数要求以“2d”形式榆入,即要求输入 个两位的数,而从键盘输入的数为876,所以从左到右取两位 数字87,即把87赋值给整型变量a,余下的6再赋值给浮点 型变量b,自动进行类型转换,b的值为6. 000000,后面输入 的543则没有赋值给变量。24,答案是D“%”会输出个“%",“d”会照原样输出,因为没有格 式说明,m, n无法输出到屏幕。25,答案是D第1个输出语句要求ch以c(字符)形式榆出所以为输出“a”, 以%d (整数)形式输出为,字符转换为整型要使用ASCII码所 以为“97”,k没有对应的输出符所以没有输出,第2个输出语 句要求以整型方式输出k得到!2”。结果为“a,97,k=12”26,答案是Ba+b的结果为30,按照“a+b=%dn”的输出格式得到输出结果 “a+b=30” B27,答案是Bprintf可以没有输出项,没有输出项的printf只是没有输出 内容;整数不能以十二进制输出,getchar ()只能读入字符。28,答案是Agetchar ()可以读入空格符和回车符。二填空题1, 一条语句分号2, 88首先将进制数0210转化为十六进制的数0X88,输出格式说明 要以十六进制无符号的形式输出,所以省略0X,直接榆出88。3, 11把十进制数转化为进制数,以无符号的形式输出4, 25 21 37b为进制数025, c为十六进制数0X25,首先把b、c都转化为 十进制的整数,分别为21、37,按照榆出格式要求a、b、c以十 进制整数形式输出,中间以空格分开,所以榆出为25 21 37O5, nl=%dnn2=%d除了 nl,n2的值之外,还必须加入“nl = ” “n2 = ”照原样榆出 的字符,很明显在两个数据之间还加了换行符。6, i=10, j=20回车)格式控制中加入了格式说明以外的其他字符,则在输入数据时这 些字符也要同样输入。输入格式控制为i=%d, j=%d,所以则应该从 键盘榆入i=10, j=207, 261 a为十进制数177转化为进制的数为0261,以无符号的形式输出为2618, 16a的初值为0,在表达式a+= (a=8)中,a首先被赋值为8J再执行操作a=a + a,所以a最后被赋值为16,即输出a的值为169, printf( "a=%d,b=%d” , a, b);10, B 66B在ASCII码中派在A的后面A为65,那么B为66。11, 10012为进制数,转换为十进制为10。12, 12 34在scanf函数中指定了宽度为2,输入123456, a=12, b=34,后面的567无效。13, 12程序运行时输入12, getchar ()函数只能接受单个字符,所以 chl=5 r , ch2=5 2)。nl=chl- *0»转化为 ASCII 码计算 nl=50-49, nl 的值为 1.n2=nl*10+( ch2-,,)转化为 ASCII 码计算 n2 = 1*10+(51-49 ),n2的值为!2o第三章选择结构、选择题1、D此题主要是考语句的特征。一条语句只包含个分号,D项有 两个分号,应该是两条语句,所以选D。2、C此题主要是考真假条件的等价。题目中的E为非0时条件为真, 为。时为假。那么把非。和带到选项中可知,C项正好是E为 时表达式为真,非。时为假,所以选C。3、D任意合法的表达式都可以作为逻辑运算符的运算对象4、D此题主要是考逻辑运算和关系运算的优先级别.只要掌握!、算 术运算和&&的优先级别便可选对.这几种运算符的具体优先级关 系见见教材P188,附录三。5、A此题主要是考逻辑运算符!、&&和I I之间的优先级别。!最高, &&次之,II最低。先求得!a为0,所以不必计算!b的值,即!a&&!b 的值为,由c=0, !c=l,而0111=1,所以选A。6、A此题主要是考了逻辑、关系和算术运算,熟练掌握逻辑运算、 关系运算和算术运算的优先级别后,就不难了。A选项中!a为0, 所以!a=l为假,那么就不用计算&&后面的表达式了,因为。与 任何数均为假;B项中先计算出ab为假,则(ab)&&!c也为假, 而0111=1; C项中a和b均为真,所以a&&b的值为!; D项中先 计算出(b+b)&&(c-a)=l,又 a=2, 2|1=1 所以选 A。7、D此题考到了+运算符以及逻辑运算。当计算机碰到a&&b时,先 计算表达式a的值,若为真会计算表达式b的值,否则将不会 去计算b的值,因为一旦a=0,则0&&b必为0;而a"b则正好是 相反的,即先计算表达式a的值,若a为假会计算表达式b的 值,否则将不会去计算b的值,因为一旦a=l,则1| |b的值必为 1,理解了这两点后,我们在看题目:i+=l的值为1,此时i为 2,所以计算&&后的表达式,首先计算+j=3的值为1, j的值为3,由上面的原理我们可知,II后面的表达式不用再计算,所以此时i, j, k的值分别为2, 3, 308、D此题和题2非常的相似,也是考真假条件的转换,其中D项中 只有k为。时,!k%2=l成立,显然和A、B、C三项不同。9、C此题主要是考if和else的配对问题。见教材P5L10、D此题主要是考if和else的一般形式。if后面的语句要么是 单条语句,要么是由扩起来的复合语句,不能是if后有两条 语句的,所以本题程序在运行的时候会出错。11、C此题考到了关系运算和逻辑运算及一定数学知识。|x-y|<10 可等价为10x-y 10,首先选项A表示x-y的绝对值小于10,与 题中的数学关系样;将一10x-y 10用逻辑表达式表示的话就 是B选项;而D选项只是数学变换,所以选择C12、D此题也是考到了真假条件的变换和if-else语句。A、B、C三 项都是表示a为真时输出x,为假时输出y,而D则是a为假时输 出x,为真时输出y。13、D此题考查了赋值表达式的一般格式,=的左边是变量名,右边 是表达式,所以D项错误。14、C此题主要是考查逻辑运算符I I,当计算机碰到a|b9先计算表 达式a的值,若为假会计算表达式b的值,否则将不会去计算 b的值,因为一旦a=l,则01 |b必为。题中b>a为真,所以(n=b>a) 为1,那么将不会去计算m=ab的值,k被并赋值1,所以m依然 为。15、C此题主要是考查if-else-if和if语句。具体分析见教材第 49页例7.16、C此题主要是考查if-else-if以及关系表达式的运算。首先判 断第一个条件a>b>c的值为0,所以不执行第一条语句;在判 断第二个条件,c-l>=c表达式的结果为假,所以也不执行其下 面的语句,因此执行最后一条语句,将输出d+2的值为4 017、C此题主要是考查条件表达式和条件运算符。首先要注意条件表 达式的结合方向,它是从右至左的(可参照附录三)第一个条 件表达式的值为a,第二个条件表达式的值为c ,而c=6,所以答 案选C18、A此题主要是考查if-else语句和条件表达式的转化。只要理解 了 if-else语句和条件表达式的运算规则的话,就很容易选出A19、D此题主要是考查在switch语句中break和default的作用及 break的适用范围。详细说明可参看教材第三章P53对switch 的说明部分。20、B此题考查的是条件表达式求解问题。先看第一个条件表达式语句, a<b为真,所以k=b=2;再看第二个条件表达式语句,k>c为假, 所以k=k=2选B21、A此题考查的是条件表达式的求解顺序。参照附录三可知,它的结合方向 是自右至左,所以先求得右边一个条件表达式的值为2,再求得左边个的值为1,即选A22、C此题考查的是真假条件的等价问题。x-y为真表示x-y是非的,也即 x-y 或 x-y>0 即选 C23答案是BC语言的字符以其ASCII码的形式存在,所以要确定某个字符是 大写字母,只要确定它的ASCII码在,和1:之间就可以了, 选项A和C符合要求。大写字母的ASCI!码值的范围为65到90, 所以D选项符合要求,所以只有C是错误的。24答案是B满足表达式(c>=2&&c=6)的整型变量c的值是2, 3, 4, 5, 6。 当变量c的值不为2,4,6时,其值只能为3或5,所以表达式c!=3 和c!=5中至少有一个为真,即不论c为何值,B选项中的表达式 的值都为真,所以B选项正确。25答案是A条件x=01 | x=!为真,所以执行y=l,然后执行 y=x*x- (x-2) * (x-2) =1- (-1) (-1) =1-1=0,所以选择 A26答案是B当表达式EXP为非0值时条件成立,即执行语句i+;当EXP等 于0时执行语句j;。这就等同于条件表达式“(EXP!=O)? i+: j 一”。所以本题选择B。27答案是DC语言的字符以其ASCII码的形式存在,所以要确定某个字符是 大写字母,只要确定它的ASCII码在, 和,7:之间就可以了, 选项B的书写格式错误,而选项C不符合要求。大写字母的ASCII 码值的范围为65到90,所以A选项不符合要求,小写字母的ASCII 码比大写字母的ASCII码大32,所以只有D是正确的。28答案是D奇数和2求余一定不为,所以当x为奇数时,x%2=0是不成立 的,值为,此题选择D。29答案是B两个if语句的判断条件都不满足,程序只执行了 c=a这条语句, 所以变量c的值等于3,变量b的值没有变化,程序榆出的结果 是3, 5, 3«所以本题选择B。30答案是C表达式y%3=0的值为!,所以执行下面的输出语句,表达式y 的值为8,所以输出结果是8。选择C。31答案是C表达式x%3的值为2,非所以执行下面的输出语句,将x-的值 8输出,此时x的值变为7,然后再执行下个榆出语句,将-x 的值6输出,x的值也变为6,所以选择C。32答案是D这是嵌套形式的switch语句,因为break结构影响较大,而此程序中的第一个case后没有break语句,程序执行时,x=l,执行 内嵌的switch语句,因y=0,执行a+,使变量a的值为1并终 止内层switch结构,回到外层。程序继续执行case 2后面的语 句a+; b+;,这使变量a, b的值分别为2和1,外层switch语句 结束。所以此题选择瓦33答案是Dbreak与continue语句都可用于switch语句中。选择D。二、填空题1、答案是:10 20 0分析:多数同学得到的答案是10 20 1,显然是没有弄清楚第三 条赋值语句:c=(a%b I (a/b>l).这是将后面一个逻辑表达式的 值给c,那么关于逻辑表达式的考题,无非就是考察运算符的优先 级,也就是说先算哪个,后算哪个的问题。在这个题里面,先计 算第一个圆括号里面的内容,a%b的值是10,所以10 1为假;a/b 的值为0, 0>!为假。在逻辑或运算的时候,两个运算对象都为假, 则结果为假。所以c的值为.答案是:10 20 02、答案是:1分析:程序中是个ifelse结构。这个题最容易出错的地方在 于if的条件,注意,里面的是c=a是个赋值表达式,不是将c 与a的值进行比较。所以条件为真,输出赋值以后c的值,为1.3、答案是:4, 5, 99分析:题中的重点在于两个if结构,大家要注意两点:第一,如 果if后面没有花括号,则它后面的第一条语句是它的结构体,并 且只有一条语句。(如果后面是个结构,则整个结构都属于if 结构的结构体)。第二,变量在不断的被重新赋值,所以其值在不 断的变化。4、答案是:yes分析:该题与第二题是同一回事。5、答案是:1分析:这个题还上一个ifelse结构,考查点仍然是考察考生是 否能够正确识别if后面括号里的表达式p=a!=O,根据运算符的优 先级知道,这里应该先算a!=0,这是个逻辑运算,a的值为5, 所以a!=0为真,其逻辑值为1,将1赋值给p,所以条件为真, 输出P的值,为!o6、答案是:20, 0分析:见第3题分析。7、答案是:585858分析:题中有三个if结构,注意,这三个if结构是相互独立的, 是互不相关的,只要他们的条件成立,就要执行其结构体(后面 的榆出语句)。通过键盘输入,得a的值为58,所以a>50为真, 输出58;然后判断a>40,仍然为真,再榆出58,最后判断a>30, 肯定为真,所以再输出58,连续三次输出5808、答案是:分析:本题的关键在于关系运算符的运算次序,a=5, b=4, c=3. a>b>c看起来是真的,但是这这是数学里面是这样 的,这里我们要一步步的计算,先算a>b, a确实大于b,所以 为真,逻辑值为!,后面的计算就变成了 l>c,显然为假,逻辑值 为,并将它赋值给d,所以最后输出d的值为。9、答案是:3分析:这个题主要考察条件运算符。程序要输出(P>O?p/lO: p%3 ) 这个条件表达式的值。P为30,所以p/3=10,10>0显然为真,所 以整个表达式的值应该是p/10的值,p/10得3。10、答案是:2 1分析:题中是个switch嵌套结构。里面的switch是case 1 的语句,题的关键点在于这个语句(即里面的这个switch结构) 的后面并没有跳出整个结构的break语句。所以,当x=l,与case 相配以后,执行完后面的语句(即里面的这个switch结构),然 后没有遇到break语句,所以并不跳出结构体,而是继续执行case 2后面的语句。所以最后得到的结果应该是2 1,而不是1 0。11、答案是:字符空格的ASCI!码不为0,所以本题中表达式!c的值为0, b=O&&l的结果显然为。12、答案是:1执行“ j=!ch&&i+”时,首先判断j=!ch的值,因为ch=,不 为0,所以j=!ch=O,编译便不再计算表达式i+的值,i的值不 变仍为L13、答案是:-4表达式!n的值为1,所以执行x-=l后x=l;表达式m的值为非 值,所以执行其后的语句x-=2后x的值为T,表达式x的值也为 非0»所以执行其后的语句后x的值为4,最后输出x的值即为 -4。14、答案是:#&表达式c=5的值为真,所以表达式的值等于1,因此输出符号“#", 然后执行“break”,继而去执行“default: printf ( "&”);”语 句,输出符号15、答案是:1因为在条件表达式(a b ) a: b中,比较表达式a b为真,所以x 的值为a的值等于L后面两个条件表达式中的比较表达式都真, 所以最终x的值等于L16、答案是:a:b c: tl条件表达式类似于if语句,根据“? ”前面子表达式的逻辑值来 判断应该计算“:”前面的子表达式还是后面的作为整个条件表达 式的结果。题目要求输出a、b、c3个变量中的最小值,所以当 ab时,应该选a,否则选b,帮前一空应填a: b。同理,后空 应填c: tlo第四章循环结构选择题:1 .答案:BN的值为10, n>7为真,执行循环体,n的值减1后为9,榆出n的值9N的值为9, n>7为真,执行循环体,n的值减1后为8,榆出 n的值8N的值为8, n>7为真,执行循环体,n的值减1后为7,输出 n的值7N的值为7, n>7为假,结束循环。2 .答案:Ak的值为5,进入循环,(一k)表达式的值为4 (真),同时k的值 改变为4,输出表达式k-=3的值1,同时k的值为L k为1,表 达式(一k)的值为0,结束循环。3 .答案:A1. X=0, y=5, z=3, (z>0&&x4)值为真,进入循环体,y值为4,z值 为2, x值为12. (z>0&&x4)值为真,进入循环体,y值为3,z值为1, x值为23. (z>0&&x4)值为真,进入循环体,y值为2,z值为, x值为34. (z>O&&x4)值为假,结束循环。5. 输出x, y, z的值3, 2, 04 .答案:D分析:当K的值为3时,只执行case 3后面的语句n+=k, n的值为3;当k的值为2时,先执行case 2后面的语句,但没有break,所以不会退出,继续执行case 3后面的语句n+=k, n的值为5; 当k的值为1时,先执行case 1后面的语句n+=k, n的值为6, 先执行case 2后面的语句(没有),继续执行case 3后面的语 句n+=k, n的值为7。输出n的值7。5 .答案:B在循环体中有“s+=l;" s的初始值为0,要让s的值等于2必须 是循环体执行两遍。当循环提执行两遍后a的值等于3,所以在 n=-3的时候循环体执行两遍后条件表达试(a!=0)为假,会退出 循环。6 .答案:A分析:t值为1, s的值为0.从键盘中输入3后,n的值为 3.先执行 循环体。执行s=s+t; s的值为!,执行t=t-2; t的值为T.再判断表达式的值 t!=n为真,再次执行循环体。执行s=s+t; s

    注意事项

    本文(校园网[1]100分新视野教育全国计算机等级考试二级C语言笔试习题集答案及解析.docx)为本站会员(无***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开