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

下载本文档

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

文档简介

试题说明

本套试题共包括1套试卷

每题均显示答案和解析

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

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

1.[单选题]读写速度最慢的组件是?

A)CPU

B)内存

OI/O

答案:c

解析:

2.[单选题]一个类的StatiC成员函数和成员对象说法错误的是

A)StatiC成员函数属于类

B)StatiC成员函数属于类的对象实例

C)StatiC成员变量属于类

答案:B

解析:

3.[单选题]如下程序执行时:CoUt<<2+'aY<',';CoUt<<'a'<<'∖n';执行时,输出什么?

A)99,a

B)c,a

C)c,97

D)99,97

答案:A

解析:

4.[单选题]数据结构在计算机内存中的表示是指

A)数据的存储结构

B)数据结构

C)数据的逻辑结构

D)数据元素之间的关系

答案:A

解析:

5.[单选题]下面不能够判断字符串S是空串的是()

A)if(SEOl==O)

B)if(strlen(S)==0)

C)if(strcmp(S,"")==0)

D)if(S=='∖0')

答案:D

解析:S字符串的第一个字符,即S[0]=0,说明S是空串,A正确。

系统函数StrIen()表示字符串S的长度,若等于0,则判断字符串S是空串,B正确。

系统函数StremP()表示比较两个字符串,若相等,返回0,故StrCmP(S,"")==0可以判断字符串S是空

串,C正确。

S==,\0,这个表达式左边是字符串,右边是字符,显然是非法的,如果改写成if(S=="∖O")就可以判

断字符串S是否是空串。故D错。

6.[单选题]以下关于链表说法正确的是()。

A)链表的头节点中只存放下1个节点的指针

B)链表的尾节点中不存放指向下1个节点的指针

C)删除链表的头节点与尾节点操作完全相同

D)删除链表的头节点,意味着整个链表都被删除

答案:A

解析:

7.[单选题]以下字符数组的初始化后不能将S看作字符串处理的是o

A)chars[5]={'A','B','∖0',"D',"E');

B)charsL5]={'A',"B','C','D');

C)chars[5]={'A','B','C','D','E');

D)chars[5]=WABCDM;

答案:C

解析:

8.[单选题]在C++语言中函数的返回值类型是o

A)调用函数时由系统临时决定

B)由return语句中表达式的类型决定

C)调用函数时由主调函数类型决定

D)在定义函数时所指定的数据类型决定

答案:D

解析:

9.[单选题]有如下循环语句:for(inti=50;i>20;i-=2)COUt<<i<<’,';运行时循环体的执行次数

是()

A)14

B)30

027

D)15

答案:D

解析:

10.[单选题]一棵二叉树有67个结点,这些结点的度要么是0,要么是2。这棵二叉树中度为2的结点

有多少个

A)33

B)34

C)32

D)30

答案:A

解析:

IL[单选题]下列各组类型声明符中,含义相同的一组是()。(题)

A)signedshortint和ShOrt

B)unsignedlongint和long

C)unsignedShort和Short

D)shortint和int

答案:A

解析:

12.[单选题]以下无法完成对一维数组WOrd初始化是—

A)staticcharword[]='Turbo∖0';

B)staticcharword[]={'T','u','r','b','o','∖0'};

C)staticcharword[]={"Turbo∖0");

D)staticcharword[]="Turbo∖0";

答案:A

解析:

13.[单选题]下列标识符中,属于块作用域的是o

A)函数形参

B)语句标号

C)函数外定义的变量

D)函数原型的参数列表中的参数名

答案:A

解析:

14.[单选题]数据的逻辑结构被形式地定义为B=(K,R),其中K是—的有限集合

A)算法

B)数据元素

C)数据操作

D)逻辑结构

答案:B

解析:

15.[单选题]快速排序的平均时间复杂度

A)O(n)

B)O(IogN)

C)O(n)

D)0(nlogN)

答案:D

解析:

16.[单选题]一个有n个顶点的无向图最多有()条边

A)n

B)n-1

C)n(n-1)∕2

D)2n

答案:C

解析:

17.[单选题]数据结构的二叉链表进行树的存储时,根结点的右指针是0

A)指向最左孩子

B)指向最右孩子

C)空

D)非空

答案:C

解析:

18.[单选题]如果inta=l,b=2,c=3,d=4;,则条件表达式a

A)2

B)3

04

D)l

答案:D

解析:

19.[单选题]执行语句:for(i=l;i++<4;);后,变量i的值是------°

A)3

B)4

05

D)不定

答案:C

解析:

20.[单选题]快速排序方法在。情况下最不利于发挥其长处

A)要排序的数据量太大

B)要排序的数据中含有多个相同值

C)要排序的数据个数为奇数

D)要排序的数据已基本有序

答案:D

解析:

21.[单选题]若已定义:

inta[]={0,1,2,3,4,5,6,7,8,9},*P=a,i;

其中0≤i≤9,则对a数组元素不正确的引用是()。

A)a[p-a]

B)*(&a[i])

C)p[i]

D)a[10]

答案:D

解析:

22.[单选题]设intx=2,y=4,z=7;则执行x=y一<=x∣∣x+y!=zBx,y的值分别为。

A)0,3

B)l,3

02,3

D)2,4

答案:B

解析:

23.[单选题]要定义数组A,使得其中每个元素的数据依次为:3、9、4、8、0、0、0,错误的定义语句

是()。

A)intA口={3,9,4.8,0,0,0}

B)intA[7]={3,9,4,8,0,0,0}

OintA[]={3,9,4,8}

D)intA[7]={3,9,4,8}

答案:C

解析:

24.[单选题]下面对静态数据成员的描述中,正确的是O

A)类的不同对象有不同的静态数据成员值

B)类的每个对象都有自己的静态数据成员

C)静态数据成员是类的所有对象共享的数据

