(1)C++语言对C语言做了很多改进

更新时间:2023-10-11 20:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、选择题

(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)类的内联函数必须在类体外通过加关键字inline定义 (6)下面对静态数据成员的描述中,正确的是 A)静态数据成员可以在类体内进行初始化 B)静态数据成员不可以被类的对象调用

C)静态数据成员不能受private控制符的作用 D)静态数据成员可以直接用类名调用 (7)下面对于友元函数描述正确的是 A)友元函数的实现必须在类的内部定义 B)友元函数是类的成员函数

C)友元函数破坏了类的封装性和隐藏性 D)友元函数不能访问类的私有成员

(8)在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是 A)派生类的对象可以赋给基类的对象 B)派生类的对象可以初始化基类的引用

C)派生类的对象可以直接访问基类中的成员

D)派生类的对象的地址可以赋给指向基类的指针 (9)下面程序的运行结果为 #include class A {

public: A(){cout<<\ ~A(){cout<<\};

class B:public A {

public:

B(){cout<<\ ~B(){cout<<\};

void main() { B b;} A)1234 B)1324 C)1342 D)3142 (10)下列关于虚基类的描述,错误的是 A)设置虚基类的目的是为了消除二义性 B)虚基类的构造函数在非虚基类之后调用

C)若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用

D)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数 (11)下列关于多态性的描述,错误的是

A)C++语言中的多态性分为编译时的多态性和运行时的多态性 B)编译时的多态性可通过函数重载实现

C)运行时的多态性可通过模板和虚函数实现 D)实现运行时多态性的机制称为动态绑定

(12)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 A)ios::in B)ios::out

C)ios::in | ios::out D)以上都不对

(13)下列程序的运行结果是 #include class A {

int a; public:

A(){a=0;} A(int aa) { a=aa; cout<

void main() {

A x,y (2),z (3); cout<

A)00 B)23 C)34 D)25

(14)对虚函数的调用( )

A)一定使用动态联编 B)必须使用动态联编 C)一定使用静态联编 D)不一定使用动态联编

(15)下面程序错误的语句是 ① #include ② void main() ③ {

④ int *p=new int[1]; ⑤ p=9;

⑥ cout <<*p<

(16)在C++语言中,数据封装要解决的问题是 A)数据的规范化 B)便于数据转换 C)避免数据丢失

D)防止不同模块之间数据的非法访问

(17)对类的构造函数和析构函数描述正确的是 A)构造函数可以重载,析构函数不能重载 B)构造函数不能重载,析构函数可以重载 C)构造函数可以重载,析构函数也可以重载 D)构造函数不能重载,析构函数也不能重载 (18)下面程序的运行结果为 #include class A {

int num; public:

A(int i){num=i;}

A(A &a){num=a.num++;} void print(){cout<

void main() {

A a (1),b(a); a.print(); b.print(); }

A)11 B)12 C)21 D)22

(19)下面对静态数据成员的描述中,正确的是 A)静态数据成员是类的所有对象共享的数据 B)类的每个对象都有自己的静态数据成员 C)类的不同对象有不同的静态数据成员值 D)静态数据成员不能通过类的对象调用 (20)如果类A被说明成类B的友元,则

A)类A的成员即类B的成员 B)类B的成员即类A的成员

C)类A的成员函数不得访问类B的成员 D)类B不一定是类A的友元

(21)可以在类外用p.a的形式访问派生类对象p的基类成员a,其中a是 A)私有继承的公有成员 B)公有继承的私有成员 C)公有继承的保护成员 D)公有继承的公有成员

(22)建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为 A)abc B)acb C)cab D)cba

(23)下面关于虚函数的描述,错误的是

A)在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数 B)基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数 C)虚函数可以是另一个类的友元函数,但不能是静态成员函数 D)基类中说明的纯虚函数在其任何派生类中都必须实现 (24)下面关于模板的描述,错误的是

A)函数模板和类模板的参数可以是任意的数据类型

B)类模板不能直接使用,必须先实例化为相应的模板类,然后定义了模板类的对象后才能使用 C)函数模板不能直接使用,需要实例化为模板函数后才能使用 D)类模板的成员函数都是模板函数

(25)语句ofstream f(\|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且

A)若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B)若文件存在,将其置为空文件;若文件不存在,打开失败

C)若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D)若文件存在,打开失败;若文件不存在,建立一个新文件 (26)下面程序的运行结果是 #include void main() {

int num=1; int &ref=num; ref=ref+2; cout <

cout <

A)13 B)16 C)36 D)33

(27)下列程序的运行结果为

#include int i=0; class A{ public:

A(){i++;} };

void main() {

A a,b[3],*c; c=b;

cout<

(28)下面关于C++语言的描述错误的是 A)C++语言支持数据封装

B)C++语言中引入友元没有破坏封装性 C)C++语言允许函数名和运算符重载 D)C++语言支持动态联编

(29)一个函数功能不太复杂但要求被频繁调用,应选用 A)内联函数 B)重载函数 C)递归函数 D)嵌套函数

(30)为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为 A)public B)protected C)private D)static

(31)在C++语言程序中,对象之间的相互通信通过 A)继承实现 B)调用成员函数实现 C)封装实现 D)函数重载实现

(32)类的析构函数是在什么时候调用的? A)类创建时 B)创建对象时 C)删除对象时 D)不自动调用

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

本文来源:https://www.bwwdw.com/article/p8nf.html

Top