C语言程序的设计习题有答案1.docx

上传人:b****7 文档编号:9786634 上传时间:2023-02-06 格式:DOCX 页数:66 大小:45.69KB
下载 相关 举报
C语言程序的设计习题有答案1.docx_第1页
第1页 / 共66页
C语言程序的设计习题有答案1.docx_第2页
第2页 / 共66页
C语言程序的设计习题有答案1.docx_第3页
第3页 / 共66页
C语言程序的设计习题有答案1.docx_第4页
第4页 / 共66页
C语言程序的设计习题有答案1.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

C语言程序的设计习题有答案1.docx

《C语言程序的设计习题有答案1.docx》由会员分享,可在线阅读,更多相关《C语言程序的设计习题有答案1.docx(66页珍藏版)》请在冰豆网上搜索。

C语言程序的设计习题有答案1.docx

C语言程序的设计习题有答案1

《C语言程序设计》复习题

一、填空题

1、C语言的源程序必须通过编译和后,才能被计算机执行。

2、C语言的源程序必须通过编译和连接后,才能被计算机执行。

3、C语言中的标示符可分为关键字、拥护标示符和预定义标识符3类。

4、C语言中的标示符可分为关键字、用户标识符和预定义标示符3类。

5、在C语言中,用关键字float定义单精度实型变量。

6、在C语言中,用关键字double定义双精度实型变量。

7、在C语言中,用关键字char定义字符型变量。

8、在C语言的赋值表达式中,赋值好左边必须是变量。

9、设C语言中的一个int型数据在存中占2个字节,则int型数据的取值围为-32768--32768。

10、若有定义语句:

ints=6;则表达式s%2+(s+1)%2的值为1。

11、若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为-60。

12、若a是int型变量,则执行表达式a=25/3%3后a的值为2。

13、在程序运行过程中,其值不能被改变的量称为常量。

14、C程序中定义的变量,代表存中的一个存储单元。

15、C语言中,int类型数据字符占存2个字节。

16、C语言中,char类型数据占存1个字节。

17、C语言的字符常量是用单引号括起来的一个字符。

18、语句printf(“\n”);的作用是换行输出。

19、10/3的结果是3。

20、10%3的结果是1。

21、C语句的最后用;结束。

22、要使用putchar函数,在#include命令行中应包含的头文件是#include

23、要使用getchar函数,在#include命令行中应包含的头文件是#include

24、为表示关系|x|≥9;应使用的C语言表达式是x<=-9||x>=9。

25、为表示关系|x|≤9;应使用的C语言表达式是x>=-9&&x<=9。

26、C语言中用1表示逻辑值“真”。

27、C语言中用0表示逻辑值“假”。

28、当a=3,b=2,c=1时;表达式f=a>b>c的值是0。

29、以下程序段的输出结果是83。

intx=0123;

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

30、以下程序段的输出结果是291。

intx=0x123;

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

31、以下程序段的输出结果是d1。

intx=0321;

printf(“%x\n”,x);

32、若A的ASCII为65,则以下程序段的输出结果是D。

charx=’A’;

printf(“%c”,x+3);

33、以下程序段的输出结果是51。

charx=’0’;

printf(“%d”,x+3);

34、以下程序段的输出结果是00.500000

intn=2;floatx=2.0;

printf(“%d%f”,1/n,1/x);

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

intn=2;floatx=2.0;chara=’A’;

printf(“%f”,1/n+x+a);

36、以下程序段的输出结果是x=3.600000i=3。

floatx=3.6;inti;i=(int)x;

printf(“x=%fi=%d”,x,i);

37、以下程序段的输出结果是45.500000。

floatx=9.0;

printf(“%f”,x=45.5);

38、以下程序段的输出结果是-100。

intx=100,y=200;

printf(“%d”,(x+y,x-y));

39、以下程序的输出结果为-4.177774,fffc,65532。

main()

{shortI;

i=-4;

printf(“\n%d,%o,%x,%u”,i,i,i,i);

}

40、以下程序的输出结果为*3.1400003.142。

main()

{printf(“*%f,%4.3f\n”,3.14,3.1415);

}

41、以下程序的输出结果为000325,3.141596e+000。

main()

