C++开发基础练习题及答案4-2023背题版_第1页
C++开发基础练习题及答案4-2023背题版_第2页
C++开发基础练习题及答案4-2023背题版_第3页
C++开发基础练习题及答案4-2023背题版_第4页
C++开发基础练习题及答案4-2023背题版_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试题说明

本套试题共包括1套试卷

每题均显示答案和解析

C++开发基础练习题及答案4(500题)

C++开发基础练习题及答案4

L[单选题]对于以下递归函数f,调用f(4),其返回值为()intf(intn){if(n)returnf(n-

l)+n;elsereturnn;}

A)10

B)4

C)以上均不是

答案:A

解析:

2.[单选题]使用new实例化一个类的对象的说法正确的是?

A)只调用maIloc分配了内存

B)直接调用构造函数

C)先底层调用malloc分配了内存,然后调用构造函数

答案:C

解析:

3.[单选题]设C语言数组Data[m+1]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针

,则执行出队操作的语句为

A)front=front+l

B)front=(front+1)%m

C)rear=(rear+l)%(m+l)

D)front=(front+1)%(m+l)

答案:D

解析:

4.[单选题]以下代码执行后,a、b、C的值分别为()。inta=8,b=10,c=3;if(a>b)c=a,a=b,

b=c;

A)10108

B)1088

OlO33

D)8103

答案:B

解析:

5.[单选题]假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的

元素个数为

A)(rear-front+m)%m

B)rear-front+1

C)(front-rear+m)%m

D)(rear-front)%m

答案:A

解析:

6.[单选题]派生类的对象对它的基类成员中()是可以访问的。

A)公有继承的公有成员;

B)公有继承的私有成员;

C)公有继承的保护成员;

D)私有继承的公有成员。

答案:A

解析:

7.[单选题]已知函数func的原型为intfunc(int,double);下列重载函数原型中错误的是.0

A)floatfunc(int,double,int)

B)boolfunc(int,double,bool)

C)charfunc(int,double)

D)intfunc(int,char*)

答案:C

解析:

8.[单选题]在二叉树结点的先序序列,中序序列和后序序列中,所有叶子结点的先后顺序

A)都不相同

B)完全相同

C)先序和中序相同,而与后序不同

D)中序和后序相同,而与先序不同

答案:B

解析:

9.[单选题]假定AB为一个类,则执行“ABa(4),b[3],*p[2];”语句时,自动调用该类构造函

数的次数为()。

A)3

B)4

06

D)9

答案:B

解析:

10.[单选题]设i=l,j=2,则表达式++i+j的值为()o

A)l

B)2

03

D)4

答案:D

解析:

11.[单选题]下列选项中不能作为C++用户标识符为()。

A)Main

B)sizeof

C)_int

D)Return

答案:B

解析:

12.[单选题]读数据抽象为从流中()数据

A)插入

B)替换

C)提取

D)删除

答案:C

解析:

13.[单选题]在公有继承的情况下,基类成员在派生类中的访问权限()。

A)受限制

B)保持不变

C)受保护

D)不受保护

答案:B

解析:

14.[单选题]下列说法中不正确的是()。

A)对象是类的一个实例

B)任何一个对象只能属于一个类

C)一个类只能有一个对象

D)类与对象间的关系和数据类型与变量间关系相类似

答案:C

解析:

15.[单选题]下列有关继承和派生的叙述中,正确的是()。

A)派生类不能访问基类的保护成员

B)作为虚基类的类不能被实例化

C)派生类应当向基类的构造函数传递参数

D)虚函数必须在派生类中重新实现

答案:C

解析:

16.[单选题]二叉树的第k层的结点数最多为

A)2^k-1

B)2K+1

02K-1

D)2^(k-1)

答案:D

解析:

17.[单选题]同一双亲结点的孩子结点之间互称为()

A)孩子结点

B)双亲结点

C)兄弟结点

D)子孙结点

答案:C

解析:

18.[单选题]下列程序出错的原因是。

Wincludeusingnamespacestd;intmain(){inti,*p;chare,*q;P=&i;q=&c;*p=4;*p=*q;returnO;}

A)*p中存放的是地址值,因此不能执行语句*p=4;

B)P和q类型不一致,不能执行语句*p=*q;

Oq没有指向具体的存储单元,所以*q没有实际意义

D)q已指向具体的存储单元,但该单元中没有确定的值,因此不能执行语句*p=*q;

答案:D

解析:

19.[单选题]在公有继承的情况下,基类成员在派生类中的访问权限()。

A)受限制

B)保持不变

C)受保护

D)不受保护

答案:B

解析:

20.[单选题]函数调用:strcat(strcpy(strl,str2),str3)的功能是o

A)将串StrI到串str2中后再连接到串str3之后

B)将串Strl连接到串str2之后再到串str3之后

C)将串str2连接到串Strl之后再将串StrI到串str3中

D)将串str2到串Strl中后再将串str3连接到串Strl之后

答案:D

解析:

21.[单选题]若有定义:inta□[4]={0,0};以下叙述中错误的是。

A)数组a的每个元素都可得到初值0

B)二维数组a的第一维大小为1

C)因为初值个数除以a中第二维大小的值的商为0,故数组a的行数为1

D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

答案:D

解析:

22.[单选题]以下哪种类型是C++比C语言新增的数据类型(题)

A)整型(int)

B)布尔类型(bool)

C)指针类型(*)

D)字符类型(Char)

答案:B

解析:

23.[单选题]在函数调用时,如某一默认参数要指明一个特定值,则有()

A)其之前所有参数都必须赋值

B)其之后所有参数都必须赋值

C)其前、后所有参数都必须赋值

D)其前、后所有参数都不必赋值

答案:A

解析:定义函数时,只能为函数最后面的连续若干个参数设置默认值,且在调用处也只能缺省后面的

