-
下列程序划线处应填入的正确语句是 【正确答案: C】。
class base
{ public:
void fun(){ cout<<“base::fun”<};
class Derived:public base
{ public:
void fun() } A. fun(); 以下对派生类的描述中,错误的是 【正确答案: C】。 A. 一个派生类可以作为另外一个派生类的基类 B. 派生类至少有一个基类 C. 从派生类中继承的基类成员的访问权限到派生类中保持不变 D. 派生类的成员除了其自己的成员外,还包含了其基类的成员 若一个类拥有多个构造函数,则这些构造函数函数之间为 【正确答案: B】。 B. 重载关系 C. 继承关系 D. 拷贝关系 类A中的一个成员函数原型为:void Set(A &a);其中"A &a"的含义为 【正确答案: C】。 A. 指向类A的指针为a B. 将a的地址值赋给变量set C. a是类A对象的引用,用来作函数Set的形参 D. 变量A与a按位相与作为函数Set的参数 在表达式x+y*2中,+是作为成员函数重载的运算符,是作为非成员函数重载的运算符,则operator+和operator分别有 【正确答案: B】个参数。 A. 1、1 D. 2、2 C++中声明常量的关键字是 【正确答案: D】。 A. extern B. public C. virtual D. const 若可以在类外用p.a的形式访问派生类对象p的基类成员a,则a是 【正确答案: C】。 A. 公有继承的私有成员 B. 公有继承的保护成员 C. 公有继承的公有成员 D. 私有继承的公有成员 在一个类中,可以对一个操作符进行 【正确答案: D】重载。 A. 1种 B. 不超过2种 C. 不超过3种 D. 多种 对于任意一个类,析构函数的个数最多为 【正确答案: B】。 A. 0 以下各类函数中, 【正确答案: D】不是类的成员函数。 A. 构造函数 B. 析构函数 C. 拷贝构造函数 D. 友元函数 下列关于类和对象的叙述中,错误的是 【正确答案: D】。 A. 对象是类的具体实例 B. 类是对某一类对象的抽象 C. 类和对象的关系是一种数据类型与变量的关系 D. 一个类只能有一个对象 在C++类中定义的成员,其默认访问权限为 【正确答案: A】。 A. private B. public C. protected D. static 以下选项中不是面向对象程序设计所具有的特性的是 【正确答案: B】。 A. 数据封装 B. 模板 C. 继承 D. 多态性 下面判断正确的是 【正确答案: b】。 A. char c[4]=“abc”,d[4]=“abc”; 等价于char c[4]=d[4]=“abc”; B. char *s=“china”; 等价于char *s; s=“china”; C. char *a=“china”; 等价于char *a; *a=“china”; D. char str[10]={“china”}; 等价于char str[10]; str[ ]={“china”}; 执行以下程序段后,y的值是 【正确答案: b】。 int a[ ]={1,3,5,7,9}; int x=0,y=1, ptr; A. 24 若有定义int a[3][3]={ {1, 2}, {5}, {2, 4, 8} }; 初始值5是数组a存储在内存中的第 【正确答案: A】个元素。 A. 4 B. 3 C. 2 D. 1 下面关于C++语言的描述错误的是: 【正确答案: b】 A. C++语言支持数据封装 B. C++语言中引入友元没有破坏封装性 C. C++语言允许函数名和运算符重载 D. C++语言支持动态联编 下列说明中const char *p=“ok”; 其中p应该是 【正确答案: c】 假设要对类A定义加号操作符重载成员函数,实现两个A类对象的加法,并返回相加结果,则该成员函数的声明语句是: 【正确答案: c】 下列不能作为类的成员的是 【正确答案: b】 A. 自身类对象的指针 B. 自身类对象 C. 自身类对象的引用 D. 另一个类的对象 假定A为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数 成员a()的格式为 【正确答案: b】 A. x.a B. x.a() C. x->a D. (*x).a() 关于对象概念的描述中,说法错误的是 【正确答案: a】 A. 对象就是C语言中的结构变量 B. 对象代表着正在创建的系统中的一个实体 C. 对象是类的一个变量 D. 对象之间的信息传递是通过消息进行的 类的实例化是指 【正确答案: b】 A.定义类 B.创建类的对象 C.指明具体类 D.调用类的成员 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是 【正确答案: a】 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 【正确答案: a】 A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数 关于this指针使用说法正确的是 【正确答案: a】 A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码。 B. 保证基类私有成员在子类中可以被访问。 C. 保证基类保护成员在子类中可以被访问。 D. 保证基类公有成员在子类中可以被访问。 下列说法中正确的是 【正确答案: b】 A.类定义中只能说明函数成员的函数头,不能定义函数体 B.类中的函数成员可以在类体中定义,也可以在类体之外定义 C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D.在类体之外定义的函数成员不能操作该类的私有数据成员 有如下类定义: class sample { int n; public: sample (int i=0):n(i){ } void setValue(int n0); }; 下列关于setValue成员函数的实现中,正确的是 【正确答案: b】。 A.sample::setValue(int n0){n=n0;} B.void sample::setValue(int n0){n=n0;} C.void setValue(int n0){n=n0;} D.setValue(int n0){n=n0;} 在下面的类定义中,错误的语句是 【正确答案: c】 class sample{ public: sample(int val); //① ~sample( ); //② private: int a=2.5; //③ public: sample( ); //④ }; A.① B.② C.③ D.④ 在下列函数原型中,可以作为类AA构造函数的是 【正确答案: d】 A.void AA(int); B.int AA( ); C.AA(int) const; D.AA(int) 采用函数重载的目的在于 【正确答案: d】 A. 实现共享 B.减少空间 C. 提高速度 D.使用方便,提高可读性 下列静态数据成员特性中, 【正确答案: d】是错误的。 A. 说明静态数据成员时前边要加修饰符static; B. 静态数据成员要在类体外进行初始化; C. 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域分辨符; D. 静态数据成员不是所有对象共有的 以下各选项中,正确的函数声明是 【正确答案: c】 A.double func( int x , int y ) B.int func( int x ; int y ) ; C.float func( int x , int y ) ; D.char func( int x , y ) ; 关于构造函数,下列说法不正确的是 【正确答案: B】。 A. 构造函数的名字和类名相同 B. 构造函数有且只有一个 C. 构造函数在创建对象时自动执行 D. 构造函数无任何函数返回类型 类成员的访问权限中, 【正确答案: C】只能被本类的成员函数和其友元函数访问。 B. public C. private D. protected 派生类的对象对它的基类成员中 【正确答案: A】是可以访问的。 A. 公有继承的公有成员 B. 公有继承的保护成员 C. 保护继承的保护成员 D. 保护继承的公有成员 下列描述错误的是: 【正确答案: a】 实现运行时的多态性采用: 【正确答案: d】 关于const关键字说法错误的是: 【正确答案: d】 下面关于友元的描述中,错误的是 【正确答案: d】 如果类A被说明为类B的友元,则 【正确答案: C】 B. 类B的成员既是类A的成员 C. 类A的成员函数可以访问类B的所有成员 D. 类B的成员函数可以访问类A的所有成员 C++中不能被重载的一组运算符是 【正确答案: a】 下列各类函数中,不是类的成员函数的是: 【正确答案: c】 定义析构函数时应该注意 【正确答案: c】 考虑函数原型void test(int a,int b=7,char ch=’*’),下面函数调用中,属于不合法调用的是: 【正确答案: c】 下列说明中const char*ptr=“hello”;其中ptr应该是: 【正确答案: c】 A. 指向字符常量的指针 B. 指向字符的常量指针 C. 指向字符串常量的指针 D. 指向字符串的常量指针 已知print函数是一个类的常成员函数,它无返回值,下列表示中,正确的是 【正确答案: a】 作用域运算符“::”的功能是: 【正确答案: b】 A. 标识作用域的级别的 B. 指出作用域的范围的 C. 给定作用域的大小的 D. 标识成员是属于哪个类的 在公有继承的情况下,基类非私有成员在派生类中的访问权限 【正确答案: D】。 B. 受保护 C. 不受保护 D. 保持不变 若有以下说明和语句: struct worker { int no; char ﹡name; }work, ﹡p=&work; 则以下引用方式不正确的是 【正确答案: a】。 A. work->no B. work.no C. (﹡p).no D. p->no 保护继承时,基类的 【正确答案: C】在派生类中成为保护成员,不能通过派生类的对象直接访问。 A. 任何成员 B. 公有成员和私有成员 C. 公有成员和保护成员 D. 私有成员 假定AB为一个类,则执行AB a(2),b[3],*p[4]; 语句时调用该类的构造函数的次数是 【正确答案: b】 保护派生时,基类的公有成员成为派生类的公有成员;保护成员成为派生类的保护成员,私有成员成为派生类的保护成员。 【正确答案:错误】 正确 错误
{ _____________ //显示调用基类的函数fun()
cout<<“Derived::fun”<
};
B. base.fun();
C. base::fun();
D. base->fun();
A. 重复关系
B. 1、2
C. 2、1
B. 1
C. 2
D. 3
ptr=&a[1];
while(!x) { y+=(ptr+x); x++; }
B. 4
C. 2
D. 1
A. 指向字符常量的指针
B. 指向字符的常量指针
C. 指向字符串常量的指针
D. 指向字符串的常量指针
A. A operator +(A &a, A &b);
B. operator +(A a);
C. A operator +(A &a);
D. A &operator +( );
A. 类
B. 对象
C. 函数体
D. 语句块
A. share
A. 在创建对象前,静态成员不存在
B. 静态成员是类的成员
C. 静态成员不能是虚函数
D. 静态成员函数不能直接访问非静态成员
A. 重载函数
B. 构造函数
C. 析构函数
D. 虚函数
A. const关键字可以修饰对象和成员函数
B. const对象不能被修改
C. const成员函数不能修改类数据成员
D. const可以用于说明类
A. 友元函数可以直接访问该类的私有成员
B. 一个类的友元类中的所有成员函数都是这个类的友元函数
C. 利用友元可以提高程序的运行效率,但却破坏了封装性
D.友元关系不能被继承,是双向可交换的
A. 类A的成员既是类B的成员
A. :: ?: . sizeof
B. ?: . sizeof ++ ->
C. :: ?: new delete
D.++ – ?: sizeof
A. 构造函数
B. 析构函数
C. 友元函数
D. 拷贝构造函数
A. 其名与类名完全相同
B. 返回类型是void类型
C. 无形参,也不可重载
D. 函数体必须有delete语句
A. test(5);
B. test(5,8);
C. test(6,’#’);
D. test(0,0,’*’);
A. void print() const;
B. const void print();
C. void const print();
D. void print(const);
A. 受限制
A. 3
B. 4
C. 5
D. 9



