2 程序控制结构
2.1  选择题
1.已知 int i=0, x=1, y=0;,在下列选项中,使i的值变成1的语句是(  C  )
Aif( x&&y ) i++;            Bif( x==y ) i++;
Cif( x||y ) i++;            Dif( !x ) i++;
2.设有函数关系为y=,下列选项中,能正确表示上述关系的是()。
A y = 1;                            B y = -1;
if( x >= 0 )                            if( x != 0 )
if( x == 0 ) y = 0;                        if( x > 0 ) y = 1;
else  y = -1;                          else y = 0
C if( x <= 0 )                        D y = -1;
    if( x < 0 ) y = -1;                    if( x <= 0 )
    else  y = 0;                        if( x < 0 ) y = -1;
  else  y = 1;                            else y = 0;
3.假设i=2,执行下列语句后i的值为( B )。
switch( i )
{
case 1 : i ++;
  case 2 : i --;
  case 3 : ++ i; break;
  case 4 : -- i;
  default : i ++;
}
A1            B2            C3            D4
4.已知int i=0x=0;,在下面while语句执行时循环次数为( D )。
while( !x && i< 3 ) { x++; i++; }
A4            B3            C2            D1
5.已知int i=3;,在下面do_while 语句执行时的循环次数为( B )。
do{ i--; cout<<i<<endl;}while i!= 1 ;
A1            B2            C3            D)无限
6.下面for语句执行时的循环次数为( B )。
int i, j;
for ( i=0, j=5;i=j; )
{ cout<<i<<j<< ndl; i++; j--; }
A0            B5            C10            D)无限
7.以下程序段形成死循环的是( B )。
Aint x; for( x=0; x<3; ) { x++; };
Bint k = 0; do { ++k; } while( k>=0 );
Cint a=5; while( a ) { a--; };
Dint i=3; for(; i; i -- );
2.2  阅读下列程序,写出运行结果
1
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d,x;
a = c = 0; b = 1; d = 20;
if( a )
d = d-10;
else
if( !b )
      if( !c )
        x = 15;
      else x = 25;
cout << d << endl;
}
【解答】
20while语句都可以用for改写
2
#include<iostream>
using namespace std;
int main()
{
int a = 0, b = 1;
switch( a )
{
case 0:
switch( b )
{
case 0 : cout<<"a="<<a<<" b="<<b<<endl; break;
case 1 : cout<<"a="<<a<<" b="<<b<<endl; break;
}
case 1:
a++; b++; cout<<"a="<<a<<" b="<<b<<endl;
}
}
【解答】
a= 0 b= 1
a= 1 b= 2
3
#include<iostream>
using namespace std;
int main()
{
int i = 1;
while( i<=10 )
{
if( ++i % 3 != 1 )
continue;
else
cout << i << endl;
}
}
【解答】
4
7
10
4
#include<iostream>
using namespace std;
int main()
int i = 0, j = 5;
do
{
i++; j--;
if ( i>3 ) break;
} while ( j>0 );
cout << "i=" << i << endl << "j=" << j << endl;
}
【解答】
i= 4    j= 1
5
#include<iostream>
using namespace std;
int main()
{
int i,j;
for( i=1, j=5; i<j; i++ )
{ j--; }
cout<<i<<'\t'<<j<<endl;
}
【解答】
3        3
6
#include<iostream>
using namespace std;
int main()
{
int i, s = 0;
for( i=0; i<5; i++ )
switch( i )
case 0:  s += i;  break;
case 1:  s += i;  break;
case 2:  s += i;  break;
default: s += 2;
}
cout<<"s="<<s<<endl;
}
【解答】
s= 7
7
#include<iostream>
using namespace std;
int main()
{
int i, j, x = 0;
for( i=0; i<=3; i++ )
{
x++;
for( j=0; j<=3; j++ )
{
if( j % 2 )
continue;
x++;
}
x++;
}
cout << "x=" << x << endl;
}
【解答】
x= 16
2.3  思考题
1C++语言中有什么形式的选择控制语句?归纳它们的语法形式、应用场合。根据一个实际问题使用不同的条件语句编程。
【解答】
语句
使用方式
使用场合
if语句
if(表达式)语句1;
else 语句2;
需要对给定的条件进行判断,并根据判断的结果选择不同的操作。
适用于复杂的条件表达式判断。
switch 语句
switch(表达式)
{ case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
……
case 常量表达式n; 语句n;
[default :  语句n+1;]
}
根据整型表达式的不同值决定程序分支的情况。
适用于判断表达式简单,需要多个分支处理的情况。
    演示程序:
    程序(1
//此程序用if输出等级对应的分数段
//A->=90,B-(90,80],C-(80,70] ,D-(70,60],,E-<60
#include<iostream>
using namespace std;
int main()
{ char gd;
cout<<"Enter the grade:";
cin>>gd;
//直到输入有效等级,否则程序不继续运行
while(!((gd>='A' && gd<='E')||(gd>='a' && gd<='e')))
{ cout<<"Invalid grade! Please retry:";
  cin>>gd;
}
if(gd=='A'||gd=='a') cout<<"\nScored 90-100!\n";
    else if(gd=='B'||gd=='b') cout<<"\nScored 80-89!\n";
else if(gd=='C'||gd=='c') cout<<"\nScored 70-79!\n";
                  else if(gd=='D'||gd=='d') cout<<"\nScored 60-69!\n";
                        else if(gd=='E'||gd=='e') cout<<"\nScore under 60!\n";
                                else cout<<"Unexpect error!\n";  //防止意外错误
}
程序(2
//此程序用switch输出等级对应的分数段
//A->=90,B-(90,80],C-(80,70] ,D-(70,60],,E-<60
#include<iostream>
using namespace std;
int main()
{ char gd;
cout<<"Enter the grade:";
cin>>gd;
//直到输入有效等级,否则程序不继续运行
while(!((gd>='A' && gd<='E')||(gd>='a' && gd<='e')))
      { cout<<"Invalid grade! Please retry:";
        cin>>gd;
      }
switch(gd)
{ case 'A':
case 'a': cout<<"\nScored 90-100!\n";break;
case 'B':
case 'b': cout<<"\nScored 80-89!\n";break;
case 'C':
case 'c':cout<<"\nScored 70-79!\n";break;
case 'D':
case 'd':cout<<"\nScored 60-69!\n";break;
case 'E':
case 'e':cout<<"\nScore under 60!\n";break;
default:cout<<"Unexpect error!\n";//防止意外错误
}
}
2.什么叫做循环控制?归纳比较C++语言中各种循环控制语句的语法、循环条件和循环结束条件的表示形式及执行流程。

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