资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第 5 章 选择结构一、选择题(在下列各题的 A) 、B) 、C) 、D)四个选项中,只有一个选项是正确的,请将 正确选项填涂在答题卡相应位置上。 ) 5.1 在 C 程序中,判逻辑值时,用“非 0”表示逻辑值“真”, 又用“0”表示逻辑值“假”。 在求逻辑值时,用()表示逻辑表达式值为“真”,又用()表示逻辑表达式值为“假”。 A)10B)01C)非 0非 0D)115.2 已知 int x=6,y=2,z;则执行表达式 z=x=xy 后,变量 z 的值为 A)0B)1C)4D)55.3 能正确表示逻辑关系:“a10 或 a0”的 C 语言表达式是 A)a=10 or a=0|a=10 后,表达式 x+y 的值 为A)1B)2C)3D)45.10 表达式 a12?x+10:x-12; printf(“%dn“,y); A)0B)22C)12D)105.12 已知 char ch=C;则以下表达式的值是 ch=(ch=A switch(d) case 30 : printf(“%d,“,a); case 40 : printf(“%d,“,b); case 50 : printf(“%d,“,c); default : printf(“#“); 则输出的结果是A)40,50,B)50,#C)40,#D)40,50,#5.21 现有如下程序段,此程序段编译有错误,则程序段的错误出在 #include main() int a=30,b=40,c=50,d; d=a30?b:c; switch(d) case a:printf(“%d,“,a); case b:printf(“%d,“,b); case c:printf(“%d,“,c); default:printf(“#“); A)default:printf(“#“);这个语句 B)d=a30?b:c;这个语句 C)case a:printf(“%d,“,a); case b:printf(“%d,“,b); case c:printf(“%d,“,c);这三个语句 D)switch(d)这个语句二、填空题(请将每一个空的正确答案写在答题卡相应序号后。 ) 5.22 设 y 是 int 型,请写出 y 为奇数的关系表达式 【1】 。5.23 设 int a=5,b=6,表达式(a= =b- -)?+a:-b 的值是【2】。5.24 将以下程序写成三目运算表达式是【3】 。 if(ab)max=a; else max=b;5.25 以下程序输出的结果是【4】 。 main() int a=5,b=4,c=3,d; d=(abc); printf(“%dn“,d); 5.26 若从键盘输入 58,则以下程序输出的结果是 【5】 。 main() int a; scanf(“%d“, if(a50)printf(“%d“,a); if(a40)printf(“%d“,a); if(a30)printf(“%d“,a); 5.27 阅读下面语句,则程序的执行结果是 【6】 。 #include “stdio.h“main() int a=-1,b=1,k; if( (+a=y=x) ? 1 : 0 (1) (z=y=x) ? 1 : 0 (1) (z=y=x) ? 1 : 0 (1) (z=y=x) ? 1 : 0(2) z=y (7) int a=3 , b=5 , c=7 ; (7) int a=3 , b=5 , c=7 ; (7) int a=3 , b=5 , c=7 ; 表达式表达式 ac | cb !=0 (8) int a=13 , b=25 , c= -17 ; (8) int a=13 , b=25 , c= -17 ; (8) int a=13 , b=25 , c= -17 ;表达式表达式 (y=(a0) y+; else y+=y ;else if(a0) y+; else y+=y ;else if(a0) y+; else y+=y ;else if(a0) y+; else y+=y ; A. 20A. 20A. 20A. 20B. 11B. 11B. 11B. 11C. 9C. 9C. 9C. 9D. 0D. 0D. 0D. 0(2) (2) (2) (2) 假定所有变量均已正确定义,下列程序段运行后假定所有变量均已正确定义,下列程序段运行后假定所有变量均已正确定义,下列程序段运行后假定所有变量均已正确定义,下列程序段运行后x x x x的值是(的值是(的值是(的值是( )。)。)。)。 a=b=c=0a=b=c=0a=b=c=0a=b=c=0,x=35x=35x=35x=35; if(!a) x- -if(!a) x- -if(!a) x- -if(!a) x- -; else if(b) else if(b) else if(b) else if(b) ;if(c) x=3if(c) x=3if(c) x=3if(c) x=3;else x=4;else x=4;else x=4;else x=4;A.34A.34A.34A.34B.4B.4B.4B.4C.35C.35C.35C.35D.3D.3D.3D.3(3)(3)(3)(3)下列各语句中,能够且仅输出整型变量下列各语句中,能够且仅输出整型变量下列各语句中,能够且仅输出整型变量下列各语句中,能够且仅输出整型变量a a a a、b b b b中最大值的是(中最大值的是(中最大值的是(中最大值的是( )。)。)。)。A. if(ab) printf( A. if(ab) printf( A. if(ab) printf( A. if(ab) printf(”%dn%dn%dn%dn”,a); printf(,a); printf(,a); printf(,a); printf(”%dn%dn%dn%dn”,b);,b);,b);,b);B. printf( B. printf( B. printf( B. printf(”%dn%dn%dn%dn”,b); if(ab) printf(,b); if(ab) printf(,b); if(ab) printf(,b); if(ab) printf(”%dn%dn%dn%dn”,a);,a);,a);,a);C. if(ab) printf( C. if(ab) printf( C. if(ab) printf( C. if(ab) printf(”%dn%dn%dn%dn”,a); else,a); else,a); else,a); else printf(printf(printf(printf(”%dn%dn%dn%dn”,b);,b);,b);,b);D. if(a100)break; B)for(;); C)int k=10000; dok+;while(k10000); D)int s=36; while(s)-s;6.3 下面有关 for 循环的正确描述是 A)for 循环只能用于循环次数已经确定的情况 B)for 循环是先执行循环体语句,后判断表达式 C)在 for 循环中,不能用 break 语句跳出循环体 D)for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来6.4 若 int i,j;,则 for(i=j=0;i8;b=+k) printf(“%d,%d,“,a- -,- -b); printf(“n“); A)10,10,10,0,B)10,9,9,0,C)10,10,9,1,D)9,9,9,1,6.6 有一堆零件(100 到 200 之间) ,如果分成 4 个零件一组的若干组,则多 2 个零件;若分成 7 个零件一组,则多 3 个零件;若分成 9 个零件一组,则多 5 个零件。下面程序是求这堆零件 总数,请选择填空。#include main() int i; for(i=100;i2;m- -) k=0;for(n=m;n1;n- -) k=k+m*n; printf(“%fn“,k); A)5.000000B)15.000000C)25.000000D)35.0000006.10 下面程序的运行结果是 #include “stdio.h“ main() int j,i,k=0; for(j=50;j=j-1) printf(“%d“,j); k+; A)5359B)5953C)3595D)95356.11 已知 int t=0; while(t=1) . 则以下叙述正确的是 A)循环控制表达式的值为 0B)循环控制表达式的值为 1 C)循环控制表达式不合法D)以上说法都不对6.12 设有以下程序段 int x=0,s=0; while(!x!=0)s+=+x; printf(“%d“,s); 则 A)运行程序段后输出 0B)运行程序段后输出 1 C)程序段中的控制表达式是非法的D)程序段执行无限次6.13 下列程序的输出结果是 #include “stdio.h“ main() int i=6; while(i- -) printf(“%d“,- -i);printf(“n“); A)531B)420C)654321D)死循环6.14 对下,两个语句描述正确的是 .while(1).for(;) A)都是无限循环B)是无限循环,错误 C)循环一次,错误D)以上答案都错6.15 以下程序段的描述,正确的是 x=-1; do x=x*x; while(!x); A)是死循环B)循环执行两次 C)循环执行一次D)有语法错误6.16 若有如下语句 int x=3; do printf(“%dn“,x-=2);while(!(- -x) ); 则上面程序段 A)输出的是 1B)输出的是 1 和-2 C)输出的是 3 和 0D)是死循环6.17 下面程序的运行结果是 #include main() int a=1,b=10; do b-=a; a+; while(b- -(表示回车) ,则下面程序的 运行结果是#include main() char c; int v0=1,v1=0,v2=0; doswitch(c=getchar() ) case a:case A: case e:case E: case i:case I: case o:case O: case u:case U:v1+=1;default:v0+=1;v2+=1; while(c!=n); printf(“v0=%d,v1=%d,v2=%dn“,v0,v1,v2); A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8 C)v0=11,v1=4,v2=11D)v0=13,v1=4,v2=126.19 下面程序的功能是把 316 表示为两个加数的和,使两个加数分别能被 13 和 11 整除, 请选择填空。 #include main() int i=0,j,k; do i+;k=316-13*i; while(_); j=k/11; printf(“316=1
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号