C语言程序题库_第1页
C语言程序题库_第2页
C语言程序题库_第3页
C语言程序题库_第4页
C语言程序题库_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、以下程序中给数组所有元素输入数据,请从选项中选择正确的答案填入下划

线处O

#include<stdio.h>

voidmain()

(

inta[10],i=0;

while(i<10)

scanf;

)

A、a+(i++)

B、a[i+l]

C>a+i

D、a[i++]

答案:A

2、以下叙述中错误的是o

A、while语句的循环体至少会被执行一次

B、break语句只能在循环体内和switch语句体内使用

C、执行continue语句时将跳过本次循环体中余下尚未执行的语句

D、在C语言中有三种可以构成循环结构的循环语句:while、do-while和for

答案:A

3、若有以下程序

4include<stdio.h>

voidmain()

(

inta=-2,b=0;

do

(

++b;

}while(a++);

printf("%d,%d\n”,a,b);

}

则程序的输出结果是o

A、0,2

B、1,3

C、1,2

D、2,3

答案:B

4、由以下while构成的循环,循环体执行的次数是ointk=0;while

(k=l)k++;

A、无限次

B、一次也不执行

C、执行一次

D、有语法错,不能执行

答案:A

5、以下程序的输出结果是o

Sinclude<stdio.h>

voidmain()

(

intnum=0;

while(num!=2)

(

num++;

printf("%d\n",num);

)

)

A、123

B、12

C、1234

D、1

答案:B

6、有以下程序

#include<stdio.h>

voidmain()

(

inti;

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

switch(i)

case1:printfi);

case2:printf('%d”,i);

default:printfi);

)

)

执行后输出的结果是o

A、011122

B、012

C、012020

D、120

答案:A

解析:表达式与逻辑值的对应关系;switch中没有break的执行顺序;default

的执行顺序。

7、有以下程序

^include<stdio.h>

voidmain()

(

inta=l,b=0;

for(;a<5;a++)

(

if(a%2=0)break;

b+=a;

}

printf("%d\n",b);

)

程序的运行结果是。

A、0

B、10

C、1

D、4

答案:C

8、有以下程序

^include<stdio.h>

voidmain()

(

intx,a=l,b=l;

while(1)

scanf("%d",&x);

if(x>0){a*=x;break;}

if(x<0){b*=x;continue;}

printf("%d,%d\n”,a,b);

)

)

程序运行时输入:-1-2012回车,则输出结果是o

A、1,2

B、2,2

C、-1,1

D、-2,1

答案:A

9、关于〃while(条件表达式)循环体",以下叙述正确的是

A、条件表达式的执行次数总是比循环体的执行次数多一次

B、循环体的执行次数总是比条件表达式的执行次数多一次

C、条件表达式的执行次数与循环体的执行次数一样

D、条件表达式的执行次数与循环体的执行次数无关

答案:A

10、下面程序的输出是o

#include<stdio.h>

voidmain()

(

char*s=*121342ir;

intvl=0,v2=0,v3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

(

default:v4++;

case'r:vl++;

case'3':v3++;

case'2':v2++;

)

printf(*vl=%d,v2=%d,v3=%d,v4=%d\n”,vl,v2,v3,v4);

)

A、vl=4,v2=2,v3=l,v4=l

B、vl=4,v2=9,v3=3,v4=l

C>vl=5,v2=8,v3=6,v4=l

D、vl=8,v2=8,v3=8,v4=8

答案:C

解析:字符串指针变量的初始化;字符串的结束标志字符:'\0';字符数组的应

用;表达式与逻辑值的对应关系;字符在计算机存放的是ASCII值;自增运算符的

应用;for循环的执行顺序;switch的执行顺序;default的功能。

11、t为int类型,进入下面的循环之前,t的值为0。while(t=l){..........}则以

下叙述中正确的是o

A、循环控制表达式的值为0

B、循环控制表达式的值为1

C、循环控制表达式不合法

