C语言程序设计试题及答案解析[1]全解 下载本文

内容发布更新时间 : 2024/11/7 18:09:57星期一 下面是文章的全部内容请认真阅读。

}

A)2 B)4 C)6 D)8

27.假定a和b为int型变量,则执行以下语句后b的值为:( ) a=1;b=10; do

{ b-=a; a++;

}while (b--<0);

A)9 B)-2 C)-1 D)8

28.设j为int型变量,则下面for循环语句的执行结果是:( for (j=10;j>3;j--) { if(j%3) j--; --j;--j;

printf(“%d ”,j); }

A)6 3 B)7 4 C)6 2 D)7 3

29.有以下程序 main()

{ int x, i; for(i=1;i<=50;i++) { x=i;

if(x%2==0)

{ x++;

if(x%3==0) { x++;

if(x%7==0) { x++;

printf(\} } }

} }

输出结果是:( )

A)28 B)27 C)42 D)26

30.假定所有变量均已正确说明,下列程序段运行后x的值是:( 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

31.执行表达式k = ( 10>12 ? 15 :6>5 ? 8 :9 )后,变量k的值为:( )

A. 9 B. 8 C. 15 D. 1

32.以下程序运行后,如果从键盘上输人5,则输出结果是:( )

main( ) {

int x;

scanf(\,&x); if(x--<5)

printf(\,x); else

printf(\,x++); }

A、3 B、4 C、5

33.以下程序段的输出结果是:( )

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)1 C)11

34.以下程序段的输出是:( )

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

35.以下程序段的输出结果是:( )

int i, sum;

for(i=1;i<6;i++)

sum+=sum;

printf(“%d\\n”,sum);

A)15 B)14 C)不确定

36.下面程序的输出是:( D ) main()

{ int x=3,y=6,a=0;

、6 D)10 D)25 )0 D D

while (x++!=(y-=1)) { a++;

if (y

printf(\ }

A) x=4,y=4,a=1 B) x=5,y=5,a=1 C) x=5,y=4,a=3 D) x=5,y=4,a=1

37.定义如下变量:int n=10;则下列循环的输出结果是:( ) while (n>7)

{ n--; printf(\ }

A) 10 9 8 B) 9 8 7 C) 10 9 8 7 D) 9 8 7 6

38.以下程序段的输出结果是:( ) int x=3; do

{ printf(\} while (!(--x));

A) 1 B) 3 0 C) 1 -2 D) 死循环

39.执行下面的程序后,a的值为:( ) main()

{ int a,b;

for (a=1,b=1;a<100;a++) {

if (b>=20) break; if (b%3==1)

{ b+=3; continue; } b-=5; } }

A) 7 B) 8 C) 9 D) 10

40.读程序: main()

{ int num=0; while (num<=2)

{ num++; printf(\ }

上面程序的输出结果是:( )

A) 1 B) 2 2 C) 1 2 3 D) 1 2 3 4

41.以下循环体的执行次数是:( ) main() { int i,j;

for(i=0,j=1;i<=j+1;i+=2,j--)

printf(\

}

A) 3 B) 2 C) 1 D) 0

42.在C语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是:

( )

A) switch B) continue C) break D) if

二、判断题:

1. ( )用1作while循环的判断条件,则循环一次也不执行。 2. ( )for循环表达式的括号内的3个表达式均不可以省略。 3. ( )语句while(!E);中的条件!E等价于E==0。 4. ( )语句while(E);中的条件E等价于E!=0。

5. ( )若有for( ; ; ){……},是指循环体执行0次。 6. ( )程序有死循环的时候,上机编译不能通过。 7. ( )强制终止死循环可以使用CTRL+BREAK组合键。 8. ( )执行for(I=0;I<3;I++);后I的值为2。

9. ( )执行for(I=0,j=0;I<2;I++);j=j+1;后j的值为1。 10. ( )所有类型的循环都可以进行嵌套使用。

11. ( )利用break语句可以提前终止循环的执行。 12. ( )利用continue语句可以提前终止循环的执行。

13. ( )break语句和continue语句不可以同时出现在同一个循环体内。 14. ( )switch语句中,每一个case的冒号后面都必须至少跟有一条语句 15. ( ) 关于if语句中,条件表达式只能是关系表达式或逻辑表达式 三、多选题

1、 关于if语句,下列叙述正确的是:( )

A.if语句中,条件表达式只能是关系表达式或逻辑表达式 B.if语句中,条件表达式的括号不可以省略

C.else子句不能作为一个独立的语句单独使用,必须是if语句的一部分。

D.if和else后面可以包含多个操作语句,此时要用一对大括号把这多个语句对括起来成为一个复合语句。

2、 以下4条语句,没有语法错误的是()

A.if (a>b) m =a; B.if (a);

C.if ((a=b)>=0) m=a; D.if ((a=b;)>=0) m=a;

3、 如果不加花括号表示else与if的配对关系,则else与if的匹配方法,不正确的是

A.else与它上面最远的if配对 B.else与它上面最近的if配对 C.else与离它最近的if配对

D.else与它上面最近的且没有和其他else配对的if配对

4、 关于条件运算符的叙述正确的是

A.条件运算符的优先级别比关系运算符和算术运算符都低 B.条件运算符是C语言中惟一的一个三目运算符 C.条件运算符的结合方向是“自右至左” D.条件运算符可以替代任何if语句的功能

5、 关于switch语句叙述正确的是

A.语句中,case的冒号后面允许没有语句。

B.switch语句中,每一个case的冒号后面都允许跟有多条语句。 C.在与switch语句配套的case语句中所使用的表达式可以是变量或常量

D.switch语句中,可以没有default语句。

6、 在计数循环for(表达式1;表达式2;表达式3)中,可以省略的表达式是:( A.表达式1 B.表达式2 C.表达式3 D.三个表达式都可以 E.一个都不能少

7、 下列语句段是死循环的是( )

A.n=100; B.s=33;

while(n) n=n0+1; while(s++%2+s%2) s++; C.for(;;); D.for(i=1;;)

if(--i)break; E.x=0; do{ x++;

}while(x>=0);

第7章 数组

一、选择题

1、若有以下说明语句:

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’,d,g; 则数值为4的表达式是:( )。

A、a[g-c] B、a[4] C、a[‘d’-‘c’] D、a[‘d’-c]

2、假设int型变量占两个字节的存储单元,若有定义: int x[10]={0,2,4};

则数组x在内存中所占字节数为:( )

A、3 B、6 C、10 D、20

3、下列合法的数组定义是:( )

A、int a[]=”string”; B、int a[5]={0,1,2,3,4,5}; C、char a=”string”; D、char a[]={0,1,2,3,4,5};

4、若给出以下定义:

char x[]=”abcdefg”;

char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’}; 则正确的叙述为:( )