C++考试复习

1.

对C++语言和C语言的兼容性,描述正确的是:    C++兼容C;

2.

在C++中使用流进行输入输出,其中用于屏幕输出的对象是  :  cout

A.cerr   B.cin   C.cout   D.cfile

C++Primer(第四版)有一段话,供大家参考:

“标准库定义了四个IO对象,处理输入时使用命名为cin的istream类型对象,这个对象也称为标准输入。处理输出时使用命名为cout的ostream类型对象,这个对象也称为标准输出。标准库还定义了另外两个ostream对象,分别命名为cerr和clog。cerr对象又叫标准错误,通常用来输出警告和错误信息给程序的使用者,而clog对象用于产生程序执行的一般信息。一般情况下,系统将这些对象与执行窗口联系起来,这样,当我们从cin读入时,数据从执行程序的窗口读入,当写到cout,cerr。clog时,输出写至同一窗口。运行程序时,大部分操作系统都提供了重定向输入或者输出流的方法。利用重定向可以将这些流与所选择的文件联系起来”

缓冲区的目的:

就是减少刷屏的次数,比如,你的程序输出圣经中的一篇文章。不带缓冲的话,就会每写一个字母,就输出一个字母,然后刷屏。有了缓冲,你将看到若干句子“同时”就出现在了屏幕上(由内存翻新到显存,然后刷新屏幕)。

cout是在终端显示器输出,cout流在内存中对应开辟了一个缓冲区,用来存放流中的数据,当向cout流插入一个endl,不论缓冲区是否满了,都立即输出流中所有数据,然后插入一个换行符。

cerr流对象是标准错误流,指定为和显示器关联,和cout作用差不多,有点不同就是cout通常是传到显示器输出,但可以被重定向输出到文件,而cerr流中的信息只能在显示器输出。

clog流也是标准错误流,作用和cerr一样,区别在于cerr不经过缓冲区,直接向显示器输出信息,而clog中的信息存放在缓冲区,缓冲区满或者遇到endl时才输出。

3.

对使用关键字new所开辟的动态存储空间,释放时必须使用(C)

A.free   B.create   C.delete   D.release

release()是一个释放捕捉的函数,,
在C++和面向对象程序设计里面,,
我们经常要使用一些设备,,
比如一个简单的使用鼠标绘图程序吧,,
我们要先使用SetCaputer()函数获取鼠标的控制权,
但在你使用完成后电脑没有你的指令就不会释放鼠标
让你继续作图,,
这时候你就需要用到Release()函数释放鼠标

4.

使用值传递方式将实参传给形参,下列说法正确的是(A)

A.形参是实参的备份   B.实参是形参的备份

C.形参和实参是同一对象   D.实参和形参毫无联系

5.

在函数调用时,如某一默认参数要指明一个特定值,则有(其之前所有参数都必须赋值)

6.

下列哪个类型函数不适合声明为内联函数(A)

A.函数体语句较多   B.函数体语句较少

C.函数执行时间较短   D.函数执行时间过长

7.

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);

说明:不能以形参名来区分函数;不能以函数返回值来区分函数。必须是形参的个数或者类型不同才能构成函数重载。

8.

对类中声明的变量,下列描述中正确的是(C)

A.属于全局变量   B.只属于该类

C.属于该类,某些情况下也可被该类不同事例所共享

D.任何情况下都可被该类所有实例共享。

9.

类的私有成员可在何处访问(D)

A.通过子类的对象访问   B.本类及子类的成员函数中

C.通过该类对象访问   D.本类的成员函数中

10.

如果没有为一个类定义任何构造函数的情况下,下列描述正确的是(编译器总是自动创建一个不带参数的构造函数)

11.

一个类可包含析构函数的个数是(一个)

只有一个,多了编译器都不知道调用哪个好,而构造函数可以有多个,因为构造函数调用时编译器可以根据变量的类型和数量来确定调用哪个构造函数,而析构函数是系统调用的,不能做到这种效果。

12.

this指针存在的目的是(B)

A.保证基类公有成员在子类中可以被访问

B.保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码

C.保证基类保护成员在子类中可以被访问

D.保证基类私有成员在子类中可以被访问

13.

下列关于类的权限的描述错误的是(A)

A.类本身的成员函数只能访问自身的私有成员

B.类的对象只能访问该类的公有成员

C.普通函数不能直接访问类的公有成员,必须通过对象访问

D.一个类可以将另一个类的对象作为成员

14.

设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是(B)

A.A类构造函数先执行   B.成员构造函数先执行

C.两者并行执行    D.不能确定

类的组合,描述的是一个类内嵌其他类的对象作为成员的情况,他们之间的关系是一种包含与被包含的关系。

在声明一个组合类的对象时,不仅它自身的构造函数将被调用,而且还将调用其内嵌对象的构造函数。这时构造函数的调用顺序是:(1)按照内嵌对象在组合类的声明中出现的次序,依次调用内嵌对象的构造函数;(2)执行本类构造函数的函数体,析构函数的调用执行顺序与构造函数刚好相反。

15.

下列描述错误的是(A)

A.在创建对象前,静态成员不存在   B.静态成员是类的成员

C.静态成员不能是虚函数   D.静态成员函数不能直接访问非静态成员

说明:静态成员函数可以直接访问该类的静态数据和函数成员,而访问非静态成员,必须通过参数传递方式得到对象名,然后通过对象名来访问。

16.

对于友元描述正确的是(B)

A.友元是本类的成员函数   B.友元不是本类的成员函数

C.友元不是函数   D.友元不能直接访问本类私有成员

17.

设要把一个文件输出流对象myfile与文件“f:\\mytext.txt”相关联,所用的C++语句是:

myfile.open(“f:\\mytext.txt”);

18.

C++中ostream类的直接基类是     ios类

19.

运算符[ ]只能用    (成员运算符)来重载,不能用(友元运算符)来重载

20.

定义虚函数所用的关键字是    (virtual)

21.

vector类中用于返回向量中第1个对象的方法是      front()

22.

在C++中,利用向量类模板定义一个具有20个char的向量E,其元素均被置为字符‘t’,实现此操作的语句是

vector<char>E(20,'t')

23.

类的继承是指子类继承基类的    (数据成员)和(成员函数)。

24.

不同对象可以调用相同名称的函数,但可导致完全不同的行为的现象称为(多态性)。

25.

(#include)指令指示编译器将一个源文件嵌入到带该指令的源文件中。

26.

设类A有成员函数

void Fun(void)

若要定义一个指向类成员函数的指针变量pafn来指向Fun,该指针变量的声明语句是:

void(A::*pafn)(void);

27.

对象传送的消息一般由三部分组成:接收对象名、调用操作名、和必要的参数

28.

将指向对象的指针作为函数参数,形参是(对象指针),实参是对象的(地址值)

29.

在使用string类的find成员函数来检索主串中是否含有指定的子串时,若在主串中不含指定的子串,find函数的返回值是(-1)。

例如:

string str="abcabc";

cout<<str.find("ab",0);    返回值为0,   第一个变量为字符或串,第二个变量为从哪个位置开始找。

30

在C++中,声明布尔类型变量所用的关键字是    (bool)

猜你喜欢

转载自blog.csdn.net/qq_43678290/article/details/85044374