西南交通大学面向对象程序设计

上传人:壹****1 文档编号:508100613 上传时间:2022-09-30 格式:DOC 页数:36 大小:313.01KB
返回 下载 相关 举报
西南交通大学面向对象程序设计_第1页
第1页 / 共36页
西南交通大学面向对象程序设计_第2页
第2页 / 共36页
西南交通大学面向对象程序设计_第3页
第3页 / 共36页
西南交通大学面向对象程序设计_第4页
第4页 / 共36页
西南交通大学面向对象程序设计_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《西南交通大学面向对象程序设计》由会员分享,可在线阅读,更多相关《西南交通大学面向对象程序设计(36页珍藏版)》请在金锄头文库上搜索。

1、 西南交通大学2012年面向对象程序设计试题及答案开发环境为VC+6.0,运行结果有截图,若发现错误欢迎指正。实验一、C+程序开发环境及c+简单程序设计。题目1、简单c+程序任务: 按提示的操作步骤输入下面的代码,编译连接并执行。源程序代码:#includeiostream.hvoid main() coutHello!n; coutWelcome to c+!endl; coutThis is my first c+ programendl;运行结果:题目2、编写程序,从标准输入读入一个数,把它转化为英文单词输出,如输入123,这是输出“one two three”。源程序代码:#inclu

2、deusing namespace std;void main() char ch; cout ch;if(ch=n) break; switch(ch-48) case 0:coutzero ; break; case 1:cout one ; break; case 2:cout two ; break; case 3:cout three ;break; case 4:cout four ; break; case 5:cout five ; break; case 6:cout six ; break; case 7:cout seven ;break; case 8:cout eig

3、ht ;break; case 9:cout nine ; break; 运行结果:题目 3、循环结构程序设计任务把一张一元纸币换成一分、二分和五分的硬币,假如每一种至少一枚,文友多少种换法,编程将各种换法显示出来。源程序代码:#includeusing namespace std;void main()int i,j,k,x=0;cout一角 两角 三角 endl;for(i=1;i=93;i+)for(k=1;k=47;k+)for(j=1;j=19;j+)if(i+2*k+5*j=100)x+;couti j k endl; cout换法的总数为 :xendl;运行结果:(由于种数太多截

4、图不方便所以只截了最后的部分!)实验二、函数题目1、内联函数任务(1) 定义内敛函数max(),求两个整数中的最大值,然后在main()函数中惊醒调用(2) 定义内联函数inline-fun()和一般函数common-fun(),使整型参数值加1,然后在main()函数中惊醒调用;源程序代码:#includeusing namespace std;inline int max(int x,int y);inline int inline_fun(int x);int common_fun(int x);void main()int x=4,y=5;coutx,y中最大的是 :max(x,y)e

5、ndl;coutx加1后为 :inline_fun(x)endl;couty加1后为 :common_fun(y)y) return x; else return y;inline int inline_fun(int x) return +x;int common_fun(int x) return +x;运行结果:题目2、函数参数的传递机制、重载函数任务()编写重载函数max1()可分别求2个整数、3个整数、2个双精度和3双精度数的最大值。(2)定义两个名称都为sum()的函数,第一个函数支持整型数组,第二个函数支持浮点型数组,求数组元素的和。源程序代码:#includeusing nam

6、espace std;int max1(int x,int y) if(xy) return x;else return y;int max1(int x,int y,int z)if(xmax1(y,z) return x;else return max1(y,z);double max1(double x,double y) if(xy) return x;else return y;double max1(double x,double y,double z) if(xmax1(y,z) ) return x;else return max1(y,z);int sum(int *p,in

7、t n) int i=0,s=0; for(;in;i+) s+=pi; return s;double sum(double *p,int n)int i; double s=0;for(i=0;in;i+)s+=pi;return s;void main()int a=1,b=2,c=3; double x=4.5, y=6.7, z=8.9;int p5=1,2,3,4,5; double q5=4.5 ,6.7,8.9,2.4,1.2;couta,b的最大值为 :max1(a,b)endl;couta,b,c的最大值为 :max1(a,b,c)endl;coutx,y的最大值为 :ma

8、x1(x,y)endl;coutx,y,的最大值为 :max1(x,y,z)endl; coutint 型p数组元素的和为 :sum(p,5)endl;coutdouble 型数组q的元素和为 :sum(q,5)endl;运行结果: 题目 3、带默认参数的函数任务 定义函数volume(),计算立体的体积,要求在主函数中以5中不同的形式调用此函数。源程序代码:#includeusing namespace std;double volume(double x=1,double y=2,double z=3);void main()double x=4,y=5,c=6;coutvolume()e

9、ndl;coutvolume(4)endl;coutvolume(4,5)endl;coutvolume(5,6)endl;coutvolume(4,5,6)endl;double volume(double x,double y,double z)/注意这里不可以再带默认的参数!cout以x,y,z为棱的长方体的体积为 :;return x*y*z;运行结果:实验三、类于对象题目1、私有成员的访问任务下面的程序中用ERROR标明的语句有错误,在不删除和增加代码行的情况下,改正错误的语句,使其正确运行。错误代码及改正方法:#includeusing namespace std;class Aa

10、public :Aa(int i=0) a=i; coutConstructoraendl;Aa() coutDestructoraendl;void print() coutaendl;private :int a;int main()Aa a1(1),a2(2);a1.print();couta2.aendl;/ERROR将该行代码中访问了a2的私有属性,改为a2.print();return 0;改正后的运行结果:题目2、构造函数、拷贝构造函数任务(1) 调试下列程序源程序代码:#include using namespace std;class Topint public:Topint

11、(int x,int y) X=x;Y=y;Topint(Topint &p);Topint () coutdestructor is called n;int getx() return X;int gety() return Y;private :int X,Y;Topint:Topint(Topint &p)X=p.X; Y=p.Y;coutCopy -initialization Cnstructor is calledn;int main()Topint p1(4,9);Topint p2(p1);Topint p3=p2;coutp3=(p3.getx(),p3.gety()n;r

12、eturn 0;运行结果:问题:(1) 在该程序中将Topint类的带有两个参数的构造函数进行修改,在函数体内添加下述语句:coutConstructor is Called.n。对程序的输出结果进行分析和说明。运行结果:第一个Constructor is Called是构造p1时产生的,两个Copy-initialization Constructor is Called分别hi构造p2 和p3 时 产生的。析构p3、p2、p1,是产生了三个destructor is called。(2) 对上述程序在主函数中添加下列说明语句:Topint p4,p5(2)调试程序会出现什么现象,为什么?如何解决?结合运行结果分析如何使用不同的构造函数创建把不同的对象?对程序的输出结果进行分析和说明。会出现对象p4,p5 无法构造。在类中将构造函数Topint(int x,int y);改成带有默认参数的构造函数,例如:Topint(int x=0,int y =0);运行结果:分析同上。题目3、析构函数、new和delete运算符任务 定义字符串类,包括私有数据成员(char *ch),构造函数中用new为ch申请空间,析构函数用delet

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号