第四次实验答案.docx

上传人:b****5 文档编号:29033283 上传时间:2023-07-20 格式:DOCX 页数:40 大小:28KB
下载 相关 举报
第四次实验答案.docx_第1页
第1页 / 共40页
第四次实验答案.docx_第2页
第2页 / 共40页
第四次实验答案.docx_第3页
第3页 / 共40页
第四次实验答案.docx_第4页
第4页 / 共40页
第四次实验答案.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

第四次实验答案.docx

《第四次实验答案.docx》由会员分享,可在线阅读,更多相关《第四次实验答案.docx(40页珍藏版)》请在冰豆网上搜索。

第四次实验答案.docx

第四次实验答案

1.单项选择题 

(2)intk=10;

while(k=0)k=k-1;

则下面描述正确的是()。

A.while循环执行10次B.循环是无限循环

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

答案:

C

 

(3)intx=0,s=0;

while(!

x!

=0)s+=++x;

cout<

则()。

A.运行程序段后输出0B.运行程序段后输出1

C.程序段中的控制表达式是非法的D.程序段执行无限次

答案:

B

 

(4)intx=0,y=0;

while(x<15)y++,x+=++y;

cout<

则运行结果为()。

A.20,7B.6,12C.20,8D.8,20

答案:

D

 

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

while(a

cout<

运行结果为()。

A.1,2,0B.2,1,0C.1,2,1D.2,1,1

答案A

 

(6)intx=-1;

do

{x=x*x;}

while(!

x);

下列说法正确的是()。

A.是死循环B.循环执行两次

C.循环执行一次D.有语法错误

答案:

C

 

(7)以下能正确计算1*2*3*…*10的程序段是()。

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

答案:

C

 

(8)以下描述正确的是()。

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

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

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

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

答案:

C

 

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

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

B.while的循环控制条件比do-while的循环控制条件严格

C.do-while允许从外部转到循环体内

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

答案:

A

 

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

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

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

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

D.for循环的循环体语句中,可以包含多条语句,但必须用大括号括起来

答案:

D

 

(11)对for(表达式1;;表达式3)可理解为()。

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

C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)

答案:

B

 

(12)for(i=2;i==0;)printf(“%d”,I--);循环执行的次数是()。

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

答案:

B

 

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

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

答案:

C

 

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

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

C.while

(1){x++;}D.for(I=10;;I--)sum+=I;

答案:

A

 

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

#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,0D.8,-2

答案:

D

 

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

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

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

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

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

答案:

B

 

(17)下面程序段()。

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

{cin>>x;

if(x<0)continue;

cout<

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

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

答案:

D

 

(18)下面程序段()。

x=3;

do{y=x--;

if(!

y){cout<<”x”;continue;}

cout<<”#”;}while(1<=x<=2);

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

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

答案:

C

 

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

#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

答案:

B

 

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

#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=6D.x=12

答案:

B

 

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

#include

voidmain()

{inti;

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

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

elsecontinue;

cout<<“#”;}

cout<<“$\n”;}

A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$

答案:

A

 

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

#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.6D.7

答案:

A

 

2.填空题:

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

请填空。

intn=0,c;

c=getchar();

while(c!

=’\n’)

{if(c>=’0’&&c<=’9’)n++;

c=getchar();}

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

#include

main()

{intday,x1,x2;

day=0;x1=1020;

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

cout<<“day=”<

(3)运行以下程序时,从键盘键入right?

回车后运行结果是(sjhiu)。

#include

voidmain()

{charc;

while((c=getchar())!

=’?

’)putchar(++c);

}

(4)运行以下程序时,从键盘输入China#,回车后运行结果是(55)。

#include

#include

voidmain()

{intv1=0,v2=0;charch;

while((ch=getchar())!

=’#’)

switch(ch)

{case‘a’:

case‘h’:

default:

v1++;

case‘o’:

v2++;}

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<<“\nhongbaihei\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=1y=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;iI++)

switch(i%2)

{case0:

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

case1:

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

default:

cout<<“\n”;}}

运行果为:

*

#

(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<

}

运行结果:

23

(7)#include

voidmain()

{inti=1;

while(i<=15)

if(++i%3!

=2)continue;

elsecout<

cout<<“\n”;

}

运行结果:

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)C++语言提供了哪些常用的语句?

答:

C++语言提供了多个常用的语句,先列举一些如下:

1)1)   cin>><变量名1>>><变量名2>>>…….

