C程序设计习题集_第1页
C程序设计习题集_第2页
C程序设计习题集_第3页
C程序设计习题集_第4页
C程序设计习题集_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计习题集

您的姓名:I填空题1*

第一、二章习题

i.c语言程序的基本组成单位是().[单选题]*

A.过程

B.函数(正确答案)

C.子程序

D.语句

答案解析:函数是组成C语言程序的基本单位

2.C语言程序中必不可少的函数是().[单选题]*

A.#include"stdio.h"

B.main()(E确答案)

C.printf()

D.scanf()

答案解析:C语言程序中必须有旦只能有一个main函数。

3.以下叙述正确的是().[单选题]*

A.在C程序中main。函数必须位于程序的最前面

B.C程序中的每行中只能写一条语句

C.C语言语句以分号结束正确答案)

D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误

答案解析:main函数可以在程序中的任意位置,程序中可以一行写多条语句,C

语言中的输入和输出通过函数实现的,注释内容是不参加编译的。

4.C语言规定,在一个源程序中,main函数的位置().[单选题]*

A.必须在最开始

B.必须在系统调用的库函数的后面

C.可以任意正确答案)

D.必须在最后

答案解析:C语言程序中的main函数可以在程序口的任意位置

5.以下叙述中正确的是().[单选题]*

A.C语言比其他语言高级

B.C语言可以不用编译就能被计算机识别执行

C.C语言程序中字母区分大小写。(正确答案)

D.C语言出现的最晚,具有其他语言的一切优点

答案解析:C语言与C++、Pyihon,C#等均属于高级语言。

C语言执行之前必须先编译。

C语言已经有70年历史。一门语言不可能具有其他语言的一切优点。

6.一个C程序可以包含任意多个不同名的函数,但有且仅有一个()[单选题]*

过程

主函数(正确答案)

函数

include

7.以下叙述正确的是()I单选题1东

A.C程序的书写格式是固定的,每行只能写一条语句

B.C程序中注释部分可以单独占一行(正确答案)

C.构成C程序的基本单位是函数,所有函数名都可以由用户命名

D.在对C语言程序进行编译时,可以发现注释行中的拼写错误

8.在C语言中,每个语句和数据定义是用()结束。[填空题]*

_________________________________(答案:;1;1分号)

9.C语言程序的基本组成单位是()?[填空题]*

_________________________________(答案:函数)

答案解析:函数是C程序的基本组成单位。

10.从循环执行的条件来看,循环结构可以分为()两种类型。用、分隔,不用写

“循环”二字。|填空题]*

_________________________________答案:当型、直到型I直到型、当型)

II.算法流程图的三种基本结构是()?用、分隔,不用写“结构”二字。I填空题]

*

〈答案:顺序、选择、循环I选择、顺序、循

环)

12.除自然语言、计算机语言外,算法的表示方法在有()这3种。每种

方法之间用、分隔。[填空题]*

答案:结构化流程图、N-S流程图、伪弋码

IN-S流程图、结构化流程图、伪代码)

第三章习题

13.以下叙述中错误的是()。[单选题]*

用户所定义的标识符允许使用关键字正猊答案)

用户所定义的标识符应尽量做到“见名知意

用户所定义的标识符必须以字母或下划线开头

用户定义的标识符中,大、小写字母代表不同标识

(a+b)=5

(a+b)++

c=(a-=a-5)E确答案)

19.关于球的体积公式,在C语言程序中表示正确的是().[单选题]*

4x3.14xrxrxr/3

4*3.14rA3/3

4*3.14*i•八3/3

4*3.14*r*r*r/3(正确答案)

20.若a为int类型,则表达(a=30,a++,a+12,a+=3)的值为().[单选题]*

46

45

33

34(正确答案)

21.表达式a+=a-=a=9的值是()。[单选题]*

9

-9

18

。(正确答案)

22.若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()

[单选题]*

2.5(正确答案)

2.75

3.5

0.0

23.以下程序运行后的输出结果是().

inta=1234;printf("%2d\n",a);[单选题]*

12

34

1234(正确答案)

提示出错,无结果

24.下列语句printf("%d\n”,(int)(2.5+3)/3);的输出结昊是().|单选题]*

1.67

2

1(正确答案)

0

25.已知字符A的ASCH代码值是65,字符变量cl的值是A]c2的值是执行

语句printf(”%d,%d”,cl,c2-2);B,输出结果是().[单选题]*

A,B

A,68

65,661正确答案)

65,68

