admin 管理员组文章数量: 1184232
2024年6月28日发(作者:ascii码对照表什么意思)
C++试题8
一、单项选择题 (30小题,30分)
1.在( ) 情况下适宜采用inline 定义内联函数。
(A)函数体含有循环语句(B)函数体含有递归语句
(C)函数代码少、频繁调用(D)函数代码多、不常调用
2.在类中说明的成员可以使用关键字( ) 进行修饰。
(A)private(B)extern (C)auto (D)register
3.如果类A 被说明成类B 的友元,则( ) 。
(A)类 A 的成员即类 B 的成员(B)类 B 的成员即类 A 的成员
(C)类 A 的成员函数不得访问类 B 的成员(D)类 B 不一定是类 A
的友元4.定义析构函数时,应该注意( ) 。
(A)其名与类名完全相同(B)返回类型是void 类型
(C)无形参,也不可重载(D)函数体中必须有delete 语句
5.下列的种类函数中,()不是类的成员函数。
(A)构造函数(B)析构函数(C)友元函数(D)拷贝构造函数
6.在派生类中重新定义虚函数时必须在( ) 方面与基类保持一致。
(A)参数类型(B)参数名字(C)操作内容(D)赋值
7.在公有继承的情况下,基类公有成员在派生类中的访问权限( ) 。
(A)受限制(B)保持不变(C)受保护(D)不受保护
8.通过( ) 调用虚函数时,采用动态束定。
(A)对象指针(B)对象名(C)成员名限定(D)派生类名
9.在int a=3, *p=&a中,*p 的值是( ) 。
(A)变量 a 的地址值(B)无意义(C)变量p 的地址值(D)3
10. C++ 类体系中,不能被派生类继承的有( ) 。
(A)转换函数(B)构造函数(C)虚函数(D)静态成员函数
11.假定一个类的构造函数为A(int aa, int bb){a=aa++;
b=a*bb++;} ,则执行A x(4, 5);语句后,x.a 和x.b 的值分别为( ) 。
(A)4 和 5 (B)5 和 4 (C)4 和20 (D)20 和 5
12.假定AB 为一个类,则执行AB x ;语句时将自动调用该类的
( ) 。(A)有参构造函数(B)无参构造函数(C)拷贝构造函数(D)
赋值构造函数13. C++ 语言建立类族是通过( ) 。
(A)类的嵌套(B)类的继承(C)虚函数(D)抽象类
14.执行语句序列ofstream outf (“” ) ;if(...)
cout<< “成功”;else cout<< “失败”;后,如文件打开成功,显
示”成功”,否则显示”失败”。由此可知,上面if 语句的条件表达
式是( ) 。
(A)!outf 或者 ( ) (B)!outf 或者 ( )
(C)outf 或者 ( ) (D)outf 或者 ( )
15.静态成员函数不能说明为( ) 。
(A)整型函数(B)浮点函数(C)虚函数(D)字符型函数
16.面向对象的程序设计语言必须具备的关键要素是( )。
A.抽象和封装 B.抽象和多态性
C.抽象、封装、继承和多态性 D.抽象、封装和继承性
17.在C++ 中有以下4 条语句:static int hot=200; int
&rad=hot;hot=hot+100; cout<
(A)0 (B)100 (C)300(D)200
18.如果class 类中的所有成员在定义时都没有使用关键字pubilc,
private, protected ,则所有成员缺省定义为:( ) 。
(A)public (B)protected (C)private (D)static
19. C++设置虚基类的目的是( ) 。
(A)消除二义性(B)简化程序(C)提高运行效率(D)减少目
标代码
20.实现运行时的多态性用( ) 。
(A)重载函数(B)构造函数(C)析构函数(D)虚函数
21.已知类A中一个成员函数说明如下:void Set(A &a);其中A
&a的含义是()。(A)指向类A的指针a(B)将a的地址赋给变
量Set
(C)a是类A对象的引用,用来作函数Set( )的形参
(D)变量A与a按位逻辑与,作为函数Set( )的参数
22.下列描述中,()是抽象类的特性。
(A)可以说明虚函数(B)可以进行构造函数重载
(C)可以定义友元函数(D)不能说明其对象
23.磁盘文件操作中,打开磁盘文件的访问方式中,()是以追加
方式打开文件。(A)in (B)out (C)app (D)ate
24.下列函数中,()是对文件进行写操作。
(A)get( ) (B)read( ) (C)seekg( ) (D)put( )
25. 关于delete运算符的下列描述中,()是错误的。
(A)它必须用于new返回的指针;(B)使用它删除对象时要调
用析构函数;
(C)对一个指针可以使用多次该运算符;
(D)指针名前只有一对方括号符号,不管所删除数组的维数
int *p说明不能修改()。
(A)p指针;(B)p指针指向的变量;
(C)p指针指向的数据类型;(D)上述A、B、C三者;
27.假定要对类AB定义加号操作符重载成员函数,实现两个AB类
对象的加法,并返回相加结果,则该成员函数的声明语句为:
(A)AB operator+(AB &a, AB &b) (B)AB operator+(AB
&a)
(C)operator+(AB a) (D)AB & operator+()
28. 当一个函数无返回值时,定义它其函数类型应是()。
(A)void(B)任意(C)int(D)无
29.()是不可以作为该类的成员的。
(A)自身类对象的指针(B)自身类的对象
(C)自身类对象的引用(D)另一个类的对象
30.友元的作用是()
(A)提高程序的运行效率(B)加强类的封装性
(C)实现数据的隐藏(D)增加成员函数的种类
二、判断题(正确的选A,错误的选B,每题1分,共10分)
1.C++中使用了新的注释符‘//’,C语言中注释符为‘/*…*/’
不能在C++中使用。()
2.引用是某个变量的别名,对引用的操作,实质上就是对被引用
的变量的操作。
()
3.在设置了参数默认值后,调用函数的对应实参就必须省略。()
4.调用系统函数时,要先将系统函数的原型说明所在的头文件包
含进去。()5.作用域运算符:: 只能用来限定成员函数所属的类。()
6.“const char *p;”语句说明了p是指向字符串的常量指针。
()
7.派生类是从基类派生出来的,它不能再生成新的派生类。()
8.函数的参数个数和类型都相同,只是返回值不同,这不是重载
函数。()9.重载运算符保持原运算符的优先级和结合性不变。()
10.构造函数说明为纯虚函数是没有意义的。()
11.预定义的提取符和插入符是可以重载的。()
三、填空题(每空 1 分,共10 分)
1.派生类可以定义其________ 中不具备的数据和操作。
2.当建立一个新对象时,程序自动调用________ 。
3.假定类AB中有一个公用属性的静态数据成员bb,在类外不通
过对象名访问该成员bb的写法为。
4.拷贝构造函数使用________ 来初始化创建中的对象。
5.假定用户没有给一个名为AB 的类定义析构函数,则系统自动给
出的缺省析构
函数定义为__________ 。
6.模板定义中标识类型的参数必须用关键字_________ 修饰。
7.表达式cout<<="" 表示_________="">
8.封装要求一个对象应具备明确的功能,并具有_________ 以便和
其它对象相互作用。
9.在删除一个动态对象时,将自动调用该动态对象所属类的
_________ 函数。
10.类的私有成员只能被它的成员函数和_________ 访问。
四、程序填空( 每小题 4 分,共20 分)
1.在下面程序的底画线处填上适当的字句,使该程序执行结果为
10 。
#include
class base{int X;
public :
________________ ∥为X 赋值
________________ ∥取X 的值
};
void main()
{ base test;
(3);
cout<<();< p="">
}
2.在下列程序的下画线处填上适当的字句,完成类中成员函数的
定义。
#include
class box {
private:
int color;
int upx, upy;
int lowx, lowy;
friend int same_color(line a, box b);
_______ set_color(int c) {color=c;}
void define_box(int x1, int y1, int x2, int y2)
{upx=x1; upy=y1; lowx=x2; lowy=y2; }
};
class line{
private:
int color;
int startx, starty;
int len;
public:
friend int same_color(line a, box b);
______ set_color(int c){color=c;}
void define_line(int x, int y)
{startx=x ; }
};
int same_color(line a, box b)
{if(==) return 1;
return 0;}
3.在下面程序的底画线处填上适当的字句,完成程序。#include
class A{
public:
void f(int i){cout<
void g( ){cout<<"g n" ;}
};
class _________ {
public:
void h( ) {cout<< "hn " ; }
//A::f;
};
void main()
d1.f(6);
____.h ( );
}
4.在下列程序的空格处填上适当的字句,使输出为:0 ,7 ,5 。
#include
#include
class Magic{
版权声明:本文标题:C++试题8 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1719513735a736818.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论