b = a; a = c; c = b;
4.若变量已正确定义,以下语句段的输出结果是 。 x = 0; y = 2; z = 3;
switch(x)
{ case 0: switch( y == 2)
{ case 1: printf(“*”); break; case 2: printf(“%”); break; }
case 1: switch( z )
{ case 1: printf(“$”);
case 2: printf(“*”); break; default : printf(“#”); } }
5. 以下程序的输出结果是 。
main()
{ int x=100, a=10, b=20, ok1=5, ok2=0;
if(a
printf(\\n\); }
6.若从键盘输入58,则以下程序输出的结果是 。
main() {
int a;
scanf\);
if(a>50)printf(\); if(a>40)printf(\); if(a>30)printf(\); }
7.以下程序的执行结果是 。
main() {
int k=8; switch(k) {
case 9: k+=1; case 10: k+=1;
case 11: k+=1; break; default: k+=1; }
printf(\\n\); }
8.阅读下面程序,程序执行后的输出结果是 。
#include \main() {
int x,y,z;
x = 1; y = 2; z = 3; if(x>y)
if(x>z)printf(\); else printf(\); printf(\\n\); }
9.C语言中用 表示逻辑真,用 表示逻辑假。
10.根据C语言运算符的优先顺序和结合性,按从先到后的顺序写出以下表达式中,运算符“+”、“>”、“*”、“&&”、“!=”、“||”、“!”和“/”的先后顺序: 、 、 、 、 、 、 、 。 (a + b) > c * 2 && b != 5 || !(1 / 2)
11.若表达式(a + b) > c * 2 && b != 5 || !(1 / 2)中,a、b、c的定义和赋值为 int a = 3, b = 4, c = 2; 则表达式的值为 。
12.将下列数学式改写成C语言的关系表达式或逻辑表达式是 A) B) 。 A)a = b 或 a < c B)| x | > 4
13.请写出与以下表达式等价的表达式是 A) B) 。 A)!(x > 0) B)!0
第六章 循环控制
一、选择题
1.以下不是死循环的语句是
A)for( ; ; x += i) ; B)while(1) {x ++; }
C)for(i = 10; ; i++) sum += i;
D)for(; (c = getchar()) != ?\\n?; ) printf(“%c”, c); 2.下面程序的运行结果是
#include
int y=10;
do{y--;}while(--y); printf(\\n\); }
A)-1 B)1 C)8 D)0 3.以下程序段的输出结果是
int n = 10; while(n > 7) { n--;
pritnf(“%d”, n); }
A)1098 B)987 C)10987 D)9876 4.以下程序段的输出结果是
int x = 3; do
{ printf(“=”, x -= 2); } while(!(--x));
A) 1 B) 3 0 C) 1 -2 D)死循环 5.以下程序的输出结果是
main()
{ int i, sum;
for(i = 1; i < 6; i++)
sum += i;
printf(“%d\\n” sum); }
A)15 B)16 C)不确定 D)0 6.以下程序的输出结果是
main()
{ int y = 10 for(; y > 0; y --) if(y % 3 == 0)
{ pritnf(“%d”, --y); continue; } }
A)741 B)852 C)963 D)875421 7.有以下程序 main()
{ int i;
for(i=0; i<3; i++) switch(i)
{ case 1: printf(\ case 2: printf(\ default : printf(\ } }
执行后输出结果是
A) 011122 B) 012 C) 012020 D) 120
8.以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{ int n,k;
float score,sum,ave; sum=0.0;
for(n=1;n<=10;n++) {
for(k=1;k<=4;k++ ) {
scanf(\sum+=score; }
ave=sum/4.0;
printf(\ }
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。这条语句是
A) sum=0.0; B) sum+=score;
C) ave=sum/4.0 D) printf(\:%f\\n\9.若x是int类型变量,以下程序段的输出结果是 for(x = 3; x < 6; x++)
printf( (x%2)?(“**%d”):(“##%d\\n”),x);
A)**3 B)##3 C)##3 D)**3##4 ##4 **4 **4##5 **5 **5 ##5 10.以下程序的输出结果是
#include
int i;
for(i = 1; i < 5; i++) {
if(i % 2)
putchar(?); else
continue;
putchar(?>?); }
putchar (?#?); }
A)< > < > < > # B)> < > < > < # C)< > < > # D)> < > < # 11.以下叙述正确的是
A)do-while语句构成的循环不能用其它语句构成的循环来代替。 B)do-while语句构成的循环只能用break语句退出。
C)用do-while构成循环时,只有在while后的表达式为非零时结束循环 D)用do-while构成循环时,只有在while后的表达式为零时结束循环 12.以下程序的输出结果是
A)39 81 B)42 84 C)26 68 D)28 70 main()
{ int x, i;
for(i = 1; i <= 100; i++) { x = i;
if( ++x % 2 == 0) if( ++x % 3 == 0 ) if( ++x % 7 == 0) printf(“%d “, x);
}
printf(“\\n”);
}
13.以下程序段的输出结果是
int k, j, s;
for(k = 2; k < 6; k++, k++) { s = 1;
for(j = k; j < 6; j++)
s += j; }
printf(“%d\\n”, s);
A)9 B)24 C)15 D)10 14.以下程序段的输出结果是
int i, j, m = 0;
for(i = 1; i <= 15; i += 4) for(j = 3; j <= 19; j += 4) m++;
printf(“%d\\n”, m);
A)12 B)15 C)20 D)25
15.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。
#include
int i=0,j,k;
do{i++;k=316-13*i;}while(______); j=k/11;
printf(\); }
A)k/11 B)k C)k/11==0 D)k==0 16.在下述程序中,判断i > j共执行了多少次
#include