C语言习题集.docx

上传人:b****6 文档编号:8261508 上传时间:2023-01-30 格式:DOCX 页数:31 大小:38.76KB
下载 相关 举报
C语言习题集.docx_第1页
第1页 / 共31页
C语言习题集.docx_第2页
第2页 / 共31页
C语言习题集.docx_第3页
第3页 / 共31页
C语言习题集.docx_第4页
第4页 / 共31页
C语言习题集.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

C语言习题集.docx

《C语言习题集.docx》由会员分享,可在线阅读,更多相关《C语言习题集.docx(31页珍藏版)》请在冰豆网上搜索。

C语言习题集.docx

C语言习题集

C语言习题集

一、程序设计基本概念

1、以下叙述正确的是:

____。

A)C语言的源程序不必通过编译就可以直接运行。

B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。

C)C语言源程序经编译形成的二进制代码可以直接运行。

D)C语言中的函数不可以单独进行编译。

2、一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是__。

A)有0个或多个输入。

B)有0个或多个输出。

C)有穷性。

D)可行性。

3、以下叙述中正确的是_____。

A)C语言比其它语言高级。

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

C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式。

D)C语言出现的,具有其它语言的一切优点。

4、C语言中用于结构化程序设计的3种基本结构是____。

A)顺序结构、选择结构、循环结构

B)if、switch、break

C)for、while、do-while

D)if、for、continue

5、为解决某一特定问题而设计的指令序列称为____。

A)文档 B)语言  C)程序  D)系统

6、用高级程序设计语言编写的程序称为____。

A)目标程序  B)可执行程序 C)源程序 D)伪代码

7、能将高级语言编写的源程序转换成目标程序的是____。

A)编辑程序  B)编译程序  C)驱动程序  D)链接程序

8、下列叙述中,正确一条是____。

A)计算机语言中,只有机器语言属于低级语言。

B)高级语言源程序可以被计算机直接执行。

C)C语言属于高级语言。

D)机器语言是所用机器无关的。

二、C程序设计初步

1、以下4个用户定义标识符中,全部合法的一组是____。

A)_mainencludesin B)if–maxturbo C)txtREAL3COM D)intk_2_001

2、以下不能定义为用户标识符的是___。

A)scanf  B)Void  C)_3com  D)int

3、以下符合C语言语法的实型常量是____。

A)1.2E0.5  B)3.14159E  C).5E-3  D)E15

4、若以下选项中的变量已正确定义,则正确的赋值语句是___。

A)x1=26.8%3;  B)1+2=x2;  C)x3=0x12;  D)x4=1+2=3;

5、设有定义:

floata=2,b=4,h=3;以下C语言表达式中与代数式

计算结果不相符的是____。

A)(a+b)*h/2  B)(1/2)*(a+b)*h  C)(a+b)*h*1/2  D)h/2*(a+b)

6、下面叙述正确的是_____。

A)C程序中注释部分可以出现在程序中任何合适的地方。

B)花括号“{”和“}”只能作为函数体的定界符。

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

D)分号是C语句之间的分隔符,不是语句的一部分。

7、下列选项中可以作为C语言中合法整数的是____。

A)10110B  B)0386  C)0Xffa  D)x2a2

8、下列选项中非法的表达式是_____。

A)0<=x<100  B)i=j==0  C)(char)(65+3)  D)x+1=x+1

9、有以下程序:

main(){inta;charc=10;floatf=100.0;doublex;

a=f/=c*=(x=6.5);

printf(“%d%d%3.1f%3.1f\n”,a,c,f,x);}

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

A)16516.5B)1651.56.5  C)1651.06.5  D)2651.56.5

10、设有以下定义:

inta=0;doubleb=1.25;charc=’A’;

#defined2

则下面语句中,错误是____。

A)a++;  B)b++;  C)c++;  D)d++;

11、设有如下程序段:

intx=2002,y=2003;

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

则以下叙述正确的是____。

A)输出语句中格式说明的个数少于输出项的个数,不能正确输出。

B)运行时产生出错信息。

C)输出值为2002。

D)输出值为2003。

12、设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面2位,并将第3位四舍五入的是____。

A)x=x*100+0.5/100.0    B)x=(x*100+0.5)/100.0

C)x=(int)(x*100+0.5)/100.0  D)x=(x/100+0.5)*100.0

13、要求以下程序功能是计算:

