C++程序设计选择题

1、1. 在哪种派生方式中,派生类可以访问基类中的 protected 成员 ( B)
A.public 和 private B.public 和 protected
C.protected 和 private D.仅 protected

  1. 对 C++语言和 C语言的兼容性,描述正确的是 ( A)
    A.C++兼容 C B.C++部分兼容 C
    C.C++不兼容 C D.C 兼容 C++

  2. 在 C++中使用流进行输入输出,其中用于屏幕输出的对象是 ( C)
    A.cerr B.cin
    C.cout D.cfile

  3. 对使用关键字 new所开辟的动态存储空间,释放时必须使用 ( C)
    A.free B.create
    C.delete D.realse

  4. 如没有使用 private 关键字定义类的数据成员,则默认为 ( A)
    A.private B.public
    C.protected D.friend

  5. 使用值传递方式将实参传给形参,下列说法正确的是 ( A)
    A. 形参是实参的备份 B.实参是形参的备份
    C. 形参和实参是同一对象 D.形参和实参无联系

  6. 在函数调用时,如某一默认参数要指明一个特定值,则有 ( A)
    A. 其之前所有参数都必须赋值 B.其之后所有参数都必须赋值
    C. 其前、后所有参数都必须赋值 D.其前、后所有参数都不必赋值

  7. 设存在函数 int max(int ,int) 返回两参数中较大值,若求 22,59,70 三者中最大值,下列表达式不正确的是 ( C)
    A.int m=max(22 ,max(59,70)) ; B.int m=max(max(22 , 59) ,70) ;
    C.int m=max(22 ,59,70) ; D.int m=max(59 ,max(22,70)) ;

  8. 下列哪个类型函数不适合声明为内联函数 ( A)
    A. 函数体语句较多 B.函数体语句较少
    C. 函数执行时间较短 D.函数执行时间过长

10.int Func(int ,int) ;不可与下列哪个函数构成重载 ( B)
A.int Func(int ,int , int) ; B.double Func(int ,int) ;
C.double Func(double ,double) ; D.double Func(int ,double) ;

  1. 对类中声明的变量,下列描述中正确的是 ( C)
    A. 属于全局变量
    B. 只属于该类
    C. 属于该类,某些情况下也可被该类不同实例所共享
    D. 任何情况下都可被该类所有实例共享

  2. 类的私有成员可在何处访问 ( D)
    A. 通过子类的对象访问 B.本类及子类的成员函数中
    C. 通过该类对象访问 D.本类的成员函数中

  3. 如果没有为一个类定义任何构造函数的情况下,下列描述正确的是 ( A)
    A. 编译器总是自动创建一个不带参数的构造函数
    B. 这个类没有构造函数
    C. 这个类不需要构造函数
    D. 该类不能通过编译

  4. 一个类可包含析构函数的个数是 ( B)
    A.0 个 B.1 个
    C. 至少一个 D.0 个或多个

15.this 指针存在的目的是 ( B)
A. 保证基类公有成员在子类中可以被访问
B. 保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
C. 保证基类保护成员在子类中可以被访问
D. 保证基类私有成员在子类中可以被访问

  1. 下列关于类的权限的描述错误的是 ( A)
    A. 类本身的成员函数只能访问自身的私有成员
    B. 类的对象只能访问该类的公有成员
    C. 普通函数不能直接访问类的公有成员,必须通过对象访问
    D. 一个类可以将另一个类的对象作为成员

  2. 在编译指令中,宏定义使用哪个指令 ( B)
    A.#include B.#define
    C.#if D.#else

  3. 设类 A将其它类对象作为成员,则建立 A类对象时,下列描述正确的是 ( B)
    A.A 类构造函数先执行 B.成员构造函数先执行
    C. 两者并行执行 D.不能确定

  4. 下列描述错误的是 ( A)
    A. 在创建对象前,静态成员不存在
    B. 静态成员是类的成员
    C. 静态成员不能是虚函数
    D. 静态成员函数不能直接访问非静态成员

  5. 对于友元描述正确的是 ( B)
    A. 友元是本类的成员函数 B.友元不是本类的成员函数
    C. 友元不是函数 D.友元不能访问本类私有成员

2、1.

编写 C++程序一般需经过的几个步骤依次是()
A. 编辑、调试、编译、连接
B. 编辑、编译、连接、运行
C. 编译、调试、编辑、连接
D. 编译、编辑、连接、运行
答案: B

  1. 决定 C++语言中函数的返回值类型的是()
    A. return
    语句中的表达式类型
    B. 调用该函数时系统随机产生的类型
    C. 调用该函数时的主调用函数类型
    D. 在定义该函数时所指定的数据类型
    答案: D

  2. 下面叙述不正确的是()
    A. 派生类一般都用公有派生
    B. 对基类成员的访问必须是无二义性的
    C. 赋值兼容规则也适用于多重继承的组合
    D. 基类的公有成员在派生类中仍然是公有的
    答案:

  3. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体
    也就是()
    A. 类
    B. 对象
    C. 函数体
    D. 数据块
    答案: A

  4. 在公有派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中
    的()
    A. 私有成员
    B. 公有成员
    C. 保护成员
    D. 保护成员或私有成员
    答案: A

  5. 对基类和派生类的关系描述中,错误的是()
    A. 派生类是基类的具体化
    B. 基类继承了派生类的属性
    C. 派生类是基类定义的延续
    D. 派生类是基类的特殊化
    答案: B

  6. 关于 this 指针使用说法正确的是()
    A. 保证每个对象拥有自己的数据成员,但共享处理这些数据的代码
    B. 保证基类私有成员在子类中可以被访问。
    C. 保证基类保护成员在子类中可以被访问。
    D. 保证基类公有成员在子类中可以被访问。
    答案: A

  7. 所谓多态性是指 ()
    A. 不同的对象调用不同名称的函数
    B. 不同的对象调用相同名称的函数
    C. 一个对象调用不同名称的函数
    D. 一个对象调用不同名称的对象
    答案: B

  8. 一个函数功能不太复杂,但要求被频繁调用,则应把它定义为()
    A. 内联函数
    B. 重载函数
    C. 递归函数
    D. 嵌套函数
    答案: A

  9. 下面函数模板定义中不正确的是()
    A. A
    B. B
    C. C
    D. D
    答案: A

  10. 假设 ClassY:publicX
    ,即类 Y是类 X的派生类,则说明一个 Y 类的对象时和删除 Y类对象时
    ,调用构造函数和析构函数的次序分别为()
    A. X,Y;Y,X
    B. X,Y;X,Y
    C. Y,X;X,Y
    D. Y,X;Y,X
    答案: A

  11. 适宜采用 inline
    定义函数情况是()
    A. 函数体含有循环语句
    B. 函数体含有递归语句
    C. 函数代码少、频繁调用
    D. 函数代码多、不常调用
    答案: C

  12. 假定一个类的构造函数为
    A(int aa,int bb) {a=aa–;b=a*bb;}, 则执行 A x(4,5) ;语句后
    ,x.a 和 x.b 的值分别为()
    A. 3 和 15
    B. 5 和 4
    C. 4 和 20
    D. 20 和 5
    答案: C

  13. 在类中说明的成员可以使用关键字的是()
    A. public
    B. extern
    C. cpu
    D. register
    答案: A

  14. 下列不能作为类的成员的是()
    A. 自身类对象的指针
    B. 自身类对象
    C. 自身类对象的引用
    D. 另一个类的对象
    答案: B

  15. 使用地址作为实参传给形参,下列说法正确的是()
    A. 实参是形参的备份
    B. 实参与形参无联系
    C. 形参是实参的备份
    D. 实参与形参是同一对象
    答案: D

  16. 下列程序的输出结果是()
    #include <iostream.h>
    void main()
    {int n [][ 3]={10,20,30,40,50,60};
    int (p) [3];
    p=n;
    cout<<p [0][ 0]<<","<<
    (p [0]+1)<<" ,"<<(*p) [2]<<endl;}
    A. 10,30,50
    B. 10,20,30
    C. 20,40,60
    D. 10,30,60
    答案: B

  17. 在 C++中,使用流进行输入输出,其中用于屏幕输入()
    A. cin
    B. cerr
    C. cout
    D. clog
    答案: A

  18. 假定 AA为一个类, a() 为该类公有的函数成员, x 为该类的一个对象,则访问 x 对象中函数
    成员 a() 的格式为()
    A. x.a
    B. x.a()
    C. x->a
    D. (*x ).a()
    答案: B

  19. 关于对象概念的描述中,说法错误的是()
    A. 对象就是 C 语言中的结构变量
    B. 对象代表着正在创建的系统中的一个实体
    C. 对象是类的一个变量
    D. 对象之间的信息传递是通过消息进行的
    答案: A

