自学考试C++模拟试题三
学号 姓名 院(部) 专业 考试时间:2009年 月 日
------------------------------------------------密--------------------封----------------------线-----------------------------------------------------------------
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1. char max(char,char);可与下列哪个函数构成重载 ( )
A char max(char,char,char) B int max(char,char)
C int max(int,int) D int max(int,char)
2. 下列对模板的声明正确的一项是:( )
A template<T> B template<class T1,T2>
C template<class T1,class T2> D template<class T1;class T2>
3. 在编译指令中,嵌入指令使用哪个指令( )
A #define B #inclued C #if D #else
4. 对定义重载函数的下列要求中,错误的是( )
A、要求参数的个数不同
B、要求参数中至少有一个类型不同
C、要求参数相同的,参数类型不同
D、要求函数的返回值不同
5. 系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是( )
A、参数个数
B、参数的类型
C、函数名称
D、函数类型
6. 下列关于设置参数默认值的描述中正确的是( )
A、不允许设置参数的默认值
B、设置参数默认值只能在函数中设置
C、设置参数默认值时,应该事先设置右边在设置左边的
D、设置参数默认值时,应该全部参数都设置
7. 析构函数的特征是( )
A、一个类中只能有一个析构函数
B、析构函数名与类名不同
C、析构函数的定义只能在类体内
D、析构函数可以有一个或者多个参数
8. 已知一个类Sample,________是定义指向类Sample类数据成员指针,假设类有三个共有成员void f1(int),void f2(int)和int a。( )
A、Sample *p
B、int Sample:: *pc=&Sample::a
C、void(Sample:: *pa)()
D、Sample *p[10]
9. 下列定义中,Sample是一个类,那么定义指向对象数组的指针p的是( )
A、Sample *p[5]
B、Sample (*p)[5]
C、(Sample) *p[5]
D、Sample *p[ ]
10. 关于虚函数的描述中正确的是( )
A虚函数是一个static类型的成员函数
B虚函数是一个非成员函数
C基类中说明了虚函数后,派生类中其对应的函数可不必说明为虚函数
D派生类的虚函数与基类的虚函数具有不同的参数个数和类型
11. 实现运行时的多态性要使用( )
A重载函数B构造函数C函数D虚函数
12. 如果一个类至少有一个纯虚函数,那么就称该类为( )
A抽象类B虚基类C派生类D以上都不对
13. 下列运算符中,在C++中不能重载的运算符是( )
A.&& B.[] C. :: D. new
14. 在C++中打开一个文件就是将这个文件与一个___________建立关系;关闭一个文件就取消这种关联 ( )
A类B流C对象D结构
15. 进行文件操作时需要包含_________文件( )
A. iostream B. fstream.h C. stdio.h D. stdlib.h
16. 执行语句序列:int !=0;while(i,<25)i + =3;count << i;输出结果是( )
A、24 B、25
C、27 D、28
17. 有如下类声明:
class MyBASE{
int k;
public:
void set(int n){ k=n;}
int get() const{ return k; }
};
class MyDERIVED:protected MyBASE{
protected:
int j;
public:
void set(int m,int n){ MyBASE : :set(m);j=n;}
学号 姓名 院(部) 专业 考试时间:2009年 月一维数组的定义和初始化 日
------------------------------------------------密--------------------封----------------------线-----------------------------------------------------------------
int get( )const{ return MyBASE: :get( )+j;}};
则类MyDERIVED中保护的数据成员和成员函数的个数是( )
A、4 B、3
C、2 D、1
18. 一个函数功能不太复杂,但要求被频繁调用,选用 ( )
A.重载函数 B.内联函数
C.递归函数 D.嵌套函数
19. 下列说法中,正确的说法是 9 ( )
A.所有的运算符都能被重载
B. 运算符被重载时,它们的优先级与结合性不会改变
C.当需要时,我们可以自定义一个运算符来进行重载
D.每个运算符都可以被重载成成员函数和友元函数
20. 下列for循环的循环体执行次数为 1 ( )
For(int i(0),j(10);i=j=4;i++,j--)
A.0 B.1
C.4 D.无限
二、填空题(本大题共20小题,每小题1分,共20分)
请在每小题的空格中填上正确答案。错填、不填均无分。
请在每小题的空格中填上正确答案。错填、不填均无分。
21. 按照面向对象的封装原则,一个对象的属性和操作是紧密结合的,对象的属性只能由
来存取。
22. 所谓“一个类的所有对象具有相同的属性”,是指属性的个数、名称、数据类型相同,各个对象的 则可以互不相同,并且随着程序的执行而变化。
23. 类的属性只是性质的说明,对象的属性才是 。
24. 是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部操作。
25. 一个类中有 个析构函数。
26. 在C++中语言中,函数“double abc(double,char);”表示的含义是____________________。
27. 函数fun的返回值是指针,其中一个参数是字符,另一个参数是int类型的引用,声明fun的函数原型是_________________________。
28. 设在程序中使用如下语句申请了一个对象数组:Point *ptr = new Point[5];则在需要释
放ptr指向的动态数组对象时,所使用的语句是______________________。
29. 假如一个类的名称为MyClass ,则这个类缺省的构造函数名称为___ __________;使用这个类的一个对象初始化该类的另一个对象时,可以调用__________构造函数来完成此功能。
30. 已知一个类的名字为fun,则其复制构造的原型可分为__________和_____ ___________-。
31. 在C++中,输入输出是通过____________来完成9
32. C++中ostream类的直接基类是__________________
33. 类的继承是指派生类继承基类的_______________
34. 在保护派生中,基类权限为private 的成员在派生类中变为_____________
35. 在C++中,利用向量类模板定义一个具有20个int的向量A,其元素均被置为5,实现操作的语句是_____________
36. 定义类动态对象数组时,元素只能靠自动调用该类的_________________来进行初始化。4
37. 静态数据成员初始化必须在类的 _____ 位置进行,表示该类所有对象共享的成员。5
38. 在C++中,可将多态性分为:编译时的多态性和 ______ 。
39. 定义类动态对象数组时,其元素只能靠自动调用该类的_______________来进行初始化。
40. 将指向对象的指针作为函数参数,形参是对象指针,实参是____________。
三、改错题(本大题共5小题,每小题2分,共10分)下面的定义中有一处错误,请用下横线标出错误所在行并给出修改意见。
41. #include<iostream . h>
class Sample
{
public:
Sample ( int a=0,b=1);
disp ( );
private:
int x , y;
}
Sample : : Sample(int a, int b)
{
x=a ; y=b;
}
Sample : : disp ( )
{
cout<<”x=” <<x<<”, y=”<<y<<endl ;
}
42. #include<iostream . h>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论