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

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言第三次模拟练习题部分解答精要

单项选择题号:13334若有如下语句int x=3;do{printf(%d\n,x-=2);}while(!(--x));则上面程序段________。A、输出的是1B、输出的是1和-2C、输出的是3和0D、是死循环答案: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.hvoid main(){ int a,max=0;scanf(%d,a);while(________){ if(maxa) max=a;scanf(%d,a); }printf(%d,max);}A、a==0B、aC、!a==1D、!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(%4d,n); else continue; n%3为真时,输出。为假时,结束本次循环,步长加1,进入下一次循环。符合题意。题号:13367下面程序的运行结果是________。#includestdio.hvoid main(){ int x,i;for(i=1;i=100;i++){ x=i;if(++

文档评论(0)

1520520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档