3、1.在 C++中,头文件扩展名为( B )
A…cpp B…h
C…1ib D…obj

2.下列符号中,不属于分隔符的是( B )
A.,B./
C.; D.{}

3.可替换 #define PI 3.1415926的语句是( B )
A.float PI 3.1415926; B.const float PI=3.1415926;
C.const PI(3.1415926); D.const 3.1415926;

4.布尔类型标识符是( D )
A.void B.short
C.long D.bool

5.下列不是 C++语言的基本数据类型的是( D )
A.字符类型 B.整数类型 C.逻辑类型 D.枚举类型

6.C++允许在结构中定义函数,这些函数称为( D )
A.静态函数 B.构造函数 C.析构函数 D.成员函数

7.设函数 void inc(int) 将形参加 1,如有整型变量 int i=10;则执行 inc(i);后,
i 的值为( B )
A.9 B.10 C.11 D.未知

8.下列哪种默认参数的声明是不正确的( C )
A. int max(int a,int b,int c,int d=0);
B. int max(int a,int b,int c=0,int d=0);
C. int max(int a=0,int b,int c=0,int d=0);
D. int max(int a,int b=0,int c=0,int d=0);

9.设 int &max(int &,int &) 返回两参数中较大者, 如有两整型变量 int a=10;
int b=15;在执行 max(a,b)++后,a,b 值分别为( C )A.10,15
B.11,15 C.10,16 D.1l,16

10.包含哪种语句的函数不能声明为内联函数( A )
A.循环 B. 变 量自增自减 C.if…else ⋯ D.变量声

11.定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来
( A )
A.<> B.“” C.() D.{}

12.一个类拥有多个构造函数,则这些构造函数间为( A )
A.重载关系
B.重复关系 C.拷贝关系 D.无关系

13.对于拷贝构造函数 point::point(point& p) ,下列说明正确的是( C )
A.该函数只能访问 P的私有成员 B.该函数不能访问 P的公有成员 C.该函
数可以访问 P的私有和公有成员 D.该函数不能访问 P的成员

14.使用 delete[]删除对象数组时,描述正确的是( A )
A.数组中各元素都调用析构函数 B.数组中各元素都调用构造函数 C.不
调用析构函数 D.只有首元素调用析构函数
Point *p=new Point[5];=>B

15.下列哪个指令属于条件编译指令( A )
A. #elif B. #error C. #pragma D. #include

16.设类 Test 中存在成员 static int x,则下列哪种初始化方式是正确的
( C )A.Test::int x=25; B.int x=25;
C.int Test::x=25; D.int Test x=25;

17.下列关于友元的描述错误的是( A )
A.成员函数不可作友元 B.类可以作友元
C.普通函数可以作友元 D.静态函数可以作友元

18.在继承中,派生类拥有的基类个数为( D )
A.0 个 B.1 个 C.多个 D.至少 1 个

19.基类中的 protected 成员,通过 public 派生,其在派生类中的可见性为
( C )A.不可访问 B.private
C.protected D.public

20.下列哪个不是面向对象的关键要素( B )
A.抽象性 B.结构性 C.封装性 D.多态性

4、1.C++ 中注释 “∥”的有效范围是( A)

A.从“∥”开始到行尾 B.从“∥”开始到下一个 “∥”
C.“∥”及其后一个字符 D.从“∥”开始到程序尾

2.假定 MyClass 为一个类,则该类的复制构造函数的声明语句为( C )
A.MyClass&(MyClass x) ; B.MyClass(MyClass x) ;
C.MyClass(MyClass &x) ; D.MyClass(MyClass *x) ;

3.下列选项不是 C++关键字的是( D )
A.typedef B.void C.bool D.inc

4.用于标识十进制常量的前缀或后缀是( A)
A.无前后缀 B.后缀 L 或 l C. 前缀 0 D.前缀 0x

5.设 int x=56 ;int r=x ;若 cout <<&x ;显示 0012FF7A ,则 cout <<&r ;输出值为( D)
A.56 B.00l2FF7A C.0012FF7B D.未知

6.使用下列哪个流格式控制符可设置转换基数为八进制( B)
A.dec B.oct C.hex D.endl

7.C++ 中是否允许在类结构中定义函数( B)
A.不允许 B.允许 C.仅允许定义构造函数 D. 只不允许定义构造函数

8.设函数 void subone(int &) 将形参减 1,如有整型变量 int k=10 ,则执行 subone(k) ;后, k 的值为( A)

A.9 B.10 C.11 D.未知

9.对函数 int max(int a ,int b=0 ,int c=0 ,int d=0 ,int e=0) ;下列调用方式正确的是( A)
A.int m=max(10 ,11,12,13,14); B.int m=max(10 ,,12,13,14);
C.int m=max(10 ,1l,, 13,14); D.int m=max(10 ,11,12,,14);

10.类 MyClass 的定义如下:
class MyClass
{
public :
MyClass(){}
MyClass(int i){value=new int(i);}
int * value ;
};
若要对 value 赋值,则下面语句正确的是( D)
A.MyClass my ;my.value=10 ; B.MyClass my ;*my.value=10 ;
C.MyClass my ;my.*value=10 ; D.MyClass my(10) ;

11.包含哪种语句的函数不能声明为内联函数( D)
A.变量定义 B.if ⋯⋯ else C.位操作 D.switch

12.声明函数模板的关键字是( B)
A.inline B.template C.const D.short

13.对于类中的成员,使用 public 修饰,表明该成员的访问权限是( A)
A.公有的 B.私有的 C.保护的 D.不可见的

14.一个类中是否可以允许一个无参数构造函数和一个全部都是默认参数的构造函数共 存(A)
A.不允许 B.允许 C.无法确定 D.视构造函数的函数,可确定

15.析构函数的参数个数为( A)
A.0 个 B.1 个 C.至少 1 个 D.多于 1 个

16.非静态成员函数都会有一个隐含指针,它是( B)
A.self 指针 B.this 指针 C.current 指针 D.one 指针

17.下列访问公有静态成员的方式,错误的是( D)
A.类名::静态成员名 B.对象名 .静态成员名
C.对象指针 ->静态成员名 D.对象指针 .静态成员名

18.声明友元使用下列哪个关键字( C)
A.class B.const C.friend D.virtual

19.派生类继承了基类的( B)
A.所有成员 B.部分成员 C.数据成员 D.成员函数

20.基类 private 成员,通过 public 派生,其在派生类中为( D)
A.private B.protected C.public D.不可访问

5、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、1 .C++语言是从早期的 C语言逐渐发展演变而来的,与 C语言相比, C++在求解问题方法上进行的最大改进是 (B)

A .面向过程 B .面向对象 C. 安全性 D .复用性

2 .结构化程序设计所规定的三种基本控制结构是 (C)
A. 输入、处理、输出 B .树形、网形、环形
C .顺序、选择、循环 D. 主程序、子程序、函数

3 .关于函数模板,描述错误的是 (C)
A .函数模板必须由程序员实例化为可执行的函数模板
B. 函数模板的实例化由编译器实现
C .一个类定义中,只要有一个函数模板,则这个类是类模板
D .类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化

