C++程序设计基础(第4版)习题解答(3)

2019-08-30 18:12

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 using namespace std; int main() {

int i = 0, j = 5; do {

i++; j--; if ( i>3 ) break; } while ( j>0 );

cout << \

} 【解答】 i= 4 j= 1 5.

#include using namespace std; int main() {

int i,j;

for( i=1, j=5; i

cout<

} 【解答】 3 3 6.

#include 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= 7 7.

#include 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= 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 using namespace std; int main() { char gd;

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 using namespace std; int main() { char gd;

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 using namespace std; int main() {

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 using namespace std; int main() {

double score;


C++程序设计基础(第4版)习题解答(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1336吴镇烽:晋公盘与晋公盆铭文对读 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: