第2章C++测试答案.docx

上传人:b****6 文档编号:12068417 上传时间:2023-06-04 格式:DOCX 页数:35 大小:27.73KB
下载 相关 举报
第2章C++测试答案.docx_第1页
第1页 / 共35页
第2章C++测试答案.docx_第2页
第2页 / 共35页
第2章C++测试答案.docx_第3页
第3页 / 共35页
第2章C++测试答案.docx_第4页
第4页 / 共35页
第2章C++测试答案.docx_第5页
第5页 / 共35页
第2章C++测试答案.docx_第6页
第6页 / 共35页
第2章C++测试答案.docx_第7页
第7页 / 共35页
第2章C++测试答案.docx_第8页
第8页 / 共35页
第2章C++测试答案.docx_第9页
第9页 / 共35页
第2章C++测试答案.docx_第10页
第10页 / 共35页
第2章C++测试答案.docx_第11页
第11页 / 共35页
第2章C++测试答案.docx_第12页
第12页 / 共35页
第2章C++测试答案.docx_第13页
第13页 / 共35页
第2章C++测试答案.docx_第14页
第14页 / 共35页
第2章C++测试答案.docx_第15页
第15页 / 共35页
第2章C++测试答案.docx_第16页
第16页 / 共35页
第2章C++测试答案.docx_第17页
第17页 / 共35页
第2章C++测试答案.docx_第18页
第18页 / 共35页
第2章C++测试答案.docx_第19页
第19页 / 共35页
第2章C++测试答案.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第2章C++测试答案.docx

《第2章C++测试答案.docx》由会员分享,可在线阅读,更多相关《第2章C++测试答案.docx(35页珍藏版)》请在冰点文库上搜索。

第2章C++测试答案.docx

第2章C++测试答案

第2章测试习题

1.单项选择题

(1)putchar函数可以向终端输出一个(D)。

A•整型变量表达式值

C.字符串

2)intk=10;

B.实型变量值

D•字符或字符型变量值

while(k=0)k=k-1;则下面描述正确的是(CA•while循环执行10次

C•循环体语句一次也不执行

3)intx=0,s=0;while(!

x!

=0)s+=++x;cout<

A•运行程序段后输出0

C.程序段中的控制表达式是非法的

4)intx=0,y=0;while(x<15)y++,x+=++y;cout<

A.20,7B.6,12

5)inta=1,b=2,c=2;while(a

)。

B.循环是无限循环

D.循环体语句执行一次

B.运行程序段后输出1

D.程序段执行无限次

C.20,8D.8,2

A.1,2,0B.

2,1,0

C.1,2,1D.

2,1,1

(6)intx=-1;

do

{x=x*x;}

while(!

x);

下列说法正确的是(

C)。

A.是死循环

B

.循环执行两次

C.循环执行一次

D

.有语法错误

(7)以下能正确计算

1*2*3*…

*10的程序段是(

C)

<

 

A.

do{i=1;s=1;

B.do{i=1;s=0;

s=s*i;i++;}

s=s*i;i++;}

while(i<=10);

while(i<=10);

C.i=1;s=1;

D.i=1;s=0;

do{s=s*i;

do{s=s*i;

i++;}

i++;}

while(i<=10);

while(i<=10);

8)

以下描述正确的是(C

)。

A.由于do-while循环中循环体语句只是一条可执行语句,所以循环体内不能使用复合

语句

B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C.在do-while循环体中,一定要有能使while后面表达式的值变为零("假”)的操作

D.do-while循环中,根据情况可以省略while

(9)C++语言中while和do-while循环的主要区别是(A)。

A.do-while的循环体至少无条件执行一次

B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内

D.do-while的循环体不能是复合语句

10)下面有关for循环的正确描述是(D)。

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判断表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来11)对for(表达式1;;表达式3)可理解为(B)。

A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)

C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)12)for(i=2;i==0;)printf(“%d”--),;I循环执行的次数是(B)。

A.无限次B.0次C.1次D.2次

13)下面程序段的运行结果为(C)。

for(y=1;y<10;)y=((x=3*y,x+1),x-1);

cout<<“x=”<

A.x=27,y=27B.x=12,y=13

C.x=15,y=14D.x=y=27

14)以下不是无限循环的语句为(D)。

A.for(y=0,x=1;x>++y;x=I++)I=x;

C.while

(1){x++;}

B.for(;;x++=I);

D.for(I=10;;I--)sum+=I;

15)下面程序的运行结果是(D)。

#include

viodmain()

{inti,b,k=0;

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

{b=i%2;

while(b-->=0)k++;}

cout<

A.3,-1B.8,-1C.3,0

D.8,-2

16)以下正确的描述是(B)。

A.continue语句的作用是结束整个循环的执行

B.只能在循环体内和switch语句体内使用break语句

C.在循坏体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出,只能使用goto语句

17)下面程序段(D)。

for(t=1;t<=100;t++)

