资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
(分支和循环结构)单元练习二一单选1. 以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是_。A. if(ab)&(bc) k=1; B. if(ab)|(bc) k=1 else k=0; else k=0;C. if(ab) k=1; else if(bc) k=1; else k=0;2. C语言的do_while循环中,循环由do开始,用while结束;而且在while表达式后面的_不能丢,它表示do_while循环的结束。 A. n B. “;” C. “%” D. “,” 3. 执行程序段: x=-1; do x=x*x; while(!x); 的结果是_。A. 死循环 B. 循环执行2次 C. 循环执行一次 D. 有语法错误 4. 下面程序段的输出结果是_。int i,sum; for(i=1;i=10;i+)sum+=sum; printf(%dn,i);A. 10 B. 9 C. 15 D.115. 以下叙述正确的是_。A. for循环中设置for(条件)break,当条件成立时中止程序执行。B. for循环中设置for(条件)continue,当条件成立时中止本层循环。C. for循环中设置for(条件)break,当条件成立时中止本层循环。D. for循环中设置for(条件)break,当条件成立时暂停本次循环。6. 下面有关for循环的正确描述是_。A. for循环只能用于循环次数已经确定的情况。B. for循环是先执行循环体语句,后判断表达式。C. 在for循环中,不能用break语句跳出循环体。 D. for循环的循环体语句中,可以包含多条语句。 7. 以下能正确计算1234.10的程序段是_。A. do i=1; s=1; s=s*i; i+; while(i=10); B. do i=1; s=0; s=s*i; i+; while(i=10);C. i=1; s=1; do s=s*i; i+; while(i=10);D. i=1; s=0; do s=s*i; i+; while(i=10); 8. 有以下程序 #include void main() int a=5,b=4,c=3,d=2; if (abc) printf(%dn, d); else if ( (c-1=d) =1) printf(%dn, d+1); else printf(%dn, d+2); 执行后输出结果是_。A. 2 B. 3 C. 4 D. 编译时有错,无结果9. 以下程序段的输出结果是_。int x,i;for (i=1;i=100;i+) x=i; if (+x%2=0) if (+x%3=0) if (+x%7=0) printf(%d ,x); A. 39 81 B. 42 84 C. 26 68 D. 28 70 10. 设有程序段: int k=10; while(k=0) k=k-1; ,则下面描述正确的是_。A. while 循环执行10次 B.循环是无限循环C. 循环体语句一次也不执行 D.循环体语句执行一次 11. 有以下程序:#includevoid main() while(putchar(getchar()!=?); 当输入china?时,程序的执行结果是_。A. china B. dijob C. dijob? D. china? 12. 下面程序的运行结果是_。#includevoid main() int i,j,x=0;for(i=0;i2;i+) x+; for(j=0;j=0;i-=100);后,i值为_。 A. 500 B. 0 C. 100 D. -10016. 以下_为不正确的if语句。A. if(xy);B. if(x!=y) scanf(%d,&x) else scanf(%d,&y);C. if(x=y) x+=y;D. if(xy) x+;y+;17. 下面程序段运行结果是_。 int i,j,a=0; for(i=0;i2;i+) for(j=0;j4;j+)if (j%2) break; a+; a+; printf(%dn,a); A. 4 B. 5 C. 6 D. 7 18. 下面程序段的输出结果是_。int i,j,k; for(i=2;i6;i+,i+) k=1; for(j=i;j6;j+) k+=j; printf(%dn,k);A. 10 B. 9C. 8 D. 1119. 循环语句for(i=0,x=0;!x&i=5;i+);的执行次数为_。A. 5次 B. 6次 C. 1次 D. 无限20.以下描述正确的是_。A. goto语句只能用于退出多层循环 B. switch语句中不能出现continue语句 C. 只能用continue语句来终止本次循环 D. 在循环中break语句不能独立出现 21. 对于for(表达式;表达式3)可理解为_。A. for(表达式;0;表达式3)B. for(表达式;1;表达式3)C. for(表达式;表达式1;表达式3)D. for(表达式;表达式3;表达式3) 22. 以下不正确的描述是_。A. break 语句不能用于循环语句和switch语句外的任何其他语句 B. 在switch语句中使用break语句或continue语句的作用相同 C. 在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环的执行 D. 在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环 23. 下面程序段的输出结果是_。int x=3; doprintf(%3d,x-=2); while(!(-x); A. 1 2 B. 3 2 C. 2 3 D. 1 -224. 请阅读以下程序:#include void main () char c; c=getchar(); if (c=A&c=a&c=0&c=9) printf(input character is digitn); else printf(other charactern);若运行时输入大写字母A,则上面程序的输出结果是_。 A. input character is letter B. input character is digit C. other character; D. A25. 有如下语句 int x=3; do printf(%dn,x-=2); while(!(-x); 则上面程序段_。A. 输出的是1 B. 输出的是1和-2C. 输出的是3和0 D. 是死循环 二判断1. C语言的循环语句for,while,do_while中,其中用于直接中断最内层循环的语句是break。2. for循环语句比while循环语句功能更强,凡是用while循环能完成的,用for循环都能实现。3. while循环和do-while循环的while()后一定要有一个分号。4. if语句后面的表达式并不限于是关系表达式或逻辑表达式,而可以是任意表达式。if语句中可以再嵌套if语句。5. 一个if语句中可以嵌套一个switch语句。6. 若a、b均为int型变量,且a=100,则以下的for循环是死循环.for (b=100;a!=b;+a,b+) printf(-n); 。7. if (x=y)&(x!=0) x+=y; 语句语法是错误的。8. for(i=0,j=10;i7) n-;printf(%d ,n);10. if(a=5) 语句;if(b) 语句;都是非法的。11. for循环可以在表达式3中包含使循环趋于结束的操作,但必
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号