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
int i = 0, j = 5; do {
i++; j--; if ( i>3 ) break; } while ( j>0 );
cout << \
} 【解答】 i= 4 j= 1 5.
#include
int i,j;
for( i=1, j=5; i cout< } 【解答】 3 3 6. #include 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= 7 7. #include 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.C++语言中有什么形式的选择控制语句?归纳它们的语法形式、应用场合。根据一个实际问题使用不同的条件语句编程。 【解答】 语句 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 cout<<\cin>>gd; //直到输入有效等级,否则程序不继续运行 while(!((gd>='A' && gd<='E')||(gd>='a' && gd<='e'))) { cout<<\ cin>>gd; } if(gd=='A'||gd=='a') cout<<\ } 程序(2) //此程序用switch输出等级对应的分数段 //A->=90,B-(90,80],C-(80,70] ,D-(70,60],,E-<60 #include cout<<\cin>>gd; //直到输入有效等级,否则程序不继续运行 while(!((gd>='A' && gd<='E')||(gd>='a' && gd<='e'))) { cout<<\ cin>>gd; } else if(gd=='B'||gd=='b') cout<<\ else if(gd=='C'||gd=='c') cout<<\ else if(gd=='D'||gd=='d') cout<<\ else if(gd=='E'||gd=='e') cout<<\ else cout<<\ //防止意外错误 switch(gd) { case 'A': case 'a': cout<<\case 'B': case 'b': cout<<\case 'C': case 'c':cout<<\case 'D': case 'd':cout<<\case 'E': case 'e':cout<<\default:cout<<\防止意外错误 } } 2.什么叫做循环控制?归纳比较C++语言中各种循环控制语句的语法、循环条件和循环结束条件的表示形式及执行流程。 【解答】 循环控制是在特定的条件下,程序重复执行一些特定动作。 语句 while语句 语法 while(表达式) 循环体; 循环条件:表达式值为非0(真) 循环结束条件:表达式值为0(假) 执行流程 使用场合 程序中常用于根据条件执行操作而不需关心循环次数的情况。 先判断形式循环,条件不成立时不进入循环体。 do-while语句 do 循环体 while(表达式); 循环条件:表达式值为非0(真) 循环结束条件:表达式值为0(假) 程序中常用于根据条件执行操作而不需关心循环次数。 后判断形式循环,至少执行1次循环体。 一般情况,while语句和do while语句可以互换使用。 for 语句 for([表达式1];[表达式2];[表达式3]) (1)表达式1称为初始化表达式,不是循环体执行部分。 (2)表达式3称为后置表达式,作为循环体的最后一个执行表达式。 (3)循环条件:表达式2值为非0(真) 循环结束条件:表达式2值为0(假) 循环体; for语句称为步长循环语句,通常用于确定循环次数的情况。 由于语句的3个表达式均可以缺省,也可以用于条件循环,即循环次数不确定的情况。 3.根据一个实际问题,用不同的循环语句编程,分析其优缺点。 【解答】 略。 4.用if语句和goto语句组织循环,改写上面第3题编写的程序,并分析在什么情况下可以适当使用goto语句。 【解答】 在不破坏程序基本流程控制的情况下,可以适当使用goto语句实现从语句结构内部向外的必要跳转,即按特定条件结束结构语句块的执行。 程序略。 5. 有以下程序,希望判断两个输入的整数是否相等。程序通过编译,但不能达到预期结果。请分析程序能够通过C++编译而不能得到期望结果的原因。 #include int a,b; cout<<\ cin>>a; cout<<\ cin>>b; if( a=b ) cout< cout< } 运行程序,输入a的值为4,b的值为9,显示结果如下: a: 4 b: 9 9等于9 【解答】 在if语句的判断表达式(a=b)中,赋值号―=‖应该是逻辑等―==‖。从语法上,C++的if语句把a=b这个赋值表达式视为逻辑表达式,没有编译错误。a=b的值决定于b。若b的输入值不等于0,if语句的判断表达式作为逻辑真(true),否则作为逻辑假(false)。所以,题目中输入b的值虽然不等于a,但表达式a=b为逻辑true,执行了if语句的第1个分支。 2.4 编程题 1.输入某学生成绩,若成绩在85分以上,则输出―very good‖;若成绩在60~85分之间,则输出―good‖;若成绩低于60分,则输出―no good‖。 【解答】 #include double score;