第2章 程序控制结构
2.1选择题
1.已知 int i,x,y;在下列选项中错误的是( c )。 (a) if(x == y)i++; (b) if(x = y)i--; (c) if( xy )i--; (d) if( x+y )i++; 2.设有函数关系为y=??1x?0??0x?0 ,下面选项中能正确表示上述关系为(??1x?0(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 = 1;
3.假设i=2,执行下列语句后i的值为( b )。
switch(i) { case 1:i++; case 2:i--;
case 3:++i;break; case 4:--i; default:i++;
} (a) 1 (b) 2 (c) 3 (d) 4
4.已知int i=0,x=0;下面while语句执行时循环次数为( d )。
while(!x && i<3 ){ x++;i++;} (a) 4 (b) 3 (c) 2 (d) 1
5.已知int i=3;下面do_while 语句执行时循环次数为( b )。
do{ i--; cout<
i++;j--; } 6
c )。
(a) 0 (b) 5 (c) 10 7.以下死循环的程序段是( b )。 (a) for(int x=0;x<3 ;){ x++;}; (b) int k=0;
do { ++k;} while( k>=0 ); (c) int a=5;while(a){ a--;}; (d) int i=3;for(;i;i--);
(d) 无限
2.2阅读下列程序,写出执行结果
1. #include
void 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; }
答案: 20
2. #include
void main()
{ int a = 0, b = 1; switch( a )
{ case 0: switch( b )
{ case 0 : cout << \ case 1 : cout << \ }
case 1: a++; b++; cout << \ } }
答案:
a=0 b=1 a=1 b=2
3. #include
void main()
7
{ int i = 1; while( i<=10 ) if( ++i % 3 != 1 ) continue;
else cout << i << endl; }
答案: 4 7 10
4. #include
void main()
{ int i = 0 , j = 5; do
{ i++; j--;
if ( i>3 ) break; } while ( j>0 );
cout << \'\\t '<< \ }
答案: i=4 j=1
5. #include
void main() { int i,j;
for( i=1, j=5; i cout << i << ′\\t′<< j << endl; } 答案: 3 3 6. #include { 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; 8 } cout << \ } 答案: s=7 7. #include void 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=16 2.3编程题 1.输入某学生成绩,若成绩在85分以上输出“very good”,若成绩在60分到85分之间输出“good”,若成绩低于60分输出“no good”。 解答:略。 2.输入三个数,按从小到大的顺序输出。 解答: #include if( a>b ) { t = a; a = b; b = t; } if( a>c ) { t = a; a = c; c = t; } if( b>c ) { t = b; b = c; c = t; } cout << a << '\\t '<< b << '\\t' << c << endl; } 3.输入三角形的三条边,判别它们能否形成三角形,若能,则判断是等边、等腰、还 9 是一般三角形。 解答:略。 4.输入百分制成绩,并把它转换成五级分制,转换公式为: ?excellent(优秀)?good(良好)??grade(级别)??general(中等)?pass(合格)???nopass(不合格)90?10080?8970?7960?690?59 解答:略。 5.编程序模拟剪刀、石头和纸游戏。游戏规则为:剪刀剪纸,石头砸剪刀,纸包石头。玩游戏者从键盘上输入s(表示剪刀)或r(表示石头)或p(表示纸),要求两个游戏者交替输入,计算机给出输赢的信息。 第7章 解答: 第8章 第9章 第10章 第11章 第12章 第13章 第14章 第15章 第16章 第17章 第18章 第19章 第20章 第21章 第22章 第23章 第24章 第25章 第26章 第27章 第28章 第29章 第30章 第31章 第32章 第33章 #include cout << \ cin >> first; cout << \ cin >> second; switch ( first ) { case 's': switch ( second ) { case 's': cout << \ case 'r': cout << \ case 'p': cout << \ default : cout << \ } case 'r': switch ( second ) { case 's': cout << \ case 'r': cout << \ case 'p': cout << \ default : cout << \ } case 'p': switch ( second ) { case 's': cout << \ case 'r': cout << \ 10