上海大学15-16级计算机c++试题.docVIP

  • 4
  • 0
  • 约9.27千字
  • 约 12页
  • 2019-10-14 发布于江苏
  • 举报
第 PAGE12页 共 NUMPAGES12页 第 PAGE11页 共 NUMPAGES12页 成绩上海大学2015~2016学年度秋季学期试卷 成 绩 课程名: 面向对象程序设计 课程号:学分: 5 应试人声明: 我保证遵守《上海大学学生手册》中的《上海大学考场规则》,如有考试违纪、作弊行为,愿意接受《上海大学学生考试违纪、作弊行为界定及处分规定》的纪律处分。 应试人 应试人学号 应试人所在院系 题号 一(20) 二(20) 三(20) 四(40) 得分 得分 —————————————————— 得 分 一、判断题(每小题2分,共20分) 1. 类的构造函数的函数名与类名相同,可以重载构造函数。 (√) 2. 类的析构函数可以被重载。 (×) 3. 重载运算符函数不能改变运算符的操作数个数、优先级和结合方向。 (√) 4. 引用在声明时必须对其初始化,以绑定某个已经存在的变量(或对象), 在该引用的生命期内,该绑定不能被更改。 (√) 5. 指针变量在定义时必须对其初始化,以锁定某个已经存在的目标变量(或 对象),在该指针变量的生命期内,该指向不能被更改。 (×) 6. 类的非静态成员函数均有一个隐含的形式参数this指针常量,用于指向 调用该函数的对象。函数体中不能改变该指针常量的指向(即锁定调用该 函数的对象)。 (√) 7. 派生类继承了基类的所有数据成员,并且在派生类的成员函数中都能直接 访问基类的访问属性为private的成员。 (×) 8. 构造派生类对象时,先调用基类的构造函数,后执行派生类的构造函数。 析构派生类对象时,先调用基类的析构函数,后执行派生类的析构函数。 (×) 9. 含纯虚函数的类称为抽象类,不能创建抽象类的对象,不能定义抽象类的 指针变量,不能声明抽象类的引用。 (×) 10. 引用返回的函数可以作左值,也避免了函数值返回时创建与返回类型相同 的临时无名对象。 (√) 得分二、填空题(每空2分,共20分)如下设计了一个字符串类String,请根据运行结果,完成程序 得 分 #include iostream #include cstring #include string using namespace ① std ; class String { public: String(const char *str=) { size = strlen(② str ); x = size0 ? new char[size] : NULL; if(x==NULL) size = 0; for(int i=0; isize; i++) x[i] = str[i]; } String(const String s) : x(③ NULL ) { *this = s; // 直接利用深赋值运算符函数 } virtual ~String() { if(x!=NULL) delete ④ [] x; size = 0; } String operator=(const String s) { if(this == ⑤ s ) return *this; if(x!=NULL) delete [] x; size = s.size; x = new char[size]; if(x==NULL) size = 0; for(int i=0; isize; i++) x[i] = s.x[i]; return ⑥ *this ; } ⑦ char operator[](int index) { return x[index]; } friend ostream operator(ostream out, const String s) { for(int i=0; is.size; i++) out s.x[i]; return ⑧ out ; } ⑨ friend istream operator(istream in, String s) { string str; in str; // 利用C++字符串 s = String(str.c_str()); // 利用深赋值运算符 return in; } friend ⑩ int Compare(const String s1, const String s2) { int i; for(i=0; is1.

文档评论(0)

1亿VIP精品文档

相关文档