D)静态数据成员不能通过类的对象调用

答案:C

解析:

25.[单选题]设一组初始记录关键字序列为(65,56,72,99,86,25,34,66),则以第一个关键字65为基

准而得到的一趟快速排序结果是O

A)34,56,25,65,86,99,72,66

B)25,34,56,65,99,86,72,66

034,56,25,65,66,99,86,72

D)34,56,25,65,99,86,72,66

答案:A

解析:

26.[单选题]C++语言中,编译后生成的文件扩展名为一

A)*.cpp

B)*.obj

C)*.exe

D)*.h

答案:B

解析:

27.[单选题]下列设置函数参数默认值的说明语句中,错误的是

A)intfun(intX,inty=10)

B)intfun(intx=5,int=10)

C)intfun(intx=5,inty)

D)intfun(intX,inty=a+b)

答案:C

解析:

28.[单选题]下列字符串可以用做C++标识符的是()。(题)

A)A123

B)foo~bar

C)case

D)3var

答案:A

解析:

29.[单选题]在C++语言中,用于实现运行时多态性的是()

A)内联函数

B)重载函数

C)模板函数

D)虚函数

答案:D

解析:

30.[单选题]循环While(inti=0)i—;执行次数是(A)。

A)0

B)l

C)5

D)无限

答案:A

解析:

31.[单选题]关于new运算符的下列描述中,错误的是()

A)它可以用来动态创建对象和对象数组

B)使用它创建的对象或对象数组可以使用运算符delete删除

C)使用它创建对象时要调用构造函数

D)使用它创建对象数组时必须指定初始值

答案:D

解析:

32.[单选题]C++语言源程序文件的扩展名是()。

A)cpp

B)obj

C)exe

D)sin

答案:A

解析:

33.[单选题]进程之间的通信方式不包括?

A)消息队列

B)共享内存

C)套接字(Socket)

D)锁

答案:D

解析:

34.[单选题]下列哪个类型函数不适合声明为内联函数O

A)函数体语句较多

B)函数体语句较少

C)函数执行时间较短

D)函数执行时间过长

答案:A

解析:内联函数的适用情况:只有几条语句,且频繁调用的小函数。故A明显错误。

35.[单选题]下列有关函数的说法正确的是()。

A)在C++语言中,若对函数类型未加说明,则系统隐含类型为VOid。

B)C++函数必须有返回值,否则无法使用。

OC++函数既可以嵌套定义,又可以可递归调用。

D)C++函数中,形式参数必须指定为确定的类型。

答案:D

解析:

36.[单选题]有如下程序:#includeusingnamespacestd;voidconvert(intd){if(d<10){cout<<d;

convert(d+l);

}

cout<<d;

)

Intmain()

{convert(6);

return0;

A)6677889910

B)12344321

C)67899876

D)6789109876

答案:D

解析:

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

Inti=4;intj=l;

Intmain(){

inti=8,j=i;

cout<<i<<j<<endl;

)

运行时的输出结果是()。

A)44

B)41

C)88

D)81

答案:C

解析:

38.[单选题]执行下列程序后,屏幕的输出是()。

⅛include<iostream>

Usingnamespacestd;

Voidswap(int

A,intb)

(

inttemp=a;

a=b;

b=temp;

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

}

Intmain()

inta=3,b=2;

swap(a,b);

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

return0;

)

A)a=2,b=3

A=3,b=2

B)a=3,b=2

A=3,b=2

C)a=2,b=3

A=2,b=3

D)a=3,b=2

A=2,b=3

答案:A

解析:

39.[单选题]下列选项中,不属于C++程序开发步骤的是o

A)编辑

B)编译

C)解释

D)连接

答案:C

解析:

40.[单选题]如下程序段运行后,变量X和y的值分别是αvoidswap(inta,int&b){int

c=a;a=b;b=c;}intmain(){intx=0,y=l;swap(x,y);}

A)I和0

B)O和1

C)O和0

D)I和1

答案:C

解析:

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

A)重载函数名一定相同

B)重载函数必须为不同的形参列表

C)重载函数形参的个数必须不同

D)重载函数的返回值一定不同

答案:A

解析:

42.[单选题]运行如下程序,输出结果为()。

^include<iostream>

Usingnamespacestd;

Intmain(){

intx=l,y=0;

if(!x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

cout«y«endl;

return0;

)

A)3

B)2

Ol

D)0

答案:D

解析:无满足条件的情况,y值不变。

43.[单选题]下列哪个编译指令属于条件编译指令()

A)ttinclude

B)Jtdefine

C)#else

D)ttpragma

答案:C

解析:

44.[单选题]对于int*pa[5];的描述,()是正确的。

A)pa是一个指向数组的指针,所指向的数组是5个int型元素;

B)pa是一个指向某个数组中第5个元素的指针,该元素是int型变量;

Opa[5]表示某个数组的第5个元素的值;

D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针

答案:D

解析:

45.[单选题]数据结构中,已知一棵完全二叉树上有IOOl个结点,则其中叶子结点的个数是

A)250

B)500

0254

D)都不对

答案:D

解析:

46.[单选题]某二叉树的中序遍历序列为CBADE,后序遍历序列为CBADE,则前序遍历序列为(

)

A)EDABC

B)CBEDA

C)CBADE

D)EDCBA

答案:A

解析:

47.[单选题]以下4个选项中,不能看作一条语句的是()。

A)if(b==0)m=l;n=2

B)a=0,b=0,c=0

C)if(a>O)

D){;}

答案:B

解析:

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

chars[20]=""hello∖0∖t∖∖"";

printf(""%d%d∖n"",strlen(s),sizeof(s));"

A)1111

B)520

Oil20

D)2020

答案:B

解析:

49.[单选题]关于网的说法正确的是

A)每个边(或弧)都附加一个权值的图,称为带权图