4 .作用域运算符“: :”的功能是 (B)
A .标识作用域的级别的 B .指出作用域的范围的
C .给定作用域的大小的 D .标识成员是属于哪个类的

5 .采用重载函数的目的是 (D)
A .实现共享 B .减少空间
C .提高速度 D .使用方便,提高可读性

6 .以下关键字不能用来声明类的访问权限的是 (C)
A .public B .private C .stadc D .protected

  1. 有如下类声明“ class A{int x ;⋯};”,则 A 类的成员 x 是 (B)
    A. 公有数据成员 B .私有数据成员
    C.公有成员函数 D .私有成员函数

  2. 下列不是构造函数的特征的是 (D)
    A .构造函数的函数名与类名相同 B .构造函数可以重载
    C .构造函数可以设置缺省参数 D .构造函数不能重载

9 .通常的拷贝构造函数的参数是 (C)
A. 某个对象名 B .某个对象成员名
C .某个对象的引用 D .某个对象的指针名

10.下列哪个类型函数不适合声明为内联函数 ? (A)
A. 函数体语句较多 B .函数体语句较少
C .函数执行时间较短 D .函数执行时间过长

11.设 x 和 y 均为 bool 量,则 x&& y 为真的条件是 (A)
A .它们均为真 B .其中一个为真
C .它们均为假 D .其中一个为假

12.对于友元描述正确的是 (B)
A .友元是本类的成员函数 B .友元不是本类的成员函数
C .友元不是函数 D .友元不能访问本类私有成员

13.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的 (A)
A .public 成员 B .private 成员
C.protected 成员 D .友元

14.在 C++语言中, 080 是 (D)
A .八进制数 B .十进制数
C.十六进制数 D .非法数

15.下面函数原型声明中,声明了 fun 为虚函数的是 (C)
A. void fun()=0 B . virtual void fun()=O
C .virtual void fun() D . virtual void fun(){}

16.下列虚基类的声明中,正确的是 (B)
A .class virtual B :public A B .class B :virtual public A
C .class B :public A virtual D .virtual class B :public A

17.下列运算符中,在 C++语言中不能重载的是 (C)
A. * B .>= C .:: D ./

18.在 C++语言中,能代表逻辑值“假”的是 (D)
A .小于 0 的数 B .大于 0 的数 C .非 0 整数 D .0

19.以下叙述中不正确的是 (C)
A .在一个函数中,可以有多条 return 语句
B .函数的定义不能嵌套,但函数的调用可以嵌套
C .函数必须有返回值
D .不同的函数中可以使用相同名字的变量

20.已知: int m=10 ;在下列表示引用的方法中,下列哪一项是正确的 ? (A)
A .hat &x=m B .int&y=10 C.int &z D .float &t= &m

7、1. 一个 C语言程序是由( D)构成。