{inta=325;doublex=3.141596;

printf(“%06d,%+e\n”,a,x);

}

42、若从键盘上输入987654321,以下程序的输出结果是32.00。

main()

{inta;floatb,c;

scanf("%3d%3f%2f",&a,&b,&c);

printf("%6.2f",c);

}

43、以下程序段的输出结果是a=12。

inta=12;

if(a>12)printf(“a=%d”,a);

elseprintf(“a=%d”,a);

44、以下程序段的输出结果是***。

inta=1;

if(--a)printf(“###”);

elseprintf(“***”);

45、若变量已正确定义,以下语句段的输出结果是*%*#。

x=0;y=2;z=2;

switch(x)

{case0:

switch(y==2)

{case1:

printf(“*”);

case2:

printf(“%”);break;

}

case1:

switch(z)

{case1:

printf(“$);

case2:

printf(“*”);

default:

printf(“#”);

}

}

46、以下程序的输出结果是a=2,b=1

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

}

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

}

47、以下程序的运行结果是1。

main()

{intx,y,z;

x=3;y=3;

z=x==y;

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

}

48、以下程序的运行结果是1,0。

main()

{intx,y,z;

x=1;y=1;z=0;

x=x||y&&z;

printf(“%d,%d”,x,x&&!

y||z);

}

49、以下程序的运行结果是F。

main()

{if(2*2==5<2*2==4)

printf(“T”);

else

printf(“F”);

}

50、若运行时输入5999,则以下程序的运行结果是3635.4。

main()

{intx;floaty;

scanf(“%d”,&x);

if(x>=0&&x<=2999)y=18+0.12*x;

if(x>=3000&&x<=5999)y=36+0.6*x;

if(x>=6000&&x<=10000)y=54+0.3*x;

printf(“%6.1f”,y);

}

51、以下程序的输出结果是2。

main()