2)2)   cout<<<变量名1><<<变量名2><<…….

3)3)   if(表达式)语句1;

4)4)   if(表达式)语句1;

else语句2;

5)5)   switch(表达式)

{case表达式1:

语句序列1;[break;]

case表达式2:

语句序列2;[break;]

……….

[default:

语句序列n+1;]

}

6)6)   while(表达式)语句;

7)7)   do

语句;

while(表达式);

8)8)   for(表达式1;表达式2;表达式3)语句;

 

(2)条件语句的格式如何?

if语句中对else子句有何规定?

答:

条件语句的格式为:

if(表达式)语句1;或

if(表达式)语句1;

else语句2;

在条件语句嵌套中,从第一个else子句开始,“else”总是与离它最近的尚未配对的“if”配对。

 

(3)开关语句的格式如何?

break语句在开关语句中有何作用?

答:

开关语句的格式为:

switch(表达式)

{case表达式1:

语句序列1;[break;]

case表达式2:

语句序列2;[break;]

……….

case表达式n:

语句序列n;[break;]

[default:

语句序列n+1;]

}

break语句在开关语句中表示执行完这个分支后跳出switch语句,不再转去执行后续的情况,它保证了程序只能选择各种情况中的一种来执行。

如果某个分支后没有break语句,将会继续向下一个分支的语句去执行,且不再对后面的情况常量进行判断。

 

(4)在开关语句中,case子句的条件有何特点?

答:

在开关语句中,case子句中的条件应为常数表达式,其值一般为整数或字符常数。

 

(5)C++语言提供哪些循环语句?

它们各自的特点是什么?

它们可以相互替代吗?

可以相互嵌套吗?

答:

C++语言提供三种循环语句:

for循环语句应用最惯犯,使用最灵活。

不仅可以用于循环次数已经确定的情况,也能用于循环次数不确定、只给出循环结束条件的情况。

它可以代替其他类型的循环语句。

while循环语句,其特点是先判断表达式,后执行语句,在循环体中应有使循环趋于结束的语句。

do-while语句,其特点是先执行语句,后判断表达式。

对同一个问题可以用while语句处理,也可以用do-while语句处理。

在循环的嵌套中,不同类型的循环可以相互嵌套。

(6)while和do~while循环语句有什么区别吗?

答:

while和do~while循环语句的区别在于:

while语句是判断表达式,后执行语句;而do-while语句是先执行语句,后判断表达式,do-while语句至少执行一次循环体语句。

 

(7)continue、break语句在循环中分别起到什么作用?

答:

continue语句用于结束本次循环,即跳过循环体中下面尚未执行的语句,但并不跳出循环,而是控制返回循环语句的条件测试部分,继续执行循环。

break语句是强制结束循环,不再进行条件的判断。

 

5.按下列要求编写程序

(1)有一个函数如下:

x(x<5)

y=x+6(5<=x<15)

x-6(x>=15)

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

程序为:

#include

voidmain()

{floatx,y;

cin>>x;

if(x<5)y=x;

elseif(x<15)y=x+6;

elsey=x-6;

cout<<"x="<

}

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

程序为:

#include

voidmain()

{inta,b;

cin>>a>>b;

if(a*a+b*b>100)cout<<(a*a+b*b)/100<

elsecout<

}

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

程序为:

#include

voidmain()

{inti=1;

floats=1.0,pi=0;

while(1.0/i>=0.000001)

{pi=pi+s/i;s=-s;i=i+2;

}

cout<<4*pi<

}

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

(例n=6)

 

*

*****

*********

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

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

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

程序为:

#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<

}

}

(5)求1!

+2!

+3!

+…8!

程序为:

#include

voidmain()

{inti,j=1,sum=0;

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

{j=j*i;

sum=sum+j;

cout<

}

cout<<"1!

+2!

+...+8!

="<

}

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

程序为:

#include

voidmain()

{inti,j,k,n;

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

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

for(k=0;k<=9;k++)

{n=i*100+j*10+k;

if(n==i*i*i+j*j*j+k*k*k)cout<

}

}

(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。

程序为:

#include

voidmain()

{intn,i;

cin>>n;

cout<

i=2;

while(n>1)

{while(n%i==0)

{cout<<"*"<

i++;

}

}

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

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

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

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