B)有一个边附加一个权值的图,称为带权图

C)带权的非连通图称为网

D)不带权的连通图称为网

答案:A

解析:

50.[单选题]以下排序算法平均时间复杂度和插入排序相同的是()

A)冒泡排序

B)希尔排序

C)快速排序

D)以上说法都不正确

答案:A

解析:

51.[单选题]关于缺省(默认)构造函数的参数,下列描述错误的是o

A)可以无形参,也可以有形参

B)若给出形参,则所有形参都有默认值

C)可以给出对应实参值

D)一定不能给出对应实参的值

答案:D

解析:

52.[单选题]设VOidfl(int*m,long&n);inta;longb;则以下调用合法的是(B)。

A)fl(a,B);

B)fl(fea,B);

C)fl(a,&b);

D)fl(&a,&b)

答案:B

解析:

53.[单选题]对于长度为18的有序顺序表,若采用折半搜索,则搜索第15个元素的搜索长度为

A)3

B)4

05

D)6

答案:A

解析:

54.[单选题]设函数Voidswap(int⅛,int&)将交换两形参的值,如两整型变量inta=10;int

b=15;

则执行swap(a,b)后,a、b值分别为()

A)10,10

B)10,15

015,10

D)15,15

答案:C

解析:

55.[单选题]若有定义''intx=20;”,则语句wcout<

A)14

B)0xl4

C)24

D)024

答案:C

解析:

56.[单选题]要求指针P既不可以修改其本身的内容,也不可修改其所指向地址的内容,定义正确的

是()

A)constchar*p=rtABCDn;

B)char*constp="ΛBCD";

C)charconst*p="ABCD";

D)constchar*constp="ΛBCD";

答案:D

解析:C++语言也可以使用ConSt限定访问权限,const修饰指针变量时,基本含义如下:

1)如果唯一的ConSt位于符号*的左侧,表示指针所指数据是常量,数据不能通过本指针改变,但可

以通过其他方式进行修改;指针本身是变量,可以指向其他的内存单元。

2)如果唯一的ConSt位于符号*的右侧,表示指针本身是常量,不能让该指针指向其他内存地址;指

针所指的数据可以通过本指针进行修改。

3)在符号*的左右各有一个COnSt时,表示指针和指针所指数据都是常量,既不能让指针指向其他地

址,也不能通过指针修改所指向的内容。故本题选D。

57.[单选题]模板函数的真正代码是在()时候产生。

A)源程序中声明函数时

B)源程序中定义函数时

C)源程序中的调用函数时

D)运行执行函数时

答案:C

解析:

58.[单选题]this指针存在的目的是()。

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

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

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

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

答案:B

解析:

59.[单选题]有一“遗传”关系,设X是y的父亲,贝Ux可以把它的属性遗传给y,表示该遗传关系最适

合的数据结构是

A)链表

B)栈

0队列

D)树

答案:D

解析:

60.[单选题]在编译指令中,嵌入指令是指()

Λ)ttinclude

B)ttdefine

Ottif

D)ttelse

答案:A

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

位置处。故本题选A。

61.[单选题]结构体类型变量在程序执行期间()

A)所有成员一直驻留在内存中。

B)只有一个成员驻留在内存中。

C)部分成员驻留在内存中。

D)没有成员驻留在内存中。

答案:A

解析:

62.[单选题]下列说法中错误的是o

A)公有继承时基类中的PUbIiC成员在派生类中仍是PUbliC成员

B)私有继承时基类中的ProteCted成员在派生类中仍是ProteCted成员

C)私有继承时基类中的PUbIiC成员在派生类中是PriVate成员

D)保护继承时基类中的PUbliC成员在派生类中是PrOteCted成员

答案:B

解析:

63.[单选题]要利用C++流实现输入输出的各种格式控制,如控制输出宽度SetW等,必须在程序中包

含的头文件是o

A)fstream

B)istream

C)Ostream

D)iomanip

答案:D

解析:

64.[单选题]有如下语句序列

:ifstreaminfile("DATA.DAT");if(infile,good())cout<<"A";else{cout<<"B";Ofstreamoutfile("

DATA.DAT");if(outfile.fail())cout<<"C";elsecout<<"D";}若执行这个语句序列显示的是BD,则说

明文件DATA.DATo

A)以读方式打开成功

B)以读方式打开失败,但以写方式打开成功

C)以读方式打开失败,以写方式打开也失败

D)以读方式打开成功,以写方式打开也成功

答案:B

解析:

65.[单选题]在C++中有以下4条语句:staticinthot=200;int⅛rad=hot;hot=hot+100;cout

A)l

B)100

0200

D)300

答案:D

解析:

66.[单选题]下面程序的输出结果为()^includeusingnamespacestd;unsigned

func(unsignednum){unsignedd=l,k;do{k=num%10;num∕=10;}while(num);return(k);}

intmain(){unsignedn=26;cout

A)6

B)4

C)2

D)5

答案:C

解析:

67.[单选题]若有数组定义"inta[][3]={l,2,3,4,5,6};",则a[l][0]的值是()。

A)l

B)2

04

D)5

答案:C

解析:

68.[单选题]如果调用带有默认参数的函数时缺少一个参数,贝M)参数就作为这一参数。

A)第一个

B)最后一个

C)中间一个

D)以上都不是

答案:B

解析:

69.[单选题]已知类X中的一个成员函数说明如下:voidSet(X&a),其中X&a的含义是()。

A)指向X的指针为a

B)将a的地址赋值给变量Set

Oa是类X的对象引用,用来作为Set()的形参

D)变量X与a按位相与作为函数SetO的形参

答案:C

解析:

70.[单选题]为实现快速排序算法,待排序序列宜采用的存储方式是。。

A)顺序存储

B)链式存储

C)堆

D)栈

答案:A

