1. 在C语言中,认为( D )为逻辑\真\
A) true B)大于0的数 C)非0整数 D)非0的数 A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z) C) (x<=y<=z) D) (x<=y)&(y<=z)
3.能正确表示逻辑关系:“a≥=10或a≤0”的C语言表达式是( D )
A) a>=10 or a<=0 B) a>=0|a<=10 C) a>=10 &&a<=0 D) a>=10‖a<=0
4、判断char型变量c1是否为大写字母的表达式为( D )。
A、’A’<=c1<=’Z’ B、(c1>=’A’) & (c1<=’Z’) C、(’A’<=c1)AND (‘Z’>=c1) D、 c1>=’A’ && c1<=’Z’ 5. 为表示逻辑表达式79 A)( X>79 )&&( X<90 ) B) ( X>79 )!=( X<90 ) C) 79 6.设有语句“int a=2,b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的 值是( A ) A.1 B.0 C.-1 D.出错 2. 表示关系x<=y<=z的c语言表达式为 A 7. 设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是( A )。 A.1010&&a<15 D.!(a<=10)&&!(a>=15) 8. 设x,t均为int型变量,则执行语句“x=10;t=x&&x>10;”后,t的值为(D ) A.不定值 B.10 C.1 D.0 9. 若int i=10; 执行下列程序后,变量i的正确结果是( A )。 switch ( i ) { case 9: i+=1; case 10: i+=1; case 11: i+=1; default : i+=1; } A、13 B、12 C、11 D、10 10. 在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是( D )。 A、if (a) s1 ; else s2; B、if (a= =0) s2; else s1; C、if (a!=0) s1; else s2; D、if (a= =0) s1; else s2; 11.假定所有变量均已正确定义,则下列程序段运行后y的值是(A ) int a=0,y=10; 6 if(a=0) y--; else if(a>0) y++; else y+=y; A.20 B.11 C.9 D.0 12.假定所有变量均已正确定义,则下列程序段运行后x的值是(B )。 a=b=c=0; x=35; if(!a) x--; else if(b); if(c) x=3; else x=4; A.34 B.4 C.35 D.3 13. C语言对嵌套if语句的规定是:else语句总是与( D )配对。 A) 其之前最近的if B) 第一个if C) 缩进位置相同的if D) 其之前最近的且尚未配对的if 14.在C语言语句中,用来决定分支流程的表达式是( A )。 A.可用任意表达式 B.只能用逻辑表达式或关系表达式 C.只能用逻辑表达式 D.只能用关系表达式 15.C语言中用( B )表示逻辑“真”。 A. true B. 整数值1 C. 非零整数值 D. false 16、若k是int型变量,且有下面的程序段: int k; k= -3; if (k<=0) printf(“####”); else printf(“&&&&”); 上面程序段的输出结果是( A ) A、#### B、&&&& C、####&&&& D、有语法错误,无输出结果 17. main() { int x=0,a=0,b=0; switch(x){ case 0: b++; case 1: a++; case 2: a++;b++;} printf(“a=%d,b=%d\\n”,a,b);} 7 该程序的输出结果是 D A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2 18. 以下程序的输出结果是:( C ) main() { int x=-10,y= 1,z=1; if(x A. 0 B. 1 C. 2 D. 3 19. 以下程序段的输出结果是( B ) int a=10,b=50,c=30; if(a>b) a=b; b=c; c=a; printf(\; A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50 四、循环结构 *1.在C语言中,下列说法中正确的是( D )。 A) do-while语句构成的循环不能用其它语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。 C) do-while语句构成的循环在while后的表达式非零时结束循环。 D) do-while语句构成的循环,在while后的表达式为零时结束循环。 2. break语句不能出现在( D )语句中 A. switch B.for C. while D. if?else *3.对于break语句和continue语句的说法错误的是( B ) A) break语句不能用于循环语句和switch语句之外的任何其他语句中。 B) break和continue也可以用于if语句中 C) continue语句只结束本次循环,而不是终止整个循环的执行。 D) break语句是结束整个循环过程,不再判断执行循环的条件是否成立。 4.语句while(!y);中的表达式!y等价于 A A)y==0 B)y!=1 C)y=!0 D) y==1 8 5.若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行(A ) A.无限次 B.不确定次 C.10次 D.9次 6. 有以下程序段 int k=0 while(k)k++; 则while循环体执行的次数是 C A) 无限次 B) 有语法错,不能执行 D) 执行1次 C) 一次也不执行 7. 下列循环语句中有语法错误的是( D ) A while(x=y) 5; B while(0) ; C do 2;while(x= =b); D do x++ while(x= =10); *8.当运行时输入:abcd$abcde?, 下面程序的运行结果是 B #include { while(putchar(getchar())!='$'); printf(\} A) abcd$abcde B)abcd$end C)abcdend D) abcd$abcdeend 9. 以下程序段 ( A ) x=-1; do { x=x*x; } while(x>0); A. 是死循环 B. 循环执行一次 C. 循环执行二次 D. 有语法错误 10. 下面程序段执行后的结果为: ( B ) int sum=0, n=10; do { sum=sum+n; n++; } while(n<10) printf(“%d,%d”,sum,n) A. 0, 10 B. 10, 11 C. 0, 11 D. 以上结果都不对 11.对以下程序段的叙述正确的是___A____. int x=1; do { x= -1*x; } 9 while(!x) A) 是死循环 B) 循环执行一次 C)循环执行二次 D)有语法错误 12.循环“for(i=0,x=1;i=10&&x>0;i++);”的循环执行( A )。 A.无限次 B.不确定次 C.10次 D.9次 13.执行语句{for(j=0;j<=3;j++) a=1;}后变量j的值是 C . A)0 B) 3 C)4 D) 1 14. 有如下程序 main() { int i,sum=2; for(i=1;i<=3;i+=2) sum+=i; printf(“%d\\n”,sum); } 该程序的执行结果是 A A) 6 B) 3 C) 死循环 D) 4 *15、执行语句”for ( i=0; i++<3 ; ) ;”后,变量i的值为( C A、2 B、3 C、4 D、5 16.设x和y均为int型变量,则执行以下的循环后,y的值为( D )。 for(y=1,x=1;y<=50;y++) { if(x>=0) break; if(x%2==1) {x+=5;continue;} x-=3; } A.2 B.4 C.6 D.1 五 数组 1. 以下对一维数组a的正确说明是: D A) char a(10); B) int a[]; C)int k=5,a[k]; D)char a[3]={‘a’,’b’,’c’}; 2.以下能对一维数组a进行初始化的语句是: ( C ) A. int a[5]=(0,1,2,3,4,) B. int a(5)={} C. int a[3]={0,1,2} D. int a{5}={10*1} 3.在C语言中对一维整型数组的正确定义为 D 。 A)int a(10); B)int n=10,a[n]; C)int n;a[n]; D)#define N 10 int a[N]; 10 。 )