01

一个可运行的C++源程序( )。

A. 由一个或多个主函数构成

B. 由一个且仅由一个主函数和零个以上(含零个)的子函数构成

C. 仅由一个主函数构成

D. 由一个且只有一个主函数和多个子函数构成

答案

B

02

C++程序的三种基本结构是( )。

A.顺序结构、选择结构、循环结构

B.递归结构、循环结构、转移结构

C.嵌套结构、递归结构、顺序结构

D.循环结构、转移结构、顺序结构

答案

A

03

以下不属于字符型常量的是( )。

A. ‘$’

B.’+’

C. ‘x2A’

D. “B”

答案

D

04

下列变量定义中, 错误的是( )。

A.int if;

B.int a,A;

C.char a=’’;

D.float x=-3.33333;

答案

A

05

已知:char a ; float b ; double c ; 则执行语句:c = a + b + c; 后变量c的类型为( )。

A.char

B.int

C.float

D.double

答案

D

06

设已有说明语句“in a=5;”,则执行语句“a+=a*=a%=3;”后,a的值为 ( ) 。

A.8

B.18

C.0

D.2

答案

赋值运算符结合性从右向左,选A

07

对数组名作函数的参数,下面描述正确的是( )。

A.数组名作函数的参数,调用时将实参数组复制给形参数组

B.数组名作函数的参数,主调函数和被调函数共用一段存储单元

C.数组名作参数时,形参定义的数组长度不能省略

D.数组名作参数,不能改变主调函数中的数据

答案

B

08

给出下面定义:

char a[]=”abcd”;

char b[]={‘a’,’b’,’c’,’d’};

则下列说法正确的是( )。

A. 数组a与数组b等价

B. 数组a和数组b的长度相同

C. 数组a的长度大于数组b的长度

D. 数组a的长度小于数组b的长度

答案

strlen是求字符串长度函数,字符串中有多少的字符就输出多少,不包括结束

符'0',sizeof()则是求其在内存中长度,即求大小,包括‘0’,选 C

09

设已定义i和k为int类型变量,则以下for循环语句( )。

for ( i =0; i!=0; i++ )

cout<< " * * * * n ";

A.判断循环结束的条件不合法

B.是无限循环

C.循环一次也不执行

D.循环只执行一次

答案

首先变量i赋初值0,然后判断条件i!=0为假,因此跳出循环后面的语句执行,选C

10

执行以下程序段后, 输出的结果为 。

int a=4,b=5,t=0;

if(a>b) t=a;a=b;b=t;

cout<<”a=”<<a<<”,b=”<<b<<endl;

A.a=5,b=4

B.a=4,b=5

C.a=5,b=0

D.语法错误

答案

C

11

执行以下程序段后,m的值为 ( )。

int a[2][3]={{1,2,3},{4,5,6}};

int m,*p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4));

A.15

B.14

C.13

D.12

答案

A

12

在参数传递过程中,对形参和实参的要求是( )。

A.函数定义时,形参一直占用存储空间

B.实参可以是常量、变量或表达式

C.形参可以是常量、变量或表达式

D.形参和实参类型和个数都可以不同

答案

定义时形参不占用空间,在调用时才为其分配空间,形参不能是常量和表达式,只能是关键字加变量名,但c++中可对其赋初值,对于D肯定要相同的,因为调用时将实参复制给形参,类型不同不能复制,选B

13

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

A. cerr

B. cin

C. cout

D. cfile

答案

C

14

假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( )

A. x(a)

B. x[a]

C. x->a

D. x.a

答案

D

15

一个类的友元函数可以访问类的( )成员。

A. 私有成员

B. 保护

C. 公有

D. 以上都正确

答案

成员函数跟友元函数有相同的权限,都可以访问公有、保护、私有的成员,选D

16

下列对基类和派生类关系的描述中,错误的是( )。

A.派生类是基类的具体化

B.派生类是基类的子集

C.派生类是基类定义的延续

D.派生类是基类的组合

答案

本题考核基类和派生类的关系。派生类中包含了基类中的成员,它是对基类定义的扩充和延续,是对基类定义的进一步具体化,而不是基类的子集。选B

17

下列对派生类的描述中,错误的是( )。

A.一个派生类可以作为另一个派生类的基类

B.派生类至少有一个基类

C.派生类的缺省继承方式是private

D.派生类只继承了基类的公有成员和保护成员

答案

此题的答案选择:B。在类中的默认继承方式是:private,而在结构体中默认的方式为:public.

c++ 里面结构体是可以继承的,你可以自己从上面的代码中复制下来,class 改为 struct ,一样能用。struct和class区别可以理解为缺省可见性不同、没有虚表(没有多态)等。

18

设置虚基类的声明中,正确的是( )。

A. 简化程序

B. 消除二义性

C. 提高运行效率

D. 减少目标代码

答案

消除二义性,

B正解, 虚基类是为了强调"这个类型的某些方法没有意义, 只是为了继承, 不要构造这种类型的对象"

19

下列描述中,( )是抽象类的特征。 

A.不能说明其对象

B.可以进行构造函数重载

C.可以定义友元函数

D.可以说明虚函数

答案

