《C语言基础》专升本各章节主观题练习汇总.docx

上传人:b****6 文档编号:5996286 上传时间:2023-01-02 格式:DOCX 页数:56 大小:45.35KB
下载 相关 举报
《C语言基础》专升本各章节主观题练习汇总.docx_第1页
第1页 / 共56页
《C语言基础》专升本各章节主观题练习汇总.docx_第2页
第2页 / 共56页
《C语言基础》专升本各章节主观题练习汇总.docx_第3页
第3页 / 共56页
《C语言基础》专升本各章节主观题练习汇总.docx_第4页
第4页 / 共56页
《C语言基础》专升本各章节主观题练习汇总.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

《C语言基础》专升本各章节主观题练习汇总.docx

《《C语言基础》专升本各章节主观题练习汇总.docx》由会员分享,可在线阅读,更多相关《《C语言基础》专升本各章节主观题练习汇总.docx(56页珍藏版)》请在冰豆网上搜索。

《C语言基础》专升本各章节主观题练习汇总.docx

《C语言基础》专升本各章节主观题练习汇总

《C语言基础》专升本各章节主观题练习汇总

第二章数据类型和运算符

二、填空题

1.C源程序的基本单位是________。

2.一个C源程序中至少应包括一个________。

3.在一个C源程序中,注释部分两侧的分界符分别为________和________。

4.若x、i、j、和k都是int型变量,则计算下面表达式后,x的值为________。

x=(i=4,j=16,k=32)

5.在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为________;

一个double型数据在内存中所占的字节数为________。

6.若有以下定义,则计算表达式y+=y-=m*=y后的y值是________。

intm=5,y=2;

7.设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为________。

8.在C语言中的实型变量分为两种类型,它们是________和________。

9.C语言所提供的基本数据类型包括:

单精度型、双精度型、________、________、和________。

10.若s是int型变量,则下面表达式的值为________。

s%2+(s+1)%2

11.若a是int型变量,则下面表达式的值为________。

(a=4*5,a*2),a+6

12.若x和a均是int型变量,则计算表达式

(1)后的x值为________,计算表达式

(2)后的x值为________。

(1)x=(a=4,6*2)

(2)x=a=4,6*2

13.若a是int型变量,且a的初值为6,则计算表达式后a的值为________。

a+=a-=a*a

14.若a是int型变量,则计算表达式后a的值为________。

a=25/3%3

15.若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为________,n的值为________。

x+=n++

16.若有定义:

intb=7 ;floata=2.5,c=4.7;则下面表达式的值为________。

a+(int)(b/3*(int)(a+c)/2)%4

17.若有定义:

inta=2,b=3;floatx=3.5,y=2.5;则下面表达式的值为________。

(float)(a+b)/2+(int)x%(int)y

18.若有定义:

charc=‘\010’;则变量c中包含的字符个数为________。

19.若有定义:

intx=3,y=2;floata=2.5,b=3.5;则下面表达式的值为________。

(x+y)%2+(int)a/(int)b

20.若x和n均是int型变量,且x的初值为12,n的初值为5,则计算表达式后x的值为________。

x%=(n%=2)

21.假设所有变量均为整型,则表达式

(a=2,b=5,a++,b++,a+b)的值为________。

22.C语言中的标识符只能由三种字符组成,它们是________,________和________。

三、写出程序的运行结果

1、有以下程序

main()

