C++基础+编程题复习 下载本文

D. i=1;s=0; do{s=s*i; i++;}

while(i<=10); 112. int x=-1; do

{x=x*x;} while(!x);

下列说法正确的是____c____。 A. 是死循环 B. 循环执行两次 C. 循环执行一次 D. 有语法错误 113. 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 114. int x=0,y=0;

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

则运行结果为___d_____。 A. 20,7 B. 6,12 C. 20,8 D. 8,20 115. int x=0,s=0; while(!x!=0) s+=++x; cout<

则____b___。

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

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

116. 带参数的宏定义中,程序中引用宏定义的实参__a__

A. 只能是常量 B. 任何标识符 C. 任意表达式 D. 被定义的宏名

117. 文件包含命令中被包含的文件扩展名___d__。

A. 必须为.h B. 不能为.h C. 必须是.c D. 不一定是.h

118. 预处理命令在程序中都是以_b___开头的。

A. * B. # C. : D. /

119. 以下程序输出的结果是a=___a__,b=_______ #include void main(void)

{ for(int a=1,b=1; a<=5; a++) { if (b>=8) break;

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

cout<<\} A. 2 8 B. 1 7 C. 8 2 D. 7 1

120. break语句只能用在___d__ A. 开关语句中

B. 函数体中允许语句出现的任一位置 C. 循环语句中

D. 开关语句或循环语句中

121. 循环语句for(<表达式1>;<表达式2>;<表达式3>)<语句>中,<语句>的执行情况是__c__.

A. 至少执行一次 B. 至少执行两次 C. 可能执行,也可能不执行 D. 不执行 122. 下列程序的运行结果是__b____. include void main() {

int i=1; do{ i++;

cout<<++i;

if (i==7) break; }while(i==3); cout<<‖ok!‖;

} A. 2 4 ok! B. 3 5 ok! C. 1 1 ok! D. 3 3 ok! 123. 下面程序的运行结果是_a__ #include void main() {

int i=0; while(++i) {

if(i==10) break; if(i%3!=1) continue; cout<< i; }

} A. 1 4 7 B. 1 1 1

C. 3 3 3 D. 2 4 6

124. 下列关于开关语句的描述中,___a__是正确的.

A. 开关语句中default子句可以没有,也可以有一个

B. 开关语句中每个语句序列中必须有break语句

C. 开关语句中default子句只能放在最后 D. 开关语句中case子句后面的表达式可以是整型表达式

125. 下述关于break语句的描述中,___c__是不正确的

A. break语句可用于循环体内,它将退出该重循环

B. break语句可用于开关语句中,它将退出开关语句

C. break语句可用于if体内,它将退出if语句

D. break语句在一个循环体内可以出现多次

126. 下述关于循环体的描述中,___c_是错误的.

A. 循环体中可以出现break语句和continue语句

B. 循环体中还可以出现循环语句 C. 循环体中不能出现goto语句 D. 循环体中可以出现开关语句

127.下列for循环的循环体执行次数为__d_. For(int i=0,j=10;i=j=10;i++,j--) A. 0 B. 1 C. 10 D. 无限

128. 下列DO-While循环的次数为__d__. int i=5; Do

{ cout<

}while(i!=0);

A. 0 B. 1 C. 5 D. 无限 129. 下列While循环的次数是_a__. While( int i=0) i--;

A. 0 B. 1 C. 5D. 无限

130. 下列for循环的次数为__b___. for(int i=0,x=0;!x&&i<=5;i++)

A. 5 B. 6 C. 1 D. 无限 131. 下列__a__是语句. A. ; B. a=17 C. x+y D. cout<<‖\\n‖ 132. 在循环语句的循环体中使用break语句的作用是__b___。

A. 结束本次循环 B. 结束该层的循环 C. 结束开关语句 D. 结束程序执行 133. 循环语句\x=0,y=0;y!=100||x<10;)x++;\,执行的循环次数是___a___。