解析:

71.[单选题]对具有n个元素的有序顺序表进行折半搜索,则搜索任一元素的时间复杂度为

A)0(n)

B)0(n2)

OO(I)

D)0(log2n)

答案:D

解析:

72.[单选题]己知一个顺序存储的线性表,设每个结点需占m个存储单元,若第一个结点的地址

al,则第i个结点的地址为

A)al+(i-l)*m

B)al+i*m

C)al-i*m

D)al+(i+l)*m

答案:A

解析:

73.[单选题]设有说明语句:inta=l,b=2;floatx=3,y=4;以下赋值中存在语法错误的是

A)a=++x;

B)y=++b;

C)b++=x++;

D)b+=x+++y++

答案:C

解析:

74.[单选题]下面关于类中概念的描述中错误的是()。

A)类是抽象数据类型的实现

B)类是具有共同行为的若干对象的统一描述体

C)类是创建对象的样板

D)类就是C语言中的结构体类型

答案:D

解析:

75.[单选题]下列函数不能被声明为虚函数的是()。

A)构造函数

B)析构函数

0内联函数

D)普通成员函数

答案:A

解析:

76.[单选题]下面描述哪一个是错误的()

A)c++中引用类型不可以作为函数的返回类型

B)一个变量最好只定义一个引用

C)sizeof(double*)=4

D)sizeof(int*)=4

答案:A

解析:

77.[单选题]下列标识符能做C++标识符的是_

A)1841quanzhan

B)-score

C)Class

D)gpa4.0

答案:C

解析:

78.[单选题]执行以下程序段时____o

Intx=-l;

Do

(

X=x*x;

}while(!x);(题)

A)循环体将执行一次

B)循环体将执行两次

C)循环体将执行无限次

D)系统将提示有语法错误

答案:A

解析:

79.[单选题]对C++中主函数描述正确的是O

A)名称为main,可为多个

B)名称不限,可为多个

C)名称为main,必须有且只能有一个

D)名称不限,必须有且只能有一个

答案:C

解析:C++程序以∙cpp作为文件扩展名,文件中包含若干个类和若干个函数。程序中必须有且仅有一

个主函数main。,这是程序执行的总人口。

80.[单选题]下列对结构体类型变量StUdl的定义中错误的是_

A)Structstudent{intnum;intage;}studl;

B)struct{intnum;intage;};Structstudl;

C)Structstudent{intnum;intage;};Structstudentstudl;

D)Structstudent{intnum;intage;);Studentstudl;

答案:B

解析:

81.[单选题]下列有关类的说法不正确的是()。

A)对象是类的一个实例

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

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

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

答案:C

解析:

82.[单选题]一个类可以同时继承多个类,称为多继承。下列关于多继承和虚基类的表述中,错误的

是()。

A)每个派生类的构造函数都要为虚基类构造函数提供实参

B)多继承时有可能出现对基类成员访问的二义性问题

C)使用虚基类可以解决二义性问题并实现运行时的多态性

D)建立最派生类对象时,虚基类的构造函数会首先被调用

答案:C

解析:

83.[单选题]设有变量说明inta,b;floatx,y;,以下C++语句中存在语法错误的语句是

A)y=x%a;

B)y=x+++x;

C)y=a+b>x+y?a:b;

D)a=x+y;

答案:A

解析:

84.[单选题]以下正确的说法是()。

A)全局变量的的作用域一定比局部变量的作用范围大

B)函数的形参可以是全局变量

C)静态(Statie)变量的生存周贯穿于整个程序运行期间

D)在定义变量时没有赋初值的auto变量和StatiC变量的初值都是随机值

答案:C

解析:

85.[单选题]有如下程序段:执行这个程序段后输出字符*的个数是

inti=l;while(l){i++;if(i==30)break;if(i%3==0)cout<<'*';}

A)10

B)8

C)9

D)30

答案:C

解析:

86.[单选题]下列关于C++函数的说明中正确的是()。

A)内联函数就是定义在另一函数体内部的函数。

B)函数体的最后一条语句必须是RETURN语句。

C)标准C++要求在调用一个函数之前,必须先声明其原型。

D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式。

答案:D

解析:

87.[单选题]当不同的类具有相同的间接基类时,()。

A)各派生类无法按继承路线产生自己的基类版本

B)为了建立惟一的间接基类版本,应该声明间接基类为虚基类

C)为了建立惟一的间接基类版本,应该声明派生类虚继承基类

D)一旦声明虚继承,基类的性质就改变了,不能再定义新的派生类

答案:C

解析:

88.[单选题]假定一个类的构造函数为"A(intaa=l,intbb=O){a=aa;b=bb;},,,则执行"AX

(4);”语句后,x.a和x.b的值分别为()o

A)I和0

B)I和4

04和0

D)4和1

答案:C

解析:

89.[单选题]设a为5,执行下列语句后,b的值不为2的是(题)

A)b=a∕2

B)b=6-(-a)

C)b=a%2

D)b=a>3?2:1

答案:C

解析:

90.[单选题]()是析构函数的特征。

A)析构函数在对象创建时调用

B)一个类中只能定义一个析构函数

C)析构函数的定义只能在类体内

D)析构函数可以有一个或多个参数

答案:B

解析:

91.[单选题]对于一个头指针为L的带头结点的单链表,判定链表为空表的条件是O

A)L=NULL;

B)L->next=NULL;

C)L->next==NULL;

D)L!=NULL;

答案:C

解析:

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

A)X==I

B)x==0

C)x!=l

D)x!=0

答案:D

解析:

93.[单选题]在32位编译器上,设有定义Char*strl="Hello",str2[]="Hello";则以下语句

printf("%d%d",sizeof(strl),sizeof(str2));的输出结果是O

A)56

B)55

066

D)46

答案:D