26.若变量已正确定义为整型变量,执行语句scanf("%d,%d,%d”成kl,&k2,&k3);

时,正确的输入是()」单选题]*

2030,40

203040

20,3040

20,30,40(正确答案)

27.若变量已正确定义为int型,要给a、b、c输入数据,正确的输入语句是()。

[单选题]*

rcad(a,b,c);

scanf("%d%d%d,,,a,b,c);

scanf(”%d%d%d”,&a,&b,&c);(正确答案)

scanf("%D%D%D",%a,%b,%c);

28.若变量a,b,t已正确定义,要将a和b中的数进行交换,以下选项中不正确的语

句组是()o[单选题]*

a=a+b,b=a-b,a=a-b;

t=a,a=b,b=t;

a=t;t=b;b=a;(I确答案)

t=b;b=a;a=t;

29.以下程序的运行结果是()o

inta,b,c,d;

a=5;b=6;c=7;

d=++c+a+++b++;

printfC%d';d);[单选题]*

20

18

19(正确答案)

21

第四、五章习题

30.putchar函数可以向终端输出一个().[单选题]*

整型变量值

实型变量值

字符串

字符

31.charc;c=getchar();该程序段的功能是将用户从键盘输入的字符赋给变量co[判

断题]*

对「确答案)

32.用scanf()函数输入数据可以规定精度,所以scanf(“%6.2口&x)是正确的。[判断

题]*

错(正确答案)

33.若执行以下程序时从键盘正确输入3和4,则输出结果是()。

#include<stdio.h>

main()

iinta,b,s;

scanf("%d%d",&a,&b);

s=a;

if(a<b)s=b;

s♦=s;

printf(w%d\n\s);

[单选题]*

14

16

18

20

34.以下程序执行后的结果是()。

#include<stdio.h>

intmain()

{inta=5,b=4,c=3,d=2;

if(a>b>c)

printfC"jdVn”,d);

else

printfC%d\n”,d+1);

return0;

}[单选题]*

2

3(正确答案)

4

编译有误,无结果

35.有以下程序段:

intn=10;

while(n>7)

In-;

printf("%d\nw,n);

I

程序段的输出结果是

A>10B)9

C)10D)9

989

8

878

7

7

[单选题]*

A

B(正确答案)

C

D

36.有以下程序段:

intns10;

while(n>7)

printn—):

I

程序段的恰出结果是

A)10B)9

C)10D)9

989

8

878

7

7

6[单选题]*

A(正确答案)

B

C

D

37.已知inti=l;执行语句while(i++<=4);后,变量i的值为().[单选题]*

5(正确答案)

4

3

6

38.若有inti,k;,关于for(i=O,k=-l;k=l;k++)prinftfC*");执行情况的叙述中正确的是

0o[单选题]

循环体执行两次

循环体执行一次

循环体一次也不执行

无限循环(正确答案)

39.有以下程序

#include<stdio.h>

intmain()

{inta=l,b=2;

while(a<7){b+=a;a+=2;b%=10;}

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

return0;

)

程序运行后的输出结果是0」单选题1*

5,11

7,1(正确答案)

7,11

6,1

40.以下程序运行后的输出结果是().

#include<stdio.h>

intmain()

{inta=l,b=7;

do{

b/=2;a+=b:

}while(b>0);

printf1,'%d\nH,a);

return0;

I单选题1

2

3

4

5(正确答案)

41.有以下程序

#include<stdio.h>

intmain()

{inti;

fbr(i=l;i<=40;i++)

if(i++%5==0)

if(-H-i%8==0)

printfC%d\i);

return0;

}

执行后的输出结果是().[单选题]*

5

24

32(正确答案)

40

42.现有圆半径r,以下计算圆的面积的表达式正确的是()o[单选题]

7tr2

pi*r2

3.14*r*i•(正确答案)

3.14xrxr

43.若运行以下程序时,从键盘输入5,则输出结果是()o

#include<stdio.h>

intmain()

{intx;

scann"%d",&x);

if(x—<5)

printfC%d”,x);

else

return0;

![填空题]*

_________________________________答案:4)

44.执行下面程序,运行结果为().注意答案无空格,严格按输出格式写运行结果

或者填“死循环”。

#include<stdio.h>

intmain()

{inta,b,c,d,m,n;

a=7;b=c=d=5;m=n=0;

fbr(;a>b;-H-b)m-H-;

while(a>++c)n-H-;

prints”m=%d,n=%d”,m,n);

return0;

![填空题]*

_________________________________答案:m=2,n=l)

45.下面程序的输出结果是()。直接写运行结果或者‘死循环二