连续若干个实参。

调用函数时,主调函数的实参与被调函数的形参按从左至右的顺序进行匹配对应。故默认值前的实

参必须都赋值。选A。

24.[单选题]假定一个类的构造函数为B(intX,inty){a=x—;b=a*y—•;},则执行Bx(3,5);语句后

,X.a和X.b的值分别为()

A)3和5

B)5和3

03和15

D)20和5

答案:C

解析:

25.[单选题]关于构造函数,下列说法不正确的是()。

A)构造函数名字和类名相同

B)构造函数在创建对象时自动执行

C)构造函数无任何函数返回类型

D)构造函数有且只有一个

答案:D

解析:

26.[单选题]有以下函数定义:

Voidfun(intn,doublex){…}

若以下选项中的变量都已经正确定义且赋值,则对函数fun的正确调用语句是()。

A)fun(inty,doublem);

B)k=fun(10,12.5);

C)fun(x,n);

D)voidfun(n,x);

答案:C

解析:

27.[单选题]关于以下代码片段说法正确的是()。

inta[5],*pa;

Pa=a;

pa=pa+2;

A)pa指向a[2];

B)pa的内容是a[0]+2

C)pa指向a[0]

D)语法有错误

答案:A

解析:

28.[单选题]下列选项中,全部都是C++关键字的选项为()。(题)

A)sizeofcaseextern

B)whileIFStatic

C)breakchargo

D)switchfloatinteger

答案:A

解析:

29.[单选题]已知:P是一个指向类A数据成员m的指针,Al是类A的一个对象。如果要给m赋值为

5,()是正确的。

Λ)Λ1.p=5;

B)Al->p=5;

C)A)*p=5;

D)*A1.p=5;

答案:c

解析:

30.[单选题]在C++语言中,引用数组元素时,其数组下标的数据类型允许是()。

A)整型常量

B)整型表达式

C)整型常量或整型表达式

D)任何类型的表达式

答案:C

解析:

31.[单选题]若已经声明了函数原型Voidfun(inta,doubleb=0.0);,则下列重载函数声明中正确

的是O

A)voidfun(inta=9,doubleb=l.0);

B)voidfun(doublea,intB);

C)intfun(inta,doubleB);

D)boolfun(inta,doubleb=0.0);

答案:B

解析:

32.[单选题]常量4.2、4.2f、4L的数据类型分别是.o

A)float、float,long

B)double,double,float

C)double,float,long

D)floatʌfloat、double

答案:C

解析:

33.[单选题]下面有关字符数组的描述中错误的是o

A)字符数组可以存放字符串

B)字符串可以整体输入、输出

C)可以在赋值语句中通过赋值运算对字符数组整体赋值

D)不可以用关系运算符对字符数组中的字符串进行比较

答案:C

解析:

34.[单选题]下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速

度,选用()合适。

A)内联函数;

B)重载函数;

C)递归调用;

D)嵌套调用

答案:A

解析:

35.[单选题]以下程序运行后输出结果是()

ttinclude<iostream>

Usingnamespacestd;

Int

A,b;

Voidf()

{intx=20,y=25;

a=a+x+y;

b=b+χ-y;

)

Intmain()

{intx=9,y=7;

a=x+y;b=χ-y;

f();

cout<<a<<<<b<<endl;

return0;

}

A)61,-3

B)16,2

C)25,-5

D)以上都不正确

答案:A

解析:

36.[单选题]以下程序的输出结果是()。

f(intb口,intrn,intn)

(

inti,s=0;

for(i=m;i<∏;i=i+2)s=s+b[i];

returns;

}

main()

(

intx,a口={l,2,3,4,5,6,7,8,9};

x=f(a,3,7);

printf(""%d∖n"",x);

)"

A)10

B)18

08

D)15

答案:A

解析:

37.[单选题]设存在数组a,其长度为Len,则下列哪项泛型算法用于在a中寻找值VaIUe的位置。

A)reverse(a,a+Len,Value);

B)sort(a,a+Len,Value);

C)find(a,a+Len,Value);

D)copy(a,a+Len,Value);

答案:C

解析:A选项用于将数组元素反转;

B选项用于对a进行升嘉排序;

C选项用于查找数组a内是否存在值为VaIUe的元素;

D选项用于输出数组的内容。

故本题选C。

38.[单选题]C++的break语句。

A)可用在能出现语句的任意位置

B)只能用在循环体内

C)能用在循环体内或SWitCh语句中

D)能用在任一复合语句中

答案:C

解析:

39.[单选题]关于C++与C语言的关系的描述中错误的是

A)C语言是C++的一个子集

B)C语言与C++是兼容的

OC++对C语言进行了一些改进

D)C++和C语言都是面向对象的

答案:D

解析:

40.[单选题]假定AA为一个类,a为该类公有的数据成员,X为该类的一一个对象,则访问X对象中数

据成员a的格式为()。

A)X(a)

B)X[a]

C)χ->a

D)x.a

答案:D

解析:

41.[单选题]unordered_map的底层数据结构是?

A)数组

B)链表

C)红黑树

D)哈希表

答案:D

解析:

42.[单选题]若int型变量x=29,double型变量y=6.0,则表达式x/y的值为()。

A)5

B)5.0

04

D)4.83333

答案:D

解析:

43.[单选题]if语句的语法格式可描述为:格式1:if()或格式2:if()else关于上面的语法格式,下

列叙述中错误的是O

A)如果在前加上逻辑非运算符!并交换和的位置,语句功能不变

B)部分可以是一个循环语句,例如if(...)while(.

C)部分可以是一个if语句,例如if(if(a==0)....

D)部分可以是一个if语句,例如if(...)if.

答案:C

解析:

44.[单选题]intFUne(int,int);不可与下列哪个函数构成重载()

A)intFunc(int,int,int);

