C++习题集 下载本文

第三章 流程控制语句

一、填空题

1. 流程控制类语句包括______、______和______三类语句。 2. 跳转类语句包括______、______、______和______四种。 3. 选择类和循环类中的每一种语句都属于______语句。

4. 在switch语句中,每个语句标号所含关键字case后面的表达式必须是

______。

5. 在嵌套的if语句中,每个else关键字与它前面最接近的______关键字

相配套。

6. 作为语句标号使用的C++保留字case和default只能用于______语句

中。

7. 执行switch语句时,在进行作为条件的表达式求值后,将从某个标号

位置起向下执行,当碰到下一个标号位置时(停止/不停止)______执行。 8. 任何______语句都可以改写位具有同样功能的if 语句来实现。 9. 在for 语句中,假定循环体被执行次数为n,则<表达式1>共被计算

______次,<表达式2>共被计算______次,<表达式3>共被计算______次。

10.执行for 和while循环时,每次是先进行______的判断,然后再执行______,

执行do循环时则相反。

11.continue语句只能使用在______类语句中,break语句中既可以使用在

______类语句中,也可以使用在______语句中。

12.for语句中<表达式2>是在每次执行______之前被计算,而<表达式3>是在

每次执行______之后被计算。

13.在所有结构性语句中,只有____________语句的最后必定是以分号结束的,

而其余语句的最后一个字符可能是分号,也可能是______。

14._____语句的循环体至少被执行一次,______和______语句的循环体可能不

会被执行。

15. 若for循环的”头”为 “for(int i=0;i<10;i++)”,并且在循环体

中不会修改i的值,则循环体将被重复执行______次后正常结束。

16. 若while循环的”头”为”while(i++<=10)”,并且i的初值为0,

同时在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。

17. 当do循环的”尾”为”while(i++<=10)”,并且i的初值为0,同时

在循环体中不会修改i的值,则循环体将被重复执行______次后正常结束。

18. 当在程序中执行到______语句时,将结束本层循环类语句或switch

语句的执行。

19. 当在程序中执行到______语句时,将结束所在循环语句中循环体的

一次执行。

20. 在程序中执行到______语句时,将结束所在函数的执行过程,返回

到调用该函数的位置。

二、写出下列每个程序运行后的输出结果并上机验证

1. #include

void main() {

int a=2,b=5,c=4;

if(a+b>10)c=a*b;else c=3*a+b;

if(c<=20) cout<

a=a+b;b=a+b;c=a+b+c;

cout<<”a,b,c=”<

2. #include

void main() {

int x=5;

switch(2*x-3)

{

case 4: cout<

cout<<”switch end.”<

3. #include

#include void main() {

int I,x,y;

for(i=0;i<6;i++) {

cin>>x; if(x<0)y=1;

else if(x<10) y=x*x+3; else if(x<60) y=4*x-5; else y=int(sqrt(x));

cout<

假定从键盘上输入的6个常数为:36,-5,73,192,6,44。 4. #include

void main() {

int s0,s1,s2,x;

s0=s1=s2=0;

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

{

cin>>x; switch(x%3){

case 0: s0+=x;break; case 1: s1+=x;break; case 2: s2+=x;break; } }

cout<

为:36,25,20,43,12,70,66,34,28,15,32,55 5. #include

const int N=5; void main() {

int I,p=1,s=0;

for(i=1;i

p=p*I; s=s+p;

cout<

6. #include

const int M=20; void main() {

int c2,c3,c5;

‘<

c2=c3=c5=0;

for(int i=1;i<=M;i++)

{

if(i%2==0) c2++; if(i%3==0) c3++; if(i%5==0) c5++; }

cout<

7. #include

void main() {

int I,j;

for(i=0;i<5;i++) {

for(j=I;j<5;j++) cout<<’*’; cout<

8. #include

void main() {

for(int i=1,s=0;i<30;i++)

{

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

cout<