基本控制结构

题目总数:33
总分数:165
时间:不限时
第 1 题    单选题

33、若有程序

#include <iostream>using namespace std;

int main(){

int x=3;

do{

cout<<(x-=2);}

while(!(--x);

return 0;}

下列关于程序运行结果的叙述中,正确的是

A.

运行程序后输出30

B.

运行程序后输出1-2

C.

程序执行无限次

D.

运行程序后输出1

第 2 题    单选题

下列语句中,不会陷入死循环的是

A.

for(i=10;;i--) sum+=i;

B.

for(;(c=getchar()!='\n';) cout<<c;

C.

for(;;x+=i);

D.

while(1)x++;

第 3 题    单选题

若有程序:

#include <iostream>

using namespace std;

int main(){

int a=5;

do {

cout<<a--;

}while(!a);

return 0;

}

下列关于程序运行结果的叙述中,正确的是

A.

程序执行无限次

B.

运行程序无输出

C.

运行程序后输出5

D.

运行程序后输出4

第 4 题    单选题

下列叙述中,正确的是

A.

continue语句的作用是结束整个循环

B.

从多重循环中退出时,只能使用goto语句

C.

只能在循环体内和switch语句体内使用break语句

D.

在循环体内使用break语句和continue语句可以起到同样的作用

第 5 题    单选题

下列选项中,两个条件语句语义等价的是

A.

if(x=0) cout<<x;和 if(x==0) cout<<x;

B.

if(x) cout<<x;和 if(x==0) cout<<x;

C.

if(x) cout<<x:和 if(x>0) cout<<x;

D.

if(x) cout<<x;和 if(x!=0) cout<<x;

第 6 题    单选题

有如下程序:

#include <iostream>

using namespace std;

int main(){

char a:

cin>>a;

if(a='*') cout<<"***"<<endl;

else cout <<"###"<<endl;

return 0;

}

输入字符+时,程序的运行结果是


A.

***

B.

###

C.

***###

D.

无输出

第 7 题    单选题

有如下程序:

#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;

}

运行这个程序的输出结果是


A.

3

B.

5

C.

7

D.

9

第 8 题    单选题

有如下程序:

#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;}

运行时的输出结果是


A.

23

B.

58

C.

64

D.

79

第 9 题    单选题

有如下程序:

#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;

}

运行时的输出结果是


A.

2

B.

3

C.

5

D.

8

第 10 题    单选题

下列循环语句中有语法错误的是

A.

int i; for(i=1;i<10;i++) cout<<’*‘;

B.

int i,j; for(i=1,j=0;i<10;i++,j++) cout<<’*‘;

C.

int i=0; for(;i<10;i++) cout<<'*';

D.

 for(1) cout<<'*';

第 11 题    单选题

若x和y是程序中的两个整型变量,则下列if语句中正确的是

A.

 if(x==0) y=1;else y=2;

B.

 if(x==0) then y=1 else y=2;

C.

if(x==0) y=1 else y=2;

D.

ifx==0 y=1;else y=2;

第 12 题    单选题

有如下程序段:

int i=1;

while(1){

i++;

if(i==10) break;

if(i%2==0) cout<<'*’;

}

执行这个程序段输出字符*的个数是


A.

10

B.

3

C.

4

D.

5

第 13 题    单选题

有如下程序段:

int i=5;

while (int i=0) {cout<<'*'; i--;}运行时输出"*"的个数是


A.

0

B.

1

C.

5

D.

无穷

第 14 题    单选题

有如下程序:

#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;

}

运行时的输出结果是


A.

3

B.

10

C.

12

D.

15

第 15 题    单选题

执行下列语句段后,输出字符”*"的个数是

for(int i=50;i>1;i-=2) cout<<'*';

A.

24

B.

25

C.

26

D.

50

第 16 题    单选题

执行下列语句段后,输出字符”*”的个数是

for(int i=50:i>1;--i) cout<< '*';

A.

48

B.

49

C.

50

D.

51

第 17 题    单选题

if语句的语法格式可描述为:

格式1: if(<条件>)<语句>

格式2: if(<条件>)<语句1>else<语句2>关于上面的语法格式,下列表述中错误的是