B)doubleFunc(int,int);

C)doubleFunc(double,double);

D)doubleFunc(int,double);

答案:B

解析:函数重载的条件:同名,不同参数表,不同参数个数。故B不可以。

45.[单选题]假定有Char*P=llHello";,要输出这个字符串的地址值的正确写法是O

A)cout<<*P

B)cout<<P

C)cout<<⅛P

D)cout<<(void*)P

答案:D

解析:ehar*是声明一个字符类型的指针。这个指针指向的地址上只能存放字符类型的值。

由于C++标准库中I/O类对《操作符重载,因此在遇到字符型指针时,会将其当作字符串名来处理

,输出指针所指的字符串。既然这样,那么我们就别让它知道那是字符型指针,所以得用到强制类

型转换,把Char的指针转换为无返回值指针类型,即CoUt〈〈(void*)P,故选D。

A输出的是H;B输出的是hello;C输出的是指针的地址。

46.[单选题]下述关于开关语句的描述中,()是正确的。

A)开关语句中default子句可以没有,也可以有一个;

B)开关语句中每个语句序列中必须有break语句;

C)开关语句中default子句只能放在最后;

D)开关语句中CaSe子句后面的表达式可以是整形表达式

答案:A

解析:

47.[单选题]下列程序的输出结果是o

Uincludeusingnamespacestd;structdata{intx,y;}d[2]={2,4,6,8};intmain(){data*p=d;coutxy<

A)24

B)35

C)68

D)82

答案:B

解析:

48.[单选题]已知函数FA调用FB,若要把这两个函数定义在同一个文件中,则()。

A)FA必须定义在FB之前

B)FB必须定义在FA之前

C)若FA定义在FB之后,则FA的原型必须出现在FB的定义之前。

D)若FB定义在FA之后,则FB的原型必须出现在FA的定义之前

答案:D

解析:

49.[单选题]以下描述中,错误的是。

A)一个派生类的两个基类分别具有成员X,则在派生类中有两个X,出现访问二义性

B)解决二义性的方法是,在派生类访问该同名成员时,前面加基类类名限定

C)解决二义性的方法只有选项B中所述的类名限定法

D)基类和派生类出现同名成员,派生类中直接访问的同名成员是派生类自身的,称为支配规则

答案:C

解析:

50.[单选题]头文件扩展名为。

A)cpp

B)h

C)ub

D)ob

答案:B

解析:在C++中,

.h文件是头文件。

.CPP文件是源程序文件;

51.[单选题]采用重载函数的目的是()。

A)实现共享

B)减少空间

C)提高速度

D)使用方便,提高可读性

答案:B

解析:

52.[单选题]按C++标识符的语法规定,合法的标识符是()。

A)_abc

B)new

C)π

D)“age"

答案:A

解析:

53.[单选题]要禁止修改指针P本身,又要禁止修改P所指向的数据,这样的指针应定义为。

A)constchar*p=rtABCDv;

B)char*constp=wABCDw;

C)charconst*p=αABCDw;

D)constchar*constp="ABCD";

答案:D

解析:

54.[单选题]在C++中,头文件扩展名为()

A)cpp

B)h

Olib

D)obj

答案:B

解析:在C++中,

.h文件是头文件。

.cpp文件是源程序文件;

55.[单选题]有如下程序:

intx=3;

do{

X-=2;

cout<<x;

}while(!(一x));

执行这个程序的输出结果是()。

A)l

B)30

01-2

D)死循环

答案:C

解析:

56.[单选题]排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行

比较,将其放入已排序序列的正确位置上的方法,称为

A)希尔排序

B)插入排序

C)快速排序

D)冒泡排序

答案:B

解析:

57.[单选题]已知有函数定义:intfun(intx,inty){…},下列函数原型声明中错误的是

A)intfun(intx,int);

B)intfun(int,int);

C)intfun(int,int=4);

D)intfun(intx;inty);

答案:D

解析:

58.[单选题]若有以下类W说明,函数fConst的正确定义是()。

classW

{inta;

public:

voidfConst(int)const;

);

A)voidW::fConst(intk)const{k=a;}

B)voidW::fConst(intk)const{k=a++;}

C)voidW::fConst(intk)const{cin>>a;}

D)voidW::fConst(intk)const{a=k;}

答案:A

解析:

59.[单选题]下面函数原型中,()声明了fun为纯虚函数。

A)voidfun()=0;

B)virtualvoidfun()=0;

C)virtualvoidfun();

D)virtualvoidfun(){};

答案:B

解析:

60.[单选题]下列程序运行后的输出结果是()。

Winclude<iostream>

Usingnamespacestd;

Intmain()

(

intx,y,z;

for(x=0;x<=3;x++)

z=x;

for(y=5;y>=l;y­)

z+=y;

cout«Z«endl;

return0;

)

A)15

B)16

C)17

D)18

答案:D

解析:

61.[单选题]若有定义CharS[10];则在下面表达式中不表示s[l]的地址的是

A)s+1

B)s++

C)⅛s[O]+l

D)&s[l]

答案:B

解析:

62.[单选题]若有如下语句序列:intk=l;WhiIe(k++<6);COUt<

A)5

B)8

06

D)7

答案:D

解析:

63.[单选题]在参数传递过程中,对形参和实参的要求是o

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

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

C)是常量、变量或表达式

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

答案:B

解析:

64.[单选题]一个结点的直接前驱称为该结点的。

A)孩子结点

B)双亲结点

C)兄弟结点

D)子孙结点

答案:B

解析:

65.[单选题]已知x=5,则执行语句X+=X-=X*X;后,X的值为()。

A)25

B)40

0-40

D)20

答案:C

解析:

66.[单选题]当定义一个结构体变量时,理论上系统分配给它的内存是

A)各成员所需内存量的总和

B)结构中第一个成员所需内存量