main(){intn;floats;s=1.0;

for(n=10;n>1;n--)s=s+1/n;

printf(“%6.4f\n”,s);}

程序运行后输出结果错误,导致错误结果的程序行是____。

A)s=1.0;  B)for(n=10;n>1;n--)  C)s=s+1/n;  D)printf(“%6.4f\n”,s);

14、在一个C程序中____。

A)main函数必须出现在所有函数之前。

B)main函数可以在任何地方出现。

C)main函数必须出现在所有函数之后。

D)main函数必须出现在固定位置。

15、下列叙述中,正确的是____。

A)C语言中既有逻辑类型也有集合类型。

B)C语言中没有逻辑类型但有集合类型。

C)C语言中有逻辑类型但没有集合类型。

D)C语言中既没有逻辑类型也没有集合类型。

16、下列关于C语言用户标识符的叙述中正确的是____。

A)用户标识中可以出现下划线和中划线(减号)。

B)用户标识符中不可以出现中划线,但可以出现下划线。

C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头。

D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头。

17、下列关于单目运算符++、--的叙述中正确的是____。

A)它们的运算对象可以是任何变量和常量。

B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量。

C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量。

D)它们的运算对象可以是char型变量、int型变量和float型变量。

18、有以下程序:

main(){inti=10,j=1;printf(“%d,%d\n”,i--,++j);}

执行后输出结果是___。

A)9,2B)10,2  C)9,1  D)10,1

填空题

1、以下sum函数的功能是计算下列级数之和。

,请给函数中的各变量正确赋初值。

doublesum(doublex,intn)

{inti;doublea,b,s;

_________s=1.0;a=1;b=1;

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

{a=a*x;b=b*i;s=s+a/b;}

returns;}

2、若有语句:

inti=-19,j=i%4;printf(“%d\n”,j);

则输出结果是_____。

(注:

%运算结果的符号与%前面数据的符号相同)

同步练习

1、一个C语言的源程序中,_____。

A)必须有一个主函数      B)可能有多个主函数

C)必须有除主函数外其它函数  D)可以没有主函数

2、C语言程序总是从___开始执行。

A)第一条语句   B)第一个函数  C)主函数  D)子程序

3、对C语言源程序执行过程描述正确是____。

A)从main函数开始执行。

B)从程序中第一个函数开始执行,到最后一个函数结束。

C)从main函数开始执行,到源程序最后一个函数结束。

D)从第一个函数开始,到main函数结束。

4、以下选项中合法的用户标识符是____。

A)longB)_2TestC)3DmaxD)for

5、以下对C语言的描述中正确是_____。

A)C语言源程序中可以有重名的函数。

B)C语言源程序要求每行只能书写一条语句。

C)注释可以出现在C语言源程序中的任何位置。

D)最小的C语言源程序中没有任何内容。

6、在C语言中,不正确的int类型常数是____。

A)32768  B)0  C)037  D)0xAF

7、以下选项中属于C语言的数据类型是____。

A)复数型  B)逻辑型  C)双精度型  D)集合型

8、下列变量中定义合法的是____。

A)shor_a=1-1e-1;B)doubleb=1+5e2.5;C)longdo=0xfdal;D)float2_and=1-e-3;

9、C语言中运算对象必须是整形的运算符是____。

A)%=B)/C)=D)*=

10、设有intx=11;,则表达式(x++*1/3)的值是____。

A)3  B)4  C)11  D)12

11、若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是___。

A)1  B)2  C)2.0  D)12

12、若有以下程序段:

intc1=1,c2=2,c3;c3=1.0/c2*c1;,则执行后,c3中的值是___。

A)0  B)0.5  C)1  D)2

13、执行下列程序的输出结果是___(小数点后只定1位)。

main(){doubled;floatf;longm;inti;

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

printf(“%d%ld%f%f\n”,i,m,f,d);}

A)666.06.0B)6666.76.7C)666.06.7D)666.76.0

14、设有以下的变量定义:

inti=8,k,a,b;

unsignedlongw=5;

doublex=1.42,y=5.2;

则以下符合C语言语法的表达式是____。

A)a+=a-=(b=4)*(a=3)B)x%(-3)C)a=a*3=2D)y=float(i)

15、执行下列程序后的输出结果是___。

注:

此题应注意C

main(){doubled=3.2;intx,y;

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

printf(“%d\n”,d*y);}

A)3B)3.2C)0D)3.07

