C语言复习题2.docx

上传人:b****8 文档编号:10655819 上传时间:2023-02-22 格式:DOCX 页数:29 大小:25.37KB
下载 相关 举报
C语言复习题2.docx_第1页
第1页 / 共29页
C语言复习题2.docx_第2页
第2页 / 共29页
C语言复习题2.docx_第3页
第3页 / 共29页
C语言复习题2.docx_第4页
第4页 / 共29页
C语言复习题2.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言复习题2.docx

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

C语言复习题2.docx

C语言复习题2

1、下面的程序是______

main()

{intx=3,y=0,z=0;

if(x==y+z)printf("****");

elseprintf("####");

}

  A.有语法错误不能过通过编译

  B.输出****

  C.可能通过编译,但是不能通过连接,因而不能运行

  D.输出####

  学生答案:

 B

  参考答案:

 D

2、以下程序输出结果是

main()

{intm=5;

if(m++>5)printf("%d\n",m);

elseprintf("%d\n",m--);

}

  A.7

  B.6

  C.5

  D.4

  学生答案:

 B

  参考答案:

 B

3、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是

main()

{intx;

scanf("%d",&x);

if(x++〉5)printf("%d",x);

elseprintf("%d\n",x--);

}

  A.7和5

  B.6和3

  C.7和4

  D.6和4

  学生答案:

 C

  参考答案:

 A

4、下列语句正确的是()

  A.if(a>b>c)temp=a

  B.if((a=b)>0)temp=a

  C.inta=b=c=4

  D.inta;scanf(%d,a)

  学生答案:

 B

  参考答案:

 B

5、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是

if(x>y)

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

  A.x=10,y=20,z=30

  B.x=20,y=30,z=30

  C.x=20,y=30,z=10

  D.x=20,y=30,z=20

  学生答案:

 A

  参考答案:

 B

6、以下程序的输出结果是

main()

{inta=100,x=10,y=20,ok1=5,ok2=0;

if(x

if(y!

=10)

if(!

ok1)

a=1;

else

if(ok2)a=10;

a=-1;

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

}

  A.1

  B.0

  C.-1

  D.值不确定

  学生答案:

 B

  参考答案:

 C

7、若运行以下程序时,从键盘输入ADescriptor表示回车),则下面程序的运行结果是

#include

main()

{charc;

intv0=0,v1=0,v2=0;

do{

switch(c=getchar())

{case'a':

case'A':

case'e':

case'E':

case'i':

case'I':

case'o':

case'O':

case'u':

case'U':

v1+=1;

default:

v0+=1;v2+=1;

}

}while(c!

='\n');

printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);

}

  A.v0=7,v1=4,v2=7

  B.v0=8,v1=4,v2=8

  C.v0=11,v1=4,v2=11

  D.v0=12,v1=4,v2=12

  学生答案:

 C

  参考答案:

 D

8、阅读以下程序:

main()