{intx,y;

x=y=2;

if(x==1)

if(x==2

printf(“%d\n”,x=x+y);

else

printf(“%d\n”,x=x-y);

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

}

52、以下程序的输出结果是20。

main()

{inta,b,c,d,x;

a=c=0;b=1;d=20;

if(a)d=d-10;

elseif(!

b)

if(!

c)x=15;

elsex=25;

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

}

53、以下程序的输出结果是-1。

main()

{nta=2,b=3,c;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

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

}

54、以下程序的输出结果是01。

main()

{intx,y,z;

x=3;

y=z=4;

printf(“%d,”(x>=y>=x)?

1:

0);

printf(“%d\n”,z>=y&&y>=x);

}

55、若a、b、c均已正确定义且a=0、b=2、c=3,则以下程序的输出是&#。

switch(a)

{case0:

switch(b==2)

{case1:

printf(“&”);break;

case2:

printf(“%”);break;

}

case1:

switch(c)

{case1:

printf(“$”);

case2:

printf(“*”);break;

default:

printf(“#”);

}

}

56、以下程序段的输出结果是**1**

57、**3**。

intx=1,y=0;

switch(x)

{case1:

switch(y)

{case0:

printf(“**1**\n”);break;

case1:

printf(“**2**\n”);break;

}

case2:

printf(“**3**\n”);

}

58、当运行以下程序时,从键盘输入:

right?

<回车>,则输出结果是sjhiu。

main()

{charc;

while((c=getchar())!

=’?

’)putchar(++c);

}

59、下面程序段的运行结果是**。

x=2;

do{

printf(“*”);x--;

}while(!

x==0);

60、下面程序段的运行结果是-5。

i=1;a=0;s=1;

do{a=a+s*i;s=-s;i++;}while(i<=10);

printf(“%d”,a);

61、下面程序段的运行结果是16,15。

main()

{inti,x,y;

i=x=y=0;

do

{++i;

if(i%2!

=0){x=x+i;i++;}

y=y+y++;

}while(i<=7);

printf(“%d,%d”,x,y);

}

62、下面程序段的运行结果是sum=19。

main()

{inti,t,sum=0;

for(t=i=1;i<=10;)

{sum+=t;++i;

if(i%3==0)t=-i;

elset=i;

}

printf(“sum=%d”,sum);

}

63、下面程序段的运行结果是*

64、#。

main()

{inti;

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

switch(i%2)

{case0:

i++;printf(“#”);break;

case1:

i+=2;printf(“*”);

default:

printf(“\n”);

}

}

65、下面程序段的运行结果是****#。

main()

{inti,j=4;

for(i=j;i<=2*j;i++)

switch(i/j)

{case0:

case1:

printf(“*”);break;

case2:

printf(“#”);

}

}

66、以下程序的运行结果是358。

main()

{intx[5],i;

x[0]=1;x[1]=2;

for(i=2;i<5;i++)x[i]=x[i-1]+x[i-2];

for(i=2;i<5;i++)printf(“%d”,x[i]);

}

67、以下程序段的输出结果是8。

intk=1,n=4,m=1;

while(k<=--n)m*=2;

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

68、(6.3p107)以下程序段输出结果是0。

main()

{intx=2;

while(--x);

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

}

69、以下程序段输出结果是16。

inti=0,sum=1;

do{sum+=i;}while(i++<5);

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

70、以下程序段的输出结果是11。

ints=1,k=1;

for(;k<=10;k++)s=s+s/k;

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

71、以下程序段的输出结果是**3##4**5

intx;

for(x=3;x<6;++x)printf((x%2)?

("**%d"):

("##%d"),x);

72、以下程序的输出结果是7/13=0.538461

main()

{

longa=7,b=13,c,i;

printf("\n%ld/%ld=%ld.",a,b,a/b);

c=a%b;

a=c;

do

{

a=a*10;

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

{

if(a

}

}

while(a!

=c);

}

73、以下程序的输出结果是100

#defineN100

main()

{

inta[N],i,j,k;

for(i=2;i

a[i]=i;a[N-1]=0;

for(i=2;a[i];i++)

for(j=i+1;a[j];j++)

if(a[j]%a[i]==0)

for(k=j;a[k];k++)

a[k]=a[k+1];

while(a[i])

printf("%4d",a[i++]);

}

74、以下程序的输出结果是14。

main()

{intarr[10],i,k=0;

for(i=0;i<10;i++)arr[i]=i;

for(i=0;i<4;i++)k+=arr[i]*i;

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

}

75、以下程序的输出结果是7

fun(intx)

{intp;

if(x==0||x==1)return(3);

p=x-fun(x-2);

returnp;

}

main()

{printf("%d\n",fun(9));}

76、以下程序的输出结果是120。

fun(intnum)

{intk=1;

do

{k*=num%10;num/=10;}

while(num);

returnk;

}

main()

{intn=456;printf(“%d\n”,fun(n));}

77、以下程序的输出结果是120。

funa(inta,intb)

{returna%b;}

funb(inta,intb)

{intc;

a+=a;b+=b;

c=funa(a,b);

returnc*c;

}

main()

{intx=15,y=7;

printf(“%d\n”,funb(x,y));

}

78、以下程序段的输出结果是变量ab的地址。

int*var,ab;

ab=100;var=&ab;ab=*var+10;

printf(“%x\n”,var);

79、以下程序的输出结果是7010。

intast(intx,inty,int*cp,int*dp)

{*cp=x+y;

*dp=x-y;

}

main()

{inta,b,c,d;

a=40;b=30;

ast(a,b,&c,&d);

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

}

80、以下程序的输出结果是18。

main()

{inta[]={2,4,6,8,10},*p=a,y,z=0;

for(y=0;y<5;y+=2)

z+=*(p+y);

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

}

81、以下程序的输出结果是9。

main()

{inta[]={1,3,5,7,9},*prt=&a[0],x=4,y,z;

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

z=(*(prt+y),--x)?

*(prt+y):

x;

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

}

82、若输入3个整数3,2,1,则以下程序的输出结果是2721。

voidsub(intn,intuu[])

{intt;

t=uu[n--];t+=3*uu[n];

n++;

if(t>=10)

{uu[n++]=t/10;uu[n]=t%10;}

elseuu[n]=t;

}

main()

{inti,n,aa[10]={0};

scanf(“%d,%d,%d”,&n,&aa[0],&aa[1]);

for(i=1;i

for(i=0;i<=n;i++)printf(“%d”,aa[i]);

}

83、下面程序的输出结果是6

F(char*s)

{

char*p=s;

while(*++p!

='\0');

return(p-s);

}

main()

{printf("%d\n",F("ABCDEF"));}

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

fun(char*s,chara)

{

intj=0;

while(s[j]!

='\0')

if(a==s[j++])break;

if(s[j]!

='\0')

returnj;

else

return-99;

}

main()

{char*s="zxcevbn";

printf("%d\n",fun(s,'v'));

}

85、(11.3p263)以下程序的输出结果是6

main()

{structcmplx{intx;inty;}cnum[2]={1,3,2,7};

printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);}

86、

二、单项选择题(每题1分,共30分)

1、以下不符合C语法的赋值语句是【C】

A.m=(2+1,m=1);B.m=n=0;

C.m=1,n=2D.n++;

2、设x、y均为float型变量,则以下不合法的赋值语句是【B】

A.++x;B.y=(x%2)/10;

C.x*=y+8;D.x=y=0;

3、逻辑运算符两侧运算对象的数据类型【D】

A.只能是0或1B.只能是0或非0正数

C.只能是整型或字符型数据D.可以是任何类型的数据

4、下列关系表达式中结果为假的是【C】

A.0!

=1B.2<=8

C.(a=2*2)==2D.y=(2+2)==4

5、判断char型变量ch是否为大写字母的正确表达式是【C】

A.’A’<=ch<=’Z’B.(ch>=’A’)&(ch<=’Z’)

C.(ch>=’A’)&&(ch<=’Z’)D.(‘A’<=ch)AND(‘Z’>=ch)

6、设x、y和z是int型变量,且x=3,y=4,z=5,则下列表达式中值为0的是【D】

A.’x’&&’y’B.x<=y

C.x||y+z&&y-zD.!

((x

z||1)

7、一个C程序的执行是从【A】

A.本程序的main函数开始,到main函数结束

B.本程序的第一个函数开始,到本程序文件的最后一个函数结束

C.本程序的main函数开始,到本程序文件的最后一个函数结束

D.本程序的第一个函数开始,到本程序main函数结束

8、以下叙述正确的是【C】

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

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

C.C语言本身没有输入输出语句

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

9、以下叙述不正确的是【D】

A.一个C源程序可由一个或多个函数组成

B.一个C源程序必须包含一个main函数

C.C程序的基本组成单位是函数

D.在C程序中,注释说明只能位于一条语句的后面

10、C语言规定,在一个源程序中,main函数的位置【C】

A.必须在最开始B.必须在系统调用的库函数的后面

C.可以任意D.必须在最后

11、一个C语言程序是由【B】

A.一个主程序和若干子程序组成B.函数组成

C.若干过程组成D.若干子程序组成

12、设C语言中的一个int型数据在存中占2个字节,则unsingedint型数据的取值围为【C】

A.0-255B.0-32767

C.0-65535D.0-2147483647

13、下列4组选项中,均是C语言关键字的选项是【B】

A.autoenumincludeB.switchtypedefcontinue

C.signedunionscanfD.ifstructtype

14、下列4组选项中,均不是C语言关键字的选项是【A】

A.defineIFtypeB.getccharprintf

C.includescanfcaseD.whilegopow

15、(2.4)下面4个选项中,均是不合法的用户标示符的选项是【C】

A.AP_0doB.floatla0_A

C.b-agotointD._123tempINT

16、C语言中的标示符只能由字母、数字和下划线3种字符组成,且第一个字符【C】

A.必须为字母B.必须为下划线

C.必须为字母或下划线D.可以是字母、数字和下划线中的任一种字符

17、下面4个选项种,均是合法整型常量的选项是【A】

A.160-0xffff0011B.-0xcdf01a0xe

C.-01986,0120668D.-0x48a2e50x

18、下面4个选项种,均是不合法的整型常量的选项是【D】

A.—00f1-0xffff0011B.-0Xcdf01712,456

C.-0189995e2D.-0x48eg-06803f

19、下面4个选项种,均是不合法的浮点数的选项是【B】

A.160.0.12e3B.1232e4.2.e5

C.-.18123e40.0D.-e3.2341e3

20、在C语言中,int、char和short三种类型数据在

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1