上海大学修订修订级C++试题

上传人:cn****1 文档编号:508588589 上传时间:2022-11-24 格式:DOCX 页数:28 大小:132.88KB
返回 下载 相关 举报
上海大学修订修订级C++试题_第1页
第1页 / 共28页
上海大学修订修订级C++试题_第2页
第2页 / 共28页
上海大学修订修订级C++试题_第3页
第3页 / 共28页
上海大学修订修订级C++试题_第4页
第4页 / 共28页
上海大学修订修订级C++试题_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《上海大学修订修订级C++试题》由会员分享,可在线阅读,更多相关《上海大学修订修订级C++试题(28页珍藏版)》请在金锄头文库上搜索。

1、成上海大学20152016学年度秋季学期试卷(A卷)课程名:面向对象程序设计课程号:08305121学分:5应试人声明:我保证遵守上海大学学生手册中的上海大学考场规则,如有考试违纪、 作弊行为,愿意接受上海大学学生考试违纪、作弊行为界定及处分规定的纪律 处分。应试人 应试人学号应试人所在院系题号一(20)二(20)三(20)四(40)得分得一、判断题(每小题2分,共20分)1. 类的构造函数的函数名与类名相同,可以重载构造函数。(J)2. 类的析构函数可以被重载。(X)3. 重载运算符函数不能改变运算符的操作数个数、优先级和结合方向。(J)4. 引用在声明时必须对其初始化,以绑定某个已经存在的

2、变量(或对象),在该引用的生命期内,该绑定不能被更改。(J)5. 指针变量在定义时必须对其初始化,以锁定某个已经存在的目标变量(或对象),在该指针变量的生命期内,该指向不能被更改。(X)6. 类的非静态成员函数均有一个隐含的形式参数this指针常量,用于指向 调用该函数的对象。函数体中不能改变该指针常量的指向(即锁定调用该函数的对象)。(V)7. 派生类继承了基类的所有数据成员,并且在派生类的成员函数中都能直接访问基类的访问属性为private的成员。(X)8. 构造派生类对象时,先调用基类的构造函数,后执行派生类的构造函数。析构派生类对象时,先调用基类的析构函数,后执行派生类的析构函数。(X

3、)9. 含纯虚函数的类称为抽象类,不能创建抽象类的对象,不能定义抽象类的 指针变量,不能声明抽象类的引用。(X)10. 引用返回的函数可以作左值,也避免了函数值返回时创建与返回类型相同(V)的临时无名对象。二、填空题(每空2分,共20分)如下设计了一个字符串类St ring,得请根据运行结果,完成程序。#include #include #include using namespace std ;class Stringpublic:String(const char *str二“)size = st rlen( str );x = size0 ? new charsize : NULL;if

4、(x二二NULL) size = 0;for(int i=0; isize; i+)size = s.size;x = new charsize;if(x二二NULL) size = 0;for (int i=0; isize; i+)xi = s.xi;return *this ; char &operator(int index) return xindex; friend ostream & operator(ostream &out, const String &s) for (i nt i=0; is.size; i+)out (istream &in, String &s)stri

5、ng str;in str;/利用C+字符串s = String(str.c_str();/利用深赋值运算符return in;friend intCompare(const String &si, const String &s2)int i;for(i=0; isl.size & is2.size & sl.xi二二s2.xi; i+)if (isi.size & i s2.xi ? l : -l;else if(isi.size & i=s2.size)return l;else if (i=s1. size & is2.size)return T;elsereturn 0;friend

6、 bool operator(const String &s1, const String &s2) return Compare(s1, s2) 0; friend bool operator=(const String &si, const String &s2) return Compare(s1, s2) (const String &si, const String &s2) return Compare(s1, s2) 0; friend bool operator=(const String &si, const String &s2) return Compare(s1, s2

7、) = 0;friend bool operator=(const String &si, const String &s2) return Compare(s1, s2) = 0;friend bool operator!=(const String &si, const String &s2) return Compare(s1, s2) != 0;protected:char *x;int size;void display(const String &s1, const String &s2)char *s tr = 小于,等于,大于;cout si str1+Compare(s1,

8、s2) s2 t endl;int main() St ring s1(Hello world!),s2(s1);display(s1, s2);运行结果Hello world!” 等于 Hello world!s20 = h;display(sl, s2);s2 = Hello world ;display(s1, s2);s2 = Hello world;display(s1, s2);sl = ; s2 = ;display(s1, s2);return 0;n三、阅读程序写出运行结果(每行i分,共20分)得I3.1(10分)本题所涉及的Time类,相关头文件和源程序文件如下。/ MyT

9、ime.h头文件#ifndef MYTIME_H#define MYTIME_H#include #include using namespace std;class Timepublic:Time(int hour=0, int minute=0, int second=0);Time & opera to r+();Time operator+(int);friend Time operator+(const Time &t, int n);friend ostream & operator(ostream &out, const Time &t);friend istream & ope

10、rator(istream &in. Time &t);protected:int h, m, s;result.h = x/3600;return result;ostream & operator(ostream &out, const Time &t)out se tfill(O) set w(2) t.h se tw(2) t.m : set w(2) t .s (istream &in. Time &t)char str200;in.ge tli ne(s tr, 200, :);t.h = ato i(s tr);in.ge tli ne(s tr, 200, :);运行结果(3.

11、1)23:59:5123:59:5123:59:5223:59:5023:59:51t.m = ato i(s tr);in.ge tli ne(s tr, 200);t.s = ato i(s tr);return in;/ main.cpp源程序文件(测试程序)int main()Time t0(23,59,50), t;t二tO; cout +t endl;t二tO; +t; cout t endl;t二t0; +t; cout t endl;t二t0; cout t+ endl;t二t0; t+;cout t endl;t二tO; t+; cout t endl;t二tO; t二t+(

12、-3600); cout t endl;cout t;cout t endl;cout +t endl;cout t + (10*60+20)*60+30 endl;return 0;3.2 (10分)以下4小题所涉及的Test1类,相关头文件和源程序文件如下。/ t es t03.h头文件#ifndef TEST03_H#define TEST03_H#include using namespace std;class Testlpublic:Testl(int a=0);Testl (const Testl &t);vir tual Tes tl();Testl & operator=(const Testl &t);static int Num();static int Sum();friend ostream & operator(istream &in, Testl &t);protected:static int num, sum;int x;得四、(40分)设计复数类。要求运行时得到指定的输出结果。 实现如下测试程序中用到的9个函数(每个函数3分。无须定义拷贝构造函数、 析构函数及赋值运算符函数); 自选3个运算符,并实现运算符函数重载(每个函数3分。注意复数不能比较 大小); 数据成员、类设计的其他部分(4分)。【注意:数学函数double at

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

当前位置:首页 > 学术论文 > 其它学术论文

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