C语言程序的设计习题集与答案.docx

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

C语言程序的设计习题集与答案.docx

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

C语言程序的设计习题集与答案.docx

C语言程序的设计习题集与答案

 

基础知识

一单项选择题(每题2分,共44分)

1以下叙述正确的是___。

AC程序基本组成单位是语句BC程序每一行只能写一个语句

C简单C语句必须以分号作为结束符D注释语句可以嵌套

2一个C语言程序是从___开始执行的。

A程序中第一个函数

B

名为main的函数

C包含文件(头文件)的第一个函数

D

程序中的第一个语句

3

请选出合法的

C语言赋值语句___。

Aa=b=58

Bi++;

Ca=58,b=58

Dk=int(a+b);

4

下面标识符中,合法的用户标识符是

___。

A1abc

Binclude

Ca-b-c123

Dchar

5

以下所列的C语言整形常量中,正确的是___。

A0x10

B0976

C076L

D01ff

6C语言中下列运算符的操作数必须为整型的是___。

A%

B++

C/

D=

7设a和b均为int型变量,则执行以下语句后的输出为___。

inta=20;intb=3;printf("%d\n",a+=(b%=2));

A20

B21

C0

D23

8已知inti;

,则执行语句

i=2.6;

后,i

的值为___。

A2

B3

C2.6

D

不确定

9以下合法的字符常量为___。

A'ab'

B'\482'

C'\'

D'\xaf'

10若y为int

型变量,则执行以下语句后,

y的值是___。

y=8;

y+=y-=y*y;

A64

B

–56

C

–112

D

–48

11以下合法的浮点型常量是___。

Ae-3B1.5e+2.4C3.14e+2LD3.14e+5

12设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知floata=2;intb=3;则执行下列语

句输出为___。

printf("%d",sizeof(a*b)+2/5);

A4

B8

C6

D7

13设int

型占2个字节,且inti=-2;,

则语句printf("%u",i);

的输出结果为___。

A0

B-2

C65534

D65535

14若x、y、z均为整型常量,且a=100,则执行下列语句后的z值为___。

x=a++;y=--a;z=x+y-a--;

A100

B400

C200

D300

15

若有以下定义和语句:

intu=010,v=0x10,w=10,printf("%d,%d,%d\n",u,v,w);

,则输出结果是___。

A8,16,10

B10,10,10

C8,8,10

D8,10,10

16

设x、y为int

型变量,则执行下列语句后,y的值是___。

x=5;y=x++*x++;y=--y*--y;

A529

B2401

C1209

D625

17假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表示代数式

abc1的表达式是____。

 

A1/a*b*cB1/(a*b*c)C1/a/b/(float)cD1.0/a/b/c

18若有定义:

inta=8,b=5,c;chard='A';,则执行语句c=a/b+d%a+0.5;后c的值为___。

A2B2.5

C3D类型不一致,无法计算,编译出错

19在有以下程序:

main()

{inti=10,j=1;i=i+j++;printf("%d,%d,%d\n",i++,++j,i);

}

执行后输出结果是___。

A12,3,11

B12,2,11

C11,3,11

D12,3,12

20

已知inti=65;

,则putchar(i);printf("%d",i);printf("%c",i);

的输出结果为___。

AA,65,A

B65,65,A

CA,A,65

DA,A,A

21

已知inty,a,i=1;

,则语句printf("%d,%d",-i++,(y=a=3.6*3));

的输出结果为___。

A-1,10

B-2,1.8

C0,3

D1,18

22有以下程序:

main()

{chara,b,c,d;a='\';b='\xbc';c='\0xab';d='\023';printf("%c%c%c%c\n",a,b,c,d);

}

编译时出现错误,以下叙述中正确的是___。

A程序中只有a='\';语句不正确Bb='\xbc';语句不正确

Cd='\023';语句不正确Da='\';和c='\0xab';语句都不正确

 

填空题(第1题2

分,其余每题3分,共56分)

1

设x为int型变量,请写出描述“x是偶数”的表达式是___。

2

已知scanf("a=%d,b=%d,c=%d",&a,&b,&c);,若从键盘输入2、3、4三个数分别作为变量

a、b、c的值则正确的输入形式是

___。

3

设有语句inta=3;

,则执行了语句a+=a-=a*a后,变量a的值是___。

4以下程序的输出结果是___。

main()

{inta=-10,b=-3;printf("%d\n",-a++);

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

}

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

main()

{charc;c=0362;

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

 

...

 

}

6以下程序段(n所赋的是八进制数)执行后输出结果是___。

intm=32767,n=032767;printf("%d,%o\n",m,n);

7字符串"\\name\\\101ddress\b\xaf"的长度为:

___。

8有以下程序段:

intm=0,n=0;charc='a';

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

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

若从键盘上输入:

10A10<回车>,则输出结果是___。

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

main()

{printf("%d,%o,%x\n",10,10,10);printf("%d,%d,%d\n",10,010,0x10);

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

}

