1、C语言顺序分支结构选择题部分做了注释顺序分支结构选择题:1. 设ch是char型变量,其值为A,且有下面的表达式: ch=(ch=A&ch=Z)?(ch+32):ch上面表达式的值是A) A B) aC) Z D) zB2. 设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是A) a&b B) a=bC) a|b+c&b-c D) !(a=10 or a=10 | a =10 | a=10 | a=0D 4. 设a为整型变量,不能正确表达数学关系:10a15 的C语言表达式是A) 10a10 & a15 D) !(a=15)A 5. 设x 、y 、z 、
2、t均为int型变量,则执行以下语句后,t的值为 x=y=z=1; t=+x | +y & +z;A) 不定值 B) 4C) 1 D) 0C6. 语句:printf(%d,(a=2) & (b= -2);的输出结果是A)无输出 B)结果不确定C)-1 D)1D7. 能正确表示a和b同时为正或同时为负的逻辑表达式是A) (a=0 | b=0) & (a0 | b=0 & b=0) & (a0 & b0 & a+b0D 8. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与( )组成配对关系。A) 缩排位置相同的if B) 在其之前未配对的ifC) 在其之前未配对的最近的if D)
3、 同一行上的ifC9. 已知 int x=10,y=20,z=30,则执行 if (xy) z=x;x=y;y=z; 语句后,x、y、z 的值是( )。A) x=10,y=20,z=30 B) x=20,y=30,z=30C) x=20,y=30,z=10 D) x=20,y=30,z=20Bif (xy)z=x;x=y;y=z;10. 执行下面程序的输出结果是( )。 main( ) int a=5,b=0,c=0; if (a=a+b) printf(*n); else printf(#n); A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出 *D) 输出 #Cif (a
4、=a+b) a=a+b是一个赋值表达式,值为5判断一个数据的“真”或“假”时,以和非为根据:如果为,则判定为“逻辑假”;如果为非,则判定为“逻辑真”。11. 运行下面程序后,输出是( )。 main( ) int k=-3; if (k15?a+10:a-10; printf(%dn,b) ; A) 5 B) 25C) 15 D) 10A表达式?表达式表达式条件运算符的执行顺序:先求解表达式,若为非(真)则求解表达式,此时表达式的值就作为整个条件表达式的值。若表达式的值为(假),则求解表达式,表达式的值就是整个条件表达式的值。 条件运算符优先级高于赋值运算符 ,低于关系运算符和算术运算符。 1
5、3. 以下选项中,两个条件语句语义等价的是( )。A) if(a=2)printf(%dn,a); B) if(a-2)printf(%dn,a); if(a=2)printf(%n,a); if(a!=2)printf(%n,a);C) if(a)printf(%dn,a); D) if(a-2)printf(%dn,a); if(a=0)printf(%n,a); if(a=2)printf(%n,a);BA(1)无论什么情况都输出a,A(2)只有a=2的时候才输出a;B(1)当a!=2时输出a,B(2) 也是当a!=2时输出a输出a;C(1)当a!=0时输出a,C(2) 也是当a=0时输
6、出a输出a;D(1)当a!=2时输出a,D(2) 当a=2时输出a输出a; 14. 在执行以下程序时,为了使输出结果为:t=4 则给a和b输入的值应满足的条件是 main( ) int s,t,a,b; scanf(%d,%d,&a,&b); s=1; t=1; if (ab) t=s+t; else if (a=b) t=5; else t=2*s; printf(t=%dn,t); A) ab B) abab D) 0abD本题应该是a0&ab 15. 下面程序的输出结果是 main( ) int x=100,a=10,b=20,ok1=5,ok2=0; if (ab) if (b!=15
7、) if (!ok1) x=1; else if (ok2) x=10; x=-1; printf(%dn,x); A) -1 B) 0C) 1 D)不确定的值A main( ) int x=100,a=10,b=20,ok1=5,ok2=0; if (ab) if (b!=15) if (!ok1) x=1; else if (ok2) x=10; x=-1; printf(%dn,x); 16. 下面程序的输出结果是 #include main( ) int a=2,b=7,c=5; switch(a0) case 1:switch(b0) case 1: printf(); break;
8、 case 0: printf(!); break; case 0:switch(c=5) case 0: printf(*); break; case 1: printf(#); break; default: printf(%);break; default: printf(&); printf(n); A) & B) !#&C) % D) *&B#include main( ) int a=2,b=7,c=5; switch(a0) case 1:switch(b99) place=3; else if(num9) place=2; else place=1; i=num/100; j=
9、(num-i*100)/10; k=(num-i*100-j*10); switch (place) case 3: printf(%d%d%dn,k,j,i); break; case 2: printf(%d%dn,k,j); break; case 1: printf(%dn,k); A) 123 B) 1,2,3C) 321 D) 3,2,1Cmain( ) int num,i,j,k,place; scanf(%d,&num); if (num99) place=3; else if(num9) place=2; else place=1; i=num/100; j=(num-i*1
10、00)/10; k=(num-i*100-j*10); switch (place) case 3: printf(%d%d%dn,k,j,i); break; case 2: printf(%d%dn,k,j); break; case 1: printf(%dn,k); 18. 运行下面程序时,若从键盘输入数据为86,则输出结果是( )。 main( ) int t; scanf(%d,&t); if (t=90) printf(An); else if (t=80) printf(Bn); else if (t=70) printf(Cn); else if (t=60) printf(
11、Dn); else printf(En); printf(OKn); A) B B) B OKC) B D) B OK C D E OKC main( ) int t; scanf(%d,&t); if (t=90) printf(An); else if (t=80) printf(Bn); else if (t=70) printf(Cn); else if (t=60) printf(Dn); else printf(En); printf(OKn); 19. 以下程序的运行结果是( )。 main( ) int a=0,b=1,c=0,d=20,x; if (a) d=d-10; el
12、se if (!b) if (!c) x=15; else x=25; printf(%dn,d); A) 15 B) 25C) 20 D) 10C main( ) int a=0,b=1,c=0,d=20,x; if (a) d=d-10; else if (!b) if (!c) x=15; else x=25; printf(%dn,d); 20. 运行下面程序时,从键盘输入1605,则输出结果是( )。 main( ) int t,h,m; scanf(%d,&t); h=(t/100)%12; if (h=0) h=12; printf(%d:,h); m=t%100; if (m1
13、0) printf(0); printf(%d,m); if (t1200|t=2400) printf(AM); else printf(PM); A) 6:05PM B) 4:05PMC) 16:05AM D) 12:05AMB main( ) int t,h,m; scanf(%d,&t); h=(t/100)%12; /*h=4*/ if (h=0) h=12; printf(%d:,h); m=t%100; /*m=5*/ if (m10) printf(0); printf(%d,m); if (t1200|t=2400) printf(AM); else printf(PM);
14、21、运行下面程序时,从键盘输入数据为2,13,5,则输出结果是( )。 #include main( ) int a,b,c; scanf(%d,%d,%d,&a,&b,&c); switch(a) case 1: printf(%dn,b+c); break; case 2: printf(%dn,b-c); break; case 3: printf(%dn,b*c); break; case 4: if(c!=0) printf(%dn,b/c);break; else printf(errorn);break; defualt: break; A) 10 B) 8C) 65 D) e
15、rrorB #include main( ) int a,b,c; scanf(%d,%d,%d,&a,&b,&c); switch(a) case 1: printf(%dn,b+c); break; case 2: printf(%dn,b-c); break; case 3: printf(%dn,b*c); break; case 4: if(c!=0) printf(%dn,b/c);break; else printf(errorn);break; defualt: break; 22、若k是int型变量,且有下面的程序片段: k=8; if (k=0) if (k=0) prin
16、tf(#) else printf(&); else printf(*);上面程序片段的输出结果是A) # B) &C) * D) 有语法错误,无输出结果D k=8; if (k5) printf(%dn,x);/* (x+5) x先和5比较,结果未假,不执行此if语句执行else,x加1 成为6*/ else printf(%dn,x-);/*x为6,先输出6,x变为5*/ A) 7 B) 6C) 5 D) 4B main( ) int x; scanf(%d,&x); if (x+5) printf(%dn,x);/* (x+5) x先和5比较,结果假,不执行此if语句执行else,x成为
17、6*/ else printf(%dn,x-);/*x为6,先输出6,x变为5*/ 24、当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为 if (ab) if (cd) x=1; else if (ac) if (bd) x=2; else x=3; else x=6; else x=7;A) 1 B) 2C) 3 D) 6B if (ab) if (cd) x=1; else if (ac) if (bd) x=2; else x=3; else x=6; else x=7;25、下面的程序片段所表示的数学函数关系是 -1(x0) 1 (x0) 0 (x0) 0 (x0)
18、-1(x0) 0 (x0) y=-1; if (x!=0) if (x0) y=1; else y=0;C 26、假定所有变量均已正确说明,下列程序段运行后x的值是 a=b=c=0;x=35; if (!a) x-; else if (b); if (c) x=3; else x=4;A) 34 B) 4C) 35 D) 3B a=b=c=0;x=35; if (!a) x-; else if (b); if (c) x=3; else x=4;27、与 y=(x0?1:x0) y=1; B) if(x) else if (x0) y=1; else y=0; else if (x=0) if
19、 (x0) y=1; if (x0) y=1; else if (x=0) y=0; else y=-1; else y=-1;A28、执行下列程序,输入为1的输出结果是( )。 #include main( ) int k; scanf(%d,&k); switch (k) case 1: printf(%dn,k+); case 2: printf(%dn,k+); case 3: printf(%dn,k+); case 4: printf(%dn,k+); break; default: printf(Full!n); A) 1 B) 2C) 2 D) 1 3 2 4 3 5 4D#i
20、nclude main( ) int k; scanf(%d,&k); switch (k) case 1: printf(%dn,k+); case 2: printf(%dn,k+); case 3: printf(%dn,k+); case 4: printf(%dn,k+); break; default: printf(Full!n); 29执行下面程序时,若从键盘输入2,则程序的运行结果是( )。 #include main( ) int j,k; char cp; cp=getchar( ); if (cp=0 & cp=a & cp=f) k=cp-a+10; else k=cp-A+10; printf(%dn,k); A) 2 B) 4C) 1 D) 10A #include main( ) int j,k; char cp; cp=getchar( ); if (cp=0 & cp=a & cp=f) k=cp-a+10; else k=cp-A+10; printf(%dn,k);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1