上海大学大一计算机考试题目,上海大学15-16级计算机c++试题.doc

这是一份关于面向对象程序设计的考试试卷,包含了判断题和填空题,涉及类的构造函数、析构函数、重载运算符、引用、指针、派生类、抽象类等概念。试题中探讨了构造函数与析构函数的调用顺序,抽象类的特性,以及深拷贝等主题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第 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

#include

#include

using namespace ① std ;

class String

{

public:

String(const char *str="")

{

size = strlen(② str );

x = size>0 ? new char[size] : NULL;

if(x==NULL) size = 0;

for(int i=0; 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; i

x[i] = s.x[i];

return ⑥ *this ;

}

⑦ char & operator[](int index){return x[index]; }

friend ostream & operator<

{

for(int i=0; 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值