解析:本题主要考查了指向字符串的指针和字符数组,Strl为一个字符指针,所以sizeof为4

,str2为字符数组,其中包含6个字符,所以答案为46。

94.[单选题]假设CIaSSY:publicX,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时

,调用构造函数和析构函数的次序分别为()。

A)X,Y,Y,X

B)X,Y,X,Y

C)Y,X,X,Y

D)Y,X,Y,X

答案:A

解析:

95.[单选题]若该派生类的成员函数不能直接访问基类继承来的某个成员,则该成员一定是基类中的

()

A)私有成员

B)公有成员

C)保护成员

D)私有成员或保护成员

答案:A

解析:

96.[单选题]关于二维数组a[3][4],以下说法正确的是()。

A)&a[i]和a[i]是完全相同的,表示元素a[i]

B)fta[i]和a[i]数值完全相同,表示数组a第i行的首地址

C)a[O]和a[0][0]数值是相同的

D)该二维数组共有4行3列共12个元素

答案:B

解析:

97.[单选题]在面向对象设计中,对象有很多基本特点,其中“一个系统中通常包含很多类,这些类

之间呈树形结构”这一性质指的是对象的()

A)分类性

B)标识唯一性

C)继承性

D)封装性

答案:C

解析:

98.[单选题]不能作为函数重载的判断依据的是()

A)const

B)返回类型

C)参数个数

D)参数类型

答案:B

解析:实现函数的重载必须满足下列条件之一:

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

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

用COnSt修饰传递参数,意思是通知函数,它只能使用参数而无权修改它,可以作为函数重载的判断

依据。返回类型不能作为函数重载的依据。故本题选B。

99.[单选题]下列各函数中,()不是类的成员函数。

A)构造函数

B)析构函数

C)友元函数

D)拷贝构造函数

答案:C

解析:

100.[单选题]设X为整型变量,不能正确表达数学关系1VXV5的C++逻辑表达式是()。

A)l<X

B)x==2i∣x==3Ilx==4

Ol

D)!(x=5)

答案:A

解析:

IOL[单选题]二叉树是非线性数据结构,所以Oo

A)它不能用顺序存储结构存储

B)它不能用链式存储结构存储

C)顺序存储结构和链式存储结构都能存储

D)顺序存储结构和链式存储结构都不能使用

答案:C

解析:

102.[单选题]在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为

A)rear=rear->next;

B)front=front->next;

C)rear=front->next;

D)front=rear->next;

答案:B

解析:

103.[单选题]以下叙述中正确的是。

A)在程序的一行上可以出现多个有效的预处理命令行

B)使用带参数的宏,参数的类型应与宏定义时的参数一致

C)宏替换不占用运行时间,只占编译时间

D)若有如下宏定义:#defineCR045,则宏名为CR

答案:C

解析:

104.[单选题]类的构造函数在以下什么情况下会被自动调用()

A)定义成员函数时

B)定义对象时

C)定义数据成员时

D)定义友元函数时

答案:B

解析:

105.[单选题]已知联合类型:

unionstudent

{

intnum;

charname;

floatscore;

charsex;

}a;

则SiZeof(a)的值为()。"

A)8

B)4

C)16

D)24

答案:B

解析:

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

A)变量a的地址值

B)无意义

C)变量P的地址值

D)3

答案:D

解析:指针P指向整型变量a,P中保存a的地址,而不是a中的值3。而*p表示地址中的值,即为3。地

址与地址中的值不要混淆。

107.[单选题]为了避免在嵌套的条件语句if…else中产生二义性,C++语言规定if…else匹配的原则

是()。

A)else子句与所排位置相同的if配对

B)else子句与其之前最近的if配对

C)else子句与其之后最近的if配对

D)else子句与同一行上的if配对

答案:B

解析:

108.[单选题]布尔类型标识符是()

A)void

B)short

C)long

D)bool

答案:D

解析:布尔类型标识符是bool。

如果函数没有返回值,那么应声明为Void类型。

Short短整型。

Iong长整型。

109.[单选题]下面描述是哪个排序算法的特点:在进行一趟排序结束后,不一定能够选出一个元素

放在其最终位置上

A)冒泡排序

B)快速排序

C)希尔排序

D)以上说法都正确

答案:C

解析:

110.[单选题]下列叙述中错误的是o

A)编译预处理是编译器在对源程序正式编译之前,对源程序进行的文字上的处理工作

B)编译预处理命令行只能位于C++源文件的最前面

OC++源程序中有效的预处理命令行都是以#开始的

D)"ttdefinePI314w是正确的宏定义

答案:B

解析:

IlL[单选题]能够从输入流中提取指定长度的字节序列的函数是()o

A)get

B)getline

C)read

D)cin

答案:C

解析:

112.[单选题]已知函数f(inta,intb),则以下函数调用正确的是()。

A)f(int1,int2)

B)f(l,2)

Of(I)

D)f(a,b)

答案:B

解析:

113.[单选题]IO流中istream继承于()类

A)Ostream

B)ios

C)ifstream

D)iostream

答案:B

解析:

114.[单选题]对于int*target[5]的描述,以下选项是正确的是()

A)target是一个具有5个元素的指针数组,每个元素是一个int类型的指针

B)target[5]表示某个数组的第5个元素的值

Otarget是一个指向数组的指针,所指向的数组是5个int类型的元素

D)target是一个指向某个数组中第5个元素的指针,该元素是int类型的变量。

答案:A

解析:int*target[n]是指针数组,□优先级高,先与target结合成为一个数组,再由int*说明这是

一个整型指针数组,它有n个指针类型的数组元素。int(*target)[n]是数组指针,()优先级高,首

先说明target是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是

target的步长。

115.[单选题]函数默认参数在函数原型中说明,默认参数必须放在参数序列的O

A)前部

B)中部

C)后部

D)两端

答案:C

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