C)结构中最后一个成员所需内存量

D)成员中占内存量最大者所需的容量

答案:A

解析:

67.[单选题]无类型标识符是指()

A)void

B)bool

C)short

D)long

答案:A

解析:如果函数不需要返回值,可用VOid标识。故本题选A。

bool表示布尔型,ShOrt表示短整型,IOng表示长整型,这三个都是数据类型。

68.[单选题]在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是()。

A)地址传递

B)单向值传递

C)由实参传形参,再由形参传实参

D)传递方式由用户指定

答案:B

解析:

69.[单选题]下列有关函数缺省参数的描述中,正确的是

A)一个函数具有缺省值的参数只能有一个

B)设置了缺省值的参数左边不允许出现没有指定缺省值的参数

C)同一个函数在同一个文件中可以提供不同的缺省参数值

D)参数缺省值要设置在函数定义语句中,不能设置在函数声明语句中

答案:C

解析:

70.[单选题]假定AB为一个类,则执行‘'ABa(2),b[3],*p[4];"语句时共调用该类构造函数的次数

为()。

A)3

B)4

05

D)9

答案:B

解析:

71.[单选题]若有如下函数声明:voidFun(intx);,则下列()能与该函数进行重载。

A)voidFun(inty);

B)voidFun(intx,inty=1Γ);

C)intFun(intx);

D)voidFun(int)const;

答案:B

解析:

72.[单选题]有以下程序

ttinclude<iostream>

Inti=0;

Voidfun()

staticinti=l;

std::cout<<i++<<

)

std::cout<<i<<,,'

Intmain()

{

fun();fun();

return0;

}

程序执行后的输出结果是()。

A)l,2,l,2,

B)l,2,2,3,

C)2,0,3,0,

D)l,0,2,0,

答案:D

解析:

73.[单选题]下列虚基类的声明中正确的是()。

A)classvirtualB:publicA

B)virtualclassB:publicA

C)classB:publicAvirtual

D)classB:virtualpublicA

答案:D

解析:

74.[单选题]符合先进后出规则的数据结构是()。

A)堆栈

B)队列

C)链表

D)二叉树

答案:A

解析:

75.[单选题]在哪种情况下适宜采用inline定义内联函数?

A)函数体含有循环语句

B)函数体含有递归语句

C)函数代码少、频繁调用

D)函数代码多、不常调用

答案:C

解析:

76.[单选题]将一个递归算法转换为非递归算法,通常需要借用的数据结构是()

A)栈

B)队列

C)线性表

D)链表

答案:A

解析:

77.[单选题]虚析构函数的作用是()。

A)虚基类必须定义虚析构函数

B)类对象作用域结束时释放资源

Odelete动态对象时释放资源

D)无意义

答案:C

解析:

78.[单选题]C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了

面向对象。

A)增加了一些新的运算符

B)允许函数重载,并允许设置缺省参数

C)规定函数说明必须用原型

D)引进了类和对象的概念

答案:D

解析:

79.[单选题]已知有如下代码片段

WdefineM(x)x+4

inta=M(2)*3;

则变量a的值为()。

A)18

B)14

06

D)12

答案:B

解析:

80.[单选题]已知类A是类B的友元,类B是类C的友元,则()

A)类A一定是类C的友元

B)类C一定是类A的友元

C)类C的成员函数可以访问类B的对象的任何成员

D)类A的成员函数可以访问类B的对象的任何成员

答案:C

解析:

81.[单选题]设inti=l,j=2;则表达式i+++j的值为()。

A)l

B)2

C)3

D)4

答案:C

解析:

82.[单选题]以下选项中合法的字符常量是o

A)B

B)'∖010'

068

D)D

答案:B

解析:

83.[单选题]在C++语言中引用数组元素时,下面关于数组下标数据类型的说法错误的是

A)整型常量

B)整型表达式

C)整型常量或整型表达式

D)任何类型的表达式

答案:D

解析:

84.[单选题]在一个类体的下列声明中,正确的纯虚函数声明是()。

A)virtualvoidvf()=O;

B)voidvf(int)=O;

C)virtualintvf(int);

D)virtualvoidvf(int){}

答案:A

解析:

85.[单选题]关于函数中的〈返回类型>,下列表述中错误的是()。

A)<返回类型>中有可能包含关键字int

B)<返回类型>中有可能包含自定义标识符

C)<返回类型>中有可能包含字符*

D)《返回类型〉中有可能包含口

答案:D

解析:

86.[单选题]下述程序的输出结果是o

Winclude<iostream>

Usingnamespacestd;

Voidmain()

Intx=100;

Inty=x++;

Cout<<(x++,y)<<","<<y++<<endl;

)(题)

A)100,100

B)100,101

C)101,100

D)101,101

答案:c

解析:

87.[单选题]在下列选项中()是istream类的对象。

A)cerr

B)cin

C)clog

D)cout

答案:B

解析:

88.[单选题]以下正确的函数定义是()

A)doublefun(intx,inty){}

B)doublefun(intx;inty){}

C)floatfun(int,int){}

D)voidfun(intx,y){}

答案:A

解析:

89.[单选题]关于纯虚函数和抽象类的描述中,错误的是()。

A)纯虚函数是1种特殊的虚函数,它没有具体实现

B)抽象类是指具有纯虚函数的类

Oi个基类说明中有纯虚函数,该基类的派生类一定不再是抽象类

D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

答案:C

解析:

90.[单选题]下列选项中,()不.能.交换变量a和b的值。

A)t=b;b=a;a=t;

B)a=a+b;b=a^b;a=a-b;

C)t=a;a=b;b=t;

D)a=b;b=a;

答案:D

解析:

91.[单选题]某函数申明如下:voidFunc(int&nVall);有inta,下面使用正确的为()

A)Func(a)

B)Func(&a)

