1、循环和条件习题语言程序设计辅导班第5章练习题一、选择题51、以下正确的if语句是A、if (n0) printf(%f,n) printf(%f,-n);B、if (n0) n=n+m; printf(%f,n); else printf(%f,-n);C、if (n0) n=n+m; printf(%f,n); ; else printf(%f,-n);D、if (n0) n=n+m; printf(%f,n) ; else printf(%f,-n);52、以下程序main( ) int x1=3, x2=0, x3=0; if(x1=x2+x3)printf(* * * *); else
2、 printf(# # # #);A、输出:* * * *B、输出:# # # #C、存在语法错误D、无输出结果53、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与A、缩排位置相同的if配对 B、其之前最近且不带else的if配对C、其之前最近的if配对 D、第一个if配对54、若w、x、y、z、k均为int类型变量,则执行下面语句后的k的值是w=1; x=2; y=3; z=4;k=(wx)?w:x;k=(ky)?k:y;k=(k0) x=1;else x=0; -1 (a0) 1 (a0) 0 (a0)0 (a0) -1 (a0) 0 (a0)56、以下
3、关于switch语句和break语句的描述中正确的是A、在switch语句中必须使用break语句B、break语句只能用于switch语句体中C、break语句只能用于循环语句中D、在switch语句中使用break语句或continue语句的作用相同57、设有说明:int a=1,b=0; 则执行以下语句后的输出结果是switch(a) case 1:switch(b) case 0: printf(* 0 *n); break; case 1: printf(* 1 *n);break;case 2: printf(* 2 *n); break;A、* 0 * B、* 0 * * 2 *
4、C、* 0 *D、switch语句中存在语法错误 * 1 * * 2 *58、设有程序段int x=10;while (x=0) x=x-1;A、while循环执行10次 B、循环是无限循环C、循环体语句一次也不执行 D、循环体语句只执行一次59、语句while (!y)中的表达式 !y 等价于A、y=0 B、y!=1 C、y!=0 D、y=160、以下关于do-while循环不正确的描述是A、d0-while的循环体至少执行一次B、do-while循环由do开始,用while结束,在while (表达式)后面不能写分号C、在do-while循环体中,一定要有能使while后面表达式的值变为零
5、(假)的操作D、do-while的循环体可以是复合语句61、设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是for (y=100; x!=y; +x,y+) printf(*n);A、循环体只执行一次B、是无限循环C、循环体一次都不执行D、for语句中存在语法错误62、以下程序段中的do-while循环m=-1;do m=m*m;while(!m);A、是死循环B、执行二次 C、执行一次D、有语法错误63、以下关于for循环的正确描述是A、for循环只能用于循环次数已经确定的情况B、for循环是先执行循环体语句,后判断表达式C、在for循环中,不能用break语句跳
6、出循环体D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来64、语句for (表达式1; ; 表达式3)等价于A、for (表达式1; 0 ; 表达式3)B、for (表达式1; 1 ; 表达式3)C、for (表达式1; 表达式1; 表达式3)D、for (表达式1; 表达式3; 表达式3)65、若k为整型变量,则以下for循环的执行次数是for (k=2; k=0; ) printf(%d,k-);A、无限次B、0次C、1次D、2次66、以下程序段的执行结果是int x=-3;do printf(%dn, x+);while(!x);A、-3 D、-3B、-2 -2C、陷
7、入死循环 -167、执行以下程序段后,y的值是,x的值是int x=1, y=10;do y-=x; x+;while(y-0);A、9 B、8 C、-2 D、2 E、4 F、368、执行以下程序段后a的值是,b的值是int a, b;for (b=1,a=1; b=10) break; if (a%2=1) a+=5; continue;a-=3;A、10 B、6 C、7 D、8 E、469、以下程序段的执行结果是int a, b;for (a=1; a5; a+=2) for (b=1; b5; b+) printf(%2d,a*b);if (b=5)printf(n);A、 1 2 3
8、4B、1 2 3 43 6 9 12 6 9 12 15C、 2 3 4 6 9 12D、 2 3 4 6 9 12 10 15 2070、以下程序段中是死循环的是A、int n=1;B、int n=1;while (!n) do n-;n+; while(n); C、int n=1; D、for (n=5; n1; ) ; do n+; while(n);71、下面程序的运行结果是main( ) int m=0; while (m=2) m+; printf(%dn, m); A、1B、 1 2C、1 D、1 2 2 3 3 472、以下能正确计算12310的程序段是 A、do B、do k
9、=1; n=1; k=1; n=0; n=n*k; n=n*k; k+; k+; while(k=10); while(k=10);C、k=1; n=1; D、k=1; n=0; do do n=n*k; n=n*k; k+; k+; while(k=10); while(k=10);73、下面程序的功能是计算1至10之间的奇数之和以及偶数之和。请选择填空。main( ) int x, y, z, k; x=z=0; for (k=0; k=10; k+=2) x+=k; ; z+=y; printf(偶数之和 = %dn, x); printf(奇数之和 =%dn, );、A、y=k- B、
10、y=k+1 C、y=k+ D、y=k-1、A、z-10 B、z C、z-11 D、z-y74、下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空。(提示:只要算出1000!中含有因数5的个数即可。)for (m=0,n=5; n=1000; n+=5) t=n; while () m+; t=t/5; A、t%5 B、t=t%5=0 C、t%5=0 D、t%5!=075、若有以下程序段:for (m=1; m=100; m+) scanf(%d, &y); if (y0) continue; printf(%3d, m); 正确的描述是A、当y=0时什么也不输出C、printf函数
11、永远也不执行D、最多允许输出100个非负整数76、以下程序段等价于for (k=100; k=200; k+) if (k%3=0) continue; printf(%4d, k); A、for (k=100; (k%3)&k=200; k+) printf(%4d, k);B、for (k=100; (k%3)|k=200; k+) printf(%4d, k);C、for (k=100; k=200; k+) if (k%3!=0) printf(%4d, k);D、for (k=100; k=200; k+) if (k%3) printf(%4d, k); else continue; break; 二、填空题20、以下程序的功能是:输入三个整数n1、n2、n3,按从大到小的顺序进行输出。请填空。main( ) int n1, n2, n3, temp; scanf(%d%d%d, &n1, &n2, &n3); if () temp=n2; n2=n3; n3=temp; if () temp=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1