连续若干个实参。即默认参数必须在参数序列的后部。

116.[单选题]关于对象概念的描述中,()是错误的。

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

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

C)对象是一个状态和操作(或方法)的封装体;

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

答案:A

解析:

117.[单选题]"以下代码片段的输出结果为。()

char*ps=""hellogame"";

printf(""%s∖n"",ps+6);"

A)game

B)g

C)ogame

D)编译错误

答案:A

解析:

118.[单选题]在一个被调用函数中,关于return语句使用的描述,错误的是()

A)被调用函数中可以不用return语句

B)被调用函数中可以使用多个retuι∙n语句

C)被调用函数中,如果有返回值,就一定要有retum语句

D)被调用函数中,一个retuι∙n语句可返回多个值给调用函数

答案:D

解析:被调用函数中,一个return语句只能返回一个值给调用函数。故D错误。

return语句当然可以有多条,只不过函数运行的时候,最后只会执行其中的一条。故B正确。

函数有返回值,那么函数就要返回其声明类型的值,所以应该有return语句返回相应的值,否则编

译出错。故C正确。

119.[单选题]下列字符串中,正确的C++标识符是()。(题)

A)_256

B)foo-1

C)2b

D)for

答案:A

解析:

120.[单选题]关于函数的调用下面正确的是.o

A)f函数调用门函数,fl函数调用f2函数,称为函数的递归调用

B)函数可以嵌套定义,也可以嵌套调用

C)一个函数可以自己调用自己,称为函数的嵌套调用

D)函数返回时可以不带返回值,这时函数在定义时其返回值的类型用Void表示

答案:D

解析:

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

Sinclude<iostream>

Usingnamespacestd;

Intmain(){

inta=-2,b=0;

WhiIe(a++&&++b);

cout<<a«','<<b«endl;

return0;

}

程序运行结果为()。

A)l,3

B)0,2

C)0,3

D)l,2

答案:D

解析:

122.[单选题]getline函数的功能是从输入流中读取()。

A)一个字符

B)当前字符

C)一行字符

D)指定若干个字节

答案:C

解析:

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

A)intfun(intx,int);

B)intfun(int,int);

C)intfun(int,int=4);

D)intfun(intx;inty);

答案:D

解析:

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

≠include<iostream,h>

voidmain()

{inti,s=0;

for(i=l;i<10;i+=2)s+=i;

cout<<s;}

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

A)自然数1〜9的累加和

B)自然数1〜10的累加和

O自然数1〜9中的奇数之和

D)自然数1-10中的偶数之和

答案:C

解析:

125.[单选题]在创建派生类对象时,构造函数的执行顺序是()o

A)对象成员构造函数-基类构造函数-派生类本身的构造函数

B)派生类本身的构造函数-基类构造函数-对象成员构造函数

C)基类构造函数-派生类本身的构造函数-对象成员构造函数

D)基类构造函数-对象成员构造函数-派生类本身的构造函数

答案:D

解析:

126.[单选题]下列变量定义中合法的是O

A)short_a=l.Oe-I;

B)doubleb=l+5e2.5;

C)longdo=0xfdaL;

D)float2_and=l-e-3;

答案:A

解析:

127.[单选题]假定AB为一个类,则()为该类的拷贝构造函数的原型说明。

A)ΛB(ABx)

B)AB(intx)

C)AB(AB&x)

D)voidAB(AB&x)

答案:C

解析:

128.[单选题]存在定义inta[10],x,*pa;,若Pa=&a[0],下列的哪个选项和其他3个选项不

是等

价的?()。

A)X=*pa;

B)X=*(a+l);

C)x=*(pa+l);

D)X=a[l];

答案:A

解析:

129.[单选题]执行下述程序的输出是O

ʌ)l

B)ll

Olll

D)llll

答案:D

解析:

130.[单选题]有以下程序intmain(){inti;for(i=0;i

A)011122

B)012

C)012020

D)120

答案:A

解析:

131.[单选题]递归函数中的形参是O

A)自动变量

B)外部变量

C)静态变量

D)可根据需要自定义存储类型

答案:A

解析:

132.[单选题]对于语句COUt

A)"coutw是一个输出流对象

B)"endl''的作用是输出回车换行

0“X”是一个变量

D)”称作提取运算符

答案:D

解析:

133.[单选题]判断字符型变量Ch是否为小写英文字母,应使用表达式()。

A)ch>='a'&ch<='z'

B)ch>='a'&&ch<='z'

C)"a'<=ch<='Z1

D)ch<='a'.Ich>='z'

答案:B

解析:

134.[单选题]下列关于重载函数的说法中正确的是:

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

B)重载函数形参个数必须不同

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

D)重载函数名可以不同

答案:C

解析:

135.[单选题]设栈S和队列Q初始状态为空,元素al,a2,a3,a4,a5和a6依次通过栈S,一个元素出

栈后即进入队列Q,若6个元素的出队序列是a2,a4,aɜ,a6,a5和al,则栈S的容量至少是•

A)6

B)4

03

D)2

答案:C

解析:

136.[单选题]对类中声明的变量,下列描述中正确的是()

A)属于全局变量

B)只属于该类

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

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

答案:C

解析:

137.[单选题]与y=x>0?l:x

A)if(x>0)y=l;elseif(x<O)y=-l;elsey=0;

B)if(x)if(x>0)y=l;elseif(x<O)y=-l;elsey=0;

C)y=-1if(x)if(x>O)y=l;elseif(x==0)y=0;elsey=-l;

D)y=0;if(x>=0)if(x>O)y=l;elsey=-l;

答案:A

解析:

138.[单选题]执行如下语句序列,不可能出现的情况是。

intx;cin»x;if(x>250)cout<<'A';if(x<250)cout<<'B';elsecout<<'A';

A)显示:A

B)显示:B

C)显示:AB

