《C++控制结构》习题参考答案

《C++控制结构》习题参考答案
《C++控制结构》习题参考答案

《C++控制结构》习题

学号姓名

一、选择题

1、若有整型变量x的当前值是3,则执行下列语句的结果是__B______________

do

cout<<(x-=2);

while(!(-x));

A. 输出值0

B. 输出值1

C. 输出值3和0

D. 陷入死循环

2、在while(!a)中,其中!a与表达式_____A___________等价

A.a==0 B.a==1 C.a!=1 D.a!=0

3、int I=10,执行下列语句后I的值为___D_____________

switch(I)

{ case 9: I+=1;

case 10: I+=1;

case 11: I+=1;

default: I+=1;

}

A. 10

B. 11

C. 12

D. 13

4、对下面三条语句,正确的论断是______A__________

(1)if(a)s1;else s2;

(2)if(a==0)s2;else s1;

(3)if(a!=0)s1;else s2;

A.三者相互等价B.三者相互不等价

C.只有(2)和(3)等价D.以上三咱说法都不正确

5、设有程序段

int x=10; while (x=0) x=x-1;

则下面描述中正确的___C__________

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

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

二、阅读理解题

1、写出下列代码运行后的结果___2________1____

int i, j;

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

{

j = i;

while( j < 0 )

{

if(j == -1) break;

j++;

}

}

cout<

2、下面程序的执行中共输出______3_________个数,最后一个输出的数是_____2__________

int y=9;

for( ; y>0; y--)

if(y%3==0)

cout<< --y<<’\t’;

3、运行下列代码并回答问题。

unsigned i;

int count=1;

i=~0;

while((i>>=1)!=0) //这里是右移赋值

count++;

cout<<"count="<

该代码输出运行的结果为__count=32________。如果将第一行改为unsigned char i,则结果为_count=8_________。如果将第一行改为char i,则结果为__陷入死循环_____ ___。

4、int a,b;

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

{

if(a>=10) break;

if(a%2==1)

{ a+=5;

continue;

}

a-=3;

}

问:执行上述程序段后,a的值是__10________b的值是__6________

5、int m,n,x,y;

cin>>x>>y;

m=1;n=1;

if(x>0) m=m+1;

if(x>y) n=n+m;

else if(x==y) n=5;

else n=2*m;

cout<

}

问:为了使输出的结果是 n=4, x 的输入值应满足条件___x0_________

三、 程序填空题

1、程序功能:用下面的公式计算π的近似值:

357

2111......(1) 1,2,3, (435721)

n n x x x x n n π+-=-+-+-=+ 若取公式的前n 项和作为近似结果,则第n+1项的值即为误差。现要求用展开公式计算的误差不超过10-6。 double x=1, pai=1 ,item=x*x*x/3;

int sign=-1,n=3; while( item>=1e-6 ){

pai=pai+item*sign; item=item* x*x*n/(n+2) ;

n=n+2; sign = -sign ;

}

cout<<”pai=”<< pai*4 <

2、程序功能:用数字0和9之间不同的数字构造所有可能的三位数(个位、十位和百位上的数字各不相同),并统计出共有多少种。

int i,j ,k ,count=0;

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

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

else for(k=0;k<=9;k++) if( k!=i && k!=j ){

cout<<100*i+10*j+k<<’,’;

count++;

}

cout<

相关主题
相关文档
最新文档