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

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单项选择 号:13334 若有如下语句 int x=3; do {printf (,,%d\n/,, x-=2) ;}while(! (--x)); 则上面程序段 o 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 =lo 所以输出lenter 条件是自增表达式与逻辑非表达式的综合。先计算自增表达式- -x的值是x自减1后的值,为0.自增变量x的值是0.条件! (- -x) = !0=l. 为真。继续执行循环体。 第二次循环 循环体printf (,,%d\n,, x-=2):是输出x的值。而x-二2等价于x=x~2 = 0-2 =-2o 所以输出-2enter 条件是白增表达式与逻辑非表达式的综合。先计算--x.白增表达式- -x的值是洎减1后的值,为-3.自增变量x的值是-3.条件! (- -x) = ! (-3)二0.为假。循环结束。 总结:输出 lenter-2enter 号:13353 下面程斥的功能是在输入的一批正整数中求出最大者,输入0结束循环。请 选择填空。 ttincludeO void main () { int a, max=0; scanf (”%d, a); TOC \o 1-5 \h \z while ( ) { if(maxa) max=a; scanf a); } pri ntf max); } A、 a==0 B、 a C、 !a==l 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恒等,逻辑值 为为真时,! a值是假,与1不等,逻辑值为0.所以它的含义是a为假执 行循环体。为真,结束循环。 答案D。! a的含义,是a为假执行循环体。为真,结束循环。 ■@号:13357 与下面程序段等价的是 O 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++o 含义是循环变量n的初值为100,终值为200,步 长为1. if(n%3==0) continue;含义是若n是3的倍数,则结束此次循环,进 入下一次循环。即后面的printfC%4r,n);不执行。直接执行步长加 1. 若n不是3的倍数,则执行printfC%4r,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,进入下一次循环。符

文档评论(0)

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

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

1亿VIP精品文档

相关文档