




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 1 页 ( 共12 页 )上海大学20042005学年 冬 季学期试卷(A卷)课程名: 高级语言程序设计(二) 学分: 4 (闭卷) 学号:_ 姓名:_ 院、系:_题号一(20)二(20)三(15)四(30)五(15)得分 一填空题(每空1分,共20分)1.填空,使程序中的max()函数、函数模板返回参数中较大者,并指出运行结果。#include #include template max(T x, T y)if(xy) ;else ;/ 为了使max()函数还能处理字符串的内容,重载该模板 max(char *x, char *y)if( 0)return x;elsereturn y;void main()cout max(3, 5) endl;cout max(3.5, 5.5) endl;cout max(b, a) endl;cout max(”abc”, ”abcd”) endl;cout max(”xyz”, ”xyz”) endl;运行结果: 成绩得分第 2 页 ( 共 12 页 )2. 填空,完成如下的Point类模板。#include class Point :Point(T x, T y) ; ;void SetPoint( )_x = x;_y = y;void Display()cout ”(” _x ”, ” _y ”)” endl;protected:T _x, _y;void main()Point a(-1, 2);Point b(1, 2);Point c(a, b);Point d(3.5, 5.5);a.Display();b.Display();c.Display();d.Display();运行结果: 第 3 页 ( 共 12 页 )得分二(共20分)完成类成员函数定义,并回答问题。#include class RMBpublic:RMB(unsigned int x=0);/ 本函数定义为第1小题void Display();/ 本函数定义为第2小题operator unsigned int()return 100*yuan+10*jiao+fen; / 类型转换函数,可将RMB类型的对象转换成unsigned int类型数据friend ostream & operator (ostream & oo, RMB & r)oo r.yuan ”元” r.jiao ”角” r.fen ”分”;return oo;friend RMB operator +(RMB&r1, RMB&r2)unsigned int n = (unsigned int)r1 + (unsigned int)r2;RMB result(n);return result;friend RMB & operator +(RMB & rmb)rmb.fen+;if(rmb.fen=10)rmb.jiao+;rmb.fen = 0;if(rmb.jiao=10)rmb.yuan+;rmb.jiao = 0;return rmb;friend RMB operator +(RMB & rmb, int)RMB temp = rmb;rmb.fen+;if(rmb.fen=10)rmb.jiao+;rmb.fen = 0; 第 4 页 ( 共 12 页 )if(rmb.jiao=10)rmb.yuan+;rmb.jiao = 0;return temp;protected:unsigned int yuan, jiao, fen;void main()RMB rmb(12345);cout rmb endl;cout +(+rmb) endl;cout rmb+ endl;cout rmb endl;(1) 完成构造函数的定义。其中,形式参数是一个以人民币“分”为单位的整型量表示金额总数(如,“12345分”为“123元4角5分”),要求根据该形式参数正确地完成数据成员yuan(元),jiao(角),fen(分)的初始化。(2) 完成成员函数Display()的定义。(3) 前增量运算是否可以用作左值表达式? 说明为什么后增量运算不能作为左值表达式。(4) 写出程序的运行结果。第 5 页 ( 共12页 )得分三阅读程序(共15分)#include #include class Animalpublic:Animal(int w=0, int a=0)cout Constructing an Animal. endl;weight = w;age = a;virtualAnimal()cout Destructing an Animal. endl;void Print()cout ANIMAL ;/ 此处无换行virtual void Show()cout An Animal ( weight Kg, age years old). endl;protected:int weight, age;class Cat : public Animalpublic:Cat(char *pName=NoName, int w=0, int a=0):Animal(w,a)name = new charstrlen(pName)+1;strcpy(name, pName);coutConstructing a Cat, name created.endl;Cat()coutDestructing a Cat, name deleted.endl;delete name;void Print()cout CAT ;/ 此处无换行void Show()cout name , a cat ( weight Kg, age years old). Meow. Print(); pa-Show();pc-Print(); pc-Show();delete pa;delete pc; 1. (10分)写出运行结果。2. (5分)结合上面的程序,倘若不将析构函数设置成虚函数,是否有缺陷?若有,请指出其缺陷。答:第 7 页 ( 共 12 页 )四阅读及改编程序(共30分)1.(10分)有如下类CAT的说明class CATpublic:CAT(int age=0)itsAge = new int;*itsAge = age;CAT(CAT & c)itsAge = new int;*itsAge = *(c.itsAge);CAT()delete itsAge;itsAge = NULL;int GetAge()return *itsAge;void SetAge(int age)*itsAge = age;protected:int *itsAge;将其中的数据成员改成整型变量int itsAge;请重新编写这个类,要求保持类的外部接口不变(即成员函数的原型不变、功能不变,函数体语句需要修改。若系统提供的某种默认函数能有相同功效,可以不另外定义而使用系统默认的函数)。得分第 8 页 ( 共 12 页 )2.(20分)有如下类Tdate的说明及程序#include #include class Tdatepublic:Tdate(int m=12, int d=25, int y=2004);int IsLeapYear();void Print();void NextDay();friend ostream & operator (ostream & oo, Tdate & date);friend Tdate & operator +(Tdate & date);friend Tdate operator +(Tdate & date, int);private:int month, day, year;Tdate:Tdate(int m, int d, int y)month = m; day = d; year = y;int Tdate:IsLeapYear()return (year%4=0 & year%100!=0 | year%400=0);void Tdate:Print()cout setfill(0) setw(2) month / setw(2) day / year endl;cout daysmonth-1)day = 1;month+;if(month12)month = 1;year+;第 9 页 ( 共 12 页 )ostream & operator (ostream & oo, Tdate & date)oo setfill(0) setw(2) date.month / setw(2) date.day / date.year;oo setfill( );return oo;Tdate & operator +(Tdate & date)date.NextDay();return date;Tdate operator +(Tdate & date, int)Tdate temp(date);date.NextDay();return temp;template void fn(T a, int n)for(int i=0; in; i+)cout a+ endl;void main()Tdate a;fn(a, 10);(A) (4分)写出程序的运行结果。第 10 页 ( 共 12 页 )(B) (16分)将类Tdate中的数据成员改成int *year, *month, *day;请重新编写这个类,要求保持类的外部接口不变(成员函数的原型不变、功能不变,函数体语句需要修改)。即在类之后完成尚未完成的5个成员函数的定义以及3个运算符重载。class Tdatepublic:Tdate(int m=12, int d=25, int y=2004);Tdate(Tdate & date);Tdate();int IsLeapYear()return (*year%4=0 & *year%100!=0 | *year%400=0);void Print();void NextDay();friend ostream & operator (ostream & oo, Tdate & date);friend Tdate & operator +(Tdate & date);friend Tdate operator +(Tdate & date, int);private:int *month, *day, *year;第 11 页 ( 共 12 页 )第 12 页 ( 共 12 页 )五(共15分。其中,类3分,其余每小题2分)设计一个复数类class Complex,其数据成员为dou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 1953:2025 EN Coal - Size analysis by sieving
- 2025昆明聂耳交响乐团编外人员招聘(1人)考前自测高频考点模拟试题及参考答案详解一套
- 2025年滇西科技师范学院公开招聘博士人员(8人)考前自测高频考点模拟试题含答案详解
- 2025福建三明市教育局华东师范大学附属三明中学招聘紧缺急需专业工作人员18人(省外高校专场)考前自测高频考点模拟试题附答案详解(突破训练)
- 2025北京清华附中上庄学校招聘模拟试卷及参考答案详解
- 2025年中国华电集团有限公司宁夏分公司所属基层单位高校毕业生招聘笔试题库历年考点版附带答案详解
- 2025北京市大兴区教育委员会所属事业单位第二批招聘教师251人考前自测高频考点模拟试题及答案详解(新)
- 2025湖北恩施市福牛物业有限公司补招恩施市金满园农业发展有限公司工作人员1人考前自测高频考点模拟试题及答案详解(网校专用)
- 2025福建厦门市翔安招商集团有限公司(第一期)招聘4人考前自测高频考点模拟试题及参考答案详解
- 2025年福建省福州市少年儿童图书馆招聘3人模拟试卷参考答案详解
- 22G101三维立体彩色图集
- 政工专业人员考核意见表
- 植物生理学植物的抗逆境生理
- 渔业资源与渔场学PPT完整全套教学课件
- GB/T 1871.1-1995磷矿石和磷精矿中五氧化二磷含量的测定磷钼酸喹啉重量法和容量法
- 第五节 重力流输水管线设计计算
- 元数据教学讲解课件
- CCP与备货0403 (华为培训)课件
- 小学数学西南师大四年级上册二加减法的关系和加法运算律简便计算综合练习PPT
- ASCVD时代总体心血管风险评估工具的更新ppt参考课件
- GB 15579.3-2014 弧焊设备 第3部分:引弧和稳弧装置
评论
0/150
提交评论