33、若有程序
#include <iostream>using namespace std;
int main(){
int x=3;
do{
cout<<(x-=2);}
while(!(--x);
return 0;}
下列关于程序运行结果的叙述中,正确的是
运行程序后输出30
运行程序后输出1-2
程序执行无限次
运行程序后输出1
下列语句中,不会陷入死循环的是
for(i=10;;i--) sum+=i;
for(;(c=getchar()!='\n';) cout<<c;
for(;;x+=i);
while(1)x++;
若有程序:
#include <iostream>
using namespace std;
int main(){
int a=5;
do {
cout<<a--;
}while(!a);
return 0;
}
下列关于程序运行结果的叙述中,正确的是
程序执行无限次
运行程序无输出
运行程序后输出5
运行程序后输出4
下列叙述中,正确的是
continue语句的作用是结束整个循环
从多重循环中退出时,只能使用goto语句
只能在循环体内和switch语句体内使用break语句
在循环体内使用break语句和continue语句可以起到同样的作用
下列选项中,两个条件语句语义等价的是
if(x=0) cout<<x;和 if(x==0) cout<<x;
if(x) cout<<x;和 if(x==0) cout<<x;
if(x) cout<<x:和 if(x>0) cout<<x;
if(x) cout<<x;和 if(x!=0) cout<<x;
有如下程序:
#include <iostream>
using namespace std;
int main(){
char a:
cin>>a;
if(a='*') cout<<"***"<<endl;
else cout <<"###"<<endl;
return 0;
}
输入字符+时,程序的运行结果是
***
###
***###
无输出
有如下程序:
#include<iostream>
using namespace std;
int main(){
int i,s=0;
for(i=1;s<20;i+=2) s+=i*i;
cout<<i<<endl;
return 0;
}
运行这个程序的输出结果是
3
5
7
9
有如下程序:
#include<iostream>
using namespace std;
int main(){
int a[6]={23,15,64,33,40,58};
int s1,s2;
s1=s2=a[0];
for(int* p=a+l;p<a+6;p++){
if(s1>*p) s1=*p;
if(s2<*p) s2=*p;
}
cout<<s1+s2<<endl;
return 0;}
运行时的输出结果是
23
58
64
79
有如下程序:
#include<iostream>
using namespace std;
int main(){
int f,f1=0,f2=1;
for(int i=3;i<=6;i++){
f=f1+f2;
fl=f2;
f2=f;
}
cout<<f<<endl;
return 0;
}
运行时的输出结果是
2
3
5
8
下列循环语句中有语法错误的是
int i; for(i=1;i<10;i++) cout<<’*‘;
int i,j; for(i=1,j=0;i<10;i++,j++) cout<<’*‘;
int i=0; for(;i<10;i++) cout<<'*';
for(1) cout<<'*';
若x和y是程序中的两个整型变量,则下列if语句中正确的是
if(x==0) y=1;else y=2;
if(x==0) then y=1 else y=2;
if(x==0) y=1 else y=2;
ifx==0 y=1;else y=2;
有如下程序段:
int i=1;
while(1){
i++;
if(i==10) break;
if(i%2==0) cout<<'*’;
}
执行这个程序段输出字符*的个数是
10
3
4
5
有如下程序段:
int i=5;
while (int i=0) {cout<<'*'; i--;}运行时输出"*"的个数是
0
1
5
无穷
有如下程序:
#include <iostream>
using namespace std;
int main(){
int sum;
for(int i=0;i<6;i+=3){
sum=i;
for(int j=i;j<6;j++) sum+=j;
}
cout<<sum<<endl;
return 0;
}
运行时的输出结果是
3
10
12
15
执行下列语句段后,输出字符”*"的个数是
for(int i=50;i>1;i-=2) cout<<'*';
24
25
26
50
执行下列语句段后,输出字符”*”的个数是
for(int i=50:i>1;--i) cout<< '*';
48
49
50
51
if语句的语法格式可描述为:
格式1: if(<条件>)<语句>
或
格式2: if(<条件>)<语句1>else<语句2>关于上面的语法格式,下列表述中错误的是
<条件>部分可以是一个if语句,例如if(if(a==0)...)...
<语句>部分可以是一个if语句,例如if(...)if(...)...
如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功能不变
<语句>部分可以是一个循环语句,例如if(...)while(...)...
有如下程序:
int x=3:
do{
x-=2;
cout<<x ;
}while(!(--x));执行这个程序的输出结果是
1
30
1-2
死循环
执行语句序列
int i=0; while(i<25) i+=3; cout<<i; 输出结果是。
24
5
27
28
有如下语句序列:
int k=0;
do{k+=5; cout<<'$';} while(k<19);
while(k-- >0)cout<<'*';执行上面的语句序列输出字符$和*的个数分别是
4和20
5和20
4和21
5和21
有如下程序段:
......
for(int i = 1;i<4:i++)
if(i%2 == 0)coutinue;
cout<<i<<",";
....
其输出的结果为
1
1,2,4,
1,3
1,3,
for(i=0,x=0;!x&&i<=5;i++)循环的次数为
5
6
1
无限
为了避免嵌套的if-else语句的二义性, C语言规定else总是与_____组成配对关系。
缩排位置相同的if
在其之前未配对的if
在其之前未配对的最近的if
同一行上的if
执行下列程序后,输出的结果是
int a=-5,b=0;
while(++a)
b++;
cout<<b<<endl;
0
1
4
5
下面语句,循环执行的次数为
for(int i=0;i<4;i++)
for(int j=0;j<=i;j++)
cout<<’*‘;
16
10
13
14
下列程序的输出结果是
#include<iostream>
using namespace std;
int main(){
int a=2,b=-1,c=2;
if(a<b)
if(b<0)c=0;
else
c+=1;
cout<<c<<endl;
return 0;
}
0
1
2
3
执行下列语句后,程序的输出结果是
#include<iostream>
using namespace std;
int main()
{
int n=10;
while(n>7){
n--;
cout<<n<<',’;
}
cout<<endl;
}
10,9,8
9,8,7
10,9,8,7
9,8,7.6
下列语句将输出字符”””的个数为
int i=100;
while(1){
i--;
if(i==0)
break;
cout<<'*';
}
101
100
99
98
执行下列程序后,输出的结果是
float a=1.1234;
double b=1.1234;
if(a==b)cout<<"equal\n";
else
cout<< "not equal\n";
equal
not equal
equal not equal
not equal equal
关于break语句的描述不正确的是
break语句可用在循环体中,它将是执行的流程跳出本层循环
break语句可用在switch语句中,它使执行的流程跳出当前switch语句
break语句可用在if语句中,它可使执行的流程跳出当前的if语句
break语句在一层循环体中可出现多次
下列for语句的循环次数为
for(int i=0,x=0;!x&&i<=5;i++);
0
5
6
无穷次
执行下列语句:
#include<iostream>
using namespace std;
int main()
int a=3;
if(a=5)
cout<<a++<<endl;
else
cout<<a<<endl;
return 0;
程序的输出是_
3
4
5
6
执行语句序列
int n;
cin>>n;
switch(n){
case 1:
case 2:cout<<'1';
case 3:
case 4:cout<<'2‘;break;
default:cout<<'3';
}
时,若键盘输入1,则屏幕显示
1
2
3
12