#include<stdio.h>

intmain()

{intk=0,sum=l;

do

{sum+=k-H-;}

while(k<5);

prints"%d”,sum);

return0;

![填空题]*

_________________________________答案:H)

46.下面程序的输出结果是()。

#include<stdio.h>

intmain()

{intx=10;

fbr(;x>0;x—)

if(x%3==0)

printffW,-x);

return0;

![填空题]*

_________________________________答案:852)

47.以下程序的功能是计算n!,请补充空格缺失语句,使程序实现原定功能。注意

两个语句之间不要用任何符号(包括空格)分隔。

#include<stdio.h>

intmain()

{inti,s,n;

()

fbr(i=1;i<-n;i-H-)()

printfCs=%d”,s);

return0;

![填空题]*

_________________________________答案:s=l;s*=i;|s=l;s=s*i;)

48.以下选项中,能表示逻辑值“假”的是()o[单选题]*

1

0.000001

0(正确答案)

100.0

49.当整型变量c的值不为2、4、6时,值也为“真”的表达式是()。[单选题]*

(c==2)||(c==4)||(c=6)

(c>=2&&cv=6)||(c!=3)||(c!=5)(正确答案)

(c>=2&&c<=6)&&!(c%2)

(c>=2&&c<=6)&&(c%2]=l)

50.以下程序的输出结果是()。

♦include<stdio.h>

main()

iinta=2,b=-1,c=2;

if(a<b)

if(b<0)c=0;

ebec+=1;

w

printf(**%d\n9c);

[单选题]*

0

1

2(正确答案)

3

51.有以下程序段,

if(x!=0)

if(x>0)yx1;

el$ey=0;

其旎正胸表示的数学函数关系是

-1(x<0)fl(x<0)

A),=<0(x=0)B)y=,-1(4=0)

U(x>0)0(x>0)

r0(X<0)r-1(x<0)

C)产T(*=0)D)y=,1(x=0)

[1(x>0)

,0(x>0)[单选题]*

A

B

c(正确答案:

D

52.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()[单选题]*

(!E==0)

(E>0||E<0)

(E==0)(正确答案)

(E!=0)

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

定义,以下正确的程序段是()[单选题]*

while((ch=getchar())!=,N)printf("%c”,ch);(正确答案)

while(ch=getchar()!=,N,)printf("%c”,ch);

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

while((ch=getchar())==,N')printf(u%cv,ch);

54.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):

(y++)中的条件表达式(x-y)等价的是()[单选题]*

(x-y>0)

(x-y<0)

(x-y<O||x-y>O)(j:确答案)

(x-y==O)

55.下述程序的输出结果是()。

#inlude<stdio.h>

main()

{intx=l,y=O,a=O,b=O;

switch(x)

{case1:switch(y)

{case0:a++;break;

case1:b-H-;break;

case2:a++;b++;brcak;

case3:a++;b-H-;

}

printft*,a=%d,b=%d",a,b);

}[单选题]*

a=l,b=0

a=2,b=l[确答案)

a=l,b=1

a=2,b=2

56.有以下程序,程序运行后的输出结果是()

main()

{inta=1,b=2,m=0,n=0,k;

k=(n=b>a)||(m=a);

printfi(,,%d,%d\n,,,k,Tn);

>[单选题]*

0,0

0,1

1。

57.有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是()

main()

{ints=O,a=l,n;

scanf(H%dH,&n);

do

{s+=l;a=a-2;}

while(a!=n);

printf(H%d\nn,s);

![单选题]*

-1

・3(正确答案)

-5

0

58.为表示关系gxvlO,正确的C语言表达式是()。注意不要添加括号。[填空

题]*

答案:x>=0&&x<10|x<10&&x>=0)

59.以下程序运行后的输出结果是()。

main()

{inti,m=0,n=0,k=0;

fbr(i=9;i<=ll;i-H-)

switch(i/10)

{case0:m-H-;n++;break;

case10:n-H-;break;

default:k++;n++;}

printf(,,%d%d%d\nM,m,n,k);

}[填空题]*

_________________________________答案:132)

60.以下程序的输出结果是()。

#include<stdio.h>

intmain()

{intk=0,m=0;

inti,j;

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

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

k-H-;

k・=j;

)

m=i+j;

printf(uk=%d,m=%d”,k,m);

return0;

1[单选题I*

k=0,m=3

k=0,m=5(止确答案)

k=1,m=3

k=l,m=5

61.以下程序的运行结果是()o

#include<stdio.h>

intmain()

{inti=0,j=10,k=2,s=0;

fbr(;;)

{i+=k;

{prints);break;}

s+=i;

}

return0;

}[单选题]*

6

30(正确答案)

20

62.以下程序的输出结果是()。

#include<stdio.h>

intmain()

{inti;

fbr(i=l;i<=5;i++)

{ifti%2)putcharfv');

elsecontinue;

putchar('>');

)

putchar(*#');

return0;

}[单选题]*

<><><>#正确答案)

«<>#

><><><#

<><>#

63.以下程序的运行结果是()。

#include<stdio.h>

intmain()

{inta=l,b=2,c=2;

while(a<b<c){t=a;a=b;b=t;c—

printfti4%d,%d,%d”,a,b,c);

return0;

}【单选题I*

1,2,0(正确答案)

1,2,1

2,1,1

2,1,0

64.以下程序中,while循环的循环次数是()o

#include<stdio.h>

intmain()

{inti=O;

while(i<10)

{

if(i<l)continue;

ifti=5)break;

}

return0;

}[单选题]*

10

1

6

死循环(正确答案)

65.以下程序段的输出结果是()o

#include<stdio.h>

intmaiii()

{inti=0,a=0;

whilc(i<20)

(

for(;;)

ilI(i%10)==0)break;

elsei—;

i+=ll;a+=i;

}

printf(kfc%d,\a);

return0;

}[单选题]*

21

32二确答案)

33

11

66.以下程序运行时正确输入235,则输出结果是()o

#include<stdio.h>

intmain()

{intnum;longk=l;

scanR**%d,\&num);

do

{

k*=num%10;

num/=10;

}while(num);

primfC%4',k);

return0;

}[填空题]*

_________________________________1答案:30)