10设a、b、c为整形变量,且a=2、b=3、c=4,则执行完语句a*=16+(b++)-(++c);之后,变量a的值为___。

11以下程序的输出结果为___。

main()

{intx=023;

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

}

12以下程序的结果为___。

main()

{inta=2,b=3,c,d;c=(a++)+(a++)+(a++);d=(++b)+(++b)+(++b);printf("a=%dc=%d\n",a,c);

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

}

13以下程序main()

{charch1,ch2,ch3;scanf("%c%c%c",&ch1,&ch2,&ch3);printf("%c%c%c%c%c",ch1,'#',ch2,'#',ch3);

}

当输入ABC时运行结果为【1】,当输入ABC时运行结果为【2】。

14若有定义:

floatx;,以下程序段的输出结果是___。

x=5.16894;

printf("%f\n",(int)(x*1000+0.5)/(float)1000);

15以下程序的功能是:

输入一个小写字母,输出对应的大写字母,将程序补充完整。

main()

{charch;

【1】/*从键盘输入一个小写字母*/

【2】/*将该字母转换为大写字母*/

 

...

 

【3】/*输出转换后的结果*/

}

16当运行以下程序时,在键盘上从第一列开始输入9876543210↙(此处↙代表回车),则程序的输出结果是___。

main()

{inta;floatb,c;scanf("%2d%3f%4f",&a,&b,&c);printf("\na=%d,b=%f,c=%f\n",a,b,c);

}

17以下程序的运行结果是___。

main()

{printf("%12.5f\n",123.1234567);printf("%12f\n",123.1234567);printf("%12.8d\n",12345);

printf("%12.8s\n","abcdefghij");

}

18运行以下程序时,如从键盘上输入abcdefg↙,则输出结果是___。

main()

{charch1,ch2,ch3;

ch1=getchar();ch2=getchar();ch3=getchar();

putchar(ch1);putchar(ch2);putchar(ch3);

putchar('\n');

19运行以下程序时,如从键盘上输入:

a=3,b=5↙35,35.12↙abc↙后,结果是___。

main()

{inta,b;floatx,y;charc1,c2;scanf("a=%d,b=%d",&a,&b);scanf("%f,%e",&x,&y);

scanf("%c%c%c",&c1,&c1,&c2);

printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);

}

 

顺序、选择结构程序设计

一单项选择题(每题2分,共40分)

1以下程序运行后的输出结果是___。

main()

{inta=0,b=0;

a=10;b=20;printf("a+b=%d\n",a+b);

}

Aa+b=10

Ba+b=30

C30

D

出错

2以下程序运行后的输出结果是___。

main()

{doubled=3.2;intx,y;

x=1.2;y=(x+3.8)/5.0;

 

...

 

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

}

A3B3.2C0D3.07

3以下程序运行后的输出结果是___。

main()

{doubled;

floatf;longl;

inti;

i=f=l=d=20/3;

printf("%d%ld%.1f%.1f\n",i,l,f,d);

}

A666.06.0

B666.76.7

C666.06.7

D666.76.0

4以下程序运行后的输出结果是___。

main()

{inta=1,b=2;

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

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

}

A1,2B1,1C2,2D2,1

5以下程序运行后的输出结果是___。

main()

{intx,y,z;

x=y=2;z=3;

y=x++-1;

printf("%d%d",x,y);

y=++x-1;

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

y=z---1;

printf("%d%d",z,x);

y=--z-1;

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

}

A3143

B3133

C3143

D2132

2414

2422

2412

1312

6以下程序运行后的输出结果是___。

main()

{intx,y,z;

x=y=1;

z=x++,y++,++y;

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

}

A2,3,3

B2,3,2

C2,3,1

D2,2,1

7以下程序运行后的输出结果是___。

main()

{intx=4,y=7;

x-=y;y+=x;

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

}

A47

B-3-3

C-311

D-34

8以下程序运行后的输出结果是___。

main()

 

...

 

{unsignedshorta=65536;intb;printf("%d\n",b=a);

}

A65536B0C1D-1

9以下程序:

#include

main()

{charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是___。

A1267B1256C1278D1245

10设a、b和c都是int型变量,且a=3,b=0,c=5,则以下值为0的表达式是___。

A'a'&&'b'Ba&&b||cCa&&b&&cDa||b&&c

11在嵌套使用if语句时,C语言规定else总是___。

A和之前与其具有相同缩进位置的if配对

B和之前与其最近的if配对

C和之前与其最近不带else的if配对

D和之前的第一个if配对

12若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为___。

Aa<>0B!

aCa=0Da

13以下程序运行后的输出结果是___。

main()

{inta=2,b=-1,c=2;if(a

if(b<0)c=0;

elsec++;

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

}

A0B1C2D3

14若k是int型变量,下面的程序段的输出结果是。

k=-3;

if(k<=0)printf("####")

elseprintf("&&&&");

A####B&&&&

C####&&&&D有语法错误,无输出

15以下程序运行后的输出结果是___。

main()

{inta=0,b=0,c=0,d=0;

 

...

 

if(a=1)b=1;c=2;

elsed=3;

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

}

A0,1,2,0B0,0,0,3C1,1,2,0D编译有错

16以下程序运行后的输出结果是___。

main()

{intx1=1,x2=0,x3=0;if(x1=x2+x3)printf("****");elseprintf("####");

}

A****B有语法错误C####D无输出结果

17当a=1,b=3,c=5,d=4时,执行下面一行程序后,x的值是___。

if(a

A1B2C3D6

18下列叙述中正确的是___。

Abreak语句只能用于switch语句

B在switch语句中必须使用default

Cbreak语句必须与switch语句中的case配对使用

D在switch语句中不一定使用break语句

19若有定义:

floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是___。

Aswitch(x)Bswitch((int)x);

{case1.0:

printf("*\n");{case1:

printf("*\n");

case2.0:

printf("**\n");}case2:

printf("**\n");}

Cswitch(a+b)Dswitch(a+b)

{case1:

printf("*\n");{case1:

printf("*\n");

case2+1:

printf("**\n");}casec:

printf("**\n");}

20以下程序运行后的输出结果是___。

#include

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("a=%d,b=%d\n",a,b);

}

Aa=2,b=1Ba=1,b=1Ca=1,b=0Da=2,b=2

 

二填空题(每题3分,共30分)

 

...

 

1以下程序运行后的输出结果是___。

#includemain()

{inti=010,j=10;printf("%d,%d\n",++i,j--);

}

2以下程序运行后的输出结果是___。

#includemain()

{printf("%d%d%d\n",'\0','\0','\0');}

3以下程序运行后的输出结果是___。

main()

{inti=5,j,k;

j=i+++i+++i++;

k=(++i)+(++i)+(++i);

printf("i=%5dj=%5d\nk=%5d\n",i,j,k);

}

4下面的程序运行时从键盘上输入9876543210<回车>,程序的输出结果是___。

main()

{inta;floatb,c;

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

printf("a=%d,b=%.1f,c=%.0f",a,b,c);

}

5下面程序的输出结果是___。

main()

{charch1,ch2;

ch1='A'+'5'-'3';ch2='A'+'6'-'3';

printf("%d,%c\n",ch1,ch2);

}

6执行下面的语句:

printf("%d\n",(a=3*5,a*4,a+5));,输出是___。

7以下程序运行后的输出结果是___。

main()

{intx=10;printf("%d,%d\n",--x,--x);}

8为表示关系x≥y≥z,应使用C语言表达式___。

9下面的程序段的输出结果是___。

intx=3;

if((x%2)?

printf("**%d",x):

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

10以下程序运行后的输出结果是___。

main()

{intm=5;switch(m/2)

{case1:

m++;case2:

m+=3;

case5:

m+=6;break;

default:

m-=7;

 

...

 

}

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

}

 

三程序填空(每空5分,共30分)

1下列程序的输出结果是16.00,请填空。

main()

{inta=9,b=2;

floatx=【1】,y=1.1,z;

z=a/2+b*x/y+1/2;

printf("%5.2f\n",z);

}

2完成以下程序,输入变量a,b,c的值,判断a,b,c能否组成三角形,计算三角形面积。

(公式为:

s

p(pa)(pb)(pc)其中p

abc

#include

2

【2】;

main()

{inta,b,c;

【3】

printf("pleaseinputthevalueofa,b,c")

scanf("%d%d%d",【4】);

if(【5】)

{【6】

s=sqrt(p*(p-a)*(p-b)*(p-c));

printf("Yes,thisisatriangle!

\ntheareais%.2f.\n",s);

}

elseprintf("No,thisisnotatriangle!

\n")

}

 

循环结构程序设计

一单项选择题(每题2分,共40分)

1以下程序中,while循环的循环次数是___。

main()

{inti=0;while(i<10)

{if(i<1)continue;if(i==5)break;

i++;

}

 

}

A1B10C6D死循环

2以下程序的执行结果是___。

main()

 

...

 

{intn=9;

while(n>6){n--;printf("%d",n);}

}

该程序的输出结果是

A987B876C8765D9876

3以下程序段,while循环执行的次数是___。

intk=0;

while(k=1)k++;

A无限次B有语法错C一次也不执行D执行1次

4以下叙述正确的是___。

Ado-while语句构成的循环不能用其它语句构成的循环来代替

Bdo-while语句构成的循环只能用

break语句退出

C用do-while

语句构成的循环,在

while后的表达式为非零时结束循环

D用do-while

语句构成的循环,在

while后的表达式为零时结束循环

5以下程序的执行结果是___。

main()

{inta,y;

a=10;y=0;

do{a+=2;y+=a;

print

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

当前位置:首页 > 高等教育 > 军事

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

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