C)Func(*a)

D)Func(&(*a))

答案:A

解析:

92.[单选题]下面程序执行后的输出结果是ottincludeusingnamespacestd;void

swapl(intc[]){intt;t=c[0];c[0]=c[1];c[l]=t;}voidswap2(intcθ,intcl){intt;

t=cθ;cθ=cl;cl=t;}intmain(){inta[2]={3,5},b[2]={3,5};swapl(a);swap2(b[0],b[l]);

COUt

A)5353

B)5335

C)3535

D)3553

答案:B

解析:

93.[单选题]在面向对象方法中,实现信息隐藏的是依靠()

A)对象的继承

B)对象的多态

C)对象的封装

D)对象的分类

答案:C

解析:

94.[单选题]C++语言的函数体必须放在一对()中。

A){}

B)""

0□

D)O

答案:A

解析:

95.[单选题]下述静态数据成员的特征中,()是错误的。

A)说明静态数据成员时前边要加修饰符StatiC

B)静态数据成员要在类体外进行初始化

C)引用静态数据成员时,要在静态数据成员名前加<类名〉和作用域运算符

D)静态数据成员不是所有对象所共用的

答案:D

解析:

96.[单选题]在C++中,用类将数据和对数据操作的代码结合在一起称为

A)软件重用

B)封装

C)集合

D)多态

答案:B

解析:

97.[单选题]若已有一个栈,进栈顺序为ABCD,出栈顺序序列是BCDA,若用I表示进栈,O表示出栈

,则进操作的顺序是O

A)IOIOIIOO

B)IIOOIIOO

OIIOIOIOO

D)IIOIOOIO

答案:c

解析:

98.[单选题]下列枚举符号中,用来定位文件开始位置的是o

A)iosbase::end

B)ios_base::beg

C)iosbase::out

D)ios_base::cur

答案:B

解析:

99.[单选题]下列关于构造函数的描述中,错误的是()。

A)构造函数可以设置默认的参数

B)构造函数在定义类对象的自动执行

C)构造函数可以是内联函数

D)构造函数不可以重载

答案:D

解析:

100.[单选题]类A是类B的友元,类B是类C的友元,则()是正确的。

A)类B是类A的友元

B)类C是类A的友元

C)类A是类C的友元

D)以上都不对

答案:D

解析:

IOl.[单选题]以下逗号表达式的值为()。

(X=4*5,X*5),X+25

Λ)25

B)20

OlOO

D)45

答案:D

解析:

102.[单选题]以下哪个不是VeCtor的特点。()

A)支持随机存取

B)只能在末端添加和删除元素

C)可以在前端插入或删除元素

D)容量是可配置的

答案:B

解析:

103.[单选题]若X是一个boo型变量,y是一个值为100的int型变量,则表达式x&&y〉O的值()。

A)为true

B)为false

C)与X的值相同

D)与X的值相反

答案:C

解析:

104.[单选题]对于下面Char(*p)[16]的声明描述正确的一项是()

A)P是长度为16的字符指针数组

B)P是包含16个字符的字符串

C)P是指向长度为16的字符数组的指针

D)P是长度为16的字符数组

答案:C

解析:

105.[单选题]已知inta=3;,则执行完表达式a+=a-=a*a后,a的值是o

Λ)-3

B)9

0-12

D)6

答案:C

解析:

106.[单选题]以下程序的输出结果是一。

ttinclude<iostream>

Usingnamespacestd;

Voidmain()

Charc='z';

Cout<<char(c-25);

}(题)

A)a

B)Z

C)z-25

D)y

答案:A

解析:

107.[单选题]下列不是描述类的成员函数的是O

A)构造函数

B)析构函数

C)友元函数

D)拷贝构造函数

答案:C

解析:

108.[单选题]以下代码编译有错误,哪个选项能解决编译错误?classA{public:int

GetValue()const{vv=1;returnvv;}private:intvv;};

A)改变成员变量"vv"为"mutableintvv"

B)改变成员函数"GetValue"的声明,以使其不是ConSt的

C)都不能修复编译错误

D)都可以修复编译错误

答案:D

解析:普通成员函数后面加上ConSt修饰,就是常函数。常函数中的this指针是常指针,不能在

常函数中对成员变量进行修改,只能读取;如果想要在常函数中对成员变量进行修改,可以在成员

变量前加上mutable关键字进行修饰;常函数可以被普通对象或者常对象调用,但是常对象只能调

用常函数,常对象只能读成员。

109.[单选题]下面不是图的常用的存储结构有

A)邻接矩阵

B)邻接链表

C)十字链表

D)树

答案:D

解析:

Ilo.[单选题]用于包含C++标准库iostream的预处理指令是。

A)#define<iostream>

B)ttinclude<iostream>

C)ttdefine'iostream'

D)#include'iostream'

答案:B

解析:嵌入指令#include指示编译器将一个源文件嵌入到带有#include指令的原文件中该指令所在的

位置处。

当使用当程序中用至UCin和CoUt时,需要在程序中包含头文件〈iostream》。

故综上,B符合。

IlL[单选题]()的功能是对象进行初始化。

A)析构函数

B)数据成员

C)构造函数

D)静态成员函数

答案:C

解析:

112.[单选题]对n个元素进行直接插入排序时间复杂度为

A)0(l)

B)0(n)

C)0(n^2)

D)O(Iogn)

答案:C

解析:

113.[单选题]关于友元,下列说法错误的是β

A)如果类A是类B的友元,那么类B也是类A的友元。

B)如果函数fun()被说明为类A的友元,那么在fun()中可以直接访问类A的私有成员。

C)友元关系不能被继承。

D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元函数。

答案:A

解析:

114.[单选题]if(!x),表达式!x等效于()。

A)x==l

B)x==0

C)x!=l

D)x!=O

答案:B

解析:

115.[单选题]设有说明语句:ehara='∖72';则变量a。(题)

A)包含1个字符

B)包含2个字符

C)包含3个字符

D)包含4个字符

答案:A

解析:

116.[单选题]下列字符串中,不可以用作C++标识符的是()。(题)

A)_TESTJ4

B)y_2006

Oif

D)Return

答案:C

解析:

117.[单选题]在c++中,类之间的继承关系具有()o

A)自反性

B)对称性

C)传递性

D)反对称性

答案:C

解析:

118.[单选题]以下叙述中不正确的是O

A)在一个函数中,可以有多条return语句

B)函数的定义不能嵌套,但函数的调用可以嵌套

C)函数必须有返回值

D)不同的函数中可以使用相同名字的变量

答案:C

解析:函数都需要由类型说明。intmain()指出main是整数类型,返回值由return后面的表达式决

定,且表达式的值必须与声明函数的类型一致。如果函数不需要返回值,还可用VOid标识。故C错误

,函数可以没有返回值。

119.[单选题]友元关系不能O

A)提高程序的运行效率

B)是类与类的关系

C)是一个类的成员函数与另一个类的关系

D)继承

答案:D

解析:

120.[单选题]已知:p是一个指向类A数据成员ɪn的指针,Al是类A的一个对象。如果要给m赋值为

5,正确的是()

A)A1.p=5;

B)Λl->p=5;

C)Al.*p=5;

D)*Λ1.p=5;

答案:D

解析:假设已经有了一个对象,则可使用运算符调用成员函数赋初值。

题中P是指针,所以如果要给m赋值为5,则*ALp=5;。

121.[单选题]以下有关C语言的说法中,错误的是()。

A)内存泄露一般是指程序申请了一块内存,使用完后,没有及时将这块内存释放,从而导致程序占

用大量内存。

B)可以通过malloc(size_t)函数调用申请超过该机器物理内存大小的内存块。

C)无法通过内存释放函数free(void*)直接将某块已经使用完的物理内存直接还给操作系统。

D)可以通过内存分配函数malloc(size_t)直接申请物理内存。

答案:D

解析:内存泄漏也称作“存储渗漏”,用动态存储分配函数动态开辟的空间,在使用完毕后未释放

,结果导致一直占据该内存单元。直到程序结束。即所谓内存泄漏。free释放的内存不一定直接还

给操作系统,可能要到进程结束才释放。可以直到malloc不能直接申请物理内存,它申请的是虚拟

内存

122.[单选题]用S表示进栈操作,用X表示出栈操作,若元素的进栈顺序是1234,为了得到1342的出

栈顺序,相应的S和X的操作序列为O

A)SXSXSSXX

B)SSSXXSXX

OSXSSXXSX

D)sxssxsxx

答案:D

解析:

123.[单选题]在C++语言中,程序中的宏代换是在o

A)编译时进行的

B)程序执行时进行的

C)编译前预处理时进行的

D)编译后进行的

答案:C

解析:

124.[单选题]有以下语句定义intX=5;constint*constp=&x;constint&q=x;intconst

*next=ftx;constint*j=&x;则有语法正确的是()

ʌ)*p=1;

B)q++;

C)next++;

D)(*j)++;

答案:C

解析:

125.[单选题]若X是一个bool型变量,y是一个值为100的int型变量,则表达式!x&&y>0的值()。

(题)

A)与X的值相反

B)为true

C)为false

D)与X的值相同

答案:A

解析:

126.[单选题]以下程序运行后的输出结果是o

ttinclude<iostream>

Usingnamespacestd;

Voidmain()

(

Inta;

Λ='A'+1.6;

Cout<<a<<endl;

)(题)

A)65.5

B)66.5

C)65

D)66

答案:D

解析:

127.[单选题]下面程序的输出结果是()#includeusingnamespacestd;intmain(){int

x=6,y=8;if(x++

A)8

B)7

C)9

D)编译时出错

答案:B

解析:

128.[单选题]C++程序中的简单语句必须以()结束。(题)

A)空格

B)冒号

C)分号

D)花括号

答案:C

解析:

129.[单选题]在对栈存储时,栈结构通常采用的两种存储结构是

Λ)顺序存储结构和链表存储结构

B)散列和索引方式

C)链表存储结构和数组

D)线性链表结构和非线性存储结构

答案:A

解析:

130.[单选题]下列程序段的输出是Ounsignedshorti=65538;cout<

A)65538

B)有语法错误,无法编译通过

Oo

D)2

答案:D

解析:

131.[单选题]设有一组关键字序列{5,8,14,20,31,55,78,81,93,97,II},使用二分(折半)法查找

关键字93需要进行多少次比较O

A)2

B)3

04

D)5

答案:A

解析:

132.[单选题]下列数组定义语句中,不合法的是()。

A)inta[3]={0,1,2,3};

B)inta[]={0,1,2};

Ointa[3]={0,1,2);

D)inta[3]={0};

答案:A

解析:

133.[单选题]要定义一个引用变量p,使之引用类MyClaSS的一个对象,正确的定义语

句是()

A)MyClassP=MyClass;

B)MyClassp=newMyClass;

C)MyClass&p=newMyClass;

D)MyClassa,&p=a;

答案:D

解析:

134.[单选题]已知类BaSe和类DeriVed的定义如下

:classBase{intn;public:Base(intd):n(d){}};classDerived:pubIicBase{public:

};其中横线处应为类DeriVed的构造函数的定义。在下列构造函数的定义中,正确

的是o

A)Derived(intx){Base(x);)

B)Derived(intx):Base(x){}

C)Derived(intx){n=x;}

D)Derived(intx):n(x){)

答案:B

解析:

135.[单选题]以下叙述中正确的是o

A)C++程序中注释部分可以出现在程序中任意合适的地方

