2024年6月5日发(作者:俞思菱)
C++试卷
一、选择题(每题1分)
1.下面是关于构造函数的说法,不正确的是( )。
A. C++规定,每一个类必须有一个构造函数,没有构造函数就不能创建对象
B. 如果没有提供一个类的构造函数(一个都未提供),则C++提供一个默认的构造函数,该默认构造函数是个无
参构造函数,它仅仅负责创建对象
C. 虽然一个类定义了一个构造函数(不一定是无参构造函数),C++仍然提供默认的构造函数
D. 与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,则对象的位模式全为0,
否则,对象值是随机的
2.在下列说法中,不正确的是( )。
A. 静态成员函数不能利用this指针
B. 只有非静态成员才可以使用this关键字,因为静态成员没有this指针
C.析构函数不接受任何参数,也不带有任何类型的返回值
D. 虚机制在构造函数和析构函数中仍然可以很好地工作,以实现多态性
3. 多重继承的构造顺序一般可分为4步,下面给出这4个步骤:
step1: 任何非虚拟基类的构造函数按照它们被继承的顺序构造。
step2: 任何虚拟基类的构造函数按照它们被继承的顺序构造。
step3: 任何成员对象的构造函数按照它们声明的顺序构造。
step4: 类自己的构造函数。
这4个步骤的正确顺序是( )。
A. step4、step3、step1、step2 B. step2、step4、step3、step1
C. step2、step1、step3、step4 D. step3、step4、step1、step2
4.若程序中有非法操作,则( )。
A. eofbit置位 t置位 置位 t置位
5.设置填充字符的函数是( )。
ios::width(int) ios::width() ios::fill(char) ios::fill()
6.返回当前精度的成员函数是( )。
ios::width(int) ios::width() ios::precision() D. int ios::precision(int)
7.要求浮点输出时必须带有一个小数点的格式控制常量是( )。
e s int
8.目前推荐的C++标准( )虚构造函数。
A. 不支持 B. 支持 C. 曾经支持过 D.已经由过去的不支持改为支持
9.下列对模板的声明,正确的是( )。
A. template
C. template
10. 友元运算符obj++被C++编译器解释为( )。
A. operator++(obj) B. operator++(obj,0)
B. or++( ) D. or++(0)
11. C++ 的运算符函数的返回类型( )。
A. 可以是任意类型 B. 不可以是int类型
C. 不能是 void 类型 D. 不可以是float类型
12.声明类test的复制构造函数的正确形式是( )。
A. int test B. void test C. test(void) D. test(test&)
1 2013-4-16
13.一个const对象( )。
A. 能访问所有成员函数 B. 只能访问const成员函数
C. 也能访问volatile成员函数 D. 能访问const和volatile成员函数
14.下面关于类的对象性质的描述,正确的是( )。
A. 对象之间不可以相互赋值 B. 不可以说明指向对象的指针
C. 对象不能用作数组元素 D. 一个对象能用作另一个对象的成员
二、填空题(每题2分)
1.在c++中,除具有 、 语句的函数不能说明为内联函数外,其它函数都可以说明为内联函数。
2.在c++中,封装可以由 、 和 等关键字提供。
3.若example是已定义的类,在程序结束之前,共计存在 个对象。
#include”example”
main()
{example X(0);
X=5;();
X=example(10);
();
}
4.由于二义性原因,一个类不能从同一个类中直接 一次以上,如果必须这样做,可以使用一
个 。
5.在c++中,如果在多条继承路径有一个公共的基类,如果想使这个公共的基类只产生一个拷贝,则可以将这个基
类说明为 。使用关键字 说明。
6.简单成员函数是指声明中不含有 、 、 关键字的函数。
7.静态成员为该类的所有 共享,它们被存储于一个 中。
8.在c++中声明 和 时使用volatile或const均是非法的。
9.当访问私有静态数据成员时,可通过定义公有的 来访问。
10.有关继承,静态成员 被继承,友元 被继承。
11.c++不允许重载 、 、 、 运算符。
12. 、 、 、 四个运算符只能用类运算符来重载。
13.c++提供两种格式控制方式,一种是 ,另一种是 。
14.如果Empty是从某个其它类派生出来的,而且这个其它类又有一个析构函数,c++也将为Empty写一
个 。
15.当一个基类定义了赋值或初始化语义,而其派生类却未定义赋值或初始化语义时,c++编译器为该派生类自动生
成一个 或 函数。
16.如果程序员定义class Empty{}; ,下列各语句将产生的函数名称是:
a. const Empty e1; //
b. Empty e2=e1; //
2 2013-4-16
2024年6月5日发(作者:俞思菱)
C++试卷
一、选择题(每题1分)
1.下面是关于构造函数的说法,不正确的是( )。
A. C++规定,每一个类必须有一个构造函数,没有构造函数就不能创建对象
B. 如果没有提供一个类的构造函数(一个都未提供),则C++提供一个默认的构造函数,该默认构造函数是个无
参构造函数,它仅仅负责创建对象
C. 虽然一个类定义了一个构造函数(不一定是无参构造函数),C++仍然提供默认的构造函数
D. 与变量定义类似,在用默认构造函数创建对象时,如果创建的是全局对象或静态对象,则对象的位模式全为0,
否则,对象值是随机的
2.在下列说法中,不正确的是( )。
A. 静态成员函数不能利用this指针
B. 只有非静态成员才可以使用this关键字,因为静态成员没有this指针
C.析构函数不接受任何参数,也不带有任何类型的返回值
D. 虚机制在构造函数和析构函数中仍然可以很好地工作,以实现多态性
3. 多重继承的构造顺序一般可分为4步,下面给出这4个步骤:
step1: 任何非虚拟基类的构造函数按照它们被继承的顺序构造。
step2: 任何虚拟基类的构造函数按照它们被继承的顺序构造。
step3: 任何成员对象的构造函数按照它们声明的顺序构造。
step4: 类自己的构造函数。
这4个步骤的正确顺序是( )。
A. step4、step3、step1、step2 B. step2、step4、step3、step1
C. step2、step1、step3、step4 D. step3、step4、step1、step2
4.若程序中有非法操作,则( )。
A. eofbit置位 t置位 置位 t置位
5.设置填充字符的函数是( )。
ios::width(int) ios::width() ios::fill(char) ios::fill()
6.返回当前精度的成员函数是( )。
ios::width(int) ios::width() ios::precision() D. int ios::precision(int)
7.要求浮点输出时必须带有一个小数点的格式控制常量是( )。
e s int
8.目前推荐的C++标准( )虚构造函数。
A. 不支持 B. 支持 C. 曾经支持过 D.已经由过去的不支持改为支持
9.下列对模板的声明,正确的是( )。
A. template
C. template
10. 友元运算符obj++被C++编译器解释为( )。
A. operator++(obj) B. operator++(obj,0)
B. or++( ) D. or++(0)
11. C++ 的运算符函数的返回类型( )。
A. 可以是任意类型 B. 不可以是int类型
C. 不能是 void 类型 D. 不可以是float类型
12.声明类test的复制构造函数的正确形式是( )。
A. int test B. void test C. test(void) D. test(test&)
1 2013-4-16
13.一个const对象( )。
A. 能访问所有成员函数 B. 只能访问const成员函数
C. 也能访问volatile成员函数 D. 能访问const和volatile成员函数
14.下面关于类的对象性质的描述,正确的是( )。
A. 对象之间不可以相互赋值 B. 不可以说明指向对象的指针
C. 对象不能用作数组元素 D. 一个对象能用作另一个对象的成员
二、填空题(每题2分)
1.在c++中,除具有 、 语句的函数不能说明为内联函数外,其它函数都可以说明为内联函数。
2.在c++中,封装可以由 、 和 等关键字提供。
3.若example是已定义的类,在程序结束之前,共计存在 个对象。
#include”example”
main()
{example X(0);
X=5;();
X=example(10);
();
}
4.由于二义性原因,一个类不能从同一个类中直接 一次以上,如果必须这样做,可以使用一
个 。
5.在c++中,如果在多条继承路径有一个公共的基类,如果想使这个公共的基类只产生一个拷贝,则可以将这个基
类说明为 。使用关键字 说明。
6.简单成员函数是指声明中不含有 、 、 关键字的函数。
7.静态成员为该类的所有 共享,它们被存储于一个 中。
8.在c++中声明 和 时使用volatile或const均是非法的。
9.当访问私有静态数据成员时,可通过定义公有的 来访问。
10.有关继承,静态成员 被继承,友元 被继承。
11.c++不允许重载 、 、 、 运算符。
12. 、 、 、 四个运算符只能用类运算符来重载。
13.c++提供两种格式控制方式,一种是 ,另一种是 。
14.如果Empty是从某个其它类派生出来的,而且这个其它类又有一个析构函数,c++也将为Empty写一
个 。
15.当一个基类定义了赋值或初始化语义,而其派生类却未定义赋值或初始化语义时,c++编译器为该派生类自动生
成一个 或 函数。
16.如果程序员定义class Empty{}; ,下列各语句将产生的函数名称是:
a. const Empty e1; //
b. Empty e2=e1; //
2 2013-4-16