A.

<条件>部分可以是一个if语句,例如if(if(a==0)...)...

B.

<语句>部分可以是一个if语句,例如if(...)if(...)...

C.

如果在<条件>前加上逻辑非运算符!并交换<语句1>和<语句2>的位置,语句功能不变

D.

<语句>部分可以是一个循环语句,例如if(...)while(...)...

第 18 题    单选题

有如下程序:

int x=3:

do{

x-=2;

cout<<x ;

}while(!(--x));执行这个程序的输出结果是


A.

1

B.

30

C.

1-2

D.

死循环

第 19 题    单选题

执行语句序列

int i=0; while(i<25) i+=3; cout<<i; 输出结果是。


A.

24

B.

5

C.

27

D.

28

第 20 题    单选题

有如下语句序列:

int k=0;

do{k+=5; cout<<'$';} while(k<19);

while(k-- >0)cout<<'*';执行上面的语句序列输出字符$和*的个数分别是


A.

4和20

B.

5和20

C.

4和21

D.

5和21

第 21 题    单选题

有如下程序段:

......

for(int i = 1;i<4:i++)

if(i%2 == 0)coutinue;

cout<<i<<",";

....

其输出的结果为


A.

1

B.

1,2,4,

C.

1,3

D.

1,3,

第 22 题    单选题

for(i=0,x=0;!x&&i<=5;i++)循环的次数为

A.

5

B.

6

C.

1

D.

无限

第 23 题    单选题

为了避免嵌套的if-else语句的二义性, C语言规定else总是与_____组成配对关系。


A.

缩排位置相同的if

B.

在其之前未配对的if

C.

在其之前未配对的最近的if

D.

同一行上的if

第 24 题    单选题

执行下列程序后,输出的结果是

int a=-5,b=0;

while(++a)

b++;

cout<<b<<endl;


A.

0

B.

1

C.

4

D.

5

第 25 题    单选题

下面语句,循环执行的次数为

for(int i=0;i<4;i++)

for(int j=0;j<=i;j++)

cout<<’*‘;

A.

16

B.

10

C.

13

D.

14

第 26 题    单选题

下列程序的输出结果是

#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;

}


A.

0

B.

1

C.

2

D.

3

第 27 题    单选题

执行下列语句后,程序的输出结果是

#include<iostream>

using namespace std;

int main()

{

int n=10;

while(n>7){

n--;

cout<<n<<',’;

}

cout<<endl;

}


A.

10,9,8

B.

9,8,7

C.

10,9,8,7

D.

9,8,7.6

第 28 题    单选题

下列语句将输出字符”””的个数为

int i=100;

while(1){

i--;

if(i==0)

break;

cout<<'*';

}


A.

101

B.

100

C.

99

D.

98

第 29 题    单选题

执行下列程序后,输出的结果是

float a=1.1234;

double b=1.1234;

if(a==b)cout<<"equal\n";

else

cout<< "not equal\n";


A.

equal

B.

not equal

C.

equal not equal

D.

not equal equal

第 30 题    单选题

关于break语句的描述不正确的是

A.

break语句可用在循环体中,它将是执行的流程跳出本层循环

B.

break语句可用在switch语句中,它使执行的流程跳出当前switch语句

C.

break语句可用在if语句中,它可使执行的流程跳出当前的if语句

D.

break语句在一层循环体中可出现多次

第 31 题    单选题

下列for语句的循环次数为

for(int i=0,x=0;!x&&i<=5;i++);



A.

0

B.

5

C.

6

D.

无穷次

第 32 题    单选题

执行下列语句:

#include<iostream>

using namespace std;

int main()

int a=3;

if(a=5)

cout<<a++<<endl;

else

cout<<a<<endl;

return 0;

程序的输出是_


A.

3

B.

4

C.

5

D.

6

第 33 题    单选题

执行语句序列

int n;

cin>>n;

switch(n){

case 1:

case 2:cout<<'1';

case 3:

case 4:cout<<'2‘;break;

default:cout<<'3';

}

时,若键盘输入1,则屏幕显示


A.

1

B.

2

C.

3

D.

12