{  intm=12,n=34;

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

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

程序运行后的输出结果是

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

main()

{intm=3,n=4,x;

  x=-m++;

  x=x+8/++n;

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

第三章顺序结构程序设计

二、填空题

1、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行变换。

请填空。

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

2、若a和b均为int型变量,则以下语句的功能是________。

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

3、有一输入函数scanf("%d",k);则不能使float类型变量k得到正确数值的原因是________和________。

4、已有定义inti,j;floatx;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是________。

scanf("%o%x%e",&i,&j,&x);

5、以下程序运行时若从键盘输入:

102030<回车>。

输出结果是。

#include

main(){inti=0,j=0,k=0;

scanf("%d%*d%d",&i,&j,&k);

printf("%d%d%d\n",i,j,k);}

6、有以下语句段

intn1=10,n2=20;

printf(“”,n1.n2);

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

n1=10

n2=20

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

inti=9;printf("%o\n",i);

8、若有语句

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

则输出结果是  。

9、若有程序

main(){inti,j;scanf("i=%d,j=%d",&i,&j);

printf("i=%d,j=%d\n",i,j);}

要求给i赋10,给j赋20,则应该从键盘输入  。

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

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

三、写出程序的运行结果

1、有以下程序执行后输出结果是

main(){intx=102,y=012;printf(“%2d,%2d\n”,x,y);}

2、有以下程序

main(){intm=0256,n=256;printf("%o%o\n",mn,n);}

运行后的输出结果是

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

main(){intx=0210;printf("%x\n",x);}

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

main(){inta,b,c;a=25;b=025;c=0x25;

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

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

main(){inta=0;a+=(a=8);printf("%d\n",a);}

6.以下程序的输出结果为________。

main(){printf("*%f,%4.3f*\n",3.14,3.1415);}

7.以下程序的输出结果为________。

main(){charc=’x’;

printf("c:

dec=%d,oct=%o,hex=%x,ASCII=%c\n",c,c,c,c);}

8.以下程序的输出结果是________。

main(){intx=1,y=2;

printf("x=%dy=%d*sum*=%d\n",x,y,x+y);

pringf("10Squaredis:

%d\n",10*10);}第四章选择结构程序设计

二、填空题

1.当a=3,b=2,c=1时,表达式f=a>b>c的值是________。

2.当a=5,b=4,c=2时,表达式a>b!

=c的值是________。

3.在C语言中,表示逻辑“真”值用________。

4.设y为int型变量,请写出描述“y是奇数”的表达式________。

5.C语言提供的三种逻辑运算符是________、________、________。

6.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式________。

7.设x,y,z均为int型变量,请写出描述“x,y和z中有两个为负数”的表达式________。

8.已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A

C>B的值是________。

9.若a=6,b=4,c=2,则表达式!

(a-b)+c-1&&b+c/2的值是________。

10.若a=2,b=4,则表达式!

(x=a)||(y=b)&&0的值是________。

11.若a=1,b=4,c=3,则表达式!

(a

c&&1的值是________。

12.若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是________。

13.若a=5,b=2,c=1,则表达式a-b

14.设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是________。

15.条件“2

16.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!

=b)&&(n=b>c)后;n的值为________,m的值为________。

17.有intx,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为________。

18.有intx,y,z;且x=3,y=-4,z=5,则以下表达式的值________。

(x>y)+(y!

=z)||(x+y)&&(y-z)

19.有intx,y,z;且x=3,y=-4,z=5,则表达式x++-y+(++z)的值为________。

20.有inta=3,b=4,c=5;则表达式a||b+c&&b==c的值为________。

21.有inta=3,b=4,c=5,x,y;则以下表达式的值为________。

(x=a)&&(y=b)&&0

22.有inta=3,b=4,c=5;则以下表达式的值为________。

!

(a+b)+c-1&&b+c/2

23.设有变量定义:

inta=5,c=4;则(--a==++c)?

--a:

c++的值是________,此时c的存储单元的值为________。

24.设有intx=1,y=0;则以下表达式的值为________。

x-->(y+x)?

10:

12.5>y++?

‘A’:

’Z’

25.若整型变量a、b、c、d中的值依次为:

1、4、3、2。

则条件表达式a

a:

c

c:

d的值1

26.以下程序运行后的输出结果是

main(){inta,b,c;a=10;b=20;c=(a%b<1)||(a/b>1);

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

27.以下程序运行后的输出结果是。

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

p/10:

p%3));}

28.以下程序运行后的输出结果是。

main(){inta=1,b=3,c=5;if(c=a+b)printf("yes\n");elseprintf("no\n");}

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

main(){inta=5,b=4,c=3,d;d=(a>b>c);printf("%d\n",d);}

三、写出程序的运行结果

1、以下程序运行后的输出结果是:

main()

{inta=3,b=4,c=5,t=99;

if(b

if(a

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

2、有以下程序

main()

{intn=0,m=1,x=2;

if(!

n)x-=1;if(m)x-=2;if(x)x-=3;

printf(“%d\n”,x);}执行后输出结果是:

3、有以下程序

main()

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

if(a>b)

if(b>c)printf("%d",d+++1);

elseprintf("%d",++d+1);

printf("%d\n",d);}程序运行后的输出结果是:

4、以下程序运行后的输出结果是:

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

5、有以下程序执行后输出结果是

main()

{inti=1,j=1,k=2;

if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}

6、若有以下程序main(){intp,a=5;

if(p=a!

=0)

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

else

printf("%d\n",p+2);}

执行后输出结果是:

7、若有以下程序

main()

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

if(a

if(a

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

执行后输出结果是:

8、有以下程序

main()

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

switch(a%3)

{case0:

m++;break;

case1:

m++;switch(b%2)

{default:

m++;

case0:

m++;break;}}

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

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

9、以下程序运行后的输出结果是:

main()

{intx=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

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

10、若从键盘输入58,则以下程序输出的结果是:

main(){inta;

scanf("%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);}第五章循环结构程序设计

二、填空题

1.当输入19,2,21时下列程序运行的结果是_________。

main()

{inta,b,c,max;

printf("pleasescanthreenumbera,b,c:

\n");

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

max=a;

if(max

if(max

printf("maxis:

%d",max);}

2.以下程序运行的结果为________。

main(){inta,b,c,x,y,z;

a=10;b=2;

c=!

(a%b);x=!

(a/b);

y=(a=0);

z=(a=0);

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

3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】.

main(){intx,y;

scanf("%d",&x);

if(x<1){y=x;printf("x=%d,y=x=%d\n",x,y);}

elseif(x<10)

{y=2*x-1;

printf("x=%d,y=2*x-1=%d\n",x,y);}

else{y=3*x-11;printf("x=%d,y=3*x-11=%d\n",x,y);}}

4.以下程序运行的结果________。

main(){intx=2,y,z;

x*=3+1;

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

x+=y=z=5;

printf("%d,",x);

x=y==z;

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

5.程序运行结果是_________。

#include

main()

{inti;

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

{if(i>4){printf("%d\t",i++);break;}

printf("%d\t",i++);}}

6.以下程序运行的结果是_________。

#include

main()

{inta,b;

for(a=1,b=1;a<=100;a++)

{if(b>=20)break;

if(b%3==1)

{b+=3;

continue;}

b-=5;}

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

7.以下程序运行的结果是________。

main()

{inti=1;

while(i<10)

if(++i%3!

=1)continue;

elseprintf("%d",i);}

8.程序运行的结果是________。

main()

{intn=0;

while(n++<=1)

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

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

9.对以下程序:

当输入6514时,其运行结果是【1】。

当输入1463时,其运行结果是【2】。

当输入25125时,其运行结果时【3】。

#include

main()

{intm,n;

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

while(m!

=n)

{while(m>n)m-=n;

while(n>m)n-=m;}

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

10.在执行以下程序时,为了使输出结果为t=4,则给a和b输入的值应满足的条件是_______。

main()

{ints,t,a,b;

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

s=1; t=1;

if(a>0) s=s+1;

if(a>b) t=s+t;

elseif(a==b)t=5;

elset=2*s;

printf(〞t=%d\n〞,t);}

三、写出程序的运行结果

1、下列程序的输出为()。

#include

main()

{intk=0;charc='A';

do{switch(c++)

{case'A':

k++;break;

case'B':

k--;

case'C':

k+=2;break;

case'D':

k=k%2;continue;

case'E':

k=k*10;break;

default:

k=k/3;}

k++;}while(c<'G');

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

2、请读程序:

#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);}

上面程序的输出结果是()。

3、下列程序的输出为()。

#include"stdio.h"

main()

{inti,j,x=0;

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

{x++;

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

{if(j%2)continue;x++;}

x++;}

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

4、下列程序的输出为()。

#include

main()

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

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

{for(j=0;j<3;j++)k++;k-=j;}

m=i+j;

printf("k=%d,m=%d\n",k,m);}

5、下列程序段的输出结果为()。

main()

{intx=3;

do{printf("%3d",x-=2);}while(!

(--x));}

四、请补充下列程序

1.求出1000以内的“完全数”。

(提示:

如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。

如:

6的因子是1,2,3而6=1+2+3,则6是个“完数”)。

main()

{inti,a,m;

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

{for(m=0,a=1;a<=i/2;a++)

if(!

(i%a))【1】;

if【2】)printf("%4d",i);}}

2.鸡问题:

100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?

#include

main()

{intcocks,hens,chicks;

cocks=0;

while(cocks<=19)

{hens=0;

while(hens<=33)

{chicks=100.0-cocks-hens;

if(5.0*cocks+3.0*hens+chicks/3.0==100.0)

printf("%d,%d,%d\n",cocks,hens,chicks);

【1】;}

【2】;}}

3.爱因斯坦的阶梯问题:

设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;

每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;只有每步跨7阶时,正好到阶梯顶。

问共有多少阶梯。

main()

{intladders=7;

while(【1】)ladders+=14;

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

4.下列程序计算平均成绩并统计90分及以上人数。

main()

{intn,m;

floatgrade,average;

average=n=m=【1】;

while(【2】)

{scanf("%f",&grade);

if(grade<0)break;

n++;

average+=grade;

if(grade<90)【3】;

m++;}

if(n)printf("%.2f%d\n",average/n,m);}

5.下列程序计算Fibonacci数列:

1,1,2,3,5,8,13……的前40项。

main()

{inti;longf1,f2;

【1】;

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

{printf("%12ld%12ld",f1,f2);

if(I%2)printf("\n");

f1+=f2;

【2】;}}

6.下列程序判断一个数是否为素数。

#include

#include

main()

{inti,k,m;

scanf("%d",&m);

k=sqrt(【1】);

for(i=2;i<=k;I++)

if(m%i==0)【2】;

if(【3】)printf("%dyes\n",m);

elseprintf("%dno\n",m);}

7.求100~499之间的所有水仙花数,即各位数字的立方和恰好等于该数本身的数。

main

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

当前位置:首页 > 自然科学

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

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