班级: 姓名: 学号: .
O…………O…………O…………O…………O装………O订………O线…………O…………O…………O…………O……………O
绍兴文理学院 2011 学年 01学期 信计 专业 09 级《面向对象程序设计》试卷(答题卷) (B)
题 号(型) | 一 | 二 | 三 | 四 | 五 | 核分人 | |
得 分 | 总分 | ||||||
评卷人 | |||||||
(考试形式:闭卷 )
一、选择题: (共15分,每小题1分)
1.在C++中,函数原型不能标识( )
A.函数的返回类型 B.函数参数的个数
C.函数参数类型 D.函数的功能 p108有叙述
2.在C++程序中,对象之间的相互通信通过( ) ?
A.继承实现 B.调用成员函数实现
C.封装实现 D.函数重载实现
3.对于任意一个类,析构函数的个数最多为( )
A.0 B.1 C.2 D.3
4.下面函数模板定义中不正确的是( )
A.template<class Q> B.template<class Q>
QF(Q x){ QF(Q x){
return Q+x; return x+x;
} }
C.template<class T> D.template<class T>
TF(T x){ TF(T x){
return x*x; return x>1;
} }
5.友元关系不能( )
A.继承
B.是类与类的关系
C.是一个类的成员函数与另一个类的关系 p316
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.公有继承的公有成员
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〃<<end1;}
virtual void func2( ){cout<<〃class B func 2〃<<end1;}
};
下面正确的叙述是( )
A. A::func2( )和B::func1( )都是虚函数
B. A::func2( )和B::func1( )都不是虚函数
C. B::func1( )是虚函数,而A::func2( )不是虚函数
D. B::func1( )不是虚函数,而A::func2( )是虚函数
11. 关键字 ____________ 说明对象或变量初始化后不会被修改。
A. static B public C. const D inline
12. 如果调用带有默认参数的函数时缺少一个参数,则______________参数就作为这一参数。
A. 第一个 B. 最后一个 C 中间一个 D 以上都不是
13. 成员函数可声明为静态的,条件是它不访问 __________类成员。
A 静态 B. 常数 C 非静态 D. 公共
14. 内联函数执行起来比标准函数_______________。
A. 更慢 B. 更快 C. 次数更多 D. 以上都不是
15. 默认参数的值由___________________提供。
A 该函数 B. 调用程序 C. 上述二者 D 以上都不是
二、填空题 (共20分,每小题2分)
1. 定义类的动态对象数组时,系统只能够自动调用该类的_________构造函数对其进行初始化。
2. C++中语句const char * const p=〃hello〃;所定义的指针p和它所指的内容都不能被__________。
3. 假定多态性与虚函数AB为一个类,则语句AB(AB&x);为该类_________函数的原型说明
4.说明常成员函数时,字const写在成员函数的___________表和___________之间
5.在C++中,访问一个对象的成员所用的运算符是________,访问一个指针所指向的对象的成员所用的运算符是_____________。
6.派生类从一个或多个以前定义的该类的__________继承数据和函数
7. C++支持的两种多态性分别是___________多态性和___________多态性。
三、程序阅读题(共30分)
1. (5分) #include <iostream.h>
template<class T>
Tf(T*a,T*b,int n){
Ts=(T)0;
for(int i=0;i<n;i++)
s+=a〔i〕*b〔i〕;
return s;
}
void main()
{
double c 〔5〕={1.1,2.2,3.3,4.4,5.5},d〔5〕={10.0,100.0,1000.0};
cout<<f(c,d,5)<<endl;
}
2. (5分) .#include <iostream.h>
class My Class {
public:
int number;
void set(int i);
};
void MyClass::set (int i)
{
number=i;
}
void main()
{
O…………O…………O…………O…………O装………O订………O线…………O…………O…………O…………O……………O
MyClass my1; int number=10;
my1.set(5);
cout<<my1.number<<end1;
my1.set(number);
cout<<my1.number<<endl;
}
3. (6分)
#include <iostream>
using namespace std;
class A
{friend double count(A&);
public:
A(double t, double r):total(t),rate(r){}
private:
double total;
double rate;
};
double count(A& a)
{
a.total+=a.al;
al;
}
int main(void)
{
A x(80,0.5),y(100,0.2);
cout<<count(x)<<','<<count(y)<<'\n';
cout<<count(x)<<'\n';
return 0;
}
执行结果:
4.(6分) #include <iostream >
using namespace std;
class BASE
{
char c;
public:
BASE(char n):c(n){}
virtual ~BASE(){cout<<c;}
};
class DERIVED:public BASE{
char c;
班级: 姓名: 学号: .
O…………O…………O…………O…………O装………O订………O线…………O…………O…………O…………O……………O
public: 版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论