{intx;

scanf("%d",&x);

if(x--<5)printf("%d"'x);

elseprintf("%d"'x++);

}

程序运行后,如果从键盘上输人5,则输出结果是

  A.3

  B.4

  C.5

  D.6

  学生答案:

 D

  参考答案:

 B

9、与y=(x>0?

1:

x<0?

-1:

0);的功能相同的if语句是

  A.if(x>0)y=1;elseif(x<0)y=-1;elsey=0;

  B.if(x)if(x>0)y=1;elseif(x<0)y=-1;elsey=0;

  C.y=-1if(x)y=1;elseif(x==0)y=0;elsey=-1;

  D.y=0if(x>-0)if(x>0)y=1;elsey=-1;

  学生答案:

 B

  参考答案:

 A

10、若有定义:

floatw;inta,b;则合法的switch语句是

  A.switch(w){case1.0:

printf("*\n");case2.0:

printf("**\n");}

  B.switch(a);{case1printf("*\n");case2printf("**\n");}

  C.switch(b){casea:

printf("*\n");default:

printf("\n");caseb:

printf("**\n");}

  D.switch(a+b){case1:

printf("*\n");case2:

printf("**\n");default:

printf("\n");}

  学生答案:

 B

  参考答案:

 D

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

inti,j,m=0;

for(i-l;i<=15;i+=4)

for(j=3;j<=19;j+=4)

m++:

pfintf(”%d\n”,m).;

  A.12

  B.15

  C.20

  D.25

  学生答案:

 C

  参考答案:

 C

12、以下程序的输出结果是()。

#include

main()

{

inty=10;

for(;y>0;y一一)

if(y%3==0)

{

printf(”%d”,一一y);

continue;

}

}

  A.741

  B.852

  C.963

  D.8754321

  学生答案:

 C

  参考答案:

 B

13、以下叙述正确的是()。

  A.do…while语句构成的循环不能用其他语句构成的循环代替

  B.只有do…while语句构成的循环能用break语句退出

  C.用do…while语句构成循环时,在while后的表达式为零时不一定结束循环

  D.用do…while语句构成循环时,在while后的表达式为零时结束循环

  学生答案:

 B

  参考答案:

 D

14、有以下程序段:

intk=0:

while(k=1)k++0

while循环执行的次数是()。

  A.无限次

  B.有语法错,不能执行

  C.一次也不执行

  D.执行一次

  学生答案:

 D

  参考答案:

 A

15、有以下程序:

#include

inta=3;

mmn()

{

intS=0;

{

inta=5:

S+=a++:

}

S+=a++;printf(”%d\n”,S);

}

  A.8

  B.10

  C.7

  D.11

  学生答案:

 A

  参考答案:

 A

16、以下的for循环()。

for(X=0,Y=0;(Y!

=123)&&(X<4);X++);

  A.是无限循环

  B.循环次数不定

  C.循环执行4次

  D.循环执行3次

  学生答案:

 C

  参考答案:

 C

17、执行下面程序片段的结果是()。

intX=23;

d0

{

printf(”%d”,X--);

}while(!

X);

  A.打印出321

  B.打印出23

  C.不打印任何内容

  D.陷人死循环

  学生答案:

 B

  参考答案:

 C

18、请阅读以下程序:

#include

main()

{floatx,y;

scanf("%f",&x);

if(x<0.0)y=0.0;

elseif((x<5.0)&&(x!

=2.0))

Y=1.O/(x+2.0);

elseif(x<10.0)Y=1.O/x;

elsey=10.0;

printf(”%f\n”,y);

}

若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是()。

  A.0.000000

  B.O.250000

  C.O.500000

  D.1.000000

  学生答案:

 B

  参考答案:

 C

19、在while(x)语句中的x与下面条件表达式等价的是()。

  A.x==0

  B.x==1

  C.x!

=0

  D.x!

=1

  学生答案:

 B

  参考答案:

 C

20、下面程序段的输出结果是()。

a=1;b=2;c=2;

while(a

printf(”%d,%d,%d”,a,b,c);

  A.1,2,0

  B.2,1,0

  C.1,2,1

  D.2,1,1

  学生答案:

 A

  参考答案:

 A

多选题:

判断题:

填空题:

1、#include

main()

{inti=0,j=0,a=6;

if((++i>0)||(j++>0))a++;

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

结果:

_____

  学生答案:

 

  参考答案:

 I=1,j=0,a=7

2、若从键盘输入58,则以下程序输出的结果是________。

main()

{inta;

scanf("%d",&a);

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

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

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

}

  学生答案:

 

  参考答案:

 585858

3、下列程序段的输出结果是_____________。

intn='c';

switch(n++)

{default:

printf("error");break;

case'a':

case'A':

case'b':

case'B':

printf("good");break;

case'c':

case'C':

printf("pass");

case'd':

case'D':

printf("warm");

}

  学生答案:

 

  参考答案:

 passwarm

4、以下程序段的输出结果是______

intk,n,m;

h=10;m=l;k=l;

while(k<=n)

m*=2;

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

  学生答案:

 

  参考答案:

 程序段无限循环,没有输出结果

5、以下程序的功能是:

从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩

#include

main()

{

floatx,amax,amin;

scanf(”%r.,&x);

amax=x;amin=X;

while(

(1)_______)

{

if(X>amax)amax=x;

if(

(2)________)amin=x;

scanf("%f",&x);

}

printf(”\namax=%f\namin=%f\n”,amax,amin);

}

  学生答案:

 

  参考答案:

 

(1)x>=0

(2)x<>

6、下述程序的运行结果是——。

#include

main()

{

ints=0,k;

for(k=7;k>4;k--)

{

switch(k)

{

case1:

case4:

case7:

S++;break;

case2:

case3:

case6:

break;

case0:

case5:

s+=2;break;

}

}

printf(”s=%d”,s);

}

  学生答案:

 

  参考答案:

 s=3

7、下面程序的功能是:

计算l—10之间的奇数之和与偶数之和,请填空。

#include

main()

{inta,b,c,i;

a=c:

0:

for(i=0;i<=10;i+:

2)

________;

c+=b:

}

printf(”偶数之和=%d\n”,a);

printf(”奇数之和=%d\n”,c-11);

  学生答案:

 

  参考答案:

 b=i+1

8、有以下程序:

#include

main()

{charc;

while((c=getchar())!

=’?

’)putchar(--c);

}

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

Y?

N?

<回车>,则输出结果为_________。

  学生答案:

 

  参考答案:

 X

9、下面程序的运行结果是

#include

main()

{inty,a;

y=2;a=1;

while(y--!

=-1)

{do{a*=y;a++;}while(y--);

printf(”%d,%d”,a,y);

}

  学生答案:

 

  参考答案:

 1,-2

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

i=1;s=3;

do{s+=i++;

if(s%7==0)continue;

else++i:

}while(s<15);

printf(”%d”,i);

  学生答案:

 

  参考答案:

 8

1、编写程序,从键盘输入年号和月号,计算这一年的这一月共有几天.

  学生答案:

 

  参考答案:

 main()

{

intyear,month,day=0,leap;

printf("\npleaseinputyearandmonth:

");

scanf("%d,%d",&year,&month);

if(year%4!

=0)

leap=0;

elseif(year%100==0)

if(year%400==0)

leap=1;

else

leap=0;

else

leap=1;

switch(month)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

day=31;break;

case4:

case6:

case9:

case11:

day=30;break;

case2:

{if(leap==1)day=29;elseday=28;break;}

default:

printf("the13thmonth!

?

");

}

printf("Ithas%ddaysin%d/%d",day,year,month);

}

2、编写程序,输入三个整数x,y,z,请把这三个数由小到大输出。

[程序分析]

   我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

  学生答案:

 

  参考答案:

 main()

{

intx,y,z,t;

scanf("%d%d%d",&x,&y,&z);

if(x>y)

{t=x;x=y;y=t;}/*交换x,y的值*/

if(x>z)

{t=z;z=x;x=t;}/*交换x,z的值*/

if(y>z)

{t=y;y=z;z=t;}/*交换z,y的值*/

printf("smalltobig:

%d%d%d",x,y,z);

}

3、编写程序,输入一个5位数,判断它是不是回文数。

即12321是回文数,个位与万位相同,十位与千位相同。

   

  学生答案:

 

  参考答案:

 main()

{

longge,shi,qian,wan,x;

scanf("%ld",&x);

wan=x/10000;

qian=x%10000/1000;

shi=x%100/10;

ge=x%10;

if(ge==wan&&shi==qian)/*个位等于万位并且十位等于千位*/

 printf("%disahuiwennumber.",x);

else

printf("%disnotahuiwennumber.",x);

}

4、编写程序,将一个不大于256的十进制正整数转化为8位的二进制数,若不足8位,则在前面补0,例如十进制数2转化位8位二进制数后是00000010,37转化后是00100101。

试求出十进制数5、23、189转化位8位二进制分别是多少?

(要求必须使用循环语句实现)

  学生答案:

 

  参考答案:

 main()

{

inta,i,b[8];

printf("PleaseInputaNumber<=256:

\n");

scanf("%d",&a);

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

b[i]=0;

i=8;

while(i>=1)

{b[i]=a%2;

a=a/2;

if(a==0)

break;

i--;

}

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

printf("%d",b[i]);

printf("\n");

}

本题参考答案:

00000101、00010111、10111101

第6章循环控制

单选题:

1、假定a和b为int型变量,则执行以下语句后b的值为

a=1;b=10;

do

{b=b-a;a++;}

while(b-->0);

  A.-3

  B.-2

  C.-1

  D.-4

  学生答案:

 B

  参考答案:

 D

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

main()

{inty=18,i=0,j,a[8];

do

{a[i]=y%2;i++;

y=y/2;

}while(y>=1);

for(j=i;j>0;j--)printf("%d\n",a[j]);

printf("\n");

}

  A.1000

  B.11010

  C.01001

  D.10100

  学生答案:

 B

  参考答案:

 C

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

main()

{inti;

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

{if(i%2){printf("#");continue;}

printf("*");

}

printf("\n");

  A.#*#*#

  B.#####

  C.*****

  D.*#*#*

  学生答案:

 B

  参考答案:

 A

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

intx=3;

do

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

while(!

(--x));

  A.1

  B.3,0

  C.1,-2

  D.死循环

  学生答案:

 A

  参考答案:

 C

5、阅读下列程序:

main()

{intn[3],i,j,k;

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

n[i]=0;

k=2;

for(i=0;i

for(j=0;j〈2;j++)

n[j]=n[i]+1;

printf("%d\n",n[1]);}

下述程序运行后输出结果是

  A.2

  B.1

  C.0

  D.3

  学生答案:

 B

  参考答案:

 D

6、定义如下变量:

intn=10

则下列循环的输出结果是______

while(n>7)

{

n--;

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

}

  A.1098

  B.987

  C.10987

  D.9876

  学生答案:

 B

  参考答案:

 B

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

intx=3;

do

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

while(!

(--x));

  A.1

  B.30

  C.1-2

  D.死循环

  学生答案:

 C

  参考答案:

 C

8、运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为

main()

{

intm,n;

printf("Enterm,n:

");

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

while(m!

=n)

{

while(m>n)m-=n;

while(n>m)n-=m;

}

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

}

  A.m=3

  B.m=2

  C.m=1

  D.m=0

  学生答案:

 A

  参考答案:

 C

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

main()

{inti,k,a[10],p[3];

k=5;

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

for(i=0;i<3;i++)p[i]=a[i*(i+1)];

for(i=0;i<3;i++)k=k+p[i]*2;

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

}

  A.20

  B.21

  C.22

  D.23

  学生答案:

 B

  参考答案:

 B

10、执行语句:

for(i=1;i++<4;)后;变量i的值是()

  A.3

  B.4

  C.5

  D.不定

  学生答案:

 C

  参考答案:

 C

11、执行语句:

for(i=1;i++<4;)后;变量i的值是

  A.3

  B.4

  C.5

  D.不定

  学生答案:

 B

  参考答案:

 C

12、以下程序的输出结果是

{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);

}

  A.x=

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

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

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

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