上海大学C++2014-2015秋A - 答案 -t 下载本文

序号 试卷 第 1 页 ( 共 5 页 ) 4.[ ]GetData函数功能是Get它动态创建的包含有数据的基地址,及数据个数,好的设计方案及客户对它的正确调用是: A. int GetData( int * pp ); int *pd; int n = GetData( pd ); B. int * GetData( int n ); int n=3; int *pd = GetData( n ); C. int GetData( int pp ); int *pd; int n = GetData( pd ); D.int GetData( int ** pp ); int *pd; int n = GetData(&pd ); 5. [ ] 已有定义 class K { int main() { private: K(); K k1; return 0; }; } 修改错误: A.去掉private: B. K k1; 改为 K k1(); C.private 改为public D. }; 改为 } 6.[ ](多选)设计一个影片管理系统,包括一般影片、外国片,影片剪接,现有一部外国影片Titanic (泰坦尼克号),如下的解决方案正确的有: A.Film作为基类,ForeignFilm和 DirectorCut作为Film的派生类。 B.Titanic作为Film的的成员变量。 C.Titanic是ForeignFilm的一个实例。 D.Film作为类ForeignFilm和类DirectorCut的成员变量。 E.数据输出Output函数采用虚成员函数,Film、ForeignFilm、DirectorCut都实现它。

2014 ~ 2015 学年

一. 选择 (16分,每题2分)

1.[ ] 以下面向对象程序设计(OOP)的基本概念不正确的是

A. 计算机并不仅仅是一台机器,它更像我们大脑的一部分。

B. 面向对象程序设计语言的目的是为了解决现实世界的模拟问题(如变电站系统).

C. 对象类型的设计是面向对象程序设计的中心任务。

D. 继承表示了基本类型和派生类型之间的相似性,一个基类具有所有由它派生出来的类型

所共有的特性和行为。

E. 当处理类型层次结构时,程序员常常希望不把对象看作是某一特殊类型,而把它看作基

本类型,应用OOP的多态性,编写不依赖于特殊类型的代码。

F. C++语言中类实际上就是对象。

2.[ ]要访问名空间IEC中的标识符LPHD,C++的方法是

A.IEC::LPHD B.IEC .LPHD

C.IEC:LPHD C.using namespace std; LPHD

3. [ ] 动态分配n个float元素的内存空间,C++编程方法是:

A.float *p=new float[sizeof(float)]*n; B.float a[ ]=new float[n];

C.float *p=new float[n]; D.float a[n];

注:教师应使用计算机处理试题的文字、公式、图表等;学生应使用水笔或圆珠笔答题。

7. [ ] 已有定义: class BC{ public:int b; void mfunc(){cout<<\class DC : public BC { public: int d; void mfunc(){ BC::mfunc();cout<<\BC bc; DC dc; BC *pb=new DC; 以下代码正确的是: A. bc.d = 1; B. pb->d = 1; C. DC *p=pb; p.d = 1; D. DC *pdc=static_cast(pb); pdc->d = 1; 8.[ ] 重载右移操作符,从流输入数据到复数类对象,设计方案选择: A.istream & operator>>( istream &istm, Complex &c); B.istream & operator>>( istream istm, Complex c); C.istream & operator>>( istream& istm, Complex c); D.istream operator>>( istream istm, const Complex & c); E.Complex operator<<( istream istm); 试卷 第 2 页 ( 共 5 页 )

二.填空(26分,1,7题每题3分,其他每空1分) 1.面向对象程序设计语言的主要特征是______________________________ 6.C++标准模板库的名空间的名称是 ___________ 7. 函数参数的设计其数据传递有三种方式,分别是传________________________ 8. 实现下面的类 class CPerson { protected: 2. 返回对象的引用,修改下面代码 int& dl( int n ) { ___________ int j= 2*n; return j; } 3. 下面代码CA和CB类型的对象分别有___3.1____个数据成员, 实现类的构造函数,初始化数据成员 class CB : public CA class CA { { int b; private: public: int a; CB(int a,int b) ________3.3______ public: { CA(int a) { _____3.2_______ } _____3.4______ }; } }; 4. 设计一个函数decode,功能是对字符串,用密钥解码,设计函数原型 (接口)是:___4.1__________________________________________ 其中相关参数和返回的说明:________4.2__________________________ 5. 异常处理代码填空 int main( ) int div( int a,int b) { try { { int u,v; cin>>u>>v; if(b ==0 ) cout<<\ ______5.1____“error:b==0”; } return a/b; _____5.2_______ } { cout<name=name;} //构造函数 ______8.5______ {} //析构函数 static int compareScore( Student &stu1, Student &stu2) { if( stu1.getscore () < stu2.getscore () ) return -1; else if( _____________8.6_____________ ) return 1; else return 0; } double getscore(){ return score;} void setscore( double score ) { this->score=score;} 改写getname成员函数为外联式实现___________8.7_____________________ 改写setscore成员函数为外联式实现_____8.8______________________________ 试卷 第 3 页 ( 共 5 页 )

int main( ) { vector< ____8.9_______ > students; for(int i=0;i<10;i++) { string name; int score; cin>>name>> score; CStudent stu(name); stu. setscore(score); students.push_back(stu); 2. 下面代码的输出结果__________________ class B class Z: public B { public: { public: B() { cout<<\ Z(){ cout<<\virtual ~B(){cout<<\virtual ~Z(){ cout<<\}; }; void main() { B* p =new Z; delete p ; } 3. 下面的程序写入到data.txt文件中的内容___________3.1________________________ 屏幕显示的输出的内容_________________________3.2_____________________ #include #include using namespace std;; int main( ) { ostringstream ostm; string name=\; int age=20; ostm<<\姓名 \<>str1>>name>>str2>>age ) { cout<<\姓名 \< 0 ); cout<<”与” << students[0]. getname() <<”分数相同的学生有:”<