16、若变量已正确定义并赋值,下面符合C语言语法的表达式是____。

A)a:

=b+1  B)a=b=c+2  C)int18.5%3  D)a=a+7=c+b

17、假定有以下变量定义:

intk=7,x=12;,则值为3的表达式是___。

A)x%=(k%=5)  B)x%=(k-k%5)  C)x%=k-k%5  D)(x%=k)-(k%=5)

18、设x和y均为int型变量,则下列语句:

x+=y;y=x-y;x-=y;的功能是____。

A)把x和y按从大到小排列  B)把x和y按从小到大排列

C)无确定结果        D)交换x和y中的值

19、设x、y、z和k都是int型变量,则执行表达式:

x=(y=4,z=16,k=32)后,x的值为__。

A)4  B)16  C)32  D)52

二、填空题

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

voidmain(){unsignedshorta=65536;intb;printf(“%d\n”,b=a);}

2、若有定义:

inta=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是____。

c=(a-=(b-5));c=(a%11)+(b=3);

3、设有以下变量定义,并已赋确定的值,charw;intx;floaty;doublez;

则表达式:

w*x+z-y年求得的数据类型为__double或双精度型__。

三、顺序结构

典型考试题

1、以下4个选项中,不能看作一条语句的是___。

A){;}  B)a=0,b=0,c=0;  C)if(a>0);  D)if(b==0)m=a;n=2;

2、有以下程序:

main(){intx=102,y=012;

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

执行后输出结果是____。

A)10,01  B)02,12  C)102,10  D)02,10

3、有定义语句:

intx,y;,若要通过语句scanf(“%d,%d”,&x,&y);使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的是____。

A)11 12<回车>  B)11, 12<回车>  C)11,12<回车>  D)11,<回车> 12<回车>

4、若有以下程序段(n为八进制数)

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

执行后输出结果是____。

A)32767,32767  B)32767,032767  C)32767,77777  D)32767,077777

5、若有以下程序段:

intm=0xabc,n=0xabc;

m-=n;

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

执行后输出的结果是____。

A)0X0  B)0x0  C)0  D)0XABC

6、有以下程序段:

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

scanf(“%d%c%d”,&m,&c,&n);

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

若从键盘上输入:

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

A)10,A,10  B)10,a,10  C)10,a,0  D)10,A,0

7、设有定义:

inta,*pa=&a;,以下scanf语句中能正确为变量a读入数据的是____。

A)scanf(“%d”,pa);  B)scanf(“%d”,a);  C)scanf(“%d”,&pa);  D)scanf(“%d”,*pa);

填空题

1、有以下语句段:

intn1=10,n2=20;

printf(“_____”,n1,n2);\nn1=%d\nn2=%d

要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。

n1=10

n2=20

2、若有以下程序:

main(){inti,j;scanf(“i=%d,j=%d”,&i,&j);printf(“i=%d,j=%d\n”,i,j);}

要求给i赋值10,给j赋值20,则应该从键盘输入_i=10,j=20<回车>____。

3、若有以下程序:

此题要注意

main(){inta=4,b=3,c=5,t=0;

if(a

if(a

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

执行后输出结果是_503____。

练习

1、若有变量a,i已正确定义,且i已正确赋值,合法的语句是____。

A)a==1  B)++i  C)a=a++=5  D)a=int(i)

2、有如下程序:

main(){inty=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}

运行该程序的输出结果是____。

A)3 4  B)4 2  C)4 3  D)3 3

3、下列程序的运行结果是____。

main(){inta=2,c=5;printf(“a=%d,b=%d\n”,a,c);}

A)a=%2,b=%5  B)a=2,b=5  C)a=d,b=d  D)A=%d,b=%d

4、以下说法中正确的是____。

A)#define和printf都是C语句。

B)#define是C语句,而printf不是。

C)printf是C语句,但#define不是。

D)#define和printf都不是C语句。

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

main(){intk=17;printf(“%d,%o,%x\n”,k,k,k);}

A)17,21,0x11  B)17,17,17

C)17,0x11,021  D)17,21,11

6、若有说明:

long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是___。

A)*p=&a;scanf(“%ld”,p);  B)p=(long*)malloc(4);scanf(“%ld”,p);

C)scanf(“%ld”,p=&a);C)scanf(“%ld”,&a);

7、以下叙述正确是____。

A)输入项可以是一个实型常量,如:

scanf(“%d”,3.5)。