D)显示:AA

答案:C

解析:

139.[单选题]有以下程序#include"stdio.h"ttdefineSUB(a)(a)-(a)voidmain(){inta=2,

b=3,c=5,d;d=SUB(a+b)*c;printf("%d∖n",d);}程序运行后的输出结果是()

A)O

B)-12

C)-20

D)10

答案:C

解析:宏定义在编译时会替换程序中的内容,是直接替换,不改变优先级。

140.[单选题]静态成员函数不能说明为O

A)整型函数

B)浮点函数

C)虚函数

D)字符型函数

答案:C

解析:

141.[单选题]在关键字PUbIiC后面定义的成员为类的()成员

A)私有

B)公用

C)保护

D)任何

答案:B

解析:

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

A)10

B)20

025

D)30

答案:C

解析:

143.[单选题]下面有关类说法不正确的是O

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

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

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

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

答案:C

解析:

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

#include<iostream>

Usingnamespacestd;

Voidfunction2(intn);

Voidfunctionl(intn){

if(n<=0)return;

function2(n-2);

)

Voidfunction2(intn){

if(n<=0)return;

functionl(n^l);

}

Intmain){

functionl(5);

return0;

}

下列关于程序运行情况的描述中,正确的是()。

A)functionl运行1次,function2运行2次

B)functionl运行2次,function2运行1次

C)functionl运行2次,function2运行3次

D)functionl运行2次,function2运行2次

答案:D

解析:

145.[单选题]对于某个函数调用,不给出调用函数的声明的情况是0

A)被调用函数是无参函数

B)被调用函数是无返回值的函数

C)函数的定义在调用处之前

D)函数的定义有别的程序文件中

答案:C

解析:

146.[单选题]关于类的静态成员的不正确描述是()。

A)静态成员不属于某个对象,是类的共享成员

B)静态数据成员要在类外定义和初始化

C)静态成员函数不拥有this指针,需要通过类参数访问对象成员

D)只有静态成员函数可以操作静态数据成员

答案:D

解析:

147.[单选题]关于常数据成员的说法不正确的是()。

A)常数据成员的定义形式与一般常量的定义形式相同,只不过常数据成员的定义必须出现在类体中

B)常数据成员必须进行初始化,并且不能被更新

C)常数据成员通过构造函数的成员初始化列表进行初始化

D)常数据成员可以在定义时直接初始化

答案:D

解析:

148.[单选题]下列关于纯虚函数与抽象类的描述中,错误的是:

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

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

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

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

答案:D

解析:

149.[单选题]设有说明ConStchar*constp="ABCD";,则下列选项中正确的是()

A)允许修改指针P本身,且允许通过P修改所指向的数据

B)允许修改指针P本身,且禁止通过P修改所指向的数据

C)禁止修改指针P本身,且允许通过P修改所指向的数据

D)禁止修改指针P本身,且禁止通过P修改所指向的数据

答案:D

解析:C++语言也可以使用COnSt限定访问权限,const修饰指针变量时,基本含义如下:

1)如果唯一的COnSt位于符号*的左侧,表示指针所指数据是常量,数据不能通过本指针改变,但可

以通过其他方式进行修改;指针本身是变量,可以指向其他的内存单元。

2)如果唯一的ConSt位于符号*的右侧,表示指针本身是常量,不能让该指针指向其他内存地址;指

针所指的数据可以通过本指针进行修改。

3)在符号*的左右各有一个ConSt时,表示指针和指针所指数据都是常量,既不能让指针指向其他地

址,也不能通过指针修改所指向的内容。

本题中,

ConSt既出现在*的左侧,也出现在*的右侧,表示指针本身及指针所指的数据都是不可修改的。故本

题选D。

150.[单选题]关于new运算符的下列描述中,错误的是()

A)它可以用来动态创建对象和对象数组

B)使用它创建的对象或对象数组可以使用运算符delete删除

C)使用它创建对象时要调用构造函数

D)使用它创建对象数组时必须指定初始值

答案:D

解析:使用“类名*对象指针名=new类名;”创建对象时,调用无参的构造函数。如果这个构造函

数是由编译器为类提供的,则类中成员变量不进行初始化。

使用“类名*对象指针名=new类名();”创建对象时,也调用无参的构造函数。如果这个构造函

数是由编译器为类提供的,则对类中的成员变量进行初始化。

故创建对象都要调用构造函数,但不一定都指定初始值。故D错误,C正确。

在C++语言中,使用new运算符实现动态内存分配。可以创建对象和对象数组。使用new创建的对象

,必须用delete来撤销。故A、B正确

151.[单选题]下列特性中不是面向对象程序设计语言所特有的是()。

A)数据封装

B)继承

C)多态性

D)模板

答案:D

解析:

152.[单选题]设有基类定义:

Classbase(

Private:inta;protected:intb;public:intc;);

为使变量成员b成为派生类的私有成员,可以采用的继承方式是()

A)私有继承

B)公有继承

C)保护继承

D)私有、公有、保护均可

答案:A

解析:

153.[单选题]下面哪1个不属于条件编译的内容?()

A)#if

B)ttifdef

Ottifndef

D)Wdefine

答案:D

解析:

154.[单选题]下面对构造函数的不正确描述是()?

A)用户定义的构造函数不是必须的

B)构造函数可以重载

C)构造函数可以有参数,也可以有返回值

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

答案:C

解析:构造函数没有返回值

155.[单选题]构造异质链表的意义是()。

A)用数组组织类对象

B)用链表组织类对象

C)用抽象类指针指向派生类对象

D)用抽象类指针构造派生类对象链表

答案:D

解析:

156.[单选题]使用值传递方式将实参传给形参,下列说法正确的是()

A)形参是实参的备份

B)实参是形参的备份

C)形参和实参是同一对象

D)形参和实参无联系

