第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);
第2章C++测试答案