67.以下程序运行时正确输入2473,则运行结果是()o

#include<stdio.h>

intmain()

{intc;

whilc((c=gctchar())!=*\n')

{switch(c-42,)

{case0:

case1:putchar(c+4);

case2:putchar(c+3);break;

case3:putchar(c+2);

default:putchar(c+l);break;}

}

return0;

}[填空题]*

_________________________________答案:657876)

68.下列关于C语言函数的描述中,错误的是()o[单选题]

函数的定义可以嵌套,但函数的调用不可以嵌套u

凡不加类型说明的函数,其返回值默认为整型

被调函数中可以使用多个return语句

可以定义有参函数,也可以定义无参函数

69.以下程序运行后输出结果是()。

#include<stdio.h>

voidiun(inti)

intm;

m=if

printfi("%d”,m);

intmain()

intm=7,n=5;

fun(n);

printf(M%dM,m);

return0;

[单选题]*

55

66

57(正确答案)

67

70.下面程序的输出结果是()o

#include<stdio.h>

intnum=4;

func()

(

intnum=10;

return-H-num;

)

voidmain()

(

printflH%d%d\nM,func(),num);

}[单选题]*

54

55

114(正确答案)

1111

71.以下程序运行结果是()。

#include<stdio.h>

voidmain()

{

intmax(floata,floatb);

floatx,y;

intz;

x=-4.6;y=-3.7;

z=max(x,y);

printfT%d\iT,z);

)

intmax(floata,floatb)

(

floatc;

if|a>b)

c=a;

else

c=b;

return(c);

}[单选题]

-3.7

・3(正确答案)

-4.6

-4

72.以下程序的输出结果是()。

#inckide<stdio.h>

intfunc(inta,intb)

{

return(a+b);

}

intmain()

{intx=6,y=7,z=8,r;

r=func((x-,y-H-,x+y),z-);

printfT%d/n”,r);

return0;

}[单选题]*

11

20

21(正确答案)

31

73.以下程序的输出结果是()。

#include<stdio.h>

intfiin(inta,intb,intc)

{

return(c=a*b);

}

intmain()

{intc;

ftin(2,3,c);

printf("%d/n”,c);

return0;

}[单选题]*

0

I

无定值(正确答案)

6

74.以下程序的运行结果是()。

#include<stdio.h>

doubleftintn)

{

inti;doubles=1.0;

for(i=l;i<=n;i-H-)s+=L0/i;

returns;

}

intmain()

{

inti,m=3;doublea=0.0;

for(i=0;i<m;i++)a+=fti);

printf(w%.lf,,a);

return0;

}[填空题]*

_________________________________答案:5.5)

75.以下程序的运行结果是()o

#include<stdio.h>

intf2(inta,intb)

(

return(c=(a*b)%3);

}

intfl(inta,inth)

{intc;

a+=a;b+=b;c=f2(a,b);

return(c*c);

}