A. 无限次 B. 10 C. 11 D. 100 134. 执行以下程序段时,输出_a___。 int s1=0,s2=0,s3=0,s4=0; for(int t=1; t<=4; t++ ) switch(t) {

case t>= 4 : s1++ ; break ; case t>= 3 : s2++ ; break ; case t>= 2 : s3++ ; default: s4 ++ ;

cout<

B. 1,1,1,2 C. 1,2,3,2 D. 1,1,2,2 135. 设e1和e3是表达式,与语句for(e1;;e3)s;等同的语句是___d___。

A. for(e1;e1;e3) s; B. for(e1;e3;e3) s; C. for(e1;0;e3) s; D. for(e1;1;e3) s; 136. 为了避免嵌套的if-else语句的二义性,C++语言规定else总是与__c__组成配对关系。

A. 缩排位置相同的if B. 在其之前未配对的if

C. 在其之前未配对的最近的if D. 同一行上的if

137. 选择出合法的if语句(设有int x,y;),正确输出x与y的大小关系__b___。 A. if(x!=y)

if(x>y) cout<<\; else cout<<\ B. if(x!=y)

if(x>y) cout<<\ else cout<<\else cout<<\ C. if(x!=y)

if(x>y) cout<<\else cout<<\

cout<<\ D. if(x!=y);

if(x>y)cout<<\ else cout<<\ else cout<<\

138. 执行下列程序,输入为1的输出结果是_a__。

#include main() {int k; cin>>k; switch(k)

{case 1:cout<

case 3:cout<

} A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4 139. 执行下列程序,输入为1的输出结果是__d___。

#include void main() {int k; cin>>k; switch(k)

{case 1:cout<

case 4:cout<

cout<

A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4 140. 以下程序的输出结果是__a___。 #include void main() {

int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y)

{ case 0:a++;break; case 1:b++;break; }

case 2:a++;b++;break; }

cout<

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

141. 若定义:float x;int a,b;则正确的switch语句是___d___。 A. switch(x)

{ case 1.0:cout<<\ case 2.0:cout<<\ }

B. switch(x)

{ case 1.2:cout<<\ case 3 : cout<<\ }

C. switch(a+b)

{ case 1 : cout<<\ case 1,2:cout<<\ }

D. switch(a+b)

{ case 1:cout<<\\n\ case 2:cout<<\ }

142. 下列关于条件语句的描述中,__c___是错误的.

A. if语句中只有一个else子句 B. if语句中可以有多个else if子句 C. if语句中if体内不能是switch语句 D. if语句的if体中可以是循环语句

143. 下面有关for循环的正确描述是__d___。

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

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

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

D. for循环体语句中,可以包含多条语句,但要用花括号括起来

144. C++语言中while和do-while循环的主要区别是_a___.

A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格

C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 145. 下列语句段中不是死循环的是___a__.

A. int i=100; while(1)

{ i=i0+1; if(i=20) break; }

B. int i,sum=0; for(i=1;;i++) sum=sum+1; C. int k=0; do { ++k;

}while(k>=0); D. int s=3379; while(s++%2) s++;

146. 与以下程序段等价的是__a____。 while(a)

{ if(b) continue; c;

} A. while(a) {if(!b)c;} B. while(c) {if(!b) break; c; }

C. while(c) {if(b) c;} D. while(a) {if(b) break; c; }

147. 以下程序的输出结果是__b___。 #include void main() { int i;

for(i=4;i<=10;i++)

