资源描述
课程名称: 面向对象程序设计 ( B卷 闭卷)
适用专业年级:计算机科学与技术09级 考试时间: 100分钟
题号
一
二
三
四
五
六
七
八
九
十
总分
统分人 签名
题分
10
24
10
26
10
20
100
得分
考生注意事项:1、本试卷共 4 页,试卷如有缺页或破损,请立即举手报告以便更换。
2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。(答案请写在密封线内和答卷正面,否则不记分)
一、判断题,正确的在下列表格中打√,错误的打×(每小题1分,共10分)
1
2
3
4
5
6
7
8
9
10
1.在c++语言中,只能使用class来定义一个类。( )
2.采用 inline 定义内联函数时,在对于函数代码少、频繁调用的情况下特别有效。( )
3.函数重载时,它们的参数个数和类型要求都不能相同。( )
4.类中的静态成员数据为该类的所有对象所共享,并且,在该类对象被撤销时,静态成员并没有撤销。( )
5.构造函数和析构函数均不能被说明为虚函数。( )
6.在C语言中,不使用命名空间,但在C++程序中,一定要使用命名空间。( )
7.ASCII码文件和二进制文件都可在记事本中直接打开。( )
8.类的友员函数是指可以访问本类私有成员的其它类的成员函数。( )
9. 面向对象的编程方法还是要以面向过程的编程方法做基础,故学了面向过程的编程方法后,对学习面向对象的编程方法很有帮助。( )
10.在VC6.0开发环境中,对导入的位图资源进行编辑是有限制的。( )
二、简答题(每小题8分,共24分)
1.什么是面向对象的程序设计?它的几个特征是什么?
答:
2.类和结构有什么异同?
答:
3..函数重载的主要作用是什么?调用不同的重载函数是在编译时决定还是在运行时决定?
答:
湖南工业大学考试试卷纸
系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级 姓名 学号
————————————————————————密封线——————————————————————
第 1 页 共 4 页
三、填空题(每空2分,共10分)
根据程序说明和程序中的注释,填充程序中不完整的部分。
类Number的成员函数TwoTimes是递归函数,功能是求2n (假设n<0时返回值为0)。
#include <iostream>
using namespace std;
class Number
{
private:
int Num;
public:
int n;
int TwoTimes (int n) //递归函数TwoTimes (n)求2n 。
{ if (___(1)___) return 0;
if (n==0) ___(2)___;
else return ___(3)___;
}
int GetNum()
{
return Num;
}
Number(int n=0) {Num = n;}
};
void main()
{
Number *p;
p =___(4)___;//动态生成由p指向的Number对象,并使Num为5。
cout<<p->TwoTimes(___(5)___);//输出2Num
delete p;
解答:
(1) (2)
(3) (4)
(5)
}
四、阅读下面的程序,写出程序运行的结果。(共26分)
1.程序1(6分)
#include <iostream>
using namespace std;
int main()
{
int a=7,b;
int &c=b;
int f(int x,int y,int z);
b=a++;
c=f(a,b,c);
cout<<"a="<<a<<" c="<<c<<endl;
return 0;
1. 程序1
答:运行结果为:
}
int f(int x,int y,int z)
{
int m;
m = x+y+z;
return(m);
}
2.程序2(10分)
#include <iostream.h>
class A
{
private:
static int n;
int Num;
public:
A(int x=0) { Num=x; n++; }
~A( ) { n-- ; }
static int GetNum(){ return n; }
void print();
};
湖南工业大学考试试卷纸
系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级 姓名 学号
————————————————————————密封线——————————————————————
第 2 页 共4 页
void A::print() { cout << "n=" << n << ", Num=" << Num<< endl; }
int A::n = 0;
void main()
{ A *p=new A(20);
p->print();
A a;
a.print();
delete p;
cout << "n=" << A::GetNum() << endl;
}
2. 程序2
答:程序2的运行结果为:
3. 程序3(10分)
#include <iostream.h>
class chair
{
public:
chair( ) {cout<<"create chair."<<endl;}
chair(int size) {cout<<"create chair:"<<size<<endl;}
~chair( ) {cout<<"delete chair."<<endl; }
};
class bed
{
public:
bed(int color=3) {cout<<"create bed:"<<color<<endl;}
~bed( ){cout<<"delete bed."<<endl; }
};
class recliner:public chair,public bed
{public:
recliner(int p ):member(), bed( ),chair(p)
{cout<<"create recliner."<<endl;}
~recliner( ){cout<<"delete recliner."<<endl; }
private:
3. 程序3
答:程序3运行结果为:
chair member;
};
void main( )
{ bed b;
recliner r(2);
}
五、理解问答题(10分)
说明:读懂如下程序,回答题后的问题。
#include "iostream.h" //0行
class CE { //1行
private: //2行
int a,b; //3行
int getmin() {return (a<b?a:b);} //4行
public //5行
int c; //6行
void SetValue(int x1,int x2,int x3) { //7行
a=x1;b=x2;c=x3; //8行
}; //9行
int GetMin( ); //10行
bool operator >(CE &c); //11行
}; //12行
湖南工业大学考试试卷纸
系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级 姓名 学号
————————————————————————密封线——————————————————————
第 3 页 共 4 页
int GetMin(){ //13行
d=getmin(); //14行
return(d<c? d:c); //15行
} //16行
bool CE::operator >(CE &c) //17行
{ return ( GetMin( )> c.GetMin( )); //18行
} //19行
int main( ) //20行
{ CE c1, c2; //21行
c1.SetValue(1,2,3); //22行
c2.SetValue(3,2,1); //23行
if (c1>c2) //24行
cout<<” c1>c2”<<endl; //25行
else //26行
cout<<” c1<c2”<<endl; //27行
return 0;} //28行
1.在5到16行之间有3行存在语法错误,请指出错误行的行号并改正(每空1分,共6分)。
(1)错误行的行号为_____、_____和______。
(2)分别改正为______、______和______。
2.在修改了程序的错误以后,写出程序运行的结果。(4分)
解答:
1.(1)错误行的行号为::
(2)分别改正为:
2.在修改了程序的错误以后,程序运行的结果为:
六、编程题(20分)
定义一个博士类doctor,它的私有数据成员有Num(编号,为int型)、Name(姓名,为string型)、Age(年龄,为int型)、Sex(性别,为char型)。公用成员函数有:GetNum( ),它返回博士编号;Display( ),它输出博士的上述基本信息(注意:Display( )函数在类外定义)。博士类的构造函数原型为:doctor (int Num0=1001, string Name0="彭博士", int Age0=30,char Sex0='1')。
要求: 编写类doctor,并编写一个主程序,主程序中定义了3个博士对象(其中有一个博士的参数为默认参数,另一个参数可以是任意有效值),然后,输出2个博士的基本信息;第3个博士对象用指针动态生成(有参数,参数可以是任意有效值),再输出该博士信息。
(提示:输出Name可以这样:cout<<Name.c_str();)
解答:
湖南工业大学考试试卷纸
系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级 姓名 学号
————————————————————————密封线——————————————————————
第 4 页 共 4 页
展开阅读全文