1、5.9 (11)下列关于 C++函数的叙述中,正确的是 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己 (12)下列关于类和对象的叙述中,错误的是 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系 (13)在 C++中,用于实现运行时多态性的是 A)内联函数 B)重载函数 C)模板函数 D)虚函数 (14)下列关于运算符重载的叙述中,正确的是 A)通过运算符重载,可以定义新的运算符 B)有的运算符
2、只能作为成员函数重载
C)若重载运算符+,则相应的运算符函数名是+
D)重载一个二元运算符时,必须声明两个形参
(15)下列关于模板的叙述中,错误的是
A)模板声明中的第一个符号总是关键字 template
B)在模板声明中用<和>括起来的部分是模板的形参表
C)类模板不能有数据成员
D)在一定条件下函数模板的实参可以省略
(16)对于语句 cout< 3、中,正确的 C++标识符是
A)foo-1 B)2b
C)new D)_256
(18)已知枚举类型定义语句为:
enum Token{NAME,NUMBER,PLUS=5,MINUS,PRINT=10};
则下列叙述中错误的是
A)枚举常量 NAME 的值为 1 B)枚举常量 NUMBER 的值为 1
C)枚举常量 MINUS 的值为 6 D)枚举常量 PRINT 的值为 10
(19)执行语句序列
int i=0;while(i<25)i+=3;cout< 4、5 个元素的一维数组 vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句
中错误的是
A)int vect[]={30,50,-88}; B)int vect[]={30,50,-88,0,0};
C)int vect[5]={30,50,-88}; D)int vect[5]={30,50,-88,0,0};
(21)有如下程序:
#include 5、fun(a[1],a[0]);
std::cout< 6、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;}
int get()const{return MyBASE::get()+j;}
};
则类 MyDERIVED 中保护的数据成员和成员函数的个数是
A)4 B)3
C)2 D)1
(24)已知在一个类体中包含如下函数原型:VOLUME operato 7、r-(VOLUME)const;,下列关于这个函数的叙述中,错误
的是
A)这是运算符-的重载运算符函数
B)这个函数所重载的运算符是一个一元运算符
C)这是一个成员函数
D)这个函数不改变类的任何数据成员的值
(25)有如下函数模板定义:
template 8、 AA 构造函数的是
A)void AA(int);
B)int AA();
C)AA(int)const;
D)AA(int);
(28)下列关于 this 指针的叙述中,正确的是
A)任何与类相关的函数都有 this 指针
B)类的成员函数都有 this 指针
C)类的友元函数都有 this 指针
D)类的非静态成员函数才有 this 指针
(29)有如下程序:
#include 9、 ~Test() {n-=3; }
static int getNum() {return n; }
private:
static int n;
};
int Test::n=1;
int main()
{
Test* p=new Test;
delete p;
cout<<"n="< 10、amespace std;
class A {
public:
A(){cout<<"A";}
};
classB{public:B(){cout<<"B";}}
classC:public A{
B b;
public:
C(){cout<<"C";}
};
int main(){ C obj; return 0;}
执行后的输出结果是
A)CBA B)BAC
C)ACB D)ABC
(31)有如下类声明:
class XA{
int x;
public:
XA(in 11、t n){x=n;}
};
class XB:public XA{
int y;
public:
XB(int a,int b);
};
在构造函数 XB 的下列定义中,正确的是
A) XB::XB(int a,int b):x(a),y(b){} B)XB::XB(int a,int b):XA(a),y(b){}
C)XB::XB(int a,int b):x(a),XB(b){} D)XB::XB(int a,int b):XA(a),XB(b){}
(32)有如下程序:
#include 12、ng namespace std;
class BASE{
public:
~BASE(){cout<<"BASE";}
};
class DERIVED:public BASE{
public:
~DERIVED(){cout<<"DERIVED";}
};
int main(){DERIVED x;return 0;}
执行后的输出结果是
A)BASE B)DERIVED
C)BASEDERIVED D)DERIVEDBASE
(33)在表达式 x+y*z 中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中 13、正确的
是
A)operator+有两个参数,operator*有两个参数
B)operator+有两个参数,operator*有一个参数
C)operator+有一个参数,operator*有两个参数
D)operator+有一个参数,operator*有一个参数
(34)下面关于 C++流的叙述中,正确的是
A)cin 是一个输入流对象
B)可以用 ifstream 定义一个输出流对象
C)执行语句序列 char *y="PQMN"; cout< 14、80); 时,若键入
Happy new year
则 x 中的字符串是"Happy"
(35)有如下程序:
#include 15、out< 16、}
(7)执行语句序列
int x=l0,&r=x;
cout< 17、 X;}
int GetY(){return Y;}
static void GetC(){cout<<"Object id="< 18、vate 成员。
(10)派生类中的成员不能直接访问基类中的___________成员。
(11)下列程序的输出结果为 2,请将程序补充完整。
#include 19、
p->fun();
delete p;
return 0;
}
(12)请将下列类定义补充完整。
class Base{public: void fun(){cout<<"Base::fun"< 20、 (14)B) (15)C)
(16)D) (17)D) (18)A) (19)C) (20)A)
(21)B) (22)C) (23)B) (24)B) (25)C)
(27)D) (28)D) (29)A) (30)D)
(31)B) (32)D) (33)C) (34)A) (35)B)
二、填空题
(6)j++ >=
(8)int Point::countP=0;
(9)友元
(10)私有或 private
(11)virtual
(12)Base::fun( );
6.4
(11)下列关于 C 21、函数的说明中,正确的是
A)内联函数就是定义在另一个函数体内部的函数
B)函数体的最后一条语句必须是 return 语句
C)标准 C++要求在调用一个函数之前,必须先声明其原型
D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式
(13)下列关于虚函数的说明中,正确的是
A)从虚基类继承的函数都是虚函数
B)虚函数不得是静态成员函数
C)只能通过指针或引用调用虚函数
D)抽象类中的成员函数都是虚函数
(14)运算符重载是对已有的运算符赋予多重含义,因此
A)可以对基本类型(如 int 类型)的数据,重新定义“+”运算符的含义
22、B)可以改变一个已有运算符的优先级和操作数个数
C)只能重载 C++中已经有的运算符,不能定义新运算符
D)C++中已经有的所有运算符都可以重载
(15)模板对类型的参数化提供了很好的支持,因此
A)类模板的主要作用是生成抽象类
B)类模板实例化时,编译器将根据给出的模板实参生成一个类
C)在类模板中的数据成员都具有同样类型
D)类模板中的成员函数都没有返回值
(18)下列语句中,错误的是
A)const int buffer=256; B)const int temp;
C)const double *point; D)const double *r 23、t=new double(5.5);
(20)有如下程序:
#include
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818