B)只有格式控制,没有输入项,能正确输入数据到内存,如:

scanf(“a=%d,b=%d);。

C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:

scanf(“%4.2f”,&f)。

D)当输入数据时,必须指明变量的地址,例如:

scanf(“%f”,&f);。

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

main(){inta=12,b=12;printf(“%d%d\n”,--a,++b);}

A)1010  B)1212  C)1110  D)1113

填空题

1、若想通过以下输入语句使得a=5.0,b=4,c=3,则输入数据的形式应该是_5.0,4,c=3<回车>或5,4,c=3<回车>_。

…….

intb,c;floata;

scanf(“%f,%d,c=%d”,&a,&b,&c);

……..

2、有4条语句:

x++;、++x;、x=x+1;、x=1+x;,执行后都使变量x中的值增1,写出一条同一功能的赋值语句(不得与列举的相同)____。

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

main(){inta=177;printf(“%o\n”,a);}

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

main(){inta=1,b=2;a=a+b;b=a-b;a=a-b;printf(“%d,%d\n”,a,b);}

四、选择结构

典型考题

1、以下程序段中与语句k=a>b?

(b>c?

1:

0):

0;功能等价的是____。

A)if((a>b&&(b>c))k=1;elsek=0; B)if((a>b)||(b>c))k=1;elsek=0;

C)if(a<=b)k=0;elseif(b<=c)k=1;  D)if(a>b)k=1;elseif(b>c)k=1;elsek=0;

2、有以下程序:

main(){chark;inti;

for(i=1;i<3;i++){

scanf(“%c”,&k);switch(k){case‘0’:

printf(“another\n”);case‘1’:

printf(“number\n”);}}}

程序运行时,从键盘输入:

01<回车>,程序执行后的输出结果是___。

case穿透

A)another

number

B)another

number

another

C)another

number

number

D)number

number

3、有以下程序:

main(){intx=0,y=5,z=3;while(z-->0&&++x<5)y=y-1;printf(“%d,%d,%d\n”,x,y,z);}

程序执行后的输出结果是____。

A)3,2,0  B)3,2,-1  C)4,3,-1  D)5,-2,-5

4、有定义语句:

inta=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不等于3的是C。

A)if(c

elseif(b

elsex=3;

B)if(a<3)x=3;

elseif(a<2)x=2;

elsex=1;

C)if(a<3)x=3;

if(a<2)x=2;

if(a<1)x=1;

D)if(a

if(b

if(c

5、有以下程序:

此题应注意短路逻辑

main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a

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

A)0,0  B)0,1  C)1,0  D)1,1

6、有以下程序:

注意case穿透的问题

main(){inti;

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

switch(i){

case1:

printf(“%d”,i);

case2:

printf(“%d”,i);

default:

printf(“%d”,i);}}}

执行后输出的结果是_____。

A)011122  B)012  C)012020  D)120

7、有以下程序:

main(){inti=1,j=1,k=2;if((j++||k++)&&i++)printf(“%d,%d,%d\n”,i,j,k);}

执行后的输出结果是____。

A)1,1,2  B)2,2,1  C)2,2,2  D)2,2,3

8、有以下程序:

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

if(a>b>c)printf(“%d\n”,d);

elseif((c-1>=d)==1)printf(“%d\n”,d+1);

elseprintf(“%d\n”,d+2);}

执行后输出结果是____。

A)2  B)3  C)4  D)编译时有错,无结果

填空题

1、有以下程序:

main(){intn=0,m=1,x=2;

if(!

n)x-=1;

if(m)x-=2;

if(x)x-=3;

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

执行后输出结果是____。

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

main(){intp=30;printf(“%d\n”,(p/3>0?

p/10:

p%3));}

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

main(){inta=1,b=3,c=5;

if(c=a+b)printf(“yes\n”);

elseprintf(“no\n”);

4、以下主程序运行后的输出结果是____。

main(){inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i%10){

case0:

m++;n++;break;

case10:

n++;break;

default:

k++;n++;}

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

5、有以下程序:

main(){intp,a=5;

if(p=a!

=0)printf(“%d”,p);

elseprintf(“%d\n”,p+2);}

执行后输出结果是____。

练习

1、有如下程序:

main(){inta=2,b=1,c=2;

if(a

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

该程序的输出结果是___。

A)0  B)1  C)2  D)3

2、有如下程序

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

当前位置:首页 > 小学教育 > 语文

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

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