




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上 海 交 通 大 学 试 卷( A 卷) ( 2013 至 2014 学年 第2学期 期末考试)班级号_ 学号_ 姓名 课程名称 C+(A) 成绩 一、 选择填空:(每题1分,共15分)1. 与class sample enum SIZE = 10; int storageSIZE;等价的类定义为 。A、class sample const static int SIZE = 10; int storageSIZE;B、class sample const int SIZE = 10; int storageSIZE;C、class sample static const int SIZE = 10; int storageSIZE;D、class sample int SIZE = 10; int storageSIZE;2对于类中定义的成员,其默认访问权限为_。 A、 public B、 protected C、 private D、 static3. 友元运算符obj1+obj2被编译器解释为 。A、operator+(obj1,obj2) B、+(obj1,obj2) C、obj2.operator+(obj1) D、obj1.operator+(obj2)4. 若要对类Counter中重载的前缀+运算符进行声明,下列选项中正确的是 。A、Counter operator +() const; B、Counter operator +(int); C、friend Counter operator +() const; D、friend Counter operator +(int); 5. 下列运算符中能够重载成友元函数的是 。 A、 B、= C、* D、()6. 以下对运算符重载描述正确的是 。A、重载的运算符的参数至少应有一个是类对象 B、重载运算符能够改变运算符的的优先级别C、重载运算符能够改变运算符的操作个数 D、重载运算符可以有默认的参数7. 将运算符+重载为类成员函数后,编译系统将程序中的表达式C1+C2解释为 。 A、C1.operator+C2.operator B、(C1) +C2.operatorC、C1.operator+(C2) D、operator+(C1,C2)8. 下列关于虚函数的说明中,正确的是 。A、从虚基类继承的函数都是虚函数B、虚函数不得是静态成员函数C、只能通过指针或引用调用虚函数D、抽象类中的成员函数都是虚函数9. 下列函数中,不能声明为虚函数的是 。A、私有成员函数 B、公有成员函数 C、构造函数 D、析构函数题号一二三四得分批阅人(流水阅卷教师签名处) 我承诺,我将严格遵守考试纪律。承诺人: 10. 在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 。 A、派生类的对象可以赋给基类的对象 B、派生类的对象的地址可以赋给指向基类的指针C、派生类的对象可以直接访问基类中的成员 D、派生类的对象可以初始化基类的引用11下列对友元关系叙述正确的是 。 A、不能继承 B、是类与类的关系 C、只能是一个类的成员函数与另一个类的关系 D、只能是一个外部函数和一个类的关系12. 下面哪种情况不会导致缓冲区的内容被刷新 。A、 程序正常结束B、缓冲区已满时 C、使用行结束符endl D、使用操作时13read函数的功能是从输入流中读取 。A、当前字符B、一个字符C、指定若干字符D、一行字符14char *str=”Hello, SJTU!”;coutstr+1;将输出 。A、Hello, SJTU!B、ello, SJTU!C、HelloD、SJTU15. 当使用ifstream定义文件流并打开文件时,文件默认的打开方式是 。A、ios:inB、ios:outC、ios:trunkD、ios:binary二、写出程序段的运行结果:(每题3分,共30分)(1)#include class Increment public:Increment( int c = 0, int i = 1 );void addIncrement() count += increment; void print() const;private:int count;const int increment;Increment:Increment( int c, int i ): increment( i )count = c;void Increment:print() constcout count = count , increment =increment endl;int main()Increment value( 10, 5 );cout Before incrementing: ;value.print();value.addIncrement();cout After increment :;value.print();return 0;(2)#include using namespace std;class Count friend void setX( Count &,int );public:Count() x = 0; void print()const cout x endl; private:int x;void setX( Count &c, int val )c.x = val;int main()Count counter;cout counter.x after instantiation: ;counter.print();cout counter.x after call to setx friend function: ;setX( counter, 8 ); / set x with a friendcounter.print();return 0;(3)#include /Simple Date classclass Date public:Date( int = 1, int = 1, int = 1990 );void print();private:int month;int day;int year;Date:Date( int m, int d, int y )month = m;day = d;year = y;void Date:print() cout month - day - year; int main()Date date1(7,4,1993), date2;cout date1 = ; date1.print();cout ndate2 = ;date2.print();date2 = date1;cout nAfter default memberwise copy, date2 = ;date2.print();return 0;(4)#include using namespace std;class Tpublic: T( )a=0; b=0; c=0; T( int i,int j,int k) a=i; b =j;c=k; void get( int &i,int &j,int &k) i=a; j=b; k=c; T operator *(T obj);private: int a,b,c;T T:operator *(T obj)T tempobj; tempobj.a=a * obj.a; tempobj.b=b * obj.b; tempobj.c=c * obj.c; return tempobj;int main()T obj1( 1,2,3),obj2( 5,5,5),obj3;int a,b,c;obj3=obj1 * obj2;obj3.get( a, b, c);cout(obj1 * obj2):ta=atb=b tc=ctendl;(obj2 * obj3 ).get( a, b, c);cout(obj2*obj3):ta=atb=btc=ctendl;return 0; (5)#include class Sample int n;public: Sample(); Sample(int m)n=m; int &operator-(int) n-; return n; void disp() coutrl=nendl; void main() Sample s(10); (s-)+;s.disp(); (6)#include class Sample private: int x;public: Sample()x=0; void disp()coutx=xendl; void operator+(int)x+=10; ; void main() Sample obj; obj.disp(); obj+; coutafter obj+: endl; obj.disp(); (7)#include using namespace std;class base int x;public: base(int i) x = i; void dispbase() cout x ,; ;class derived : public base int x;public: derived(int i) : base(i*10) x = i; void dispderived() dispbase(); cout x endl; ;int main() derived d(3); d.dispderived(); return 1; (8)#includeusing namespace std;class Apublic:virtual void func1( )coutfunc1 in class Aendl; void func2( )coutfunc2 in class Aendl; ;class B:public Apublic:void func1( ) coutfunc1 in class Bendl;virtual void func2( ) coutfunc2 in class B func1(); obj - func2(); return 0; (9)#include using namespace std;class Base int i; public: Base(int n)cout Constructing base class endl;i=n; Base()cout Destructing base class endl; void showi()cout base i=i ,; int Geti()return i;class Derived: public Base int j; Base aa; public: Derived(int x,int y,int z):aa(x),Base(y) cout Constructing derived class endl; j=z; Derived()cout Destructing derived classendl; void show() Base:showi(); cout j, aa.Geti() endl; ;int main() Derived d(10,20,30); d.show(); return 1;(10)#includeusing namespace std;templateclass A T x; public: A(T xx):x(xx)T fn()return x*x*x;void main()Aa1(3);Aa2(1.1);couta1.fn()ta2.fn()endl;三、程序填空题(每空2分,共20分)(1).#includeusing namespace std;class Aint a;public:A(int x)a = x; cout “a=“aendl; void func() = 0; cout A destructor endl;class B : public A char* m_p;public:B(int x) cout B constructor endl; m_p = new char10; B()cout B destructor func(); return 0;输出结果:a=1B constructorfunc calledB destructorA destructor(2)#include using namespace std;int main(void)char ch; out(data.txt);if (!out) cerr Create file errorn;return 1;out Hello,SJTU!;out.close();ifstream in; (data.txt);if (!in) cerr ch) cout ch;cout endl; return 0;四、编程题(35分)1. (10分)编写一个程序,采用异常处理的方法,在指定的文件a.txt不存在时显示出错信息,文件存在时显示文件的大小(多少字节数)。2. (10分)设计一个类模板Array, 其中包含构造函数、重载下标运算符函数和复制构造函数,要求该下标运算可以作为赋值语句的左值。 3. (15分) 设计一个抽象类Shape, 包含计算面积的函数area。在Shape类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃省酒泉市金塔县等4地2024-2025学年高二上学期11月期中考试政治试卷(含答案)
- 【设计】室内装饰装修施工组织设计
- 部门安全知识培训记录课件
- 部门员工安全培训需求表课件
- 基因检测眼病预后评估-洞察及研究
- 企业形象塑造-洞察及研究
- 基于成本效益分析的制动式浴缸排水系统市场渗透策略
- 基于分子模拟技术解析甲维盐水剂与靶标蛋白的相互作用机制
- 地坪漆施工中湿度和温湿度波动对固化效果的影响及补偿策略
- 国产化替代浪潮中工业控制主机的软硬协同适配瓶颈
- 售后服务网点授权协议书
- 工贸企业主要负责人和安全管理人员安全培训演示文稿
- 狮子王中英文台词对照(超全的完整版)(英语口语练习必备)
- HP碗式中速磨煤机检修教程
- 办公室一族常见病预防
- 精神科诊疗常规及技术操作规范-
- 人教版小学六年级上册语文单元测试卷全册
- DB37T 3842-2019 铁矿绿色矿山建设规范
- 《农业园区规划与管理》课件第一部分 03
- 江苏常熟新材料产业园环境风险评估报告
- 建设法规工程建设执业资格法规
评论
0/150
提交评论