C语言基础练习题(含答案) 联系客服

发布时间 : 星期日 文章C语言基础练习题(含答案)更新完毕开始阅读f8347a2eba4cf7ec4afe04a1b0717fd5360cb2a3

·29·

C.int k=1000;

do {++k;}while (k>=10000); D.int s=36; while (s) ;

--s;

12.若输入B,以下程序的运行结果为( )。

main()

{char grade;scanf(\switch(grade)

{case'A':printf(\case'B':

case'C':printf(\case'D':printf(\default:printf(\} }

A.>=85. B.>=60. C.>=60.<60.error. 13.列程序运行的情况是( )。

main() { int i=1,sum=0;

while(i<10)sum=sum+1;i++; printf(\}

A.i=10,sum=9 B.i=9,sum=9 C.i=2,sum=1 14.有以下语句:

i=1;

for(;i<=100;i++) sum+=i;

与以上语句序列不等价的有( )。

A. for(i=1; ;i++) {sum+=i;if(i==100)break;} B. for(i=1;i<=100;){sum+=i;i++;} C. i=1;for(;i<=100;)sum+=i;

D. i=1;for(; ;){sum+=i;if(i==100)break;i++;} 15.下面程序的运行结果为( )。

main() { int n;

for(n=1;n<=10;n++) { if(n%3==0)continue; printf(\} }

A.12457810 B.369 C.12 D.error. D.运行出现错误 D.12345678910

·30·

16.下面程序的运行结果是( )。

main() {int x,y,z;

x=0;y=z=-1; x+=-z---y;

printf(\}

A.x=4 B.x=0 C.x=2 D.x=3 17.标有/**/的语句的执行次数是( )。

int y,i;

for(i=0;i<20;i++) {if(i%2==0)continue; y+=i;/**/ }

A.20 B.19 C.10 D.9

18.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式。

A.只能用逻辑表达式 B.只能用关系表达式 C.只能用逻辑表达式或关系表达式 D.可用任意表达式

19.在以下给出的表达式中,与do-while(E)语句中的(E)不等价的表达式是( )。

A.(!E==0) B.(E>0||E<0) C.(E==0) D.(E!=0) 20.假定所有变量均已正确定义,下列程序段运行后x的值为( )。

k1=1;k2=2; k3=3; x=15; if(!k1)x--;else if(k2) if(k3)x=4;else x=3; A.14 B.4 C.15 D.3 21.执行下面语句的输出为( )。

int i=-1;

if(i<=0)printf(“* * * *\\n”); else printf(“% % % % \\n”);

A.* * * * B.% % % % C.% % % % c D.有错,执行不正确 22.下列程序的输出是( )。

#include main()

{ int i;char c;

for(i=0;i<=5;i++)

{c=getchar();putchar(c); } }

程序执行时从第一列开始输入以下数据,代表换行符。 u w xsta

A.uwxsta B.u C.u D.u

w w w x xs xsta 23.下列程序的输出为( )。

·31·

#include\main() { int i,j,x=0;

for(i=0;i<2;i++)

{x++;

for(j-0;j<=3;j++)

{if(j%2)continue;x++; } x++; }

printf(\}

A.x=4 B.x=8 C.x=6 D.x=12 24.下列程序的输出为( )。

#include main()

{int i,j,k=0,m=0; for(i=0;i<2;i++)

{ for(j=0;j<3;j++)k++;k-=j;} m=i+j;

printf(\}

A.k=0,m=3 B.k=0,m=5 C.k=1,m=3 D.k=1,m=5

25.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为

( )。

A.0 B.1 C.true D.非0

26. 在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的

值应为( )。

A.0 B.1 C.true D.非0 27.下列程序的输出为( )。

#include main()

{ int k=0;char c='A'; do

{switch(c++)

{ case'A':k++;break; case'B':k--;

case'C':k+=2;break;

case'D':k=k%2;continue; case'E':k=k*10;break; default:k=k/3; } k++; }

while(c<'G');

·32·

printf(\}

A.k=3 B.k=4 C.k=2 D.k=0 28.C语言的if语句嵌套时,if与else的配对关系是( )。

A. 每个else总是与它上面的最近的if配对 B. 每个else总是与最外的if配对 C. 每个else与if的配对是任意的 D. 每个else总是与它上面的if配对 29.下列程序的输出为( )。

#include main()

{int i=0,j=0,a=6;

if((++i>0)||(++j>0))a++;

printf(\}

A.i=0,j=0,a=6 B.i=1,j=1,a=7 C.i=1,j=0,a=7 D.i=0,j=1,a=7 30.下列程序段的输出结果为( )。

main() {int x=3; do

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

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

2 填空题:

1. 当输入19,2,21时下列程序运行的结果是_________。

main()

{int a,b,c,max;

printf(\scanf(\max=a;

if(max

printf(\}

2. 若输入字母C,程序输出结果为【1】;若输入字符*,程序将【2】。

#include main()

{char c1,c2; c1=getchar();

while(c1<97||c1>122)c1=getchar(); c2=c1-32;

printf(\