上海大学修订级C++试题.docx
- 文档编号:24218064
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:16
- 大小:34.72KB
上海大学修订级C++试题.docx
《上海大学修订级C++试题.docx》由会员分享,可在线阅读,更多相关《上海大学修订级C++试题.docx(16页珍藏版)》请在冰豆网上搜索。
上海大学修订级C++试题
上海大学2014~2015学年度秋季学期试卷(A卷)
课程名:
面向对象程序设计课程号:
08305121学分:
5
应试人声明:
我保证遵守《上海大学学生手册》中的《上海大学考场规则》,如有考试违纪、作弊行为,愿意接受《上海大学学生考试违纪、作弊行为界定及处分规定》的纪律处分。
应试人应试人学号应试人所在院系
题号
一(20)
二(30)
三(25)
四(25)
得分
——————————————————————————————————————
一、判断题(每小题2分,共20分)
1.引用在声明时必须对其初始化,以绑定某个已经存在的变量(或对象),
在该引用的生命期内,该绑定不能被更改。
(√)
2.指针变量在定义时必须对其初始化,以锁定某个已经存在的目标变量(或
对象),在该指针变量的生命期内,该指向不能被更改。
(×)
3.值返回的函数(如:
doublesqrt(double);)的调用表达式(如:
sqrt)代表一个无名的临时变量(或对象),一般不将其用作左值。
(√)
4.引用返回的函数,可以返回该函数中值传递的形参变量(或对象)。
(×)
5.任何类都有构造函数、复制构造函数、析构函数、赋值运算符函数。
(√)
6.有静态数据成员的类,一般地应该考虑为其设计复制构造函数、析构函数。
(√)
7.将用于输出的插入运算符函数operator<<设计成友元函数的根本原因是
因为进行输出操作时需要访问对象的内部数据成员。
(×)
8.在C++程序中,操作符new的功能与calloc函数的功能完全一样。
(×)
9.创建一个C++字符串对象(如:
stringstr;),则sizeof(str)的值
等于()的值。
其中成员函数length为返回字符串的长度。
(×)
10.基类的私有数据成员在派生类中是存在的,但不可直接访问,需要用从基类
继承下来的函数访问。
(√)
二、填空题(每空2分,共30分)如下设计了结点类Node、链表类LinkList,并将链表类作为结点类的友类,请根据运行结果,完成程序。
#include
usingnamespacestd;
class①LinkList;7分)有关构造与析构的顺序
#include
usingnamespacestd;
classTest
{
public:
Test(inta=0,intb=0):
x(a),y(b){}
~Test()
{
if(x==y)
cout<<"数据成员的值相同,都等于"< else cout<<"数据成员的值不同,分别为"< } friendostream&operator<<(ostream&out,constTest&t) { out<<"("<<<<","<<<<")"; returnout; 运行结果 (1) (10,0) (0,0) (2,3) 数据成员的值不同,分别为10,0 退出程序,返回操作系统 数据成员的值不同,分别为2,3 数据成员的值相同,都等于0 } private: intx,y; }; intmain() { Test*p,t1; p=newTest(10); Testt2(2,3); cout<<*p<<'\n' < < deletep; cout<<"退出程序,返回操作系统"< return0; } 2.以下两小题所涉及的类设计,头文件如下。 // #include #include usingnamespacestd; classBASE { public: BASE(doublex=0,doubley=0): _x(x),_y(y){} virtualvoidShow(ostream&out)const=0; protected: double_x,_y; }; ostream&operator<<(ostream&out,constBASE&x) { (out); returnout; } classComplex: publicBASE { public: Complex(doublex=0,doubley=0): BASE(x,y) { } voidShow(ostream&out)const { if(_x! =0) { out<<_x; if(_y>0)out<<'+'<<_y<<'i'; elseif(_y<0)out<<'-'<<-_y<<'i'; } else { if(_y! =0) cout<<_y<<'i'; else cout<<_x; } } friendComplexoperator+(constComplex&a,constComplex&b) { Complexc; =+; =+; returnc; } friendComplexoperator*(constComplex&a,constComplex&b) { Complexc; =*=*+*; returnc; } doubleabs() { returnsqrt(_x*_x+_y*_y); } }; classPoint: publicBASE { public: Point(doublex=0,doubley=0): BASE(x,y) { } voidShow(ostream&out)const { out<<'('<<_x<<","<<_y<<')'; } friendPointoperator+(constPoint&a,constPoint&b) { Pointc; =+; =+; returnc; } }; 运行结果 1+2i 3+4i 1i 10 (): 5 4+6i -5+10i (1,2) (3,4) (4,6) (10分)测试程序 #include"" intmain() { Complexx(1,2),y(3,4),z1(0,1),z2(10); cout< < cout<<"(): "<<()< z1=x+y; z2=x*y; cout< Pointa(1,2),b(3,4); cout< cout< return0; } (8分)测试程序 #include"" intmain() { 运行结果 1+2i 6+2i 5+10i 2+4i (1,2) (2,2) (2,2) (4,8) Complexx(1,2),y,z; y=5+x; z=5*x; cout< cout< Pointa(1,2),b,c; b=a+1; c=1+a; cout< a=a+a;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上海 大学 修订 C+ 试题