流程控制语句
【学习要点】
1掌握算法描述的三种基本结构。
2掌握if—else条件语句及其应用,掌握if语句的嵌套结构。
3掌握switch开关语句及其应用,掌握breakswitch语句中的作用.
4掌握while循环语句及其应用。
5掌握do—while循环语句及其应用。
6掌握for循环语句及其应用。
7掌握循环语句的嵌套结构。
8掌握break语句、continue语句在循环结构中的作用。
9掌握return语句、goto语句、exit()函数、abort()函数的作用及其应用。
—-————————-—-—----—----——-—----—-----—————-—--——————--——---—-----—---——----——---——-—-—————--—--—-—-—--————-—--—————-—-----—-—---——-—-—---——————-—
【例题分析】
1.int  x=3,执行以下循环语句后,输出的结果是______
do  cout << (x-=2) 〈〈 ‘\t' ;
while ( !(--x) )
A1
B1    —2
C1    —1
D死循环
【答案】B
【解析】先执行一次do后面的循环体语句,遇到while,判断下次循环是否进行,即求解while后面表达式的值,若表达式的值为true,则再次回到do … ;若表达式的值为 false ,则跳出整个do—while语句。
2int  x=10,执行以下switch语句后,x的值是______
switch ( x ){case 9:  x+=1;
case 10:  x+=1;
case 11:  x+=1;
defaule:  x+=1;  }
A10
B11
C12
D13
【答案】D
【解析】从上往下在case分支的常量表达式值中,寻与之值相等的分支作为执行入口,并从该分支的语句序列开始执行下去,其后的每个case分支(包括default分支)中的语句序列都有可能执行到,直到遇到break语句才跳出switch语句,或遇到switch语句的结束括号“ } ”为止。
3以下三条语句,正确的论断是______.
1if ( a )  s1 ;  else  s2 ;
(2if ( a==0 )  s2 ;  else  s1 ;
(3)if ( a!=0 )  s1 ;  else  s2 ;
A.三者相互等价
B.只有(2)和(3)等价
C.只有(1)和(3)等价
D.三者相互不等价
【答案】A
【解析】先求解 if 后面表达式的值,若表达式的值为true,则执行 if 后面的语句;若表达式的值为false,则执行else 后面的语句。
4退出一个循环语句(不能终止当前函数的执行的有效措施是______
A.用break语句
B.用continue 语句
C.用return语句
D.调用函数exit(1)
【答案】A
【解析】break 是结束循环;continue 是结束本次循环;return 是从当前执行的函数返回其主调函数;exit(1)是终止整个程序的执行.
5下面程序的运行结果是______
#include<iostream.h〉
void main()
    { int  i=0,  x=0,  y=0 ;
do {  i++ ;
if  ( i%3 != 0 ) {  x+=i ;  i++ ; }
y += i++ ;
}  while( i<5 ) ;
cout 〈〈 ”x= ” <〈 x 〈< ”\ty= ” 〈< y 〈< endl ;
continue语句执行过程}
【答案】输出:x=5    y=7
6下面程序的运行结果是______
#include<iostream。h〉
void main()
    { int  x,  y=10 ;
while  ( x = y-1 )  { y —= 2 ;
if  ( y%3 == 0 ) {  x++ ;  continue ;  }
else  if ( y〈4 )  break ;
x++ ;  }
cout <〈 "x=” <〈 x 〈< ”\ty=” <〈 y <〈 endl ;
【答案】输出:x=3y=2
7下面程序的运行结果是______
#include〈iostream.h〉
void main()
int  i , j , m ;
for  ( i=1 ; i〈=6; i++ )
{  for ( j=i+1 ; j<=8 ; j++ )
{  if ( j==4 )  { cout <〈 ”Bye!” ; break ; }
m = i * j ;
cout <〈 i 〈〈 "×” <〈 j <〈 ” = ” 〈< m <〈 "\t" ;  }
cout 〈< endl ;
【答案】第1行输出:1×2 = 2    1×3 = 3      Bye!
第2行输出:2×3 = 6    Bye!
第3行输出:Bye!
第4行输出:4×5 = 20    4×6 = 24    4×7 = 28    4×8 = 32
第5行输出:5×6 = 30    5×7 = 35    5×8 = 40
第6行输出:6×7 = 42    6×8 = 48
【解析】 j 的值为4时,break语句结束的是内层循环,外层for循环继续执行。
8完善下列程序,程序功能是:输入一个自然数,输出其各因子的连乘形式.(如输入自然数12,输出12 = 1×2×2×3
#include <iostream.h>
void main()
int  i=2 , n ;
cout 〈〈 ”输入一个自然数:" ;
cin >〉 n ;
cout << n << ” = 1” ;
do  {  if  (  n%i == 0  )
{  cout <〈 “×” 〈〈 i ;
__________________;}
else  i++ ;
}  while (  __________________  ) ;
cout 〈< endl ;
【答案】①n = n / i
【答案】②n != 1
9编写程序:(要求用if—else语句实现)键盘输入某班同学的一门成绩,统计该班级的不及格、60~69 70~79 80~89 90分以上的各个档次的人数,并将该班同学的原始成绩,以及统计出来的各个档次人数写入数据文件 中,原始成绩按一行4个数据的格式写入 中。(要求程序具有灵活性,参加统计的学生人数应随具体情况而定,不应固定,以输入流结束符 Ctrl+Z 作为统计结束条件。)
【答案】编写程序如下:
#include<fstream.h>
#include<iomanip.h>
void main()
{  int  x , n=0 , c9=0 , c8=0 , c7=0 , c6=0 , c0=0 ;
ofstream  outf  ( “data1。txt” ) ;
cout <〈 “请输入成绩:” ;
cin 〉〉 x ;
while ( cin
  {  outf 〈< setw(8) << x ;
n++ ;
if ( n%4==0 ) outf << endl ;
if  ( x 〉= 90 )  c9++ ;
else  if  ( x 〉= 80 )  c8++ ;
else  if  ( x 〉= 70 )  c7++ ;
else  if  ( x >= 60 )  c6++ ;
else  c0++ ;
cin >> x ;  }
outf 〈〈 “\n总人数=” 〈< n 〈< endl ;
outf 〈〈 “90分以上人数=” 〈< c9 << endl ;
outf 〈〈 “80~89分之间人数=” 〈< c8 <〈 endl ;
outf 〈〈 “70~79分之间人数=” 〈< c7 〈< endl ;
outf 〈〈 “60~69分之间人数=” 〈< c6 〈< endl ;
outf <〈 “不及格人数=” 〈< c0 〈< endl ;
outf.close() ;
}
10编写程序:键盘输入某班同学的一门成绩,出最高分和最低分,并统计出全班的平均成绩。(要求程序具有灵活性,参加统计的学生人数应随具体情况而定,不应固定,以输入负数作为统计结束条件。)
【答案】编写程序如下:
#include<iostream.h>
#include〈iomanip.h〉
void main()
{ float  score ,  max ,  min ,  sum = 0 ;
int  num = 0 ;
cout <〈 “请输入成绩:" ;
cin >〉 score ;
max = min = score ;
while  ( score 〉= 0 )  {  num++ ; sum += score ;
if ( score 〉 max )  max = score ;
if ( score 〈 min )  min = score ;
cin >> score ;  }
if (num)  {  cout 〈< "学生人数= ” 〈〈 num <〈 endl ;
cout << ”平均成绩= ” << sum/num 〈〈 endl ;
cout 〈< "最高分=" 〈〈 max 〈< endl ;
cout 〈< "最低分= ” 〈< min << endl ;  }
else  cout <〈 "无输入数据,无法统计!" 〈〈 endl ;
11编写程序:输出下面的图案。
@@@
@@@@@
@@@@@@@
@@@@@@@@@
@@@@@@@@@@@
@@@@@@@@@@@@@
@@@@@@@@@@@
@@@@@@@@@
@@@@@@@
@@@@@
@@@
@
【答案】编写程序如下:
# include 〈 iostream.h >
void main ( )
{ int  i ,  j ,  n=7 ;
for (  i=1  ;  i<=n  ;  i++  )        //输出前7行图案

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。