抽象类,就是把一个或多个的事物的共有特征抽出来组成的一个类,它可以有虚函数、函数、变量。但它是没有具体的对象的,打个比方,鸟是一种动物的统称,它是一个抽象的概念,它把所有的鸟类的共有特征都抽象出来了,可以这样定义:鸟是一种有翅膀,可以飞翔的动物。它是没有具体的对象的,要有具体的对象,那只能找鸟的具体的分类就是派生类,比如燕子、喜鹊是鸟类的一种,那么燕子和喜鹊是可以有具体的对象的,它是鸟类的派生类。我这 所以答案是选D

20

关于运算符重载,下列说法正确的是( )。

A. 重载时,运算符的优先级可以改变。

B. 重载时,运算符的结合性可以改变。

C. 重载时,运算符的功能可以改变。

D. 重载时,运算符的操作数个数可以改变

答案

运算符重载的概念中就说明,不能修改优先级、操作数个数和结合性,明显选C

21

编写C++程序一般需经过的几个步骤依次是( )。

A. 编辑、调试、编译、连接

B. 编辑、编译、连接、运行

C. 编译、调试、编辑、连接

D. 编译、编辑、连接、运行

答案

B

22

决定C++语言中函数的返回值类型的是( )。

A. return语句中的表达式类型

B. 调用该函数时系统随机产生的类型

C. 调用该函数时的主调用函数类型

D. 在定义该函数时所指定的数据类型

答案

D

23

假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数 为( )。

A. 3

B. 4

C. 5

D. 9

答案

AB a(4)相当于调用了一次构造函数,这个构造函数是有参数的

AB b[3]调用了三次构造函数

AB* p[2]由于只声明了指针,没有调用构造函数,指针在使用new的时候调用构造函数。选B

24

所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( )。

A. 类

B. 对象

C. 函数体

D. 数据块

答案

A

25

所谓多态性是指 ( )。

A. 不同的对象调用不同名称的函数

B. 不同的对象调用相同名称的函数

C. 一个对象调用不同名称的函数

D. 一个对象调用不同名称的对象

答案

多态性有静态和动态两种,静态多态是指调用同名函数,由于参数不同调用不同的同名函数;动态多态是指不同对象调用同名函数时,由于对象不同调用不同的同名函数,多态性肯定具有相同的同名函数,选B

26

假定一个类的构造函数为“A(int i=4, int j=0) {a=i;b=j;}”, 则执行“A x (1);”语 句后,x.a和x.b的值分别为( )

A. 4和1

B. 4和0

C. 1和4

D. 1和0

答案

D

27

下列程序的输出结果是( ) 。

#include <iostream.h>

void main() {

int n[][3]={10,20,30,40,50,60};

int *p=&n[0][0];

cout<<*p<<","<<*(p+1)<<endl;

}

A. 10,20

B. 40,20

C. 10,21

D. 40,21

答案

A

28

在C++中,使用流进行输入输出,其中用于屏幕输入( )。

A. cout

B. cerr

C. clog

D. cin

答案

D

29

假定AA为一个类,a( )为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a( )的格式为( )。

A. x.a

B. x.a()

C. x->a

D. (*x).a()

答案

B

30

关于对象概念的描述中,说法错误的是( )。

A. 对象就是C语言中的结构变量

B. 对象代表着正在创建的系统中的一个实体

C. 对象是类的一个变量

D. 对象之间的信息传递是通过消息进行的

答案

A

31

类MyA的复制构造函数是 ( )。

A. MyA()

B. MyA(MyA*)

C. MyA(MyA&)

D. MyA(MyA)

答案

C

32

在C++中,函数原型不能标识( )

A. 函数的返回类型

B. 函数参数的个数

C. 函数参数类型

D. 函数的功能

答案

D

33

使用地址作为实参传给形参,下列说法正确的是( )

A. 实参是形参的备份

B. 实参与形参无联系

C. 形参是实参的备份

D. 实参与形参是同一对象

答案

A是值传递的特点,在地址传递时,形参和实参指向内存中同一块区域,选D

34

下列不是描述类的成员函数的是( )。

A. 构造函数

B. 析构函数

C. 友元函数

D. 拷贝构造函数

答案

C

35

下面有关类说法不正确的是( )。

A. 一个类可以有多个构造函数

B. 一个类只有一个析构函数

C. 析构函数需要指定参数

D. 在一个类中可以说明具有类类型的数据成员

答案

C

36

在函数定义中的形参属于( )。

A. 全局变量

B. 局部变量

C. 静态变量

D. 寄存器变量

答案

形参属于局部变量,存放在栈中选B

37

下列有关重载函数的说法中正确的是( )。

A. 重载函数必须具有不同的返回值类型

B. 重载函数参数个数必须相同

C. 重载函数必须有不同的形参列表

D. 重载函数名可以不同

答案

C

38

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

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

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

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

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

答案

C,this与基类子类的问题没有关系。只是一个指向自己的指针,访问自己的数据成员。

39

以下基类中的成员函数表示纯虚函数的是( )。

A. virtual void tt()=0

B. void tt(int)=0

C. virtual void tt(int)

D. virtual void tt(int){}

答案

A

40

为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( )。

A.内联函数

B.重载函数

C.递归函数

D.函数模板

答案

A

This is the END!

相关文章