答案:A

解析:

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

classA{intx;protected:inty;public:intz;A():x(0),y(0){}intGetX(){returnx;}VoidSetX(intx)

{A::x=x;}}obj;已知Obj是类A的对象,下列语句中错误的是o

A)obj.y;

B)obj.z;

C)obj.GetX();

D)obj.SetX(O);

答案:A

解析:

158.[单选题]必须用一对大括号括起来的程序段是o

A)SWitCh语句中的CaSe标号语句

B)if语句的分支

C)循环语句的循环体

D)函数的函数体

答案:D

解析:

159.[单选题]设int*p,i;以下正确的语句是()

A)*p=&10

B)i=p

C)i=*p

D)p=2*p+l

答案:C

解析:

160.[单选题]运行如下程序,输出结果是()。

#include<iostream>

Usingnamespacestd;

Intmain(){

inta=2,b=-l,c=2;

if(a<b)

if(b<0)c=0;

elsec+=l;

cout<<c«endl;

return0;

)

A)0

B)l

C)2

D)3

答案:C

解析:第1个条件不成立,什么if语句也不执行,c值不变。

161.[单选题]下述程序运行时输入的数据为“3.6,2.4”,则输出结果为()。

ttinclude<iostream>

#include<cmath>

Usingnamespacestd;

Intmain(){

floatx,y,z;

cin»X>>y;

z=x∕y;

while(1)

(

if(fabs(z)>1.0)

{x=y;y=z;z=x∕y;}

elsebreak;

}

cout<<y«endl;

return0;

)

A)l.5

B)1.6

C)2.O

D)2.4

答案:B

解析:

162.[单选题]为了取代C中带参数的宏,在C++中使用()。

A)重载函数

B)内联函数

C)递归函数

D)友元函数

答案:B

解析:

163.[单选题]C++的预处理命令在程序中都是以什么符号开头的

A)*

B)#

C)&

D)@

答案:B

解析:

164.[单选题]已知:chara;intb;floatc;则表达式a*b∕2+c的结果为()型。

A)int

B)char

C)float

D)double

答案:C

解析:C++新标准int与float混合运算结果为float,所以不选D

165.[单选题]下列程序的运行结果为()

ttinclude<iostream>

Usingnamespacestd;

Structdate

(

Intyear;

Intmonth;

Intday;

};

Structs

(

Structdatebirthday;

Charname[20];

}x[4]={{2008,10,1,πguangzhou,,},{2009,12,25,nTianjinn;

Voidmain()

(

Cout<<x[θ].name<<x[l].birthday,year;

)(题)

ʌ)guangzhou2009

B)guangzhou2008

C)Tianjin2008

D)Tianjin2009

答案:A

解析:

166.[单选题]二叉查找树的查找效率与二叉树的什么有关

A)高度

B)结点的多少

C)树型

D)结点的位置

答案:C

解析:

167.[单选题

Ittincludeusingnamespacestd;classDΛTΛ{DATA(inta,intb)//l{x=a;y=b;Ivoidshow(){cout<

A)第1行开始的构造函数定义语法有错误

B)第2行中不能直接访问X和y

C)第3行建立Obj对象时,无法调用构造函数

D)第4行Obj可以调用ShOW函数

答案:C

解析:

168.[单选题]下列合法的标识符是()。

A)abde+

B)#KSJF

O67KDJ

D)DK3-

答案:D

解析:

169.[单选题]下列情况中,不会调用拷贝构造函数的是()

A)用一个对象去初始化同一类的另一个新对象时

B)将类的一个对象赋值给该类的另一个对象时

C)函数的形参是类的对象调用函数进行形参和实参结合时

D)函数的返回值是类的对象函数执行返回调用时

答案:B

解析:

170.[单选题]线性结构通常采用的两种存储结构为以下哪两种

A)顺序存储结构和链式存储结构

B)散列方式和索引方式

C)链表存储结构和数组

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

答案:A

解析:

171.[单选题]关于虚函数,正确的描述是:

A)构造函数不能是虚函数

B)析构函数不能是虚函数

C)虚函数可以是友元函数

D)虚函数可以是静态成员函数

答案:A

解析:

172.[单选题]if(a>b)max=a;elsemax=b;将该语句写成三目运算表达式语句是()。

A)max=(a>b)?;

B)(max=a>b)?a:b;

C)c=(a>b)?a:b;

D)max=(a>b)?a:b;

答案:D

解析:

173.[单选题]定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默认方式为

A)私有继承

B)非私有继承

C)保护继承

D)公有继承

答案:A

解析:

174.[单选题]若有如下函数定义:doublefun(intx,inty){return(x+y);}return语句中表达式

值的类型与说明的类型不一致,则以下叙述中正确的是。

A)运行时出错

B)函数返回的值为double类型

C)编译出错

D)函数返回的值为int型

答案:B

解析:

175.[单选题]关于保护继承的说法正确的是()。

A)基类的公有成员、私有成员可被子类继承下来,而且性质不变。

B)基类的公有成员、私有成员可被子类继承下来,而且性质改变为保护成员。

C)基类的公有成员、私有成员可被子类继承下来,而且性质均改变为私有成员。

D)基类的公有成员、私有成员可被子类继承下来,性质不变,私有成员不被继承。

答案:D

解析:

176.[单选题]对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长

度为()的值除以9

Λ)20

B)18

025

D)22

答案:C

解析:

177.[单选题]静态数据成员的生存期()。

A)与整个程序相同

B)不长于类的生存期

C)取决于创建的对象数

D)以上都不是

答案:A

解析:

178.[单选题]已知Charx[]="hello^^,y[]={'h','e,,'a,,'b,,'e,);

则关于两个数组长度的正确描述是()

A)相同

B)X大于y

C)X小于y

D)以上答案都

温馨提示

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

评论

0/150

提交评论