D、以上说法都不对

答案:B

12、下面函数的功能是o

intfunl(char*x)

(

char*y=x;

while(*y++);

return(y-x-l);

)

A、求字符串的长度

B、比较两个字符串的大小

C、将字符串x复制到字符串y

D、将字符串x连接到字符串y后面

答案:A

13、有如下程序

voidmain()

(

intn=9;

while(n>6)

printfn);

)

}

该程序段的输出结果是

A、987

B、876

C、8765

D、9876

答案:B

14、有以下程序

Sinclude<stdio.h>

voidmain()

(

ints;

scanf&s);

while(s)

(

switch(s)

(

casel:printfs+5);

case2:printfs+4);break;

case3:printfs+3);

default:printfs+1);break;

)

scanf&s);

)

)

运行时,若输入123450回车,则输出结果是

A、6566456

B、66656

C、66666

D、6666656

答案:A

15、有以下程序段

inti,n;

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

(

n=%5;

switch(n)

(

case1:

case3:printf("%d\n",n);break;

case2:

case4:printf("%d\n",n);continue;

case0:exit(0);

)

printf("%d\n”,n);

)

以下关于程序段执行情况的叙述,正确的是

A、for循环语句固定执行8次

B、当产生的随机数n为4时结束循环操作

C、当产生的随机数n为1和2时不做任何操作

D、当产生的随机数n为0时结束程序运行

答案:D

16、有以下程序

ftinclude<stdio.h>

voidmain()

(

inta=l,b=2;

while(a<6)

|

b+=a;

a+=2;

b%=10;

)

printf("%d,%d\n”,a,b);

)

程序运行后的输出结果是O

A、5,11

B、7,1

C、7,11

D、6,1

答案:B

17、有以下程序

#include<stdio.h>

voidmain()

charch='D';

while(ch!='A')

(

ch一;

putchar(ch);

if(ch='A')break;

putchar(ch+1);

)

)

程序运行后的输出结果是。

A、CDBCA

B、BCA

C、CCBB

D、CB

答案:A

18、有以下程序

^include<stdio.h>

voidmain()

(

inta=7;

while(a-);

printf(级d\n”,a);

)

程序运行后的输出结果是

A、-1

B、0

C、1

D、7

答案:A

19、要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已

正确定义,以下正确的程序段是o

A、while((ch=getchar())!='N')printf(z/%c”,ch);

