好文档 - 专业文书写作范文服务资料分享网站

第2章C++测试答案

天下 分享 时间: 加入收藏 我要投稿 点赞

第2章 测试习题

1.单项选择题

(1)putchar函数可以向终端输出一个( D )。 A.整型变量表达式值 B.实型变量值

C.字符串 D.字符或字符型变量值 (2) int k=10;

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

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

A.while循环执行10次 B.循环是无限循环 C.循环体语句一次也不执行 D.循环体语句执行一次 》

(3)int x=0,s=0;

while(!x!=0) s+=++x; cout<

A.运行程序段后输出0 B.运行程序段后输出1 C.程序段中的控制表达式是非法的 D.程序段执行无限次 (4) int x=0,y=0;

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

则运行结果为( D )。 ¥

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

(5) int a=1,b=2,c=2;

while(a

A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1 (6)int x=-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=27 B.x=12,y=13 C.x=15,y=14 D.x=y=27

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

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;

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

{

#include<> viod main( ) {int i,b,k=0;

for(i=1;i<=5;i++) {b=i%2;

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

A.3,-1 B.8,-1 C.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<<”#”;} while(1<=x<=2);

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

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

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

(

{int a,b;

for(a=1,b=1;a<=100;a++) { if(b>=20) break;

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

}

cout<

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

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

!

#include<>

void main( ) { int i,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=4 B.x=8 C.x=6 D.x=12

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

#include<> void main() {int i;

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

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

else continue; cout<<“#”; } cout<<“$\\n”; }

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

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

#include<> void main( ) { int i,j,a=0;

for(i=0;i<2;i++) { for(j=0;j<4;j++) …

{ if(j%2) break; a++;

}

a++;

}

cout<

A.4 B.5 C.6 D.7

2.填空题:

#include<> void main()

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

&

请填空。

int n=0,c;

c=();

while (c!=’\\n’ )

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

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

#include<> main( ) 、

{int day, 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;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<> void main() {

int i,j,k; !

cout<<“\\n hong bai hei \\n”;

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

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

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

cout<

(2) #include<>

void main()

{int i,t,sum=0; for(t=i=1;i<=10; ) {sum+=t;++i; if(i%3= =0) t=-i; else t=i;}

cout<<“sum=”<

运行结果:sum=19 《

(3) nclude<>

void main( ) {int i;

for(i=1;i<=5;i++) switch(i%2)

{case 0:i++; cout<<“#”;break;

case 1:i+=2; cout<<“*”; default: cout<<“\\n”;}} 运行果为:*

#

^

[

}}

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

#include<> void main() 、

{ int n=0,i,j,k;

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

for(k=0;k<=8;( k+=2 )) i f(k!=i) for(j=0;j<=9;j++)

if( j!=i && j!=k ) n++; cout<< “n=”<

3.看程序,写结果 `

(1)#include<>

void main()

{ int i=0,x=0,y=0; do{ ++i;

if(i%2!=0) {x=x+i;i++;} y=y+i++; }while(i<=7);

cout<<“x=”<

(4) #include<>

void main() {int y=2,a=1; while(y--!=-1)

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

47opw4reo84m0xd0pw4b4c2db011p100m9a
领取福利

微信扫码领取福利

微信扫码分享