全国2001年10月自考面向对象程序设计试题

更新时间:2023-11-14 16:38:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

www.4juan.com 自考及各类其他考试历年试题免费免注册下载 超过2万套word文档试题和答案 做试题,没答案?上自考365,网校名师为你详细解答!

全国2001年10月自考面向对象程序设计试题

课程代码:02328

第一部分 选择题 (共20分)

一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个选项中只有一个选项是符

合题目要求的,请将其代码填在题后的括号内。错选或未选均无分。 1.在C++中,函数原型不能标识( )

A.函数的返回类型 B.函数参数的个数 C.函数参数类型 D.函数的功能 2.在C++程序中,对象之间的相互通信通过( )

A.继承实现 B.调用成员函数实现 C.封装实现 D.函数重载实现 3.对于任意一个类,析构函数的个数最多为( )

A.0 B.1 C.2 D.3 4.下面函数模板定义中不正确的是( )

A.template B.template QF(Qx){ QF(Qx){ return Q+x; return x+x; } }

C.template D.template TF(Tx){ TF(Tx){ return x*x; return x>1; } } 5.友元关系不能( ) A.继承

B.是类与类的关系

C.是一个类的成员函数与另一个类的关系 D.提高程序的运行效率

6.语句ofstream f(″SALARY.DAT″,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且( )

A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败

C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件 7.下面说法正确的是( )

A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义

D.类的内联函数必须在类体外通过加关键字inline定义

8.可以用p.a的形式访问派生类对象p的基类成员a,其中a是( ) A.私有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.公有继承的公有成员

全国2001年10月自考面向对象程序设计试题

1

www.4juan.com 自考及各类其他考试历年试题免费免注册下载 超过2万套word文档试题和答案

9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( ) A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用 C.派生类的对象可以直接访问基类中的成员

D.派生类的对象的地址可以赋给指向基类的指针 10.对于类定义 class A{

public:

virtual void func1( ){ } void func2( ){ } };

class B:public A{ public:

void func1( ){cout<<″class B func 1″<

virtual void func2( ){cout<<″class B func 2″<

下面正确的叙述是( )

A. A::func2( )和B::func1( )都是虚函数 B. A::func2( )和B::func1( )都不是虚函数

C. B::func1( )是虚函数,而A::func2( )不是虚函数 D. B::func1( )不是虚函数,而A::func2( )是虚函数

第二部分 非选择题 (共80分)

二、填空题(本大题共10小题,每小题2分,共20分)不写解答过程,将正确的答案写在每小题的横线处。

错填或不填均无分。

11.定义类的动态对象数组时,系统只能够自动调用该类的_________构造函数对其进行初始化。 12.在C++程序设计中,建立继承关系倒挂的树应使用_________继承。 13.表达式cout<

14.基类的公有成员在派生类中的访问权限由_________决定。

15.C++支持的两种多态性分别是_________多态性和_________多态性。

16.C++中语句const char * const p=″hello″;所定义的指针p和它所指的内容都不能被_________。 17.假定AB为一个类,则语句AB(AB&x);为该类_________构造函数的原型说明。

18.将关键字const写在成员函数的_________和_________之间时,所修饰的是this指针。

19.在C++中,访问一个对象的成员所用的运算符是_________,访问一个指针所指向的对象的成员所用的运算符是_________。

20.派生类从一个或多个以前定义的该类的_________继承数据和函数。 三、改错题(本大题共5小题,每小题2分,共10分) 21.指出下面程序段中的错误,并说明出错原因。 class A{

int a,b; public:

A(int aa,int bb) {a=aa;b=bb;} };

Ax(2,3),y(4);

22.指出并改正下面利用类模板的对象定义中的错误。 template class Tany{

全国2001年10月自考面向对象程序设计试题

2

www.4juan.com 自考及各类其他考试历年试题免费免注册下载 超过2万套word文档试题和答案

T x,y; public:

Tany(T a,T b){x=a,y=b;} T sum( ){return x+y;} };

Tany (int) obj(10,100);

23.指出下面程序段中的错误,并说明出错原因。 class one{ private: int a; public:

void func(two&); };

class two{ private: int b;

friend void one::func(two&); };

void one::func(two& r) {

a=r.b; }

24.指出下面程序段中的错误,并说明出错原因。 #include class A{

public: void fun( ){cout<<″a.fun″<

class B{

public: void fun( ){cout<<″b.fun″<

class C:public A,public B{ private:int b;

public:void gun( ){cout<<″c.gun″<

25.指出下面程序段中的错误,并说明出错原因。 class Location {

int X,Y=20; protected:

int zeroX,zeroY;

int SetZero(int ZeroX,int ZeroY); private:

int length,height; public:

float radius;

全国2001年10月自考面向对象程序设计试题

3

www.4juan.com 自考及各类其他考试历年试题免费免注册下载 超过2万套word文档试题和答案

void init(int initX,int initY); int GetX( ); int GetY( ); };

四、完成程序题(本大题共5小题,每小题4分,共20分) 根据题目要求,完成程序填空。

26.在下面横线处填上适当字句,完成类中成员函数的定义。 class A{

int * a; public:

A(int aa=0) {

a=_________;//用aa初始化a所指向的动态对象 }

~A(){_________;}//释放动态存储空间 };

27.下面是一个函数模板,用于计算两个向量的和。在下面横线处填上适当字句,完成函数模板定义。#include template T* f(T* a,T* b,int n) {

T* c=_________; for(int i=0;i

c[i]=_________; return c; }

void main() {

int a[5]={1,2,3,4,5},b[5]={10,20,30,40},*p; p=f(a,b,5);

for(int i=0;i<5;i++)

cout<

28.下面是一个用户口令检查程序,在横线处填上适当语句完成程序功能。 #include #include

_________//定义由PASS指针所指向的口令wolleh。 void main() {

char user[10];//用于存放输入的口令

cout<<″please input your password:″<

if((strcmp(user,PASS))==0)

cout<<″your password is correct″<

cout<<″your password is error″<

全国2001年10月自考面向对象程序设计试题

4

www.4juan.com 自考及各类其他考试历年试题免费免注册下载 超过2万套word文档试题和答案

29.下面是类fraction(分数)的定义,其中重载的运算符<<以分数形式输出结果,例如将三分之二输出为2/3。在横线处填上适当字句。 class fraction{

int den; //分子 int num; //分母

friend ostream& operator<<(ostream&,fraction); … };

ostream& operator <<(ostream& os,fraction fr){ _________;

return _________; }

30.在下面程序横线处填上适当的字句,使其输出结果为0,56,56。 #include class base{ public:

_________func( ){return 0;} };

class derived:public base{ public:

int a,b,c;

_________ setValue(int x,int y,int z){a=x;b=y;c=z;} int func( ){return(a+b)*c;} };

void main() {

base b; derived d;

cout<

cout<

cout<

五、程序分析题(本大题共6小题,每小题5分,共30分) 给出下面各程序的输出结果。 31.#include void main( ) {

int *a; int *&p=a; int b=10; p=&b; cout<<*a; }

输出为:

全国2001年10月自考面向对象程序设计试题

5

本文来源:https://www.bwwdw.com/article/zymv.html

Top