intmain()

{

intx=l1,y=19;

prinlf("%d”,fl(x,y));

return0;

)[填空题]*

_________________________________〈答案:4)

76.下面pi函数的功能是根据以下公式返回满足精度eps要求的兀值。为实现函数

功能,空格处应该填写的是()O

n1121231234

•««

23353573579

doublepi(doubleeps)

{doubles=0.0,t=1.0;intn:

fbr(n=l;t>eps;n++)

{s+=t;;}

renim(2*s);

}[填空题]*

_________________________________答案•

t=n*t/(2*n+l)|t=t*n/(2*n+1)|t*=(float)n/(2*n+1))

第六章习题

77.有定义inta[6]={6,1,4,5,7,2);,下面说法正确的是[单选题]*

等价于inta{6}={6』45,7,2}

a数组中,a[6]元素的值为2

a数组中,值最小的元素下标为1(正确答案)

使用数组名a可以引用整个数组

78.下面对一维数组的初始化正确的是[单选题]*

inta[5]={0,1,2,3,4,5);

inta口二{0,123,4,5};(正确答案)

inta[5];a[5]={0,1,2,3,41;

chara[5]={0,1,2,3,4};

79.下面对二维数组的定义正确的是[单选题]*

inia[4]口={1,2,3,4,5,6};

inta口[3]={1,2,3,4,5,6};(正确答案)

inia[][]={{1,2,3),(4,5,6});

inta[4][3]={0,1,2,3,4,5,67,8,9,10,11』2};

80.以下程序段给数组所有元素输入数据,应在下划线处填入的是()o

#include<stdio.h>

intmain()

(

inta[10],i=0;

while(i<10)scanf(kk%dM,);

return0;

}[单选题]*

a+(i++)(正确答案)

&a[++i]

&a[i+l]

a+i

81.以下程序的输出结果是()o

#include<stdio.h>

intmain。

{

intn[2]={0},i,j,k=2;

fbr(i=0;i<k;i++)

for(j=0;j<k;j++)n|j]=n[i]+l;

printf(4t%dM,n[k]);

return0;

}1单选题I*

不确定的值(

3

2

1

82.以下程序的输出结果是()o

#include<stdio.h>

intfun(intb[],intn)

(

inti,r=l;

fbr(i=O;i<n;i++)r*=b[i];

returnr;

)

intmain()

|

inta[]={2,3,456,7,8,9};

printfV'%d",fun(a,3));

return0;

}[单选题]*

720

120

24(正确答案)

6

83.以下程序的输出结果是()。

#include<stdio.h>

intmain()

{

inti,x[3][3]={1,23,4,5,6,7,8,9);

fbr(i=0;i〈3;i++)printf(,,%d,\x[i][2-i]);

return0;

}I填空题1*

_________________________________(答案:357)

84.以下函数findmax的功能是返回s数组中最大元素的下标。为实现语句

findmax(s,10)正常调用该函数,1所示空格应填入()o

intfindmax(1)

{

intk,p;

fbr(p=0,k=p;p<t;p++)

if(s[p]>s[k])2;

returnk;

![填空题]*

_________________________________答案:intintt|ints|10|,intt)

85.为实现函数功能,上述函数中2处所示空缺应该填入()o[填空题]*

_________________________________答案:k=p)

86.以下程序的运行结果是()

#include<stdio.h>

voidswap1(intx,inty)

{intz;

z=x;x=y;y=z;

}

voidswap2(intb[],intx,inty)

{intz;

z=b[x];b[x]=b[y];b[y]=z;

}

intmain()

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

swapl(a[l],a[3]);

lbr(i=0;i<5;i-H-)printR””,a[i]);

swap2(a,1,3);

fbr(i=O;i<5;i++)printfi(4fc%d,\a[i]);

return0;

}[填空题]*

_________________________________答案:1230010320)

87.以下程序的运行结果是()。

#include<stdio.h>

voidfiin(inta[],intn)

{

inti,t;

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

{t=a[i];a[i]=a[n-l-i];afn-l-i]=t;}

)

intmain()

(

intb[]={123,4,5,6,7,8,9,10},i,s=O;

fun(b,8);

fbr(i=6;i<10;i++)s+=b[i];

printf(,,%dM,s);

return0;

}I填空题1*

_________________________________।答案:22)

第七章习题

88.以下语句不能正确定义并初始化数组s的是()。I单选题I

chars[4]={'a',优匕d,'TO'};(正确答案)

温馨提示

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

评论

0/150

提交评论