B、while(ch=getchar()='N')printf(“枇",ch);

C、while(ch=getchar()==,N,)printf('%c”,ch);

D、while(getchar(ch))==,N")printfC%c",ch);

答案:A

20、有以下程序

/include<stdio.h>

voidmain()

(

inty=10;

while(y-);

printf("y=%d\n”,y);

)

程序执行后的输出结果是O

A、y=0

B、y=-l

C、y=l

D、while构成无限循环

答案:B

21、有以下程序

#include<stdio.h>

voidmain()

(

inta,b;

for(a=0;a<3;a++)

(

scanf&b):

switch(b)

(

default:printf(*%d,*,b++);

case1:printf("%d,",b++);

case2:printf("%d,",b++);

)

)

)

程序运行时输入:123回车,则输出结果是.

A、1,2,3,

B、1,2,2,3,4,5,

C、1,2,3,2,3,3,

D、1,1,1,2,2,3

答案:B

解析:表达式与逻辑值的对应关系;switch中没有break的执行顺序;default

的执行顺序。

22、有以下程序

/include<stdio.h>

voidmain()

(

inta[]={2,3,5,4},i;

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

switch(i%2)

(

caseOcswitch(a[i]%2)

(

case0:a[i]++;break;

casel:a[i]一;

}

break;

case1:a[i]=0;

)

for(i=0;i<4;i++)printf(*%d”,

printf('\n");

)

程序运行后的输出结果是o

)

A、3344

B、2050

C、3040

D、0304

答案:C

23、请读程序:

ttinclude<stdio.h>

voidmain()

(

intnum=0;

while(num<=2)

(

num++;

printf(线d\n”,num);

)

)

上面程序的输出结果是

①1②12③123④1234

A①

B②

c③

D④

:C

24、有以下程序

#include<stdio.h>

voidmain()

(

intk=5,n=0;

while(k>0)

(

switch(k)

|

default:break;

case1:n+=k;

case2:

case3:n+=k;

printf("%d\n",n);

)

程序运行后的输出结果是

A、0

B、4

C、6

D、7

答案:D

25、有如下程序

^include<stdio.h>

voidmain()

intn=9;

while(n>6)

n——;

printf("%d",n);

)

)

该程序的输出结果是。

A、987

B、876

C、8765

D、9876

答案:B

26、有以下程序

/include<stdio.h>

voidmain()

(

inta,b;

for(a=0;a<3;a++)

(

scanf("%d",&b);

switch(b)

(

case1:printf("%d,",++b);

case2:printf(*%d,++b);

default:printf("%d,",++b);

)

)

)

执行时输入:123回车,则输出结果是o

A、2,3,4,3,4,4,

B、2,3,4,

C、2,2,2,3,3,4,

D、2,3,4,3,4,5,4,5,6

答案:A

解析:表达式与逻辑值的对应关系;switch中没有break的执行顺序。

27、有以下程序

#include<stdio.h>

voidmain()

intx=l,y=0,a=0,b=0;

switch(x)

(

case1:switch(y)

(

case0:a++;break;

case1:b++;break;

}

case2:a++;b++;break;

case3:a++;b++;

)

printf("a=%d,b=%d\n”,a,b);}

程序的运行结果是O

A、a=1,b=0

B、a=2,b=2

C、a=l,b=l

D>a=2,b=l

答案:D

28、有以下程序

^include<stdio.h>

voidmain()

(

inta=15,b=21,m=0;

switch(a%3)

(

case0:m++;break;

casel:m++;

switch(b%2)

(

default:m++;

case0:m++;break;

)

)

printf("%d\n",m);

程序运行后的输出结果是

A、1

B、2

C、3

D、4

答案:A

29、有以下程序

#include<stdio.h>

voidmain()

(

intm,n;

scanf("%d%d”,&m,&n);

while(m!=n)

(

while(m>n)

m=m-n;

while(n>m)

n=n-m;

)

printf("%d\n',m);

}

该程序的功能是o

A、计算m和n的差值

B、计算m和n的最小公倍数

C、计算m和n的最大公约数

D、找出m和n中的较大值

答案:C

30、对于while(!E)s;,若要执行循环体s,则E的取值应为:

A、E不等于0

B、E等于0

C、E不等于1

D、E等于1

答案:B

31、有以下程序

/include<stdio.h>

voidmain()

(

charch='1';

while(ch<'9')

(

printf('%d”,ch-'0');

ch++;

)

)

程序运行后的输出结果是O

A、1

B、01234567

C、0

D、12345678

答案:D

32、设变量n已正确定义并赋值,以下不能实现自然数1到n累加求和的程序

段是o

A、intsum=l,i=0;while(i<=n){i++;sum+=i;}

B、intsum=0,i=l;while(i<=n){sum+=i;i++;}

C>intsum=0,i=0;while(i<=n){i++;sum+=i;}

D、intsum=l,i=l;while(i<=n){i++;sum+=i;}

答案:A

33、以下叙述中正确的是o

A、只能在循环体内和switch语句体内使用break语句

B、当break出现在循环体中的switch语句体内时,其作用是跳出该switch语

句体,并中止循环体的执行

C、continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环

D、在while语句和do-while语句中无法使用continue语句

答案:A

34、以下程序中,while循环的循环次数是o

ttinclude<stdio.h>

voidmain()

inti=0;

while(i<10)

(

if(i<10)continue;

if(i==5)break;

i++;

A、1

B、10

C、6

D、死循环,不能确定次数

答案:D

35、以下程序的输出结果是

^include<stdio.h>

voidmain()

(

char*s=*121342ir;

intv[4]={0,0,0,0},k,i;

for(k=0;s[k];k++)

(

switch(s[k])

(

case'r:i=0;

case'2':i=l;

case'3':i=2;

case'4':i=3;

)

v[i]++;}

for(k=0;k<4;k++)

printf(*%d*,v[k]);

)

A、4211

B、0008

C、4678

D、8888

答案:B

解析:字符串指针变量的初始化;字符串的结束标志字符:'\0';字符数组的应

用;表达式与逻辑值的对应关系;字符在计算机存放的是ASCH值;自增运算符的

应用;for循环的执行顺序;switch的执行顺序;default的功能。

36、有以下程序

ttinclude<stdio.h>

voidmain()

(

inta=-l,b=-l;

while(++a)++b;

printf("%d,%d\n”,a,b);

)

程序的运行结果是o

A、0,0

B、0,-1

C、

D、结果不确定

答案:B

37、有以下程序

ttinclude<stdio.h>

voidmain()

(

intk=5;

while(—k)

printf("%d”,k-=3);

printf("\n");

}

执行后的输出结果是o

A、1

B、2

C、4

D、死循环

答案:A

38、若有以下程序

^include<stdio.h>

voidmain()

ints=0,n;

for(n=0;n4;n++)

(

switch(n)

(

default:s+=4;

case1:s+=l;

case2:s+=2;

case3:s+=3;

)

)

printf("%d\n",s);}

则程序的输出结果是o

A、24

B、18

C、10

D、6

答案:A

解析:表达式与逻辑值的对应关系;switch中没有break的执行顺序;default

的执行顺序。

39、设有以下两段代码

do

{while(条件表达式1)循环体A;}

while(条件表达式2);

while(条件表达式1)

(do

{循环体B;}

while(条件表达式2);}

其中,循环体A与循环体B相同,在相同条件下,以下叙述正确的是o

A、循环体A与循环体B的执行次数不确定

B、循环体A比循环体B的执行次数多一次

C、循环体A比循环体B的执行次数少一次

D、循环体A与循环体B的执行次数相同

答案:D

40、阅读以下函数

fun(char*sl,char*s2)

(

inti=0;

while(si[i]==s2[i])i++;

return(si[i]=='\0'?l:0);

)

此函数的功能是o

A、将s2所指字符串赋给si

B、比较si和s2所指字符串的大小,若si比s2的大,函数值为1,否则函数值

为0

C、比较si和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

D、比较si和s2所指字符串的长度,若si比s2的长,函数值为1,否则函数值

为0

答案:C

41、以下叙述中正确的是o

A、如果根据算法需要使用无限循环(即通常所称的〃死循环〃),则只能使用

while语句

B、对于“for(表达式1;表达式2;表达式3)循环体〃首先要计算表达式2的值,

以便决定是否开始循环

C、对于“for(表达式1;表达式2;表达式3)循环体〃,只在个别情况下才能转

换成while语句

D、只要适当地修改代码,就可以将do-while与while相互转换

答案:D

42、以下叙述中正确的是o

A、continue语句使得整个循环终止

B、break语句不能用于提前结束for语句的本层循环

C、使用break语句可以使流程跳出switch语句体

D、在for语句中,continue与break的效果是一样的,可以互换

答案:C

43、在以下给出的表达式中,与while(E)中的(E)不等价的表达式是。

A、(!E==0)

B、(E>0||E<0)

C、(E==0)

D、(E!=0)

答案:C

44、若有以下程序段,w和k都是整型变量:

w=k;LB:if(w==0)gotoLE;w一;printf("*");gotoLB;LE:...

则不能与上面程序段等价的循环语句是.

A>for(w=k;w!=0;w-)printf("*");

B、w=k;while(w--!=0)printf("*');w++;

C、w=k;do{w—;printf("*');}while(w!=0);

D>for(w=k;w;-w)printf('*");

答案:C

45、以下叙述中正确的是o

A、break语句只能用于switch语句体中

B、continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C、break语句只能用在循环体内和switch语句体中

D、在循环内使用break语句和continue语句的作用相同

答案:C

46、有以下程序

^include<stdio.h>

voidmain0

(

intc=0,k;

for(k=l;k<3;k++)

switch(k)

(

default:c+=k;

case2:c++;break;

case4:c+=2;break;

)

printf(*%d\n*,c);

)

程序运行后的输出结果是O

A、3

B、5

C、7

D、9

答案:A

47、有以下程序

ttinclude<stdio.h>

voidmainO

(

intx,y=0,z=0,t;

do

(

scanf&x);

t=x;

switch(t)

(

case0:break;

case1:y+=x;continue;

}

z+=x;

}while(x);

printf("%d,%d\n”,y,z);}

程序运行时输入:-11-220回车,则输出结果是o

A、1,1

B、1,0

C、1,-1

D、3,0

答案:C

解析:dowhile循环的执行顺序;switch的执行顺序;continue和break的功

能。

48、若有定义语句inta,b;doublex;则下列选项中没有错误的是。

A、switch(x%2){case0:a++;break;case1:b++;break;default:a++;

b++;}

B、switch((int)x/2.0){case0:a++;break;case1:b++;break;default:

a++;b++;}

C>switch((int)x%2){case0:a++;break;case1:b++;break;default:

a++;b++;}

D、switch((int)(x)%2){case0.0:a++;break;case1.0:

b++;break;default:a++;b++;}

答案:C

49、有以下程序

#include<stdio.h>

voidmain()

(

charc;

while((c=getchar())!='\n')

(

switch(c-'2')

(

case0:

case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

default:putchar(c+2);break;

}

)

printf("\n");

)

程序运行后从第一列开始输入以下数据2473回车程序的输出结果是

A、668977

B、4444

C、6677877

D、68766

答案:A

50、有以下程序

ttinclude<stdio.h>

voidmain()

(

inta,b;

for(a=0;a<3;a++)

(

scanf&b);

switch(b)

(

default:printf("%d,",++b);

case1:printf("%d,",++b);

case2:printf("%d,",++b);

)

)

)

执行时输入:123回车,则输出结果是»

A、2,3,4,

B、2,3,3,4,5,6,

C、2,2,3,4,4,4,

D、2,3,4,3,4,4,

答案:B

解析:表达式与逻辑值的对应关系;switch中没有break的执行顺序;default

的执行顺序。

51、下列叙述中正确的是o

A、在switch语句中必须使用default

B、在switch语句中,不一定使用break语句

C、break语句必须与switch语句中的case配对使用

D、break语句只能用于switch语句

答案:B

52、有如下程序

#include<stdio.h>

voidmainO

(

intx=l,a=0,b=0;

switch(x)

(

case0:b++;

case1:a++;

case2:a++;b++;

}

printf("a=%d,b=%d\n”,a,b);

)

该程序的输出结果是o

A、a=2,b=l

B、a=l,b=l

C、a=l,b=0

D、a=2,b=2

答案:A

53、有以下程序

Sinclude<stdio.h>

voidmain()

(

inta=3;

do

(

printf("%d,”,a-=2);

}

while(!(—a));

printf("\n");

)

程序运行后的输出结果是o

A、1,

B、1,-2,

C、3,0,

D、1,0

答案:B

54、有以下程序段

intn,t=l,s=0;

scanf&n);

do

(

s=s+t;

t=t-2;

)

while(t!=n);

为使此程序段不陷入死循环,从键盘输入的数据应该是

A、任意正奇数

B、任意负偶数

C、任意正偶数

D、任意负奇数

答案:D

55、有以下程序

#include<stdio.h>

voidmain()

inta,b;

for(a=0;a<3;a++)

(

scanf("%d"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论