




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章 程序的控制结构一、选择题1、C语言中用( C )表示逻辑值“真”A) true B) 整数0 C) 非零值 D) T2、表示关系xyz的c语言表达式是( A )A) (xy)&(yz) B) (xy)&d(y=z) C) xyz D) (x=y)|(y=z)3、对y在(3,23)和100,200范围内为真的确表达式为( C ) A) (y3)&(y=100)&(y3)|(y=100)|(y3)&(y=100)&(y3)|(y=100)|(y=A & ch=Z)?(ch+32): ch;A) A B) a C) Z D) g 5、设int a=4,b=5,c=6; 则下面的表达式中,值为0的表达式是( D )A) a & b B) a=b C) a|b+c&b-c D) !(ab)&(n=cd)后n的值是( B )A) 1 B) 2 C) 3 D) 4(说明:根据逻辑运算的规则 0& a=0,表达式a根本不用计算,本题中n=cd未进行计算)9、下述程序段的输出结果是( D )int a=2,b=3,c=4,d=5,m=2,n=2;a=(m=ab)&(n=cd)+5; printf(“%d,%d”, a, n);A) 0, 5 B) 1, 0 C) 5, 2 D) 5, 010、设有定义int a=3, y=4, z=5; 则表达式 !(x+y)+z-1 & y+z/2 的值是( D )A) 0 B) 1 C) 4 D) 4.5*分支结构*11、为了避免在嵌套的if-else语句中产生二义性,C语言规定else子句总是与( B )A) 编排位置相同的if配对 B) 前面最近的未匹配的if配对C) 后面最近的未匹配的if配对 D) 同一行上的if配对12、以下不正确的if语句是( B )A) if(xy) printf(“%dn”, x); B) if (x=y )&(x!=0) x+=y;C) if(x!=y) scanf(“%d”,&x); D) if(xy) x+ ; y+;13、以下程序段的输出结果是( A )char c=a;if (acy)z=x;xy;yz;A) x =10,y20,z =30 B) x20,y30, z30C) x20,y30,z10 D) x20,y = 30, z2015、执行以下程序段后x的值是( B )int a=1,b=3,c=5,d=4;if (ab)if (cd) x=1;else if (ac) if (bbc) printf(%dn,a);else if (c-1=d)=1) printf(%dn, d+1); else printf(%dn, d+2);A) 2 B) 3 C) 4 D) 517、以下程序段的输出结果是( C )float x=2.0, y;if(x0.0) y=0.0;else if(xb)if (ac) printf( “%dn ”,a );else printf( “%dn ”,b ); printf( “Over!n ” );A) 2 B) 3 C) Over! D) 419、设有变量定义:int x=10,y=20,a=5;则以下程序的输出结果是( B )if(xy) if(y!=10) a=1; else a=10; else a=0; printf(“%dn”,a);A) 0 B) 1 C) 5 D) 1020、以下程序段的输出结果是( B )int x=5;if ( x-b)if (-ac) printf( “%dn ”,a );else printf( “%dn ”,b ); else printf( “Over!n ” );A) 2 B) 3 C) Over! D) 422、执行下面程序段后,x的值是( C )int x=15;if(x+15) printf(%dn, +x);else printf(%dn, x-);A)17 B)16 C) 15 D)1423、以下程序段的输出结果是( C )int i=1, j=1, k=2;if( ( j+ | k+) & i+) printf( “%d, %d, %d”, i, j, k);A) 1, 1, 2 B) 2, 2, 1 C) 2, 2, 2 D) 2, 2, 3(说明:根据逻辑运算的规则 1| a=1,表达式k+未进行计算)24、以下程序段的输出结果是( D )int i=1, j=2, k=3;if( i+=1 & ( +j=3 | k+=3) ) printf( “%d, %d, %d”, i, j, k);A) 1, 2, 3 B) 2, 3, 4 C) 2, 2, 3 D) 2, 3, 3(说明:根据逻辑运算的规则 ,执行了表达式i+=1 和 +j=3 ,而k+=3未执行)25、下列描述正确的是( C )A) 在switch 中必须使用break 语句。 B) break语句只能用于switch 中。C) 在switch 中可根据需要使用或不使用break 语句。D) break语句是switch 的一部分。26、若有以下定义: float x;int a,b; 则正确的switch 语句是( C )A) switch(x) B) switch(x) case 1.0: printf(*n); case 1, 2: printf(*n);case 2.0: printf(*n); case 3: printf(*n); C) switch (a+b) D) switch (a) case 1: printf(n); case b2: printf(*n); 27、以下程序段的输出结果是( A )int x=1, a=0, b=0;switch(x) case 0: b+; case 1: a+; case 2: a+; b+;printf(“a=%d, b=%dn”, a, b);A) a=2, b=1 B) a=1, b=1 C) a=1, b=0 D) a=2, b=228、若int k=8; 则执行下列程序段后,变量k的正确结果是( D )int k=8;switch(k)case 9: k+=1;case 10: k+=1;case 11: k+=1; break;default: k+=1;printf(%dn, k);A) 12 B) 11 C) 10 D) 929、以下程序段的输出结果是( C )int a=10, b=5, m=0;switch(a%3) case 0: m+; break; case 1: m+; switch(b%2) default: m+;case 0: m+; break; printf(“m=%dn”, m);A) m=1 B) m=2 C) m=3 D) m=4(说明:执行default后的语句后,因无break,所以继续执行case0后语句)*循环结构*30、下列对while和do-while循环的描述正确的是( B )A) do-while的循环体不能是复合语句 B) do-while的循环体至少要执行一次C) while的循环体至少要执行一次 D) while循环不能使用 break;来结束循环31、下列程序段的输出结果是( B )int i=6; while(i-) printf(%2d, -i);printf(n);A)531 B)420 C)543 D)死循环 (注:表示空格)32、下面程序段的输出结果是( D )int y=10;while(y-);printf(y=%dn, y);A) y=0 B) 死循环,无输出结果 C) y=1 D) y= -1 33、对以下程序段的叙述正确的是( D )int k0;while(k=0) kk-1;A) 循环执行10次 B) 循环体一次也不被执行 C) 无限循环 D) 循环体被执行一次34、下面程序段的运行结果是( B ) int n0; while (n+=2 ) ; printf(“d”, n);A) 2 B) 3 C) 4 D) 出错35、设有如下程序,则程序的输出结果是( B ) int k=1, s=0;while(s10) s=s+k*k; k+; printf(“%d”, k);A) 3 B) 4 C) 5 D) 636、对以下程序段描述正确的是( B )int x=0, s=0;while( !x!=0 ) s+=+x;printf(“%dn”, s);A) 输出结果为0 B) 输出结果为1 C) while后的表达式是非法的 D) while循环无法结束37、以下程序段的输出结果是( A )int a=1, b=2, c=2, t=0;while ( abc) t=a; a=b; b=t; c-; printf(“%d, %d, %dn”, a, b, c);A) 1, 2, 0 B) 2, 1, 1 C) 1, 2, 1 D) 2, 1, 0(循环执行1次后a=2, b=1, c=1,执行2次后a=1, b=2, c=0,第3次结束循环)38、设有int i=0; 则以下while循环的执行次数是( D )while( i10) if ( i1 ) continue; if ( i=5) break;i+;A) 1次 B) 5次 C) 6次 D) 无限次39、以下能正确计算5!的程序段是( A )A) int i=1, s=1; B) int i, s=1; C) int i=1, s; D) int i=1, s=0;while ( i=5) while ( i=5) while ( i=5) while ( i=5) s=s*i; s=s*i; s=s*i; s=s*i; i+; i+; +i; +i; 40、设int x= -1; 则以下循环执行的次数是( B )do x=x*x; while(!x);A) 0次 B) 1次 C) 2次 D) 无限次41、以下程序段的输出结果是( B )int a=1,b=10;do b=b-a; a+; while( b-0 );printf(“a=%d, b=%dn”, a, b);A) a=3, b=11 B) a=2, b=8 C) a=1, b= -1 D) a=4, b=942、有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是 ( B ) void main( ) int s=0, a=1, n; scanf(%d, &n); do s=s+1; a=a-2; while(a!=n); printf(%dn, s); A)-1 B)-3 C)-5 D)0 43、以下程序段的输出结果是( D )int y=6;do y-; while(-y);printf(“%dn”, y-);A) -1 B) 1 C) 3 D) 044、设有int i; 则以下for循环的执行次数是( C )for( i=2; i!=0; ) printf(“%d”, i-);A) 0次 B) 1次 C) 2次 D) 无限次45、关于for循环以下叙述错误的是( B )。A) for循环是“当型”循环 B) for循环是“直到型”循环C) for循环是先判断条件,再执行循环 D) for的循环体包含多条语句时必须使用花括号括起来46、下面关于for循环的描述错误的是( C )A) for循环经常用于循环次数已经确定的情况 B) for循环的循环体可以是一个复合语句C) 在for循环中不能用break语句跳出循环体 D) for循环的循环体可以是一个空语句47、设有int x, y; 以下for循环的执行次数是( C )for( x=0,y=0; (y=123)&(x10) break; +k; while (k=10);C) int k; D) int s=10for( k=1; k0; k+ ) ; while(s) -s;49、若int i, j; 则for(i=j=0; i10&j8; i+, j+=3)控制的循环体执行的次数是( C )A)9 B)8 C)3 D)2答题不要超过此线50、执行语句for(n=1; n+1=5; n+)后,n的值是( C )A) 3 B) 4 C) 5 D) 651、执行以下程序后k的值是( C )int i, j=10, k=0; for(i=0; i8; y=i )printf(“%d, %dn ”, x-, y);A) 9, 10 B) 9, 10 C) 10, 10 D) 10, 109, 0 8, 0 9, 0 9,153、以下能正确计算x5的程序段是( C )A) for (i=1; i=5; i+) s=s*x; B) for (i=1; i5; i+) s=s*x;C) for (i=1, s=1; i=5; i+) s=s*x; D) for (i=1, s=1; i5; i+) s=s*x;54、对下面程序段,描述正确的是( D )for(t=l; t=100; t+ ) scanf(”%d”,&x); if(x0) contiune;printf(“%dn”,x); A) 当x=0时,什么也不输出 D) 最多允许输出l00个非负整数55、以下程序段的输出结果是( B )int a, b;for ( a=1, b=1; a=10 ) break; if ( b%3=1) b=+3; continue; printf(“%d”, a);A) 3 B) 4 C) 5 D) 6答题不要超过此线56、以下程序段的执行结果是( C )int k, n;for( k=1; k=5; k+) n=k*k; if( n10 ) continue; else printf(”%d ”, n); A) 1 4 9 B) 1 4 9 16 25 C) 16 25 D) 因循环终止,没有任何输出结果57、以下程序段的输出结果是( D )int a=0;for( int i=1; i5; i+ ) switch( i ) case 0: case3: a+=2; case 1:case 2: a+=3;default: a+=5;printf(“%d”, a);A) 10 B) 13 C) 20 D) 31(说明: i=1,执行a+=3; a+=5; a=8, i=2, 执行a+=3; a+=5; a=16, i=3, 执行a+=2; a+=3; a+=5; a=26, i=4, 执行 a+=5; a=31)58、以下程序段的输出结果是( C )int i=0, a=0;while(i20,结束while)二、填空题1、C语言用 0 表示假,用 非0 表示真。2、关系运算符具有 左 结合性,相同优先级的关系运算符连用时,按照 从左向右 的顺序计算表达式的值。3、C语言运算符的优先级, 单目 运算符优先级最高, 逗号 运算符优先级最低。4、能表述“20x30”或“x20 & x30 | x-1005、能表述“x不大于30但也不小于10”的C语言表达式是 。 x=106、数学上用x1,10表示x在1到10的闭区间内,在C语言中能正确表示该关系的表达式是 。 x=1 & x=107、若int a=5,b=2,c=1; 则表达式a-bc|b=c的值是 。 08、用C语言的逻辑表达式来表示“x或y中有一个小于z” xz | y=a & ch =z11、C语言中的用于选择结构的控制语句有 if 语句和 switch 语句,前者用于两者选一的情况,后者用于 多分支选一 的情况。 12、C语言中用于循环结构的控制语句有 while 语句、 do-while 语句和 for 语句。13、在确定循环次数的情况下一般用 for 语句;如果循环次数有循环体的执行情况来确定,一般是用 while 语句或 do-while 语句。当循环体至少执行一次时用 do-while 语句,如果循环体可能一次也不执行,可以用 while 语句或 for 语句。14、当循环体内执行到 break 语句或 return 语句时,将结束循环。15、在循环结构中continue语句的作用是 。跳出当次循环16、任何复杂的程序都可以有 顺序 、 分支 、 循环 这三种基本结构组成。三、程序阅读题。1、写出程序的运行结果。#include void main ( ) int a=4, b=3, c=5, t=0; if(ab) t=a; a=b; b=t; if(ac) t=a; a=c; c=t; printf(“ %d, %d, %dn ” , a, b, c);运行结果: 5, 4, 42、写出下面程序的输出结果#includevoid main( ) int a=2,b=1,c=2;if (ab)if(b0) c=0;else c+=1;printf(%dn,c); 输出结果: 23、写出下面程序的输出结果#includevoid main( ) int x=1, y=0, a=0, b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; printf(a=%d, b=%dn, a, b);输出结果: a=2, b=1 4、写出程序运行结果。#includevoid main( ) int n,x=5872; while(x!=0) n=x%10; x=x/10; printf(“%3d” ,n); 运行结果: 2 7 8 55、假设输入9 5,写出下面程序的输出结果。#includevoid main( ) int a,b; printf(输入两个整数a,b:); scanf(%d%d,&a,&b); while(a!=b) while(ab) a-=b; while(ba) b-=a; printf(a=%d,b=%dn,a,b);输出结果:a=1, b=16、假设输入4675,写出下面程序的运行结果。#includevoid main() char c; while(c=getchar()!=n) switch(c-2) case 0: case 1: putchar(c+4); case 2: putchar(c+4); break; case 3: putchar(c+3); default: putchar(c+2); break; printf(n); 输出结果:889877、写出程序的运行结果。#includevoid main( ) int i, x=0; for(i=1; i5; i+) if( i%2=0) continue; x+; printf(第%d次,x=%dn, i, x); 运行结果:第1次,x=1 第3次,x=2 8、写出程序的运行结果。#includevoid main( ) int i, x=1; for( i=1; i5; i+) if( i%3= =0) break; x+; printf(第%d次,x=%dn, i, x); 运行结果:第1次,x=2 第2次,x=3 9、写出下述程序的运行结果#includevoid main() int j; for(j=4; j=2; j-) switch( j ) case 0: printf(%4s,ABC); case 1: printf(%4s,DEF); case 2: printf(%4s,GHI); break; case 3: printf(%4s,JKL); default: printf(%4s,MNO); printf(n);运行结果: MNOJKLMNOGHI (表示空格)10、写出以下程序的运行结果。#include void main( ) int s=0, k; for (k=0; k=7; k+) switch(k) case 1: case 4: case 7: s+; break; case 2: case 3: case 6: break; case 0: case 5: s+=2; break; printf(“s=%dn”, s);运行结果: s=711、写出程序的运行结果。#includevoid main( ) int k=0 ,m=0, i, j;for(i=0; i2; i+) for(j=0; j3; j+) k+;k=k-j;m=i+j;printf(“k=%d, m=%d”, k, m);运行结果: k=0, m=512、写出程序的运行结果。 #include void main( ) int i, j, k ; for ( i=1; i=4 ; i+) for ( j=1; j=4-i ; j+) putchar( ); for ( k=1; k=1 ; i- -) for ( j=1; j=4-i ; j+) putchar( ); for ( k=1; k=2*i-1 ; k+) putchar(*); putchar(n); 运行结果: * * * * * *13、写出程序运行结果。# include void main( ) int x=5,y=10,i;for( i=0;x8;y=i )printf(“%d,%d n”,x+,y);运行结果:(注意:循环中没有i+)5,106,07,014、写出程序运行结果。#include void main ( ) int i, a, b, c;a=1, b=1;printf(%d %dn, a, b); for(i=1; i=4; i+) c=a+b; a=b; b=c; printf(%d , c );if (i%2=0) printf(n); 运行结果:1 1 2 35 815、写出程序的运行结果。#include void main() int i, j, n, t, s=0;for(i=1; i=3; i+) t=1; for(j=1; j=i; j+) t=t*2; printf(%4d, t); printf(n); s=s+t; printf(s=%dn,s);运行结果:2 2 4 2 4 8 s=14 四、程序填空题。1、编程完成从三个数x,y,z中找出最大值和最小值并输出。#include void main( ) int x,y,z,min,max; scanf(“%d%d%d”, &x, &y, &z);min=max=x;if( miny ) else if( minz ) else printf(“min=%d, max=%d”, min, max); min=y; if(maxy) max=y; min=z; if(maxz) max=z; 2、编程判断一个输入整数的正负性和奇偶性。#includevoid main( )int n;printf(请输入一个整数:); if( ) printf(%d是一个正数.n, n);elseif( ) printf(%d是一个负数.n,n);else printf(%d是零.n,n); if( ) printf(%d是一个偶数.n,n);else printf(%d是一个奇数.n,n);scanf(%d,&n); n0 nc&b+ca&a+cb)if (_) printf(DYn);if (_) printf(DBn);a2=a*a; b2=b*b; c2=c*c;if (_) printf(ZJn);printf(n);else printf(NOn);a=b | b=c | a=c a=b & b=c a2+b2=c2 | b2+c2=a2 | a2+c2=b24、编程实现当键入+,-,*,/ 时,分别计算并输出x+y, x-y, x*y,x/y的值。#include #include void main( ) int x,y,z; char ch; scanf(%d,%d,%c,&x,&y,&ch); switch( ) case case case case default: printf(error!); exit(0); printf(%d%c%d=%dn,x,ch,y,z); ch +: z=x+y; break; -:z=x-y; break; *:z=x*y; break; /:z=x/y; break; 5、屏幕上显示如下信息,输入数字则会输出对应时间的问候语,编程实现该功能。*Time*1 morning2 afternoon3 evening输入你选择的数字:#includevoid main( ) char c; printf(*Time*n); print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电缆工考试题及答案
- 登高证考试题及答案
- (正式版)DB15∕T 3226-2023 《液化天然气单位产品电耗限额》
- 多平台用户信息整合工具
- 养老护理实操考试试题库及答案
- 大学民歌考试题及答案
- 文化传播推广效果承诺书5篇
- 往日的点烁星光の我愿意一生都在歌唱300字10篇
- 内部协作规定协议的指导
- 公司员工职业发展规划与指导手册
- 应急预案试题及答案
- 2025年教科版(2024)小学科学二年级上册(全册)教学设计(附目录)
- 阳光体育大课间知识培训课件
- 2025年玉树州公安局面向社会公开招聘警务辅助人员(第二批)考试参考试题及答案解析
- 建筑工程临电监理细则
- 四川省绵阳市涪城区绵阳南山中学2025-2026学年高三上学期开学英语试题(含答案无听力音频有听力原文)
- 乡级增补叶酸培训课件
- 家庭劳动教育的制度性困境与教育主体重构研究
- 中国兵器工业集团校园招聘笔试经典考题含答案
- 小学数学教师新课标考试试题(含答案)
- 2025年儿童康复学考试题库
评论
0/150
提交评论