B)花括号{和}只能作为函数体的定界符

C)构成C++程序的基本单位是函数,所有函数名都可以由用户命名

D)分号是C++语句之间的分隔符,不是语句的一部分

答案:A

解析:

136.[单选题]下列语句错误的是O

A)intval(20);

B)externintval(20);

C)constintval;

D)externconstintval;

答案:C

解析:因为被COnSt修饰的变量的值在程序中不能被改变,所以在声明符号常量时,必须对符号常量

进行初始化,除非这个变量时用extern修饰的外部变量。

故只有C错误,既没有初始化,也没有用extem修饰。

137.[单选题]下列静态数据成员的特性中,()是错误的。

A)说明静态数据成员时前边要加修饰符StatiC

B)静态数据成员要在类体外进行初始化

C)静态数据成员不是所有对象所共用的

D)引用静态数据成员时,要在其名称前加〈类名〉和作用域运算符

答案:C

解析:

138.[单选题]在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度

,选用()。

A)内联函数

B)重载函数

C)递归调用

D)嵌套调用

答案:A

解析:

139.[单选题]若有定义:inta[][4]={0,0};以下叙述中错误的是。

A)数组a的每个元素都可得到初值O

B)二维数组a的第一维大小为1

C)因为初值个数除以a中第二维大小的值的商为0,故数组a的行数为1

D)只有元素a[0][0]和a[0][l]可得到初值0,其余元素均得不到初值0

答案:D

解析:

140.[单选题]有如下两个类定义:classAA{};cIassBB{AAvl,*v2;BBv3;int*V4;};其中有一个成员变

量的定义是错误的,这个变量是O

A)vl

B)v2

C)v3

D)v4

答案:C

解析:

141.[单选题]有如下类定义

:classBag(public:Bag(ints);〃①~Bag();〃②intGetSiZe();//(ɜ)frIendintGetCount(Bag&);〃④

private:intsize;StaticintcountJ;在标注号码的4个函数中,不具有隐含this指针的是。

A)①

B)②

C)③

D)④

答案:D

解析:

142.[单选题]与二进制数IOLOlOIl等值的十六进制数为()。

A)B

B)5.51

C)51

D)5.58

答案:D

解析:

143.[单选题]实现编译时的多态性要使用()

A)重载函数

B)析构函数

C)构造函数

D)虚函数

答案:A

解析:

144.[单选题]已知下列语句中的X和y都是int型变量,其中错误的语句是()(题)

A)(x+y)++;

B)x=y++;

C)x=++y;

D)++x=y;

答案:A

解析:

145.[单选题]unordered_map随机读的时间复杂度是?

A)O(1)

B)0(n)

OO(IogN)

D)O(n)

答案:A

解析:

146.[单选题]下列有关重载函数的说法中正确的是()

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

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

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

D)重载函数名可以不同

答案:C

解析:函数重载,是指在程序的同一范围内声明几个功能类似的同名函数。

在调用同名函数时,实现函数的重载必须满足下列条件之一:

(1)参数表中对应的参数类型不同。

(2)参数表中参数个数不同。

如果两个函数的名字和参数表都是一样的,仅仅是返回值类型不同,则这两个函数不是重载的,编

译器认为它们是重复定义,编译时会报错。

综上,函数重载的条件:同名,不同参数表,不同参数个数。故本题只有C正确。

147.[单选题]设intx=2,y=4,z=7;则执行x=y―<=xIIx+y!=z后x,y的值分别为()。

A)0,3

B)l,3

02,3

D)2,4

答案:B

解析:

148.[单选题]实现运行时的多态性用。

A)重载函数

B)构造函数

C)析构函数

D)虚函数

答案:D

解析:

149.[单选题]执行下列语句后,程序的输出结果是()。

ttinclude<iostream>

Usingnamespacestd;

Intmain()

(

Intn=10;

While(n>7){

N-;

Cout<<n<<l,';

)

Cout<<endl;

}(题)

A)9,8,7,

B)10,9,8,

C)10,9,8,7,

D)9,8,7,6,

答案:A

解析:

150.[单选题]Mysql的默认端口号是多少?

A)80

B)21

C)3306

D)8000

答案:c

解析:

151.[单选题]下列程序的输出结果是()

复制代码

#include<iostream>

usingnamespacestd;

intmain(void){

intx=1,i=1;

for(;x<50;i÷+){

if(x>=10)

break;

if(x%2!=0){

x+=3;

continue;

)

x-=-1;

)

cout<<x«,,<<i<<endl;

return0;

)

A)127

B)116

C)126

D)ll7

答案:C

解析:

152.[单选题]下列关于类和对象的叙述中,错误的是()

A)一个类只能有一个对象

B)对象是类的具体实例

C)类是某一类对象的抽象

D)类和对象的关系是一种数据类型与变量的关系

答案:A

解析:具有类类型的变量称为对象。类只是一个样板,根据这个样板,可以在内存中开辟出同样结

构的实例,即对象。所以说,对象是类的实例。

故一个类可以有多个对象。

答案为A。

153.[单选题]链式栈结点为:(data,link),top指向栈顶.若想摘除栈顶结点,并将删除结点的值保

存到X中,则应执行操作Oo

A)x=top->data;top=top->link;

B)top=top->link;x=top->link;

C)x=top;top=top->link;

D)x=top->link;

答案:A

解析:

154.[单选题]在对n个元素进行直接插入排序的过程中,共需要进行()躺

A)n

B)n+1

On-I

D)2n

答案:C

解析:

155.[单选题]若有以下说明,在类外使用对象ObjX成员的正确语句是()。

classX

{inta;

voidfunl();

public:

voidfun2();

);

XobjX;

A)objX,a=0;

B)objX.funl();

C)objX.fun2();

D)X::funl();

答案:C

解析:

156.[单选题]关于虚函数的调用说法正确的是()。