{ if(i%3==0)continue; cout<

A. 45 B. 457810 C. 69 D. 678910 148. 下面程序的运行结果是__b___ #inlcude void main()

{char a[ ]=\for(I=1;I<7;I++) if(a[j]

t=a[j]; a[j]=a[7]; a[7]=a[j];cout<

A. mogninr B. mo C. morning D. mornin

149. 下面程序的运行结果是__d___ #include #include void main()

{char a[80]=‖AB‖,b[80]=‖LMNP‖; int I=0; strcat(a,b);

while(a[I++]!=‘\\0‘) b[I]=a[I]; cout<

} A. LB B. ABLMNP C. AB D. LBLMNP

150. 下面程序的运行结果是___a__ void main()

{char ch[7]={\for(I=0;ch[I]>='0'&&ch[I]<='9';I+=2) s=10*s+ch[I]-'0'; cout<

A. 1 B. 1256

C. 12ab56 D. 1256 151. 下述对C++语言字符数组的描述中错误的是__c__

A. 字符数组可以存放字符串 B. 字符数组可以整体输入,输出

C. 可以在赋值语句中用赋值运算符“=”对字符数组整体赋值

D. 不可以用关系运算符对数组中的字符串进行比较

152. 下面描述正确的是__d__

A. 两个字符串所包含的字符个数相同时才能比较字符串

B. 字符个数多的字符串比字符个数少字符串大

C. 字符串“STOp”与“STOP”相等 D. 字符串“That”小于字符串“The” 153. 下面程序段是输出两个字符串中对应相等的字符,请完善程序

char x[ ]=\int I=0;

while(x[I]!='\\0'&&y[I]!='\\0') if(x[I]==y[I])cout<<___a___; else I++;

A. x[I++] B. y[++I] C. x[I] D. y[I]

154. 判断字符串s1是否大于字符串s2,应当使用__d___

A. if(s1>s2) B. if(strcmp(s1,s2)) C. if(strcmp(s2,s1)>0) D. if(strcmp(s1,s2)>0)

155. 判断字符串a和b是否相等,应当使用___d___

A. if(a==b) B. if(a=b) C. if(strcmp(a,b)) D. if(!strcmp(a,b))

156. 下面程序段的运行结果是b___ char c[ ]=\ A. 14 B. 3 C. 9

D. 字符串中非法字符,输出值不确定 157. 有下面的程序段,则___d__ char a[3],b[ ]=\a=b;cout<

A. 运行后将输出China B. 运行后将输出Ch

C. 运行后将输出Chi D. 编译出错 158. 下面程序段的运行结果是__d__ char a[7]=\char b[4]=\strcpy(a,b); cout<

A. d B. \\0 C. e D. f

159. 对两个数组a和b进行如下初始化 char a[ ]=‖ABCDEF‖;

char b[ ]={?A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘}; 则以下叙述正确的是_d___ A. a和b数组完全相同 B. a与b所占字节数相同. C. a和b中都存放字符串

D. a数组所占字节数比b数组所占字节数多

160. 下面程序段的运行结果是__b___ char c[5]={?a‘,‘b‘,‘\\0‘,‘c‘,‘\\0‘}; cout<

A. ‘a‖b‘ B. ab C. ab0c D. abc

161. 下面是对字符数组s的初始化,其中不正确的是__d___

A. char s[5]=―abc‖;

B. char s[5]={‘a‘,‘b‘,‘c‘}; C. char s[5]=‖‖;

D. char s[5]=‖abcdef‖;

162. 下面程序的运行结果是__c___ void main() {int a[6],I;

for(I=1;I<6;I++) {

a[I]=9*(I-2+I*(I>3))%5; cout<

} A. -4 0 4 0 4 B. -4 0 4 0 3 C. -4 0 4 4 2 D. -4 0 4 4 0 163. 以下正确的定义语句是__d___ A. int a[1][4]={1,2,3,4,5}; B. float x[3][ ]={{1},{2},{3}}

C. long b[2][3]={{1},{1,2},{1,2,3}}; D. double y[ ][3]={0}; 164. 定义如下变量和数组: int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是__a__ for(k=0;k<3;k++) cout<

A. 3 5 7 B. 3 6 9 C. 1 5 9 D. 1 4 7 165. 若二维数组a有m列,则在a[I][J]前的元素个数为__b___

A. J*m+I B. I*m+J C.I*m+J-1 D. I*m+J+1 166. 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是__b___

A. 2 B. 3 C. 4 D. 无确定值 167. 以下不正确的定义语句是:___b___ A. double x[5]={2.0,4.0,6.0,8.0,10.0}; B. int y[5]={0,1,3,5,7,9};