C语言第三次模拟练习试题部分解答.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. . . . 参考 单项选择 题号:13334 若有如下语句 int x=3; do{printf(%d\n,x-=2);}while(!(--x)); 则上面程序段________。 A、输出的是1 B、输出的是1和-2 C、输出的是3和0 D、是死循环 答案:B 解答:循环变量x初值为3. Do-while是先执行循环体,后判断条件。若条件为假,循环结束。条件为真,执行循环体。 第一次循环: 循环体printf(%d\n,x-=2);是输出x的值。而x-=2 等价于x=x-2 = 3-2 =1。所以输出1enter 条件是自增表达式与逻辑非表达式的综合。先计算- -x. 自增表达式- -x的值是x自减1后的值,为0.自增变量x的值是0. 条件!(- -x)=!0=1.为真。继续执行循环体。 第二次循环 循环体printf(%d\n,x-=2);是输出x的值。而x-=2 等价于x=x-2 = 0-2 =-2。所以输出-2enter 条件是自增表达式与逻辑非表达式的综合。先计算- -x. 自增表达式- -x的值是x自减1后的值,为-3.自增变量x的值是-3. 条件!(- -x)=!(-3)=0.为假。循环结束。 总结:输出1enter-2enter 题号:13353 下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环。请选择填空。 #includestdio.h void main() { int a,max=0; scanf(%d,a); while(________) { if(maxa) max=a; scanf(%d,a); } printf(%d,max); } A、a==0 B、a C、!a==1 D、!a 答案:B 解答:题目中说输入0结束循环。它的另一个意思是输入的变量a的值不是0时就执行循环或者说a为真就执行循环,为假就结束循环。所以条件是a!=0或a 答案A a==0 a为假,即等于0时,0==0,为真,执行循环体。为真,即非0,则a==0的逻辑值为假。结束循环。总结:a为假执行循环体。为真,结束循环。 答案C !a==1 非运算符!优先级高于比较运算符==。所以先计算!a,然后再判断是否和1相等。a为假时,!a值是真,与1恒等,逻辑值为1.a为真时,!a值是假,与1不等,逻辑值为0.所以它的含义是a为假执行循环体。为真,结束循环。 答案D 。!a的含义,是a为假执行循环体。为真,结束循环。 题号:13357 与下面程序段等价的是________。 for(n=100;n=200;n++) { if(n%3==0) continue; printf(%4d,n); } A、for(n=100;n=200;n++) if(n%3==0) printf(%4d,n); B、for(n=100;(n%3)n=200;n++) printf(%4d,n); C、for(n=100;(n%3)||n=200;n++) printf(%4d,n); D、for(n=100;n=200;n++) { if(n%3) printf(%4d,n); else continue; } 答案:D 解答: 程序的含义: n=100;n=200;n++。 含义是循环变量n的初值为100,终值为200,步长为1. if(n%3==0) continue; 含义是若n是3的倍数,则结束此次循环,进入下一次循环。即后面的printf(%4d,n);不执行。直接执行步长加1. 若n不是3的倍数,则执行printf(%4d,n);,即输出n的值。且值占四列,右对齐。 输出100-200中所有不是3的倍数的数。 看四个答案: 答案A if(n%3==0) printf(%4d,n);的含义是n是3的倍数,则输出。与源程序的题意不符。 答案B 与关系表达式,两边的逻辑值均为1,结果才是真。若有一个为假,结果为假。(n%3)n=200 n%3为真,同时n=200为真,则执行循环体,即输出变量n .n%3为真,说明n不是3的倍数时为真。 (n%3)n=200 若n%3为假,或n200,则条件为假,结束循环。所以,当n是3的倍数时,就结束。即n=102时,102%3=0,为假,就结束循环。不符合题意。 答案C (n%3)||n=200; 是或关系表达式。有一个为真,结果为真。全为假,结果为假。n%3 n是3的倍数时,如n=102,n%3为假,但n=102=200为真。所以102也要输出。不符合题意。 答案D if(n%3) printf

文档评论(0)

zxiangd + 关注
实名认证
文档贡献者

本人从事教育还有多年,在这和大家互相交流学习

1亿VIP精品文档

相关文档