A)一定使用动态联编

B)一定使用静态联编

C)不一定使用动态联编

D)与动态联编和静态联编无关

答案:C

解析:

157.[单选题]对于数据结构算法分析的两个主要方面是

A)空间复杂性和时间复杂性

B)正确性和简明性

C)可读性和文档性

D)数据复杂性和程序复杂性

答案:A

解析:

158.[单选题]关于对象成员的构造函数的调用顺序,说法正确的是()。

A)与它们在成员初始化列表中给出的顺序相同。

B)与析构函数的调用顺序相同

C)与它们在类中的说明顺序相同

D)以上说法都不对

答案:D

解析:

159.[单选题]若磁盘上已存在某个文本文件,其全路径文件名为d:\nc\test.txt,下列语句中不能打

开该文件的是o

A)ifstreamfile("d:∖nc∖test.txt");

B)ifstreamfile;file,open("d:WncWtest.txt");

C)ifstream*pFile=newifstream("d:∖∖nc∖∖test.txt");

D)ifstreamfile("d:WncWtest.txt");

答案:A

解析:

160.[单选题]在inta=3,int*p=&a;中,*p的值是(

A)变量a的地址值

B)无意义

C)变量P的地址值

D)3

答案:D

解析:

161.[单选题]下面代码执行结果为()classA{public:voidB(){cout

A)wantfuncptr

B)编译错误,A类中没有成员*func函数

C)没有任何输出

D)不能A::B取地址

答案:A

解析:

162.[单选题]从一个栈顶指针为HS的链栈中删除一个结点,用X保存被删除结点的值,则执行

A)x=HS;HS=HS->next;

B)HS=HS->next;X=HS->data;

C)x=HS->data;HS=HS->next;

D)s->next=Hs;Hs=HS->next;

答案:C

解析:

163.[单选题]引入友元的主要目的是为了()。

A)增强数据安全性

B)提高程序的可靠性

C)提高程序的效率和灵活性

D)保证类的封装性

答案:C

解析:

164.[单选题]在对函数进行原型声明时,下列语法成分中,不需要的是()。

A)函数返回类型

B)函数参数列表

C)函数名)

D)函数体

答案:D

解析:

165.[单选题]关于类和对象不正确的说法是O

A)类是一种类型,它封装了数据和操作

B)对象是类的实例

C)一个类的对象只有一个

D)一个对象必属于某个类

答案:C

解析:对象就是一类物体的实例,将一组对象的共同特征抽象出来,从而形成“类”的概念。一个类

的对象可以有很多,因此C项错误。

166.[单选题]关于函数重载,下列叙述中错误的是()。

A)重载函数的函数名必须相同

B)重载函数必须在参数个数或类型上有所不同

C)重载函数的返回值类型必须相同

D)重载函数的函数体可以有所不同

答案:C

解析:

167.[单选题]C++程序中的简单语句必须以()结束。

A)冒号

B)分号

C)空格

D)花括号

答案:B

解析:

168.[单选题]在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用

()。

A)内联函数

B)重载函数

C)递归调用

D)嵌套调用

答案:A

解析:

169.[单选题]右值引用的说法错误的是?

A)消除两个对象交互时不必要的对象拷贝

B)节省运算存储资源

C)能够更简洁、明确地定义泛型函数

D)降低了运行效率

答案:D

解析:

170.[单选题]设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()。

A)p=l

B)*q=2

C)q=p;

D)*p=5

答案:D

解析:

171.[单选题]下列关于C++标识符的命名不合法的是()

A)Pad

B)name_l

C)A#bc

D)_al2

答案:C

解析:一般的标识符命名规则:

字母、数字和下划线的组合,大小写敏感,但不能以数字开头,也不能和系统中使用的关键字完全

相同。

故C错误,不属于字母、数字和下划线的任何一种。

172.[单选题]执行下列语句段后,输出字符"*"的个数是()。for(inti=50;i>l;-i)cout<<

题)

A)49

B)48

C)50

D)51

答案:A

解析:

173.[单选题]设存在函数intmin(int,int)返回两参数中较小值,若求15,26,47三者中最

小值,下列表达式中错误的是()

A)intm=min(min(15,26),min(15,47));

B)intm=min(15,26,47);

C)intm=min(15,min(47,26));

D)intm=min(min(47,26),16);

答案:B

解析:

174.[单选题]C++源程序文件扩展名为()(题)

A)cpp

B)h

Olib

D)obj

答案:A

解析:

175.[单选题个C程序的执行是从()。

A)本程序的main函数开始,到main函数结束

B)本程序文件的第1个函数开始,到本程序文件的最后1个函数结束

C)本程序的main函数开始,到本程序文件的最后1个函数结束

D)本程序文件的第1个函数开始,到本程序main函数结束

答案:B

解析:

176.[单选题]将两个字符串连接起来组成一个字符串时,选用

A)Strlen

B)Strcpy

C)strcat

D)Strcmp

答案:C

解析:

177.[单选题]假定a为一个整型数组名,则元素a[4]的字节地址为。

A)a+4

B)a+8

C)a+16

D)a+32

答案:C

解析:a是数组,a数组的地址也就是数组中第一个元素的地址为a[0],如果想算a[i]的地址套下面的

公式:a[O]+i*d,其中d为该数组类型所占的字节数,C++中,d是4个字节。

所以a[4]=a[0]+4*4=a+16°

178.[单选题]通常,拷贝构造函数的参数是()

A)某个对象名

B)某个对象的成员名

C)某个对象的引用名

D)某个对象的指针名

答案:C

解析:

179.[单选题]下列字符中不是转义字符是()。

A)'∖n,

B)'VC

C),∖089,

D)'∖065,

答案:C

解析:

180.[单选题]在多继承的构造函数定义中,几个基类构造函数用O

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论