C++实用教程3版课后习题答案(2)

2019-04-02 18:14

(4) b=x=(a=25,15/2)

x=7.5 y为null a=25 b=7

8. 若有char x=15;使得x的第0位(即二进制位的最右边的那一位,或称最低位)为0,其余位保持不变的赋值表达式是什么? x=x & ~1 (其中1是由20即pow(2,0)算出来的)

9. 用sizeof 运算符编写一段测试程序,测试本机中各基本数据类型或字符串所占的字节数,并将其填写到下表中,然后分析其结果。 基本数据类型 所占字节数 基本数据类型或字符所占字节数 串 char 1 float 4 short 2 double 8 int 4 long double 8 long 4 “\\nCh\\t\\v\\0ina” 10 #include using namespace std; int main() {

cout <<\类型所占字节数为\cout <<\类型所占字节数为\cout <<\类型所占字节数为\cout <<\类型所占字节数为\cout <<\类型所占字节数为\cout <<\类型所占字节数为\

cout <<\类型所占字节数为\cout<<\字符\\nCh\\t\\v\\0ina所占字节数为\return 0; }

10. 从键盘输入一个三位数,从左到右用a,b,c表示各位的数字,记为abc.现要求依次输出从右到左的各位数字,即输出另外三位数cba。试设计程序。 #include using namespace std; int main() {

int n ,a , b , c , m; //n为输入的三位数,m为需要输出的三位数 cout<<\请输入一个三位数:\cin>>n;

if(n<=999 && n>=000) {

c=n;

b=(n/10);

a=((n/10)/10); m=c*100+b*10+a;

cout<<\数字\的逆序为\

6

} else

cout<<\输入不正确\ return 0; }

第四章 基本语句和基本程序结构

1. 设有变量int a=3,b=4,c=5;求下列表达式的值:

(1) a+b>c&&b==c ? 7>5&&4==5?True && False ?F

(2) a||b+c&&b>c ? 3||9&&4>5?3||9&&F ?3||F ?T||F ? T (3) !a||!c||b?F||F||4?T

(4) a*b&&c+a?15&&8?T

2. 设a,b,c的值分别是15,18,19,指出下列表达式运算后x,y,a,b,c的值 (1) x=a

表达式运算:x= T||c++=T 此时x=T,a=15,b=18,c=19 (2) y=a>b&&c++

表达式运算:y=F&&c++=F 此时 y=F ,a=15,b=18,c=19 (3) x=a+b>c&&c++

表达式运算:x=33>19&&c++=T 此时 x=T.a=15,b=18,c=20 (4) y=a||b++||c++

表达式运算:y=T||b++||c++=T 此时 y=T,a=15,b=18,c=19

3. 输入三个整数a,b,c要求按照从小到大的顺序输出 方法一:

#include using namespace std; int main() {

int a,b,c,temp;

cout<<\请输入三个整数:\

cin >>a>>b>>c;

if(a>b) /*如果a>b,交换a与b的值*/ {

temp=a; a=b; b=temp; }

if(a>c) /*如果a>c,交换a与c的值*/ {

temp=a; a=c; c=temp; }

if(b>c) /*如果b>c,交换b与c的值*/ {

temp=b; b=c; c=temp;

7

}

cout<<\这三个数从小到大的排列为\ cout<<\ cout<<\ cout<<\

return 0; }

方法二:

#include using namespace std; int main() { int a,b,c,temp; cout<<\请输入三个整数:\ cin >>a>>b>>c; if(a>b) /*如果a>b,交换a与b的值*/ { temp=a; a=b; b=temp; } if(b>c) /*如果a>c,交换a与c的值*/ { temp=b; b=c; c=temp; } if(a>b) /*如果b>c,交换b与c的值*/ { temp=a; a=b; b=temp; } cout<<\这三个数从小到大的排列为\ cout<<\ <<\ <<\ return 0; }

4. 有一个数学函数

?x?1(x??10)?y??2x?2(1?x?10) ?2?3x?3x?1(x??1)

写一个程序,输入x,输出y. #include using namespace std; int main() {

8

int x,y; cout<<\请输入x:\ cin >>x; if(x>=10) y=x-1; else if(x>1) y=2*x+2; else y=3*x*x+3*x-1; cout<<\的值为\ return 0; }

5. 给出一个百分制的成绩,要求输出成绩为A,B,C,D.其中,85分以上为A,75~84分为B,65~74分为C,65分以下为D。 #include using namespace std; int main() { float fScore; cout<<\请输入一个百分制的成绩:\ cin >>fScore;

if( fScore>100||fScore<0) cout<<\输入的分数无效\ else if(fScore>=85) cout<<\ else if(fScore>=75) cout<<\ else if(fScore>=65) cout<<\ else

cout<<\ return 0; }

6. 选(D)

7. 求下列循环次数

(1) for(int i=0,x=0;!x&&i<=5;i++) 循环了6次 (2) while(int i=0)i--; 循环了0次 (3) int i=5;

do{

cout<

} While(i!=0); 循环了无数次

8. 编程求100以内被7或5 整除的最大自然数

9

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

for(int i=1;i<=100;i++) {

if(i%5==0||i%7==0) max=i; }

cout<<\这个最大的自然数是\ return 0; }

9. 分析下列程序的输出结果 (1) x=5,y=4,z=1 (2) k=4

(3) <><><>#

10. Fibonacci数列中的前两个数是1和1,从第三个数开始,每个数等于前两个数之和。编程计算并输出次数列中的前30个数 。

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

int sum=0 ,a=1,b=1; for(int i=1;i<=6;i++) {

for(int j=1;j<=5;j++)

{

if(i==1&&j<=2) cout<

cout<

}

return 0; }

11. 编程求n!,即n!?1?2?3?...?n

10


C++实用教程3版课后习题答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:食品机械设备复习题目及答案

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

马上注册会员

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