A.语句 B. 行号 C. 数据 D. 函数

  1. 下面标识符中正确的是( C)。
    A.d&ef B.6a C.z4x5c D.a3/b4

  2. 在 C语言中,存储一个字符型、整型、单精度实型变量所需的空间是(A)。
    A.1、2、4 B.1 、1、4 C.1 、2、8 D.2 、2、 8

  3. 为了避免嵌套的条件分支语句 if —— else 中的 else 总是与( C) 组成成对关系。
    A. 缩排位置相同的
    B. 在其之前未配对的
    C. 在其之前未配对的最近的 if
    D. 在同一行上的 if

  4. 下列表达式的结果正确的是( B)。
    int aa ,bb,cc,dd;
    aa=bb=cc=dd=1;sp; aa=bb=cc=dd=1 ;sp; aa=bb=cc=dd=1 ;
    (aa+1==2)? bb=aa+2:aa+3
    A.2 B.3 C. 1 D.5

  5. 设有 int x=11 ;则表达式( x+1/3 )的值是( C)。
    A.3 B. 4 C. 11 D.12

  6. 设有字符串 A=“He has 钱!”,则该字符串的长度为( B)。
    A. 9 B. 10 C. 11 D. 8

  7. 有如下程序段,则正确的执行结果是(B )
    int m=3 ;
    while ( m<=5)
    { printf (“%d ”, m-3); m++;}
    A. 0 0 0 B.0 1 2 C.1 2 3 D. 无结果

  8. 执行语句: printf (“%d”,( a=2)&&(b= -2 );后,输出结果是( D)。
    A.无输出 B. 结果不确定 C.-1 D. 1

  9. 有如下定义类型语句,若从键盘输入数据,正确的输入语句是(D )。
    int x ; char y ; char z[20] ;
    A. scanf (“%d%c%c ”, &x, &y,&z);
    B. scanf (“%d%c%s ”, &x, &y,&z);
    C. scanf (“%d%c%c ”, &x, &y,z);
    D. scanf (“%d%c%s ”, &x, &y,z);

  10. struct ex
    { int x ; float y ; char z ;} example ;
    则下面的叙述中不正确的是( B)。
    A. struct 结构体类型的关键字 B. example 是结构体类型名
    C. x ,y,z 都是结构体成员名 D. struct ex 是结构体类型

  11. 在 C语言中对于实型数组,其每个数组元素的类型是( A)。
    A. 实型 B. 整型 C. 可以为任何类型 D. 不确定

  12. 若已定义: int a[9] ,*p=a;不能表示 a[1] 地址的表达式是( C)。
    A. p+1 B. a+1 C. a++ D. ++p

  13. 在 TC2.0 环境中,对文件进行保存使用的命令是(B )。
    A. OPEN B. SAVE C. LOAD D. WRITE TO

  14. 在 C++的类中,用于表示公共类型的关键字是( D)。
    A. class B. private C. protect D. public

8、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
10、1. 在编译指令中,宏定义使用的指令是 (B)
A.#include B .#define C.#if D .#else

2.基类中的 protected 成员,通过哪种派生,其在派生类中的可见性为 protected? (B)
A.public 和 private B .public 和 protected
C.protected 和 private D .仅 protected

3.基类中的 public 成员,通过 public 派生,基在派生类中的可见性为 (D)
A.不可访问 B .private C .protected D .public

4.不同对象调用同名函数,但导致完全不同行为的现象称为 (D)
A.抽象 B .封装 C .继承 D .多态性

5.头文件扩展名为 (B)
A.cpp B .h C .ub D .ob

6.声明函数为内联使用的关键字为 (B)
A.const B .inline C .short D .signed

7.设类 A中有静态数据成员 x,两个 A类对象 a 和 b,若 a.x10,则 b.x 的值为 (B)
A.9 B .10 C.1l D .不能确定

8.C ++允许在结构中定义函数,这些函数称为 (D)
A.静态函数 B .构造函数 C .析构函数 D .成员函数

9.下列哪种类型的函数适合声明为内联函数 ? (D)
A.函数体语句较多 B .函数体逻辑较复杂
C.函数执行时间较长 D .函数语句较少,执行速度要求高

10.析构函数的返回值类型为 (D)
A.void B .bool C .int D .无类型

11.函数重载必须满足的条件是 (A)
A.函数名相同 B .参数个数不同 C. 参数类型不同 D .函数名不相同

12.下列表达式,哪个是声明 P为指向常量的常量指针 ? (C)
A.const intP B .intconst P
C.const int* 术 const P D . int*P

13.C++中函数中的 return 指令可以 (B)
A.只能有一条 B .0 或多条 C. 至少有一条 D .只能主函数调用

14.类声明的内容用花括号括起来,在花括号后跟哪个符号表示类声明结束 (B)
A.: B .; C ., D…

  1. 使用 new Point(5 ,7) 创建对象,调用的是下列哪个构造函数 ? (B)
    A.Point ::Point() B .Point ::Point(int ,int)
    C.Point ::Creat() D .Point ::Creat(int ,int)

16.类中的 protected 成员在何处访问 ? (C)
A.只类自身成员函数中 B .只子类成员函数中
C.类和子类的成员函数中 D .通过对象类外访问

17.在类中使用 static 关键字修饰的成员函数称为 (C)
A.全局成员函数 B .公有成员函数 C .静态成员函数 D .非静态成员函数

18.用于标识十六进制常量的前缀或后缀是 (D)
A.无 B .后缀 L 或 l C. 前缀零 D .前缀 Ox

19.在定义结构时,为产生封装性,则需使用哪个关键字数据成员 ? (D)
A.public B .publish C .protected D .private

  1. 函数模板 templatevoid Func(T ,T)不能具有哪种实例化形式 ? (C)
    A.void Func(int .int) B .void Func(bool ,b001)
    C.void Func(double .int) D .void Func(char ,char)

11、1. 在编译指令中,宏定义使用的指令是 (B)
A.#include B .#define C.#if D .#else

2.基类中的 protected 成员,通过哪种派生,其在派生类中的可见性为 protected? (B)
A.public 和 private B .public 和 protected
C.protected 和 private D .仅 protected

3.基类中的 public 成员,通过 public 派生,基在派生类中的可见性为 (D)
A.不可访问 B .private C .protected D .public

4.不同对象调用同名函数,但导致完全不同行为的现象称为 (D)
A.抽象 B .封装 C .继承 D .多态性

5.头文件扩展名为 (B)
A.cpp B .h C .ub D .ob

6.声明函数为内联使用的关键字为 (B)
A.const B .inline C .short D .signed

7.设类 A中有静态数据成员 x,两个 A类对象 a 和 b,若 a.x10,则 b.x 的值为 (B)
A.9 B .10 C.1l D .不能确定

8.C ++允许在结构中定义函数,这些函数称为 (D)
A.静态函数 B .构造函数 C .析构函数 D .成员函数

9.下列哪种类型的函数适合声明为内联函数 ? (D)
A.函数体语句较多 B .函数体逻辑较复杂
C.函数执行时间较长 D .函数语句较少,执行速度要求高

10.析构函数的返回值类型为 (D)
A.void B .bool C .int D .无类型

11.函数重载必须满足的条件是 (A)
A.函数名相同 B .参数个数不同 C. 参数类型不同 D .函数名不相同

12.下列表达式,哪个是声明 P为指向常量的常量指针 ? (C)
A.const intP B .intconst P
C.const int* 术 const P D . int*P

13.C++中函数中的 return 指令可以 (B)
A.只能有一条 B .0 或多条 C. 至少有一条 D .只能主函数调用

14.类声明的内容用花括号括起来,在花括号后跟哪个符号表示类声明结束 (B)
A.: B .; C ., D…

  1. 使用 new Point(5 ,7) 创建对象,调用的是下列哪个构造函数 ? (B)
    A.Point ::Point() B .Point ::Point(int ,int)
    C.Point ::Creat() D .Point ::Creat(int ,int)

16.类中的 protected 成员在何处访问 ? (C)
A.只类自身成员函数中 B .只子类成员函数中
C.类和子类的成员函数中 D .通过对象类外访问

17.在类中使用 static 关键字修饰的成员函数称为 (C)
A.全局成员函数 B .公有成员函数 C .静态成员函数 D .非静态成员函数

18.用于标识十六进制常量的前缀或后缀是 (D)
A.无 B .后缀 L 或 l C. 前缀零 D .前缀 Ox

19.在定义结构时,为产生封装性,则需使用哪个关键字数据成员 ? (D)
A.public B .publish C .protected D .private

  1. 函数模板 templatevoid Func(T ,T)不能具有哪种实例化形式 ? (C)
    A.void Func(int .int) B .void Func(bool ,b001)
    C.void Func(double .int) D .void Func(char ,char)

12、1.下列关于类的权限描述错误的是 (C)

A.类本身的成员函数可以访问自身的任何成员
B.类的对象只能访问公有成员
C.普通函数可以不通过对象直接访问类的公有成员
D.一个类可以包含另一个类的对象作为成员

2.只能在自身类和子类成员函数中被访问,无法通过对象在类外访问的成员属于 (B)
A.private B.protected
C.public D.publish

3.面向对象中的“对象”是指 (C)
A.行为抽象 B.数据抽象
C.行为抽象和数据抽象的统一 D.行为抽象和数据抽象的对立

4.在类外定义成员函数时, ::运算符两侧分别连接 (D)
A.返回值类型 函数名 B.返回值类型 类名
C.函数名 类名 D.类名 函数名

5.设函数 int& index(int * a , int i) 返回数组 a 中下标为 i 的元素,如存在整型数组 int Array []={1, 2,3},在执行index(Array ,2)+ + 后, Array 中各元素值为 (C)
A.{0 ,1,2} B.{l ,1,2}
C.{1 ,2,4} D.{0 ,2,3}

6.类构造函数定义的位置是 (A)
A.类体内或体外 B.只是在类体内
C.只在类体外 D.在类的成员函数中

7.设存在数组 a,其长度为 Len,则下列哪项泛型算法用于在 a 中寻找值 Value 的位置 (C)
A.reverse(a ,a+Len,Value) ; B.sort(a ,a+Len,Value) ;
C.find(a ,a+Len,Value) ; D.copy(a ,a+Len,Value) ;

8.关于对象的性质,下列描述错误的是: (C)
A.同一类对象间可相互赋值 B.可以使用对象数组
C.对象不可以用作函数参数 D.一个对象可以用作另一个类的成员

9.声明一个没有初始化参数的对象,需调用 (D)
A.指定参数构造函数 B.拷贝构造函数
C.初始化函数 D.默认构造函数

10.下列运算符不能重载的是 (B)
A.! B.sizeof
C.new D.delete

11.如 P是一指针类型表达式,则下列表达式中不是左值表达式的是 (D)
A.P B.*P
C.&P D.P+1

12.使用下列流格式控制符能输出一个换行符的是 (D)
A.dec B.oct
C.hex D.endl

13.下列表达式,能将 P声明为常量指针的是 (A)
A.const int * P ; B.int*const P ;
C.const int * const P D.int * P

14.C++程序文件扩展名为 (A)
A..cpp B..h
C..lib D..obj

15.对 C++中主函数描述正确的是 (C)
A.名称为 main,可为多个 B.名称不限,可为多个
C.名称为 main,必须有且只能有一个 D.名称不限,必须有且只能有一个

16.假定有 char * P=“Hello” ;,要输出这个字符串的地址值的正确写法是 (C)
A.cout<< *P B.cout<<P
C.cout<<&P D.cout<<(void *)P

17.下列描述错误的是 (A)
A.在没创建对象前,静态成员不存在
B.静态成员是类的成员,不是对象成员
C.静态成员不能是虚函数
D.静态成员函数不能直接访问非静态成员

18.对于友元描述正确的是 (B)
A.友元是本类的成员函数 B.友元不是本类的成员函数
C.友元不是函数 D.以上皆不正确

19.一个函数功能不太复杂,但要求频繁使用,则该函数适合作为 (A)
A.内联函数 B.重载函数
C.递归函数 D.嵌套函数

20.下列默认参数的声明不正确的是 (C)
A.int max(int a ,int b ,int c ,int d=0) ;
B.int max(int a ,int b ,int c=0 , int d=0) ;
C.int max(int a=0 , int b ,int c=0 ,int d=0) ;
D.int max(int a ,int b=0 ,int c=0 ,int d=0) ;

13、1.C++中注释“∥”的有效范围是( A)

A.从“∥”开始到行尾 B.从“∥”开始到下一个“∥”
C.“∥”及其后一个字符 D.从“∥”开始到程序尾

  1. 假定 MyClass 为一个类,则该类的复制构造函数的声明语句为( C)
    A.MyClass&(MyClass x) ; B.MyClass(MyClass x) ;
    C.MyClass(MyClass&x) ; D.MyClass(MyClass *x) ;

  2. 下列选项不是 C++关键字的是(D )
    A.typedef B.void
    C.bool D.inc

  3. 用于标识十进制常量的前缀或后缀是(A )
    A.无前后缀 B.后缀 L 或 l
    C.前缀 0 D.前缀 0x

  4. 设 int x=56;int r=x ;若 cout<<&x ;显示 0012FF7A,则 cout<<&r ;输出值为(D )
    A.56 B.00l2FF7A
    C.0012FF7B D.未知

  5. 使用下列哪个流格式控制符可设置转换基数为八进制( B)
    A.dec B.oct
    C.hex D.endl

7.C++中是否允许在类结构中定义函数(B )
A.不允许 B.允许
C.仅允许定义构造函数 D.只不允许定义构造函数

  1. 设函数 void subone(int &) 将形参减 1,如有整型变量 int k=10 ,则执行 subone(k) ;后, k 的值为( A)
    A.9 B.10
    C.11 D.未知

  2. 对函数 int max(int a ,int b=0 ,int c=0 ,int d=0 , int e=0) ;下列调用方式正确的是( A)
    A.int m=max(10 , 11,12,13,14) ; B.int m=max(10 ,,12,13,14) ;
    C.int m=max(10 , 1l ,,13,14); D.int m=max(10 ,11,12,,14) ;

  3. 类 MyClass 的定义如下:
    class MyClass
    {
    public :
    MyClass(){}
    MyClass(int i){value=new int(i);}
    int * value ;
    } ;
    若要对 value 赋值,则下面语句正确的是( D)
    A.MyClass my ;my.value=10 ; B.MyClass my ;*my.value=10 ;
    C.MyClass my ;my.*value=10 ; D.MyClass my(10) ;

  4. 包含哪种语句的函数不能声明为内联函数( D)
    A.变量定义 B.if,else
    C.位操作 D.switch

  5. 声明函数模板的关键字是(B )
    A.inline B.template
    C.const D.short

  6. 对于类中的成员,使用 public 修饰,表明该成员的访问权限是(A )
    A.公有的 B.私有的
    C.保护的 D.不可见的

  7. 一个类中是否可以允许一个无参数构造函数和一个全部都是默认参数的构造函数共存(A )
    A.不允许 B.允许
    C.无法确定 D.视构造函数的函数,可确定

  8. 析构函数的参数个数为( A)
    A.0 个 B.1 个
    C.至少 1 个 D.多于 1 个

  9. 非静态成员函数都会有一个隐含指针,它是(B )
    A.self 指针 B.this 指针
    C.current 指针 D.one 指针

  10. 下列访问公有静态成员的方式,错误的是( D)
    A.类名::静态成员名 B.对象名 . 静态成员名
    C.对象指针 -> 静态成员名 D.对象指针 . 静态成员名

18.声明友元使用下列哪个关键字( C)
A.class B.const
C.friend D.virtual

19.派生类继承了基类的( A)
A.所有成员 B.部分成员
C.数据成员 D.成员函数

20.基类 private 成员,通过 public 派生,其在派生类中为( D)
A.private B.protected
C.public D.不可访问

14、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15、1.C++ 源程序文件扩展名为 ( A )
A…cpp B…h C…1ib D…obj

2.在 C++中使用流进行输入输出,其中专用于从键盘进行输入的流是 ( B )
A.cerr B.cin C.cout D.cfile

3.包含自定义头文件 file.h 的预处理指令是 ( D )
A.#define<file.h> B.#include file.h C.#define file.h D.#include"file.h"

4.用于标识十六进制前缀或后缀是 ( D )
A.无 B.后缀 L 或 e C.前缀零 D.前缀 0x

5.设存在整型变量 int x,则下列句与其它三项含义不同的是 ( A )
A.int* p=&x ; B.int& p=x ; C.int & p=x ; D.int &p=x ;

6.在定义类成员时,为产生封装性,则需使用哪个关键字 ( D )
A.public B.publish C.protected D.private

7.设函数 void swap(int&,int&) 将交换两形参的值,如两整型变量 int a=10;int b=15;
则执行 swap(a,b)后, a、b 值分别为 ( C )
A.10,10 B.10,15 C.15,10 D.15,15

8.函数默认参数在函数原型中说明,默认参数必须放在参数序列的 ( C )
A.前部 B.中部 C.后部 D.两端

9.设存在函数 int min(int ,int)返回两参数中较小值,若求 15,26,47 三者中最小值,下列表达式中
错误的是 ( B )
A.int m=min(min(15 ,26),min(15,47));
B.int m=min(15 ,26,47);
C.int m=min(15 ,min(47,26));
D.int m =min(min(47 ,26),16);

10.下列函数不能和函数 void print(char) 构成重载的是 ( C )
A.int print(int) ; B.void print(char,char);
C.int print(char) ; D.void print(int ,int);

11.在下列成对的表达式中,运算结果类型相同的一对是 ( D )
A.7/2 和 7.0/2.0 B.7/2.0 和 7/2
C.7.0/2和 7/2 D.7.0/2.0 和 7.0/2

l2.内联函数的特点是 ( A )
A.减少代码量,加快访问速度 B.减少代码量,减缓访问速度
C.增加代码量,减缓访问速度 D.增加代码量,加快访问速度

13.类的私有成员可在何处被访问 ( A )
A.本类的成员函数中 B.本类及子类的成员函数中
C.通过对象名在任何位置 D. 不可访问

14.类的构造函数在以下什么情况下会被自动调用 ( B )
A.定义成员函数时 B.定义对象时
C.定义数据成员时 D.定义友元函数时

15.下列关于析构函数描述正确的是 ( D )
A.可以重载 B.函数体中必须有 delete语句
C.返回类型必须是 void类型 D.不能指定返回类型

16.设有函数 T Sum(T x ,T y){return x+y ;},其中 T 为模板类型,则下列语句中对该函数错误的使用是 ( D )
A.Sum(1,2); B.Sum(3.0,2.2); C.Sum(,A?,,C?); D.Sum(“A” ,“C”) ;

17.下列哪个编译指令属于条件编译指令 ( C )
A.#include B.#define C.#else D.#pragma

18.关于类的静态成员函数描述错误的是 ( A )
A.在创建对象前不存在 B.不能说明为虚函数
C.不能直接访问非静态函数 D.不是对象的成员

l9.如果类 A 被声明成类 B 的友元,则 ( D )
A.类 A 的成员即类 B 的成员
B.类 B 的成员即类 A 的成员
C.类 A 的成员函数不得访问类 B 的成员
D.类 B 不一定是类 A 的友元

20.派生类的对象可以访问以下那种情况继承的基类成员 ( D )
A.私有继承的私有成员 B.公有继承的私有成员
C.私有继承的保护成员 D.公有继承的公有成员

16、1.对 C++语言和 C语言的兼容性,描述正确的是( A )
A.C++兼容 C B . C++部分兼容 C D .C兼容 C++

2.在 C++中使用流进行输入输出,其中用于屏幕输出的对象是( C )
A.cerr B.cin C.coutD.cfile
(cerr: 标准错误输出(非缓冲方式) ; cin: 标准输入 ;
clog 标准错误输出(缓冲方式) )

3.对使用关键字 new所开辟的动态存储空间,释放时必须使用( C )
A.free B .create C.delete D .realse
4.如没有使用 private 关键字定义类的数据成员,则默认为 ( A )
A.private B.public C. protected D.friend

5.使用值传递方式将实参传给形参,下列说法正确的是( A )
A.形参是实参的备份 B.实参是形参的备份 C.形参和实参是同一对象 D.形参和实参无联系

6.在函数调用时,如某一默认参数要指明一个特定值,则有( A )
A.其之前所有参数都必须赋值 B.其之后所有参数都必须赋值 C.其前、后所有参数都必须赋值 D.其前、
后所有参数都不必赋值

7.设存在函数 int max(int ,int) 返回两参数中较大值,若求 22,59,70 三者中最大值,下列表达式不
正确的是( C )
A.int m = max(22,max(59,70)) ; B.int m = max(max(22, 59) ,70) ;C.int m = max(22,59,70) ;
D.int m = max(59 , max(22,70)) ;

8.下列哪个类型函数不适合声明为内联函数( A )
A.函数体语句较多 B.函数体语句较少 C.函数执行时间较短 D.函数执行时间过长

9.int Func(int ,int) ;不可与下列哪个函数构成重载( B )
A.int Func(int ,int ,int) ; B.double Func(int ,int) ;
C.double Func(double ,double) ; D.double Func(int ,double) ;
说明:不能以形参名来区分函数;不能以
函数返回值来区分函数。必须是形参的个
数或者类型不同才能构成函数重载。

10.对类中声明的变量,下列描述中正确的是( C )
A.属于全局变量 B.只属于该类 C.属于该类,某些情况下也可被该类不同实例所共享
D.任何情况下都可被该类所有实例共享

11.类的私有成员可在何处访问 ( D )
A.通过子类的对象访问 B.本类及子类的成员函数中 C.通过该类对象访问 D.本类的成员函数中

12.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是( A )
A.编译器总是自动创建一个不带参数的构造函数
B.这个类没有构造函数 C.这个类不需要构造函数 D.该类不能通过编译

13.一个类可包含析构函数的个数是( B )
A.0 个 B .1 个 C.至少一个 D.0 个或多个

14.this 指针存在的目的是( B )
A.保证基类公有成员在子类中可以被访问
B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码
C.保证基类保护成员在子类中可以被访问 D.保证基类私有成员在子类中可以被访问

15.下列关于类的权限的描述错误的是( A )
A.类本身的成员函数只能访问自身的私有成员 B.类的对象只能访问该类的公有成员
C.普通函数不能直接访问类的公有成员,必须通过对象访问 D.一个类可以将另一个类的对象作为成员

16.在编译指令中,宏定义使用哪个指令( B )
A.#include B .#define C .#if D . #else

17.设类 A将其它类对象作为成员,则建立 A类对象时,下列描述正确的是( B )
A.A类构造函数先执行 B.成员构造函数先执行 C.两者并行执行 D.不能确定类的组合, 描述的是一个类内嵌其他类的对象作为成员的情况, 它们之间的关系是一种包含与被包含的关系。
在声明一个组合类的对象时,不仅它自身的构造函数将被调用,而且还将调用其内嵌对象的构造函数。这时构造函数的调用顺序是:
(1) 按照内嵌对象在组合类的声明中出现的次序,依次调用内嵌对象的构造函数;
(2) 执行本类构造函数的函数体
析构函数的调用执行顺序与构造函数刚好相反。

18.下列描述错误的是( A )
A.在创建对象前 , 静态成员不存在 B.静态成员是类的成员
C.静态成员不能是虚函数 D.静态成员函数不能直接访问非静态成员
说明:静态成员函数可以直接访问该类的静态数据和函数成员,而访问非静态成员,必须通过参数传递方式得到对象名,然后通过对象名来访问。

19.对于友元描述正确的是( B )
A.友元是本类的成员函数 B.友元不是本类的成员函数 C.友元不是函数 D.友元不能访问本类私有成员

20.在哪种派生方式中,派生类可以访问基类中的 protected 成员( B )
A.public 和 private B .public 和 protectedC .protected 和 privateD .仅 protected

17、
在这里插入图片描述
在这里插入图片描述
18、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

19、1.对 C++中主函数描述正确的是( C)
A.名称为 main,可为多个 B.名称不限,可为多个
C.名称为 main,必须有且只能有一个 D.名称不限,必须有且只能有一个

2.调用声明为 int result (int a,int b)的函数时,正确的方法是( A)
A.result (1,2) B.result(1)
C.result(0.1,0.3) D.result(1,2,3)

3.用于包含 C++标准库 iostream 的预处理指令是( B)
A.#define B.#include
C.#define ‘ iostream ’ D.#include ‘ iostream ’

4.无类型标识符是指( A)
A.void B.bool
C.short D.long

5.从本质上看,引用是被引用变量的( B)
A.拷贝 B.别名
C.复制 D.克隆

6.下面关于数组的初始化正确的是( A)
A.char str[ ]={‘a’,‘b’,‘c’};
B.char str[2]={‘a’ ,‘b’,‘c’} ;
C.char str[1][2]={{‘a’ ,‘b’} ,{‘e’,‘d’}} ;
D.char str[ ][ ]={‘a’ ,‘b’,‘c’} ;

7.C++ 类中定义的成员默认访问属性为(B )
A.public B.private
C.protected D.friend

8.决定 C++语言中函数的返回值类型的是(D )
A.return 语句中的表达式类型
B.调用该函数时系统随机产生的类型
C.调用该函数时的主调用函数类型
D.在定义该函数时所指定的数据类型

9.函数 int & min (int & ,int & )返回参数中较小者,设有两整型变量 int a=10;int b=15 ;
在执行语句 min(a,b)–;之后, a,b 值分别为( B)
A.9 ,14 B.9,15
C.10, 14 D.10,15

10.声明函数为内联函数时所使用的关键字为( B)
A.const B.inline

C.short D.signed

11.函数 int sum(int a=l ,int b=1,int c=3 )可与下列哪个函数同时声明( C)
A.double sum (int); B.char sum(int,int);
C.int sum (double); D.int sum (int,int ,int);

12.函数模板 template void Func (T,T)可具有下列哪种实例化形式(B )
A.void Func (float,int) B.void Func (char,char)
C.void Func (int,double) D.void Func (bool,float)

13.下列访问成员的方式哪个是正确的(A )
A.对象名 .对象成员名 B.对象指针名 .对象成员名
C.对象名 →对象成员名 D.类名 →对象成员名

14.对类 A,复制构造函数的原型是( A)
A.A ::A(const A& ); B.A ::A(const A *);
C.A::A(const A); D.A ::A( );

15.对 class point,如使用 point * ptr=new point[2] ;创建对象数组,则删除此数组使用的语句是( B)
A.delete ptr[2] ; B.delete[ ] ptr ;
C.delete ptr[ ] ; D.delete[2] ptr;

16.下列哪个编译指令不属于条件编译指令( D)
A.#if B.#else
C.#endif D.#error

17.类 A 中存在静态数据成员 x,设 a 和 b 是类 A 的两个对象,在执行 a.x=10 之后, b.x的值为( B)
A.未初始化 B.等于 a.x
C.等于 0 D.随机

18.使用 string.h 库操纵字符串时,将两个字符串连接成一个字符串的函数是(C )
A.strlen () B.strcap()
C.strcat() D.strcmp()

19.基类中的 public 成员,通过 public 派生,其在派生类中的访问权限为(D )
A.不可访问 B.private
C.protected D.public

20.不同对象调用同名函数,但导致完全不同行为的现象称为(D )
A.抽象 B.封装
C.继承 D.多态性

20、1. 假定一个类的构造函数为 A ( int aa, int bb) { a = aa; b = bb; } ,则执行 A x(4,5);语法后, x.a和 x.b 的值分别为(C )
A.4 和 5 B.5 和 4 C.4和 20 D.20 和 5

  1. 假定 AB 为一个类,则执行 AB x;语句时将自动调用该类的(B )
    A.有参构造函数 B.无参构造函数 C.拷贝构造函数 D.赋值重载函数

  2. C++语言建立类族是通过(B )
    A.类的嵌套 B.类的继承 C.虚函数 D.抽象类

  3. 执行语句序列 ofstream outf(“SALARY.DAT”);if ( ⋯) cout<<“成功!”; else cout<<"失败! ";
    后,如果文件打开成功,显示 “成功!”,否则显示 “失败!”。由此可知,上面 if 语句的⋯⋯处的表达式是( C)
    A.!outf 或者 outf.fail() B.!outf 或者 outf.good()
    C.outf 或者 outf.good() D.outf 或者 ouf.fail(C)

  4. 静态成员函数不能说明为(C )
    A.整型函数 B.浮点函数 C.虚函数 D.字符型函数

  5. 在 C++中,数据封装要解决的问题是(D )
    A.数据规范化排列 B.数据高速转换
    C.避免数据丢失 D.切断了不同模块之间的数据的非法使用

  6. 在 C++中有下列 4 条语句:
    int hot = 100;
    int &rsd = hot;
    hot = hot + 100;
    cout<<rsd<<endl;
    执行这 4 条语句后输出为( C)
    A.0 B.100 C.200 D.300

  7. 如果 class类中的所有成员在定义时都没有使用关键字 public、private 或 protected,则所有成员缺省定义为(C )
    A.public B.protected C.private D.static

  8. 设置虚基类的目的是(A )
    A.消除两义性 B.简化程序 C.提高运行效率 D.减少目标代码

  9. 实现运行时的多态性用( D)
    A.重载函数 B.构造函数 C.析构函数 D.虚函数

21、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
22、
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
23、
1.在 C++语言中用于注释的标识符是
A.& B.// C.* D./
2.编写 C++程序一般需经过的几个步骤依次是
A.编辑、调试、编译、连接 B.编译、调试、编辑、连接
C.编译、编辑、连接、运行 D.编辑、编译、连接、运行
3.要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用
A.内联函数 B.重载函数 C.内部函数 D.函数模板
4.设 x=8,执行语句 Y=x++,则 y 等于
A.6 B. 7 C.9 D.8
5.下列运算符中,优先级最高的是
A. * B.一 > C.&& D.>=
6.关于 new 运算符的下列描述中,错误的是
A.它可以用来动态创建对象和对象数组
B.使用它创建的对象和对象数组可以使用运算符 delete 删除
C.使用它创建对象时要调用构造函数
D.使用它创建对象数组时必须指定初始值
7.存储下列数据,占用存储字节最多的是
A. 0 B.‘0’ C.〝 0〞 D.0.0
8.关于类和对象不正确的说法是
A.类是一种类型,它封装了数据和操作 B.对象是类的实例
C.一个类的对象只有一个 D.一个对象必属于某个类
9.下列有关构造函数的描述中,正确的是
A.构造函数可以带有返回值 B.构造函数的名字与类名完全相同
C.构造函数必须带有参数 D.构造函数必须定义,不能缺省
10.假定 a 为一个整型数组名,则元素 a[4]的字节地址为
A. a+4 B.a+8 C. a+16 D. a+32
11.类中能访问静态成员的函数是
C++程序设计试卷第 2页共 12页
A.虚函数 B.静态成员函数 C. 构造函数 D.析构函数
12.下列说明语句中正确的是
A.int a,&ra=a,&&ref=ra B. int&refa[10]
C.int a,&ra=a,& refp=&ra D.intpi ,*&pref=pi
13.关于对象概念的描述中,说法错误的是
A.对象就是 C 语言中的结构体
B.对象代表着正在创建的系统中的一个实体
C.对象是类的一个变量
D.对象之间的信息传递是通过消息进行的
14.有关多态性说法不正确的是
A.C++语言的多态性分为编译时的多态性和运行时的多态性
B.编译时的多态性可通过函数重载实现
C.运行时的多态性可通过模板和虚函数实现
D.实现运行时多态性的机制称为动态多态性
15.关于友元函数的描述中,错误的是
A.友元函数不是成员函数
B.友元函数只能访问类中私有成员
C.友元函数破坏隐藏性,尽量少用
D.友元函数说明在类体内,使用关键字 friend
16.类中定义的成员默认访问属性为
A.public B. private C.protected D.friend
17.拷贝构造函数的参数是
A.某个对象名 B.某个对象的成员名
C.某个对象的引用名 D.某个对象的指针名
18.关于类模板的说法正确的是
A.类模板的主要作用是生成抽象类
B.类模板实例化时,编译器将根据给出的模板实参生成一个类
C.在类模板中的数据成员具有同样类型
D.类模板中的成员函数没有返回值
19.下列有关重载函数的说法中正确的是
A.重载函数必须具有不同的返回值类型 B.重载函数参数个数必须相同
C.重载函数必须有不同的形参列表 D.重载函数名可以不同
20.当一个类的某个函数被说明为 virtual 时,在该类的所有派生类中的同原型函数
A.都是虚函数
B.只有被重新说明时才是虚函数
C.都不是虚函数
D.只有被重新说明为 virtual 时才是虚函数
在这里插入图片描述

24、
1 .C++语言是从早期的 C语言逐渐发展演变而来的,与 C语言相比, C++在求解问题方
法上进行的最大改进是
A .面向过程 B .面向对象 C. 安全性 D .复用性
2 .结构化程序设计所规定的三种基本控制结构是
A. 输入、处理、输出 B .树形、网形、环形
C .顺序、选择、循环 D. 主程序、子程序、函数

3 .关于函数模板,描述错误的是 ( )
A .函数模板必须由程序员实例化为可执行的函数模板
B. 函数模板的实例化由编译器实现
C .一个类定义中,只要有一个函数模板,则这个类是类模板
D .类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化

4 .作用域运算符“: :”的功能是 ( )
A .标识作用域的级别的 B .指出作用域的范围的
C .给定作用域的大小的 D .标识成员是属于哪个类的

5 .采用重载函数的目的是 ( )
A .实现共享 B .减少空间
C .提高速度 D .使用方便,提高可读性

6 .以下关键字不能用来声明类的访问权限的是 ( )
A .public B .private C .stadc D .protected

  1. 有如下类声明“ class A{int x ;,} ;”,则 A 类的成员 x 是
    A. 公有数据成员 B .私有数据成员
    C.公有成员函数 D .私有成员函数

  2. 下列不是构造函数的特征的是 ( )
    A .构造函数的函数名与类名相同 B .构造函数可以重载
    C .构造函数可以设置缺省参数 D .构造函数不能重载

9 .通常的拷贝构造函数的参数是 ( )
A. 某个对象名 B .某个对象成员名
C .某个对象的引用 D .某个对象的指针名

10.下列哪个类型函数不适合声明为内联函数 ? ( )
A. 函数体语句较多 B .函数体语句较少
C .函数执行时间较短 D .函数执行时间过长

11.设 x 和 y 均为 bool 量,则 x&& y 为真的条件是 ( )
A .它们均为真 B .其中一个为真
C .它们均为假 D .其中一个为假

12.对于友元描述正确的是 ( )
A .友元是本类的成员函数 B .友元不是本类的成员函数
C .友元不是函数 D .友元不能访问本类私有成员

13.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的 ( )
A .public 成员 B .private 成员
C.protected 成员 D .友元

14.在 C++语言中, 080 是 ( )
A .八进制数 B .十进制数
C.十六进制数 D .非法数

15.下面函数原型声明中,声明了 fun 为虚函数的是 ( )
A. void fun()=0 B . virtual void fun()=O
C .virtual void fun() D . virtual void fun(){}

16.下列虚基类的声明中,正确的是 ( )
A .class virtual B :public A B .class B :virtual public A
C .class B :public A virtual D .virtual class B :public A

17.下列运算符中,在 C++语言中不能重载的是 ( )
A. * B .>= C .:: D ./

18.在 C++语言中,能代表逻辑值“假”的是 ( )
A .小于 0 的数 B .大于 0 的数 C .非 0 整数 D .0

19.以下叙述中不正确的是 ( )
A .在一个函数中,可以有多条 return 语句
B .函数的定义不能嵌套,但函数的调用可以嵌套
C .函数必须有返回值
D .不同的函数中可以使用相同名字的变量

20.已知: int m=10 ;在下列表示引用的方法中,下列哪一项是正确的 ? ( )
A .hat &x=m B .int&y=10 C.int &z D .float &t= &m
在这里插入图片描述

25、1.如声明对象数组,则下列描述正确的是 ( A)
A.对每个元素均调用一次构造函数
B.部分元素调用构造函数,其它元素不需调用
C.均不需要调用构造函数
D.只是首元素调用构造函数

2.不同对象调用同一成员函数时, this 指针指向 ( A)
A.不同对象 B.相同对象
C.无对象 D.不确定

3.设存在函数 intmax(int ,int) 返回两参数中较大值,若求 22,59,70 三者中最大值,下列表达式正确的是 ( D )
A.int m=max(22 ,max(59,70));
B.int m=max(max(22 ,59),max(59,70));
C.int m=max(max(22 ,70),59);
D.以上皆正确

4.一个类可拥有多少个构造函数 ( C)
A.0 个 B.1 个
C.1 或多个 D.以上皆对

5.在编译指令中,嵌入指令是指 ( A)
A.#include B.#define
C.#if D.#else

6.设存在数组 a,其长度为 Len,下列哪项操作是将 a 中元素复制到数组 b 中( D)
A.reverse(a+a,Len,b); B.sort(a,a+Len, b);
C.find(a ,a+Len,b); D.copy(a,a+Len,b);

7.下列哪个要素不是面向对象的关键要素 ( A)
A.模块化 B.抽象性
C.封装性 D.继承性

8.下列对于类的描述错误的是 ( C)
A.类要先声明后使用
B.类是具有唯一标识的实体
C.两个类可以使用同一个名称
D.组成类的不仅有数据,还可以有对数据进行操作的函数

9.使用引用调用方式将实参传给形参,下列说法正确的是 (A )
A.形参是实参的备份 B.实参是形参的备份
C.形参和实参共享同一对象 D.形参和实参无联系

10.关于对象的性质,下列描述错误的是 ( B)
A.同一类对象之间可相互赋值
B.不能使用对象数组
C.对象可以用作函数参数
D.一个对象可以用作另一个类的成员

11.类的私有成员可在哪里被赋值 ( B)
A.类体中 B.该类的成员函数中
C.A 和 B D.以上都不是

1 2.设存在数组 a,其长度为 Len,则下列哪个泛型算法用于反转 a 中各元素 ( A)
A.reverse(a,a+Len); B.sort(a,a+Len);
C.find(a ,a+Len,value); D.copy(a,a+Len,b);

13.用于标识八进制常量的前缀或后缀是 ( C)
A.无 B.后缀 L 或 1
C.前缀零 D.前缀 O x

14.派生类中继承的基类成员初始化如何进行 ( A)
A.由派生类构造函数调用基类的构造函数进行
B.由派生类构造函数进行
C.由基类构造函数进行,无需派生类构造函数调用
D.以上皆不正确

1 5.对于多重继承,下列描述正确的是 ( B)
A.所有基类使用相同的派生方式 B.每个基类可使用不同派生方式
C.只能是 public 派生 D.只能是 protected 派生

16.下列关于类的权限描述错误的是 ( B)
A.类本身的成员函数可以访问自身的任何成员
B.类的对象可以访问该类的所有成员
C.普通函数不能直接访问类的公有成员,必须通过成员函数对其访问
D.一个类可以将另一个类的对象作为成员

17.运算符 delete 与哪个函数一起运行 (B )
A.构造函数 B.析构函数
C.主函数 D.不与任何函数一起工作

18.一个类可以获得另一个类的特性的机制称为 ( C)
A.抽象 B.封装
C.继承 D.多态性

19.使用下列哪个格式控制符可设置转换十六进制为十进制 ( A)
A.dec B.oct
C.hex D.endl

20.对引用调用描述正确的是 ( D)
A.分配新存储空间
B.修改已存储空间的名称为引用名
C.引用名与已存在存储空间无任何关联
D.将引用名标识符与一块已存在储区域相关联,没有分配新存储空间

26、D
在这里插入图片描述
2.设 X和 y 均为 bool 量,则 x&& y 曲为真的条件是 ( A)
A. 它们均为真 B .其中一个为真 C. 它们均为假 D .其中一个为假

3.拷贝构造函数应该是 ( B)
A .不带参数的构造函数 B .带有一个参数的构造函数
C .带有两个参数的构造函数 D .缺省构造函数

4.以下说法中正确的是 ( B)
A .C++程序总是从第一个定义的函数开始执行
B .C++程序总是从 main 函数开始执行
C. C++ 中函数必须有返回值
D .C++中函数名必须唯一

5.下列虚基类的声明中,正确的是 ( B)
A .class virtual B :public A B . class B :virtual public A
C .class B :public A virtual D . virtual class B :public A

6.下列哪个类型函数不适合声明为内联函数 ( A)
A .函数体语句较多 B .函数体语句较少
C .函数执行时间较短 D .函数被频繁调用

  1. 以下类模板定义正确的为 ( A)
    A .template B .template<class T .class int i>
    C .template<class T , typename T> D .template<class Tl ,T2>

8.C++中要实现动态联编,调用虚函数时必须使用 ( A)
A .基类指针 B .类名 C .派生类指针 D .对象名

9.下列对静态成员的描述中,不正确的是 · ( C)
A .静态成员不属于对象,是类的共享成员
B .静态数据成员要在类外定义和初始化
C .调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有 this 指针
D .非静态成员函数也可以操作静态数据成员

10.下列对派生类的描述中,错误的是 ( D)
A .一个派生类可以作为另一个派生类的基类
B .派生类至少有一个基类
C .派生类的成员除了它自己的成员外,还包含了它的基类的成员
D .派生类中继承的基类成员的访问权限到派生类保持不变

11.下列函数原型声明语句中,错误的是 ( C)
A .int f(void) ; B . void f(hat) ; C .int f(a) ; D .void f(double a) ;

12.如果有洒 t 型变量 a,则定义指向变量 a 的指针 P正确的写法是 ( B)
A .int P=&a B .int * P= &a C .int &p=a D .intP = a

13.假定指针变量 P定义为“ int 冰 P=flew int(100) ;”,要释放 P所指向盼动态内存,
应使用语句 ( D)
A .delete p ; B .delete* p ; C .delete &p; D.delete[]p ;

14.假定 A为一个类,则执行“ A a[3] , b(3) ;”语句时调用该类构造函数的次数为 ( B)
A .3 B.4 C .5 D .9

15.C++中定义标准输入输出的痒为 ( A)
A .stdio B .math C 。iostream ;D.stdlib

  1. 允许用户为类定义一种模式,使碍类中的某些数据成员及某些成员函数的返函值能
    取任意类型,这是 l 个 (B )
    A .类模板 B .模板类 C .函数模板 D .模板函数

17.下列关于运算符重载的叙述中,正确的是 ( B)
A .通过运算符重载,可以定义新的运算符
B. 有的运算符只能作为成员函数重载
C .若重载运算符 +,则相应的运算符函数名是 +
D .重载一个二元运算符时,必须声明两个形参

18.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式
为 ( )C
A .ios :: out|ios ::binary B .ios ::in| ios ::binary
C .ios :: out D .ios ::in

19.有关函数模板和模板函数说法错误的是 ( D)
A .函数模板只是对函数的描述,编译器不为其产生任何执行代码,所以它不是一个
实实在在的函数
B. 模板函数是实实在在的函数,它由编译系统在遇到具体函数调用时所生成,并调
用执行
C .函数模板需要实例化为模板函数后才能执行
D .当函数模板和一般函数同名时,系统先去匹配函数模板,将其实例化后进行调用

20.对类的构造函数和析构函数描述正确的是 ” (A )
A .构造函数可以重载,析构函数不能重载
B .构造函数不能重载,析构函数可以重载
C .构造函数可以重载,析构函数也可以重载
D .构造函数不能重载,析构函数也不能重载

27、

28、

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页