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

2019-08-30 18:12

}

cout << \cin >> score;

if ( score>=85 ) cout << \ else if ( score>=60 ) cout << \ else cout << \

2.输入3个整数,按从小到大的顺序输出它们的值。 【解答】

#include using namespace std; int main() {

int a, b, c, t; cout << \cin >> a >> b >> c; 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.输入三角形的3条边,判别它们能否形成三角形,若能,则判断是等边、等腰三角形,还是一般三角形。 【解答】

#include using namespace std; int main() {

double a, b, c ; cout << \ cin >> a >> b >> c ;

if ( a+b > c && b+c > a && c+a > b ) {

if ( a == b && b == c )

cout << \等边三角形!\ else if ( a == b || a == c || b == c )

else cout << \一般三角形!\

cout << \等腰三角形!\ } else

cout << \不能形成三角形!\}

4.输入百分制成绩,并把它转换成五级分制,转换公式为:

A(优秀) 90~100 B(良好) 80~89 C(中等) 70~79 D(合格) 60~69

??grade(级别)=? ??????

【解答】

#include using namespace std; int main() {

double score; char grade; cout << \ cin >> score;

if ( score >= 0 && score <= 100 )

{

switch ( int( score ) /10 ) {

case 10:

case 9: grade = 'a'; break; case 8: grade = 'b'; break; case 7: grade = 'c'; break; case 6: grade = 'd'; break; case 5: case 4: case 3: case 2: case 1:

case 0: grade = 'e'; break; } } else {

cout <<\数据输入错误!\

goto end;

}

cout << grade << endl;

end: ; //分号不能省 }

5.编程模拟剪刀、石头和布游戏。游戏规则为:剪刀剪纸,石头砸剪刀,布包石头。玩游戏者从键盘输入s(表示剪刀)或r(表示石头)或p(表示布),要求两个游戏者交替输入,计算机给出输赢的信息。

【解答】

#include using namespace std; int main() {

char first,second;

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 << \ case 'p': cout << \ default : cout << \}

default : cout << \ } end: ; }

6.输入一个整数,输出该整数的所有素数因子。例如,输入120,输出为2、2、2、3和5。 【解答】

#include using namespace std; int main() {

int m,i = 2;

cout << \ cin >> m;

while( i<=m ) if( m % i == 0 ) {

cout << i << \

m = m / i; } else i++; }

7.使用迭代公式xn?1?(xn?a/xn)/2(n?0,1,2;x0?a/2)编程求某一正整数a的平方根。 【解答】

#include #include int main() {

const double eps = 1e-8; double a,x0,x;

cout << \cin >> a; x0 = a / 2; x = ( x0 + a/x0 )/2; while( fabs( x-x0 )>eps ) {

x0 = x; x =( x0 + a/x0 )/2; }

cout << x << endl; }

8.已知x=0, 10, 20, …, 180,求sinx,cosx和tanx的值。 【解答】

#include #include #include using namespace std; int main() {

const double pi = 3.14159265; int i;

double x,y1,y2,y3;

cout << setw(2) << \ << \ for( i=0; i<=18; i++ ) {

x = i*10*pi/180;

????

using namespace std;

y1 = sin( x ); y2 = cos(x); y3 = y1/y2;

cout << setw(2) << i << setw(15) << y1 << setw(15) << y2 << setw(15) << y3 << endl; } }

9.在100~200之间找出满足用3除余2,用5除余3和用7除余2的所有整数。 【解答】

#include using namespace std; int main() { int i;

for( i=100; i<=200; i++ ) {

if ( ( i % 3 == 2) && ( i % 5 == 3 ) && ( i % 7 == 2 ) ) cout << i << endl; } }

10.求100~999之间的水仙花数。所谓水仙花数,是指一个3位数,它的每位数字的立方之和等于该数。例如,因为153=1+5+3,所以153为水仙花数。

【解答】

#include using namespace std; int main() {

int i,a,b,c;

for( i=100; i<=999; i++ ) {

a = i/100;

b = ( i-a*100 ) / 10; c = i - a*100 - b*10;

if ( i == a*a*a + b*b*b + c*c*c )

cout << i <

} }

11.求1000以内的所有完数。所谓完数,是指一个数恰好等于它的所有因子之和。例如,因为6=1+2+3,所以6为完数。

【解答】

#include using namespace std; int main()

333


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

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

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

马上注册会员

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