{cin>>x;

if(x<0)continue;

cout<

A.当x<0时整个循环结束B.x>=0时什么也不输出

C.cout永远也不执行D.最多允许输出100个非负整数

18)下面程序段(B)。

x=3;

do{y=x--;

if(!

y){cout<<”x”;continue;}cout<<”#”;w}hile(1<=x<=2);

A.将输出##B.将输出##*

C.是死循环D.含有不合法的控制表达式

19)下面程序的运行结果是(B)。

#include

voidmain()

{inta,b;

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

{if(b>=20)break;

if(b%3==1){b+=3;continue;}

 

b-=5;

}

cout<

}

A.7B.8C.9D.10

20)下面程序段的运行结果是(B)。

#include

voidmain()

{inti,j,x=0;

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

{x++;

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

{if(j%2)continue;

x++;

}

x++;

}

cout<<“x=”<

}

A.x=4B.x=8C.x=6

21)下面程序段的运行结果是(A)。

D.x=12

#include

voidmain()

{inti;

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

{if(I%2)cout<<“*”;

elsecontinue;

cout<<“#”;}

cout<<“$n”;}

A.*#*#*#$B.#*#*#*$

C.*#*#$D.#*#*$

22)下面程序段的运行结果是(A)。

#include

voidmain()

{inti,j,a=0;

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

{for(j=0;j<4;j++)

{if(j%2)break;

a++;

}

a++;

}

cout<

}

A.4B.5C.6

D.7

2.填空题:

(1)下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环,请填空。

intn=0,c;

c=cin.get();

while(c!

='n')

{if(c>='0'&&c<=')9'n++;c=cin.get();

}

(2)1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?

#include

 

main()

{intday,x1,x2;day=0;x1=1020;while(x1>0){x2=(x1/2-2);x1=x2;day++;cout<

(5)运行下面程序段后,k值为(36)。

k=1;n=263;

do{k*=n%10;n/=10;}while(n);

(6)下面程序段中循环体的执行次数是(3)。

a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);

(7)下面程序段的运行结果为(**)。

x=2;

do{cout<<“*”--;;x}while(!

x==0);

(8)下面程序段的运行结果是(a=-5)。

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

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

cout<<“a=”<

(9)下面程序段的运行结果是()。

for(a=1,i=-1;-1<=i<1;i++){a++;cout<

本题循环条件是假值,所以什么也不输出。

(10)鸡、兔共有30只,脚共有90个,下面程序段是计算鸡兔各有多少只,x代表有多少只鸡,y代表有多少只兔子,请填空。

for(x=1;x<=29;x++)

{y=30-x;

if(2*x+4*y==90)cout

(11)下面程序的功能是从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案,请填空。

#include

voidmain()

{

inti,j,k;

cout<<“n”;

for(i=0;i<=3;i++)for((j=1);j<=5;j++){k=8-i-j;

if(k>0&&k<=6)cout<

}}

(12)下面程序的功能是求出用数字0至9可以组成多少个没有重复的三位偶数,请填空。

#include

voidmain()

{intn=0,i,j,k;for(i=1;i<=9;i++)

for(k=0;k<=8;(k+=2))

if(k!

=i)for(j=0;j<=9;j++)if(j!

=i&&j!

=k)n++;

cout<<“n=”<<<

}

3.看程序,写结果

(1)#include

voidmain()

{inti=0,x=0,y=0;

do{++i;

if(i%2!

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

}while(i<=7);

cout<<“x=”<

x=1,y=20

2)#include

voidmain()

{inti,t,sum=0;

for(t=i=1;i<=10;){sum+=t;++i;

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

elset=i;}

cout<<“sum=”<

sum=19

(3)nclude

voidmain()

{inti;

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

switch(i%2)

{case0:

i++;cout<<“#”;break;

case1:

i+=2;cout<<“*”;

default:

cout<

*

#

(4)#include

voidmain()

{inty=2,a=1;

while(y--!

=-1)

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

cout<

1-2

(5)#include

voidmain()

{inti,j;

for(i=4;i>=1;i--)

{for(j=1;j<=i;j++)putchar(‘#');

for(j=1;j<=4-i;j++)putchar(‘*');

putchar(n‘');}}运行结果:

####

###*

##**

#***

(6)#include

voidmain()

{inti,k=0;

for(i=1;;i++)

{k++;

if(k%3==0)break;

}

cout<

}

运行结果:

33

(7)#include

voidmain()

{inti=1;

while(i<=15)if(++i%3!

=2)continue;elsecout<

}

运行结果:

2581114

(8)#include

voidmain()

{inta=10,y=0;

do{a+=2;y+=a;if(y>50)break;}while(a=14);cout<<“a=”<

a=16y=60

(9)#include

voidmain()

{inti,k=19;

while(i=k-1){k-=3;

if(k%5==0){i++;continue;}elseif(k<5)break;

i++;}

cout<<“i=”<

一}运行结果:

i=6k=4

(10)#include

voidmain()

{inti=5;

do{switch(i%2)

{case4:

i--;break;case6:

i--;continue;

}

i--;i--;

cout<0);

}

运行结果:

31-1

4•按下列要求编写程序

(1)有一个函数如下:

.■x(x<5)

y=!

x+6(5<=x<15)

x-6(x>=15)

输入x的值,计算出相应的y值。

程序为:

#includevoidmain()

{

intx,y;

cin>>x;

if(x<5)y=5;if(x>=5&&x<15)y=x+6;if(x>=15)y=x-6;cout<

}

(2)编程要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。

程序为:

#include

intmain()

{

inta,b,n;

cin>>a>>b;

cout<<"a="<

if(a*a+b*b>100)n=(a*a+b*b)/100;

elsen=a+b;

cout<

return0;

}

(3)根据n/4=1-1/3+1/5-1/7+…求n的近似值,直到最后一项的值小于0.000001为止。

程序为:

#include

#include

intmain()

{

doublei,p,pai;

i=1;

pai=0;

do{

p=pow(-i,i-1)*1.0/(2*i-1);

pai=pai+4*p;

}while(p>=0.000001);

cout<<"pai="<

return0;

}

(4)编程输出如下图形:

(例n=6)

*

*****

*********

*************

*****************

*********************

程序为:

方法1:

#include

voidmain()

{inti,j,k;

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

{for(k=1;k<=20-2*i;k++)

cout<<'';

for(j=1;j<=4*i-3;j++)

cout<<'*';

cout<

}

}

方法2:

#include

intmain()

{

inti,j;

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

{

for(j=1;j<=12-2*i;j++)

cout<<"";

{

for(j=13-2*i;j<=9+2*i;j++)

cout<<"*";

cout<

}

}

return0;

}

(5)求1!

+2!

+3!

+・・・8!

程序为:

#include

intmain(){

inti;

doublem=1.0,s=0.0;

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

{m=m*i;

s=s+m;}

cout<

return0;

}

6)打印出所有的“水仙花数“(它是一个三位数,其各位数字立方和等于该数本身)程序为:

#include

#include

usingnamespacestd;

intmain(){

inta,b,c,n,m;

cout<<"所有的\"水仙花数\":

"<

for(a=1;a<=9;a++)

for(b=0;b<=9;b++)for(c=0;c<=9;c++){

n=100*a+10*b+c;

m=a*a*a+b*b*b+c*c*c;

if(n==m&&n<=999)

cout<

return0;

}

(7)编写一个程序,输入年、月,打印出该年份该月的天数。

程序为:

#include

voidmain()

{intyear,month,days;

cin>>year>>month;

switch(month)

{case1:

case3:

case5:

case7:

case8:

case10:

case12:

days=31;break;

case4:

case6:

case9:

case11:

days=30;break;

case2:

if(year%400==0||year%4==0&&year%100!

=0)days=29;

elsedays=28;

}

cout<

}

(8)输入一个自然数,输出其各因子的连乘形式,如输入12,则输出12=1*2*2*3。

程序为:

方法1:

#include

voidmain()

{

inti,n;

cin>>n;

cout<<"n="<<"1";

for(i=2;i<=n;)

{

if(n%i==0)

{n=n/i;

cout<<"*"<

}

i++;

}

cout<

}

方法2:

#include

voidmain()

{intn,i;

cin>>n;

cout<

i=2;

while(n>1)

{while(n%i==0)

{cout<<"*"<

i++;

}

}

9)求一个整数任意次方的最后三位数。

程序为:

#include

#includeusingnamespacestd;intmain(){inta,b,n;cout<<"输入a,n:

"<>a>>n;cout<

"b=pow(a,n);b%=1000;if(b>=100)cout<=10)cout<<"0"<

}

法2:

#includevoidmain()

{intx,n,p=1,i;cin>>x>>n;for(i=1;i<=n;i++)p=p*x%1000;cout<

}

(10)猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,发现只剩一个桃子了,求猴子第一天究竟摘了多少个桃子?

程序为:

#include

voidmain()

{intp=1,i;for(i=1;i<=9;i++)p=(p+1)*2;cout<

}

5.选择题

(1)以下程序的输出结果是(C)。

#includevoidmain()

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

if(x

if(y!

=10)

if(!

ok1)a=1;

elseif(ok2)a=10;a=-1;

cou<

C.-1D.值不确定

)。

B.if(x==y)x+=y;D.if(x

}

A.1B.0

2)以下不正确的if语句形式是(CA.if(x>y&&x!

=y);

C.if(x!

=y)cin>>xelsecin>>y;3)设有以下程序段,则(B)。

inta=0,b=0;

 

while(!

a!

=0)b+=++a;

cout<

A.程序运行后输出

C・程序执行无数次

4)当a=1,

if(a

if(c

elsex=6;

elsex=7;

A•1

5)以下for

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2