C++实用教程【郑阿奇】课后习题答案(共99页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C++实用教程【郑阿奇】课后习题答案(共99页).doc》由会员分享,可在线阅读,更多相关《C++实用教程【郑阿奇】课后习题答案(共99页).doc(99页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一章_C+概述1. C+语言的标准有哪些?它有哪些编程方法?结构化程序设计的结构有哪些?答案:标准:C+国际标准ISO/IEC 14882:1998,常被称为C+98、标准C+或ANSI/ISO C+;C+标准第二版(ISO/IEC 14882:2003)。 3种编程方法:以C语言为子集的结构化程序设计模式、以类为核心的面向对象程序设计模式以及以模版为机制的通用编程模式。 结构化程序设计的结构:顺序结构、选择结构和循环结构。2. 面向对象的程序设计有3个主要特征,他们分别是什么?试举例说明。答案:3个主要特征:封装、继承和多态。 封装:封装是将数据和代码捆绑到一起,
2、避免了外界的干扰和不确定性。例如C+中的类,它定义了该集合中每个对象所共有的属性和方法。 继承:继承是让某个类型的对象获得另一个类型的对象的特征。例如:C+中子类对父类的继承,子类具有父类的特性,同时还可以拥有自己的新特性。 多态:多态是指不同类型的对象接收相同的消息时产生不同的行为。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减小代码的复杂度。例如函数的重载。3. C+是以编译方式实现的高级语言,它的编译过程可分为3个子过程,它们分别是什么?答案:创建、编译和连接。4. 参照本章示例,编写1个C+程序:输入圆的半径,输出其周长。答案:#include using na
3、mespace std;int main() double r, area; coutr; area=2*3.14159*r; cout圆的周长为:arean; return 0;第二章 数据类型和基本输入/输出1. 下列常量表示在C+中是否合法?若不合法,指出原因;若合法,指出常量的数据类型。答案:32767:合法,int 35u:合法,无符号整形 1.25e3.4:不合法,e后面的数字必须是整数 3L:合法,长整形 0.0086e-32:合法,实数 87:不合法,八进制数中不应该出现8 “Computer System”:合法,字符串 “a”:合法,字符串 a:合法,字符 9645:不合法
4、,96 45分别为字符类型 .5:合法,double2. 字符常量与字符串常量有什么区别?指出下列哪些表示字符?哪些表示字符串?哪些既不表示字符也不表示字符串?0x66 China “中国” “8.42” 0x33 56.34 “nt0x34” r 8.34 “0x33” 0答案:字符: , 0, r 字符串:“中国”, “8.42”, “nt0x34”, “0x33” 非字符亦非字符串:0x66, China,0x33,56.34, 8.343. 定义两个变量a和b,初值分别为8和10,若要a和b的值互换,即a为10,b为8,如何实现(可用另外一个变量t作为过渡)?如不用中间变量又如何实现?
5、答案:用变量temp作为过渡#include using namespace std;int main() int a=8,b=10; int temp; temp=a; a=b; b=temp; couta: a, b: bendl; return 0;不用中间变量方法一:#include using namespace std;int main() int a=8,b=10; a=ab; b=ba; a=ab; couta: a, b: bendl; return 0;不用中间变量方法二:#include using namespace std;int main() int a=8,b=1
6、0; couta: a, b: bendl; a=a+b;b=a-b;a=a-b; couta: a, b: bendl; return 0;4. 用enum定义4个枚举常量Flase、FALSE、TRUE、True,使其值分别等于bool类型中的false、false、true、true。想一想这样做的好处是什么?若使用const来定义,则如何进行?并比较这两种定义的优缺点。答案:enum False=false,FALSE=false,TRUE=true,True=true; 好处:因为VC+中对大小写是敏感的,为了防止用户输入中大小写出错的情况,所以分别又定义了表示true和false的
7、两种形式。const bool False=false; const bool FALSE=false;const bool TRUE=true;const bool True=true;优缺点:用enum一次可以定义多个整型标识符变量,而const定义的标识符常量由其数据类型决定; 另外,用const定义看不出其关联性。5. 用const常量代替圆周率3.,分别输入半径40和928.335,求圆面积。要求先输出圆周率和半径,再输出其面积。答案:#include using namespace std;const double PI=3.;int main() double radius1=4
8、0,radius2=928.335; double area1,area2; area1=PI*radius1*radius1; area2=PI*radius2*radius2; cout圆周率: PI, 半径: radius1, 面积: area1endl; cout圆周率: PI, 半径: radius2, 面积: area2endl; return 0;6. 设学生人数是一个常数50,编程输出下列结果(双引号也要输出):“How many students in your class?”“50”答案:#include using namespace std;const int STDN
9、O=50;int main() coutHow many students in your class?; coutendl; cout STDNO c1c2c3;若在执行过程中,输入:a b c则cin执行后,c1、c2、c3的值分别是什么?若输入:abcdef则cin执行后,c1、c2、c3的值又分别是什么?答案:输入a b c后,c1的值为 , c2的值为a , c3的值为 输入abcdef后,c1的值为 a , c2的值为b , c3的值为 c8. 设有语句:int a, b, c;cinhexaoctbdecc;couthexatoctbtdecc;若在执行过程中,输入:12 12
10、12指出cin执行后,a、b、c的值分别是什么?输出的结果是什么?答案:输出结果是:1212 12 a、b、c的值分别是18,10和12第三章 运算符和表达式1. 将下列代数式写成C+的表达式:(1)=sqrt(pow(sin(x),2.5)(2)=(a+b)*h)/(2*m)(3)=exp(x*x)/sqrt(2*3.)2. 求出下列算数表达式的值:(1) 5+7/3*4=13(2) 23.5+9/5+0.5=25.0(3) 8+2*9/2=17(4) a +23=97+23=120(5) 设x=2.5,y=4.7,a=7x+a%3*(int)(x+y)%2/4 =2.5+1*int(7.2
11、)%2/4=2.5+7%2/4=2.5+1/4=2.5(6) 设x=3.5,y=2.5,a=2,b=3(float)(a+b)/2-(int)x%(int)y=2.5-1=1.5(7) 设x=8a+x%3+5/2-24=97+2+2-20=813. 在下列表达式中,哪些是合法的赋值表达式?哪些不是?为什么?(a,b,c,x,y都是已定义的int 型变量)(1) a=b=4.5+7.8 是(2) c=3.5+4.5=x=y=7.9 不是,因为4.5是常量不能作为左值(3) x=(y=4.5)*45 是(4) a=x+=+y 不是,x+不能作为左值4. 写出下面表达式运算后a的值,设原来的a都是1
12、0.(1) a+=a a=a+a=20(2) a%=(7%2) a=a%(7%2)=10%1=0(3) a*=3+4 a=a*(3+4)=70(4) a/=a+a a=a/(a+a)=10/20=0(5) a-=a a=a-a=0(6) a+=a-=a*=a a+=a-=100 =a+=0 =a=05. 设m,n的值分别为10,8,指出下列表达式运算后a,b,c,和d的值。(1) a=m+ + n+=10+8=18(2)b=m+ + +n=10+9=19(3)c=+m + +n=11+9=20(4)d=m- + n+=10+8=186. 设a,b,c的值分别为5,8,9;指出下列表达式运算后x
13、 ,y和z 的值(1) y=(a+b,c+a)=(13,14)=14(2) x=y=a,z=a+b x=5 y=5 z=13(3) y=(x=a*b , x+x , x*x)=(x=40,80,1600)=1600 x=40(4) x=(y=a ,z=a+b)=(y=5,z=13)=13 y=5 z=137. 设有变量:float x, y;int a ,b;指出运算下列表达式后x , y, a和b的值。(1)x=a=3.523x=3 y为null a=3 b为null (2)a= x =3.523x=3.523 y为null a=3 b为null(3)x=a=y=3.523x=3.0 y=3
14、.532 a=3 b为null(4) b=x=(a=25,15/2)x=7.5 y为null a=25 b=78. 若有char x=15;使得x的第0位(即二进制位的最右边的那一位,或称最低位)为0,其余位保持不变的赋值表达式是什么?x=x & 1 (其中1是由即pow(2,0)算出来的)9. 用sizeof 运算符编写一段测试程序,测试本机中各基本数据类型或字符串所占的字节数,并将其填写到下表中,然后分析其结果。基本数据类型所占字节数基本数据类型或字符串所占字节数char1float4short2double8int4long double8long4“nChtv0ina”10#inclu
15、deusing namespace std;int main()cout char类型所占字节数为 sizeof(char)n;cout short类型所占字节数为 sizeof(short)n;cout int类型所占字节数为 sizeof(int)n;cout long类型所占字节数为 sizeof(long)n;cout float类型所占字节数为 sizeof(float)n;cout double类型所占字节数为 sizeof(double)n;cout long double类型所占字节数为 sizeof(long double)n;cout字符nChtv0ina所占字节数为 si
16、zeof(nChtv0ina)n;return 0;10. 从键盘输入一个三位数,从左到右用a,b,c表示各位的数字,记为abc.现要求依次输出从右到左的各位数字,即输出另外三位数cba。试设计程序。#includeusing namespace std;int main() int n ,a , b , c , m; /n为输入的三位数,m为需要输出的三位数coutn;if(n=000)c=n%10;b=(n/10)%10;a=(n/10)/10)%10; m=c*100+b*10+a;cout数字n的逆序为mendl;else cout输入不正确c&b=c 75&4=5True & Fal
17、se F(2) a|b+c&bc 3|9&453|9&F 3|F T|F T(3) !a|!c|bF|F|4T(4) a*b&c+a15&8T 2. 设a,b,c的值分别是15,18,19,指出下列表达式运算后x,y,a,b,c的值(1) x=ab&c+表达式运算:y=F&c+=F 此时 y=F ,a=15,b=18,c=19(3) x=a+bc&c+表达式运算:x=3319&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=193. 输入三个整数a,b,c要求按照从小到大的顺序输出方法一:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 郑阿奇 C+ 实用教程 课后 习题 答案 99
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内