C/C++测试题
面向对象
选择题:
C++概述
1、以下C++新增的关键字为         
A  break
B  continue
C  stuct
D  inline
//答案:D
2、面向对象程序设计将数据与______放在一起,作为相互依存、不可分割的整体来处理。
A对数据的操作        B信息      C数据隐藏            D数据抽象
//答案:A
3、面向对象程序设计优于传统的结构化程序设计,其优越性主要表现在,它有希望解决软件工程的两个主要问题:软件复杂性和______。
A 软件生产率的提高  B 精化已有的代码  C 共享代码        D 编写可重用代码
//答案:A 
4、面向对象系统的______是一种信息隐藏技术,目的在与将对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需用设计者提供的协议命令对象去做即可。
A多态性                B封装性      C继承性                D复用性
//答案:B 
5、______不是面向对象系统所包含的要素
A重载                B对象        C类                D继承
//答案:A
6、关于C++与C语言的关系的描述中,______是错误的。
A  C语言是C++的一个子集          B  C++与C语言是兼容的
C  C++对C语言进行了一些改进      D  C++与C语言都是面向对象的
//答案:D 
7、下面关于对象概念的表述中,______是错误的。
A 对象就是C语言中的结构变量
B 对象代表着正在创建的系统中的一个实体
C 对象是一个状态和操作(或方法)的封装体
D 对象之间的信息传递是通过信息进行的
//答案:A 
8、下面关于类概念的表述中,______是错误的。
A  类是抽象数据类型的实现        B  类是具有共同行为的若干对象的统一描述体
C  类是创建对象的样板            D  类就是C语言中的结构类型
//答案:D 
9、下列关于C++类的描述中错误的是______。
A  类与类之间可以通过一些手段进行通信和联络
B  类用于描述事物的属性和对事物的操作
C  类与类之间必须是平等关系,而不能组成层次关系
D  类与类之间可以通过封装而具有明确的独立性
//答案:C 
10、下列关键字中,_______既在C语言中使用,又在C++语言中使用
A  inline  B  break  C  private  D  public
//答案:B 
11、C++对C语言做了很多改进。下列描述中______使得C语言发生了质变,即从面向过程变成了面向对象
A增加了一些新的运算符      B允许函数重载,并允许设置默认参数
C规定函数说明必须用原型    D引进了类和对象的概念
//答案:D 
12、下列C++标点符号中表示行注释开始的是______。
A  #    B  ;  C  //    D  }
//答案:C 
13、下列关于C++与C语言关系的描述中错误的是______。
A  C++是C语言的超集                        B  C++对C语言进行了扩充
C  C++|与C语言都是面向对象的程序设计语言    D  C++包含C语言的全部语法
//答案:C 
14、下列正确的选项是______________。
A  继承是创建一个具有另一个类的属性和行为的新类的能力
B  C语言支持面向对象的程序设计
C  空白符是一种可以被编译的符号
D  标识符不宜太长,一般设定为16个字符
//答案:A 
15、下列关于多态说法错误的是_________。
A  不同的对象调用相同名称的函数,并可导致完全不同的行为的现象称为多态性
B  C++语言中多态性通过使用封装技术来支持
C  多态是面向对象程序设计的一个重要机制
D  多态是人类思维方式的一种模拟
//答案:B 

类和对象
16、以下类的说明,请指出错误的地方________。
Class CSample
{
    int a = 2;            (A)
    CSample();          (B)
    Public:
    CSample(int val);    (C)
    ~CSample();        (D)
}
//答案:A 
17、有关类的说法不正确的是________。
A  类是一种用户自定义的数据类型
B  只有类中的成员函数才能存取类中的私有数据
C  在类中,如果不做特别说明,所有的数据类型均为私有类型
D  在类中,如果不做特别说明,所有的成员函数均为公有类型
//答案:D 
18、有关类和对象的说法下列不正确的有________。
A 对象是类的一个实例          B 任何一个对象只能属于一个具体的类
C 一个类只能有一个对象        D 类与对象的关系和数据类型和变量的关系
//答案:C 
19、关于类和对象,以下叙述正确的是______
A  一个类的成员函数可以任意调用
B  通常,只有通过具体的对象,才能访问类的成员函数
C  对象是模板,类是实例
D  类和对象间没有任何关系
//答案:B 
20、有关构造函数的说法不正确的是________。
A 构造函数名字和类的名字一样          B 构造函数在说明类变量时自动执行
C 构造函数无任何函数类型              D 构造函数有且只有一个
//答案:D 
21、有关析构函数的说法不正确的是________。
A 析构函数有且只有一个
B 析构函数无任何函数类型
C 析构函数和构造函数一样可以有形参
D 析构函数的作用是在对象被撤销时收回先前分配的内存空间
//答案:C 
22、在类的定义体外定义成员函数时,需要在函数名前加上________。
A 类标记      B 类域标记    C 类对象      D 域运算符
//答案:B 
23、在类的定义形式中,数据成员、成员函数和_______组成了类定义体。
A 成员的访问控制消息    B 公有消息    C 私有消息    D 保护消息
//答案:A 
24、________的功能使对对象进行初始化。
A 析构函数    B 数据成员    C 构造函数    D 静态成员函数
//答案:C 
25、若Q是类,a是它的一个对象,p1是类对象a的一个指针,那么类对象a可以通过①_______来访问类的成员,类对象a的指针p1可以通过②_______来访问类的成员。
A  ::        B    .    C    ;    D  ->
//答案:①B  ②D   
26、下列的各类函数中,_________不是类的成员函数
A  构造函数B 析构函数  C 友元函数  D  拷贝初始化构造函数
//答案:C 
27、通常拷贝初始化构造函数的参数是__________。
A 某个对象名    B 某个对象的成员名  C 某个对象的引用名    D 某个对象的指针名
//答案:C 
28、类模板的使用实际上是将类模板实例化成一个具体的_______。
A 类    B  对象    C  函数    D  模板类
//答案:A 
29、模板是实现类属机制的一种工具,其功能非常强大,它既允许用户构造类属函数,既① _______;也允许用户构造类属类,即② ________。
A 函数模板  B模板函数  C  类模板  D  模板类
//答案: ①B        ②D 
30、关于对象的this指针,以下叙述正确的是______
A 必须显式地在类定义中声明this数据成员,才能使用this指针
B 一旦生成一个对象,该对象的this指针就指向该对象本身
C 一个类的所有对象的this指针的值都是相同的
D 不能通过对象的this指针访问对象的数据成员和成员函数
//答案:B 
31、关于new运算符的下列描述中,          是错误的。
A 它可以用来动态创建对象和对象数组
B 使用它创建的对象或对象数组,可以使用运算符delete删除
C 使用它创建对象时要调用构造函数
D 使用它创建对象数组时必须指定初始值
//答案:D 
32、关于delete运算符的下列描述中,        是错误的。
A 它必须用于new返回的指针
指向类成员函数的指针B 它也适用于空指针
C 对一个指针可以使用多次该运算符
D 指针名前只用一对方括号,不管所删除数组的维数
//答案:C 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。