C语言上机题库百科园第3章!南信大! 下载本文

第三章

1.为表示关系x≥y≥z,应使用的表达式是 A.(x>=y)&&(y>=z) B.(x>=y>=z)

C.(x>=y)AND(y>=z) D.(x>=y)&(y>=z)

2.有以下程序 main()

{ int i;

for(i=0; i<3; i++) switch(i)

{ case 1: printf(\ case 2: printf(\ default : printf(\ } }

执行后输出结果是 A.011122 B.120 C.012020 D.012

3.对 for(表达式1; ;表达式3) 可理解为()。 A.for(表达式1;1;表达式3) B.for(表达式1;0;表达式3)

C.for(表达式1;表达式1;表达式3) D.for(表达式1;表达式3;表达式3)

4.若i为整型变量,则以下循环执行次数是()。 for(i=2;i==0;) printf(\A.0次 B.1次 C.无限次 D.2次

5.有以下程序段 int n=0,p; do {

scanf(\ n++;

}while(p!=12345&&n<3);

此处do-while循环的结束条件是______。

A.p的值等于12345并且n的值大于等于3 B.p的值不等于12345并且n的值小于3 C.p的值不等于12345或者n的值小于3 D.p的值等于12345或者n的值大于等于3

6.有以下程序段 int n=0,p; do {

scanf(\ n++;

}while(p!=12345&&n<3); 以下描述中正确的是()。

A.do-while 循环中,根据情况可以省略 while

B.由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句

C.do-while 循环由do开始,用while结束,在 while(表达式)后面不能写分号 D.在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(\假\的操作

7.执行语句 for(i=1;i++<4;); 后变量 i 的值是()。 A.不定 B.3 C.4 D.5

8.有以下程序 main()

{

int a=5, b=4, c=3, d=2;

if(a>b>c)

printf(\

else if((c-1 >= d) == 1) printf(\

else printf(\ }

执行后输出结果是 A.2 B.4

C.编译时出错 D.3

main()

{int x=1,a=0,b=0;

switch (x)

{ case 0: b++; case 1: a++;

case 2: a++;b++;} printf(\}该程序的输出结果是( ) A.2,2 B.2,1 C.1,1 D.1,0

10.以下程序的功能是:按顺序读入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.ave=sum/4.0 B.sum=0.0; C.sum+=score;

D.printf(\:%f\\n\

11.运行以下程序后,输出的结果是

main()

{ int k = -3; if(k <= 0)

printf(\

else printf(\}

A.****

B.有语法错误不能通过编译

C.&&&&

D.****&&&&

12.下面的程序片断所表示的数学函数关系是

y = -1;

if(x != 0) y = 1; if(x > 0) y = 1; else y = 0;

A.

B.

C.

D.

13.以下程序的输出结果是

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”);

}

A.28 70 B.39 81 C.42 84

D.26 68

14.以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是( ) A.if((a>b)&&(b>c)) k=1; else k=0;

B.if((a>b)||(b>c)) k=1; else k=0; C.if(a>b) k=1; else if(b>c) k=1; else k=0;

D.if(a<=b) k=0; else if(b<=c) k=1;

15.为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定: else子句总是与()配对。 A.其之后最近的if B.其之前最近的if C.缩排位置相同的if D.同一行上的if

16.t为int类型,进人下面的循环之前,t的值为0 while( t=1 ) { ……}

则以下叙述中正确的是______。 A.以上说法都不对

B.循环控制表达式的值为1 C.循环控制表达式的值为0 D.循环控制表达式不合法

17.以下程序段的输出结果是

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.15 B.10 C.24 D.9