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

下载本文档

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

文档简介

试题说明

本套试题共包括1套试卷

每题均显示答案和解析

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

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

1.[单选题]多线程的说法错误的是?

A)充分利用多核,实现并发

B)不需要考虑资源的互斥,有操作系统保证

C)需要考虑资源的互斥

答案:B

解析:

2.[单选题]extern"C"的作用错误的是

A)被extern"C"修饰的变量和函数是按照C语言方式编译和链接的

B)避免C++因符号修饰导致代码不能和C语言库中的符号进行链接的问题。

C)无作用

答案:C

解析:

3.[单选题]下面选项中等价的是

A)inta[2][3]={3,4,5}与inta[][3]={3,4,5};

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

Ointa⑵[3耳{1,0,2,2,4,5}与inta[2][]={1,0,2,2,4,5};

D)inta□[3]={1,0,2,2,4,5}与inta[2][3]={1,0,2,2,4,5);

答案:C

解析:

4.[单选题]执行语句序列

Intn;

Cin>>n;

Switch(n)

case1:

case2:cout<<<l';

case3:

case4:cout<<<2';break;

default:cout<<'3';

时,若键盘输入1,则屏幕显示()。

A)l

B)2

03

D)12

答案:D

解析:

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

doublea=3333.33333333;

printf(""%f∖n"",a);"

A)3333.333333

B)3333.33333333

C)3333

D)编译错误

答案:A

解析:

6.[单选题]关于C++程序说法不正确的是()。

A)C++程序由函数构成,但只有一个main。函数。

B)C++程序中main()函数可以在程序的任何位置。

C)C++程序由main。函数开始执行,由main。结束执行。

D)main()都是没有参数的。

答案:D

解析:

7.[单选题]线性表采用顺序存储的缺点是O

A)存储密度降低

B)只能顺序访问

C)元素的逻辑顺序与物理顺序不一致

D)插入、删除操作效率低

答案:D

解析:

8.[单选题]已知类A,al和a2是类A的两个对象,X是A类的静态数据成员,则以下说法正确的是

()O

ʌ)al.X、a2.x、A::x是3个不同的变量

B)al.X和a2.X是相同的变量,A::x与它们不同

C)al.X、a2.x、A::x是相同的变量

D)x在程序运行期间的值不能改变

答案:C

解析:

9.[单选题]下列关于虚基类的描述中,错误的是o

A)使用虚基类可以消除由多重继承产生的二义性

B)构造派生类对象时,虚基类的构造函数只被调用一次

C)声明"classB:virtualpublicA”说明类B为虚基类

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

答案:C

解析:

10.[单选题]若有定义floatw;inta,b;,则合法的SWitCh语句是。

A)switch(w){easel.0:cout<<"*∖n";case2.0:cout<<"**∖n";}

B)switch(a){caselcout<<"*∖n";case2cout<<"**∖n";}

C)switch(b){casel:cout«"*\n";default:cout<<"∖n";casel+2:cout<<"**∖n";}

D)switch(a+b);{easel:cout<<"*∖n";case2:cout<<"**∖n";default:cout<<"∖n";}

答案:C

解析:

IL[单选题]下列关于C++语言全局变量与局部变量的叙述中,错误的是()

A)函数调用结束时,函数中静态局部变量不释放内存空间,变量值保留

B)函数调用结束时,函数中动态局部变量释放内存空间,变量值消失

C)全局变量的生存周期是从程序开始到程序结束

D)在一个函数或复合语句中,当局部变量与已有的全局变量重名时,在该函数或复合语句中局部变

量不起作用。

答案:D

解析:

12.[单选题]若有以下程序段,intcl=l,c2=2,c3;c3=L0/c2*cl;则执行后,c3中的值是—

A)0

B)0.5

Ol

D)2

答案:A

解析:

13.[单选题]字符型数据'A'存放在计算机中()。

A)存放的就是字母'A'

B)存放的是'A'的ASCll码值的补码

C)实际存放的是'A'的ASCn码值97

D)实际存放的是'A'的ASCn码值65

答案:C

解析:

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

A)cpp

B)h

Olib

D)obj

答案:A

解析:

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

,下列叙述中错误的是o

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

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

C)<条件>部分可以是一个if语句,例如if(if(a==0)

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

答案:C

解析:

16.[单选题]有如下程序intmain(){intn=9;while(n>6)cout

A)987

B)876

08765

D)9876

答案:A

解析:

17.[单选题]

已知POint类中只有一个构造函数,其原型如下:

Point(intx=0,inty=0);

则下列用来定义POint对象的语句错误的是:

A)Pointpl;

B)Pointp2();

C)Pointp3(3);

D)Pointp4(l,3);

答案:B

解析:若无参数,则不带括号,带括号为函数

18.[单选题]下面哪个标识符不是内存管理函数?()

A)malloc

B)calloc

C)free

D)goto

答案:D

解析:

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

#incIudeusingnamespacestd;voidfun(double*pl,double*p2,double*s){s=newdouble;*s=*pl+*(p2

++);}intmain(){doublea[2]={l.1,2.2};doubleb[2]={10.0,20.0),*s=a;fun(a,b,s);cout<<(*s)<

A)11.1

B)12.2

C)21.1

D)l.1

答案:D

解析:

20.[单选题]有如下的对类''CSample”"的说明,其中()是错误的。

ClassCSample{

A)inta=23;

B)CSample();

Public:.

C)CSample(intn);

D)~CSample(;

答案:A

解析:

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

Winclude<iostream>

Uinclude<math.h>

Usingnamespacestd;

Voidmain()

(

Inta=l,b=4,c=2;

Floatx=10.5,y=4.0,z;

Z=a+b∕c+sqrt((double)y)*1.2/c+x;

Cout<<z;

)(题)

A)14.0

B)14.7

C)14.2

D)14.9

答案:B

解析:

22.[单选题]设置虚基类的目的()

A)简化程序

B)消除二义性

C)提高运行效率

D)减少目标代码

答案:B

解析:

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

WdefineM(x,y,z)x*y+z

voidmain()

(

nta=l,b=2,c=3;

printf(""%d∖n"",M(a+b,b+c,c+a));

)"

A)19

B)17

C)15

D)12

答案:D

解析:

24.[单选题]下列为文件的扩展名,能被计算机直接执行的是()。

A)cpp

B)o

C)exe

D)h

答案:C

解析:

25.[单选题]以下对模板的声明,正确的是()。

A)template<T>

B)template<classT1,T2>

C)template<classTl,calssT2>

D)template<classTl;classT2>

答案:C

解析:

26.[单选题]下面程序的输出结果是oSincludeusingnamespacestd;intmain(){for(inti=-

1;i<4;i++)cout<<(i?'*'returnO;)

A)*#*

B)****

C)*#**

D)*#***

答案:D

解析:

27.[单选题]设有数组定义:chararray[]="China";则数组array所占的空间为()。

A)4个字节

B)5个字节

06个字节

D)7个字节

答案:C

解析:

28.[单选题]【物联网高级】栈和队列的共同特点是()

A)只允许在端点处插入和删除元素

B)都是先进后出

C)都是先进先出

D)没有共同点

答案:A

解析:

29.[单选题]C++语言是()

A)机器语言

B)仅具有面向对象特征的语言

C)既表现面向对象的特征,又表现面向过程的特征

D)汇编语言

答案:C

解析:

30.[单选题]已知定义inta=l,b=2,c=3;则表达式a>b?(a>c?a:c):b的值为()。

A)l

B)2

03

D)不确定

答案:B

解析:

31.[单选题]下列条件语句中,功能与其他语句不同的是。

A)if(a)cout<

B)if(a==0)cout<

C)if(a!=0)cout<

D)if(a==0)cout<

答案:D

解析:

32.[单选题]如想使用Std命名空间,正确的程序语句是O

A)usingstd;

B)namespacestd;

C)usingnamespace;

D)usingnamespacestd;

答案:D

解析:using语句引用其他命名空间的标识符的语法格式有两种形式:

USing命名空间名::标识符;

usingnamespace命名空间名;

故D符合。

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

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

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

C)Pa[5]表示数组的第5个元素的值,是int型的值

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

答案:D

解析:int*pa[5]中Pa是一个具有5个元素的指针数组,每个元素是一个int型指针。int(*pa)[5]中

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

34.[单选题]有如下程序

:Sincludeusingnamespacestd;intmain(){intsum;for(inti=O;i<3;i+=l){sum=i;for(intj=i;j<9;

j++)sum+=j;}cout<

A)37

B)39

OllO

D)17

答案:A

解析:

35.[单选题]希尔排序每的最后一趟排序的地址增量一定是()。

A)n

B)n∕2

01

D)任意值

答案:C

解析:

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

A)内联函数

B)重载函数

C)内部函数

D)函数模板

答案:A

解析:对于只有很少几条语句的函数,特别是频繁调用时,函数调用导致的时间开销可能会使程序运

行明显变慢。为了避免这种频繁的函数调用与返回,加快执行速度,C++语言引入了内联函数的概念

O故本题选A。

37.[单选题]字符串al="AEIJING",a2="AEI",a3="AEFANG",a4="AEFI"中最大的是

A)al

B)a2

C)a3

D)a4

答案:A

解析:

38.[单选题]设有Char*sl="ABCDE”,*s2="ABCDE”,*s3=sl;下列表达式中值等于true的是(

)-

A)sl==s2

B)sl==s3

C)s2==s3

D)strcmp(sl,s3)==0

答案:D

解析:

39.[单选题]链式存储的存储结构所占存储空间

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针

B)只有一部分,存放结点值

C)只有一部分,存储表示结点间关系的指针

D)分两部分,一部分存放结点值,另一部分存放结点所占单元数

答案:A

解析:

40.[单选题]下列十六进制常量的写法中,错误的是()。(题)

A)2f0x

B)0xaf

OOxlb

D)OxAE

答案:A

解析:

41.[单选题]计算机算法必须具备输入、输出和—等5个特性

A)可行性、可移植性和可扩充性

B)可行性、确定性和有穷性

C)确定性、有穷性和稳定性

D)易读性、稳定性和安全性

答案:B

解析:

42.[单选题]考虑函数原型Voidtest(inta,intb=7,charch='*'),下面的函数调用中,属于不合

法调用的是()

A)test(5)

B)test(5,8)

C)test(6,'#')

D)test(0,0,'*')

答案:C

解析:在C++语言中,可以在声明函数时为形参指定默认值。当调用有默认参数值的函数时,调用语

句中可以不给出对应的实参,这就相当于调用该函数时以默认值作为参数。

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

C选项中,实参有2个,少于形参的个数3,故从左至右匹配,将会把字符型实参#赋值给整型形参

b,则会产生编译错误。故选C。

43.[单选题]非线性结构是数据元素之间存在一种

A)一对多关系

B)多对多关系

C)多对一关系

D)一对一关系

答案:B

解析:

44.[单选题]在定义类成员时,为产生封装性,则需使用哪个关键字()

A)public

B)publish

C)protected

D)private

答案:D

解析:

45.[单选题]C++输入输出格式控制是在哪个头文件中定义的?()

A)iostream,h

B)iomanip.h

C)istream,h

D)ostream.h

答案:A

解析:

46.[单选题]下列程序的输出结果为012210,横线处填写错误的是o

#incIudeusingnamespacestd;ClassTest{public:Test(inta){data=a;}~Test(){cout<

A)Test(0),Test(1),Test(2)

B)0,1,2

C)Test(O),Test(1),2

D)Test(2),Test(I),Test(0)

答案:D

解析:

47.[单选题]如下程序段运行后,变量X和y的值分别是o

voidswap(inta,int&b){intc=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

解析:

48.[单选题]设置虚基类的目的是:()

A)简化程序

B)消除二义性

C)提高运行效率

D)减少目标代码

答案:B

解析:

49.[单选题]有如下程序intmain(){inty=3,x=3,z=l;cout

A)34

B)42

043

D)33

答案:D

解析:

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

intmain(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;}while(i<7);cout<

A)16

B)12

C)28

D)21

答案:A

解析:

51.[单选题]应在下列程序划线处填入的正确语句是()

ttinclude<iostream.h>>

Usingnamespacestd;

ClassBase

{public:

Voidfun({cout<<,,Base::funπ<<ENDL;}

);

ClassDerived:publicBase

{voidfun(

{_

〃显示调用基类的函数fun(

Cout<<"Derived::fun"<ENDL;}

);

A)funO;

B)Base,fun();

C)Base::fun();

D)Base->fun();

答案:C

解析:

52.[单选题]下列有关new和delete运算符的描述中,错误的是

A)new运算符分配的空间只能用delete运算符撤销

B)对一个指针只能使用一次delete

C)当用于删除数组时,在delete运算符后面可直接跟数组名,而不用管数组的维数

D)new运算符分配数组空间时不能指定初值

答案:C

解析:

53.[单选题]关于C++与C语言的关系的描述中,()是错误的。

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

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

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

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

答案:D

解析:

54」单选题]C++中,Cin函数的功能是

A)标准输入

B)标准输出

C)标准打开

D)标准关闭

答案:A

解析:

55.[单选题]下列选项中,合法的字符常量是()。

A)'x,(注:半角)

B)'XXX,

C)"x"

D)68

答案:D

解析:

56.[单选题]若有定义Char*st="howareyou";下列程序段中正确的是。

A)chara[11],*p;strcpy(p=a+l,&st[4]);

B)chara[ll];strcpy(++a,st);

C)chara[l1];strcpy(a,st);

D)chara口,*p;strcpy(p=⅛a[l],st+2);

答案:A

解析:

57.[单选题]两个类型相同的指针不能进行的运算是o

A)+

B)-

C)==

D)=

答案:A

解析:

58.[单选题]若有定义语句:inta=3,b=2,c=l;则以下赋值表达式错误的是()。

A)a=4+b=3;

B)a=b=c+1;

C)a=(b=4)+c;

D)a=l+(b=c=4);

答案:A

解析:

59.[单选题]若有11个顶点的生成树,则它的边数是

A)ll

B)12

09

D)10

答案:C

解析:

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

ttinclude<iostream>

Usingnamespacestd;

Intmain(){

inta;

cin»a;

if(a++<9)cout<<a;

elsecout<<a一一;

return0;

)

程序运行时从键盘输入9回车,则输出结果是()。

A)10

B)ll

09

D)8

答案:A

解析:虽然条件不成立,但a++执行了。

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

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

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

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

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

答案:B

解析:

62.[单选题]包含自定义头文件file.h的预处理指令是()

A)ttdefine<file.h>

B)≠includefile,h

C)Udefinefile.h

D)ttinclude"file.h"

答案:D

解析:

63.[单选题]已知函数test定义为:voidtest(){......}则函数定义中Void的含义是

A)执行函数test后,函数没有返回值

B)执行函数test后,函数不再返回

C)执行函数test后,函数返回任意类型值

D)以上三个答案都是错误的

答案:A

解析:

64.[单选题]有如下程序:Sincludeusingnamespacestd;intmain(){intsum;for(inti=0;i

A)37

B)39

OllO

D)17

答案:A

解析:

65.[单选题]如果有int型变量a,则定义指向变量a的指针P正确的写法是()

A)intP=&v

B)int*P=&v

C)int&p=*V

D)int*p=v

答案:B

解析:指针变量中保存的是一个地址,有时也称指针指向一个地址。

定义一个指向int型变量a的指针P为:int*p=&a;故选B

66.[单选题]下列字符串中不属于C++关键字的是()。

A)class

B)namespace

C)return

D)byte

答案:D

解析:

67.[单选题]要用字符数组保存字符串"test"的值,以下代码正确的是()。

A)chara[4]="test";

B)chara[5]="test";

C)chara[4];a="test";

D)chara[5];a="test";

答案:B

解析:

68.[单选题]下列程序的运行结果是o

Sincludeusingnamespacestd;voidfun(int*pl,int*s){int*t;t=newint[2];*t=*pl+*pl++;*(t+l)=*

pl+*pl;s=t;}intmain(){inta[2]={l,2},b[2]={0};fun(a,b);cout<

A)2,4

B)0,0

C)2,6

D)l,2

答案:B

解析:

69.[单选题]下列表达式中表示int变量X可以被3整除的表达式是()。

A)x∕3==0

B)x%3==0

C)x%3!=0

D)(x∕3)

答案:B

解析:

70.[单选题]按照标识符的要求,不能组成标识符的是()

A)连接符

B)下划线

C)大小写字母

D)数字字母

答案:A

解析:标识符命名规则:

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

相同。故不包括A。

71.[单选题]结构化程序设计的基本原则不包括()

A)多态性

B)自顶向下

C)模块化

D)逐步求精

答案:A

解析:在结构化程序设计中,采用自顶向下、逐步求精及模块化的思想,将复杂的大问题层层分解为

许多简单的小问题。故不包括A。

72.[单选题]应在下列程序划线处填入的正确语句是()

ClassBase

{public:

Voidfun(){cout<<"Base::fun"«endl;}};classDerived:publicBase

{voidfun(){

;〃显示调用基类的函数fun()

Cout<<"Derived::fun"<<endl;

};

A)fun();

B)Base.fun();

C)Base::fun();

D)Base->fun()

答案:C

解析:

73.[单选题]下列常量中,()不是字符常量。

A)'\005'

B)'∖n'

0,c,

D)"a"

答案:D

解析:

74.[单选题]对一棵满二叉树,m个树叶,n个结点,深度为h,则

A)n=h+m

B)h+m=2n

C)m=h-1

D)n=2^h-1

答案:D

解析:

75.[单选题]以下关于链表的说法错误的是()。

A)链表都是单向的

B)链表是1种线性结构

C)链表可以自由的在表头、表尾、表中插入元素

D)链表的每个节点数据结构都是相同的

答案:A

解析:

76.[单选题]下列有关C++程序的说法错误的是()。

A)C++语言的头文件是不被单独编译的

B)在C++程序中,在任何有分隔符的地方均可插入多行注释

C)注释是源程序的一部分,但编译时被忽略,并不转换成目标代码

D)C++语言源程序中每行只能定义一条语句

答案:D

解析:

77.[单选题]下列是为字符数组赋字符串的语句组,其中错误是—

A)CharS[10];s="program”;

B)chars[]="program,,;

C)chars[10]="Hello!,,;

D)chars[10];strcpy(s,"hello!");

答案:A

解析:

78.[单选题]通过运算符重载,可以改变运算符原有的()

A)操作数类型

B)操作数个数

C)优先级

D)结合性

答案:A

解析:

79.[单选题]编写C++程序一般需经过的几个步骤依次是

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

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

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

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

答案:B

解析:

80.[单选题]已知:charc='\010';则变量C中包含的字符个数为()。

A)4

B)l

02

D)3

答案:B

解析:正确答案B

81.[单选题]若有以下函数首部,则下面针对此函数的函数声明语句中正确的是

intfun(doublex[10],int*n)

A)intfun(doublex,int*n);

B)intfun(doublex,intn);

C)intfun(double*,int*);

D)intfun(double*,int&);

答案:C

解析:

82.[单选题]C++语言中每条语句必须以()结束

A)句号

B)小数点

C)分号

D)换行符

答案:C

解析:

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

Intf()

{staticinti=0;

ints=l;

s+=i;i++;

returns;

Intmain()

{inti,a=0;

for(i=O;i<5;i++)

a+=f();

cout<<a«endl;

return0;

}

A)20

B)24

C)25

D)15

答案:D

解析:

84.[单选题]()是给变量取一个别名,它引入了变量的同意词。

A)指针

B)引用

C)枚举

D)结构

答案:B

解析:

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

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

B)被调用函数中可以使用多个retum语句

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

D)被调用函数中一个retum语句可以返回多个值给调用函数

答案:B

解析:

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

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

B)函数中通过return语句传递函数值

C)调用函数必须在一条独立的语句中完成

D)主函数名main也可以带有形参

答案:C

解析:

87.[单选题]已知n是一个int型变量,下列语句中错误的是()。

A)long*p=newlong[n];

B)longp[n];

C)long*p=newlong(n);

D)longp[10];

答案:B

解析:

88.[单选题]使用派生类的主要原因是()

A)提高代码的可重用性

B)提高程序的运行效率

C)加强类的封装性

D)实现数据的隐藏

答案:A

解析:

89.[单选题]假定变量m定义为“intm=7;",则定义变量P的正确语句为()。

A)intP=&m;

B)int*p=&m;

C)int&p=*m;

D)int*p=m;

答案:B

解析:

90.[单选题]运算符重载是对已有的运算符赋予多重含义,因此()。

A)可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义。

B)可以改变一个已有运算符的优先级和操作数个数。

C)只能重载C++中已经有的运算符,不能定义新运算符。

D)C++中已经有的所有运算符都可以重载。

答案:C

解析:

91.[单选题]能用友元函数重载的运算符是:

A)+

B)=

C)□

D)->

答案:A

解析:

92.[单选题]定义如下变量和数组:

Intk;

Inta[3][3]={9,8,7,6,5,4,3,2,1};

则下面语句的输出结果是()。

For(k=0;k<3;k++)cout«a[k][k];

A)753

B)951

0963

D)741

答案:B

解析:

93.[单选题]下列正确的字符常量为()。

A)“a”

B),name?

Oa

D),∖101?

答案:D

解析:

94.[单选题]在C++中,容器是一种()

A)标准类

B)标准对象

C)标准函数

D)标准类模板

答案:D

解析:

95.[单选题]转义字符“反斜杠线”的表示方法正确的是()。

A)'∖'

B)∖

C)“\”

D)Λ∖,

答案:D

解析:

96.[单选题]

[派生类的析构函数]下列程序的输出是:

#include<iostream>

Usingnamespacestd;

ClassA(

Public:

~A(){cout<<"A~1}

):

ClassB:publicA{

Public:

~B(){cout<<"B~>}

);

Intmain(){

Bbl;

return0;

)

A)B~

B)A~B~

C)B~A~

D)无输出

答案:C

解析:

97.[单选题]对于C++结构体(StrUCt)中定义的成员,其隐含的访问权限为

A)public

B)protected

C)private

D)static

答案:A

解析:

98.[单选题]下列关于break语句描述中是错误的。

A)break语句可用于if语句体内,它将退出if语句

B)break语句可用于循环体内,它将退出该重循环

Obreak语句可用于SWitCh语句中,它将退出SWitCh语句

D)break语句在一个循环体内可以出现多次

答案:A

解析:

99.[单选题]"以下函数的值的类型是()。

f(floatx)

(

floaty;

y=3*χ-4;

returny;

)"

A)int

B)不确定

C)void

D)float

答案:A

解析:

100.[单选题]关于对象和类的关系,说法正确的是()。

A)同属于一类的对象,具有相同的数据成员和成员函数。

B)对象是具体,是类的对象,同其他变量一样,先定义后使用。

C)同一类的不同对象,其具有的操作可不同,具体的操作也不同。

D)不同类的对象,可有相同的操作。

答案:C

解析:

101.[单选题]循环队列存储在数组A[0..m]中,则入队时的操作为

A)rear=rear+1

B)rear=(rear+l)mod(m-l)

C)rear=(rear+1)modm

D)rear=(rear+1)mod(m+l)

答案:D

解析:

102.[单选题]循环队列的队满条件为()

A)(sq.rear+1)%maxsize==(sq.front+1)%maxsize;

B)(sq.front+1)%maxsize==sq.rear

C)(sq.rear+1)%maxsize==sq.front

D)sq.rear==sq.front

答案:C

解析:

103.[单选题]下面有关静态成员函数的描述中,正确的是()

A)在静态成员函数中可以使用this指针

B)在建立对象前,就可以为静态数据成员赋值

C)静态成员函数在类外定义是,要用StatiC前缀

D)静态成员函数只能在类外定义

答案:B

解析:

104.[单选题]C++允许在结构中定义函数,这些函数称为O

A)静态函数

B)构造函数

C)析构函数

D)成员函数

答案:D

解析:此题中的结构可以理解为类,而类中声明的成员函数用来对数据成员进行操作,还必须在程序

中实现这些函数。所以可以将类中定义的函数称为成员函数。

105.[单选题]下列表达式,哪个是声明P为指向常量的常量指针()

A)constint*P

B)int*constP

C)constint*constP

D)int*P

答案:C

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

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

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

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

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

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

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

P为指向常量的常量指针,即指针和所指数据都是常量,故需*左右各有一个ConSt,本题选C。

106.[单选题]如果类A被声明成类B的友元,贝M)

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

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

C)类A的成员函数不得访问类B的成员

D)类B不一定是类A的友元

答案:D

解析:

107.[单选题]已知inta[]={0,2,4,6,8,10},*p=a+1;其值等于0的表达式是()。

A)*(p++)

B)*(++p)

C)*(p-)

D)*(―p)

答案:D

解析:

108.[单选题]若已定义X和y为double类型,则表达式:x=l,y=x+3/2的值是。(题)

A)l

B)2

02.0

D)2.5

答案:B

解析:

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

A)定义函数时,形参的类型说明可以放在函数体内

B)return后边的值不能为表达式

C)如果函数值的类型与返回值类型不一致,以函数值类型为准

D)如果形参与实参类型不一致,以实参类型为准

答案:C

解析:

110.[单选题]若运行时给变量输入12,则以下程序段的运行结果是()。int

X,y;cin>>x;y=x>12?x+10:χ-12;cout<<y;

A)0

B)22

C)12

D)10

答案:A

解析:

IlL[单选题]派生类可以访问其基类的()。

A)公有成员

B)保护成员

C)私有派生

D)公有和保护成员

答案:D

解析:

112.[单选题]在类中说明的成员可以使用关键字的是O

A)public

B)extern

C)cpu

D)register

答案:A

解析:

113.[单选题]所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这

实体也就是()

A)类

B)对象

C)函数体

D)数据块

答案:A

解析:面向对象方法中的类:是对具有相同属性和行为的同一类对象的抽象描述。

故封装将对象属性和操作结合在一起,构成独立的单元,即实体。故本题选A。

∏4.[单选题]下列给字符数组进行初始化中,()是正确的。

A)charsi[]="12345abcd";

B)chars2[3]="xyz";

C)chars3[][3]={'a','x','y'};

D)chars4[2[3]={"xyz","mnp");

答案:A

解析:

115.[单选题]#include<iostream>

Usingnamespacestd;

Voidmain()

(

Inti,j,x=O;

For(i=0;i<2;i++)

(

X++;

For(j=0;j<=3;j++)

(

If(j%2)

Continue;

X++;

)

X++;

)

Cout<<"x="<<x<<endl;

}(题)

A)x=4

B)x=6

C)x=8

D)x=10

答案:C

解析:

116.[单选题]对定义重载函数的下列要求中()是错误的。

A)参数的个数可以不同

B)参数中至少有一个类型不同

C)要求参数个数相同时,参数类型不同

D)要求函数的返回值不同

答案:D

解析:

117.[单选题]与单链表相比,双链表的优点之一是

A)插入、删除操作更简单

B)可以进行随机访问

C)可以省略表头指针或表尾指针

D)顺序访问相邻结点更灵活

答案:D

解析:

118.[单选题]从逻辑上可以把数据结构分为—两大类

A)动态结构、静态结构

B)顺序结构、链式结构

C)线性结构、非线性结构

D)初等结构、构造型结构

答案:C

解析:

119.[单选题]下列语句将输出字符的个数为()。inti=100;while(l){i—;if(i==0)

break;

Cout<<'*';}(题)

A)99

B)98

OlOO

D)101

答案:A

解析:

120.[单选题]下列说法中错误的是()。

A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值

B)若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽

C)静态全局变量可以被其他的编辑单位所引用

D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语句)时生成,退

出其所在的函数体(或复合语句)时消失

答案:C

解析:

121.[单选题]下列选项中,两个条件语句语义等价的是()。

A)if(x=0)cout<<x;和if(x==0)cout«x;

B)if(x)cout<<x;和if(x==0)cout<<x;

C)if(x)cout<<x;和if(x>0)cout<<x;

D)if(x)cout«x;和if(x!=O)cout«x;

答案:D

解析:

122.[单选题]在下列选项中,没有构成死循环的程序段是______。(题)

A)Itinclude<iostream>

Usingnamespacestd;

Voidmain()

(

Inti=2020;

While(I)

(

I=i%100+l;

If(i>100)

Break;

)

}

B)#include<iostream>

Usingnamespacestd;

Voidmain()

(

For(;;);

}

C)ttinclude<iostream>

Usingnamespacestd;

Voidmain()

{

Inti=36;

While(i);

-i;

)

D)#include<iostream>

Usingnamespacestd;

Voidmain()

(

Inti=10000;

Do

(

++i;

}while(i>=1000);

答案:D

解析:

123.[单选题]已知inta[10],*p=a;,则下列对数组a中元素正确的引用是。

Λ)aL10]

B)a+5

C)*(a+10)

D)*(p+5)

答案:D

解析:

124.[单选题]设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b∕b的值是

A)6.500000

B)6

C)5.500000

D)6.000000

答案:D

解析:

125.[单选题]下面关于异常机制说法错误的是()。

A)抛出异常的地方和处理异常的地方可以不在同一层,即可以不在同一函数中发生

B)系统在处理异常的层次关系时是自动按调用链查找的

C)在同一个位置可以抛出属于不同层级的异常

D)当最高层级处仍找不到匹配的异常处理时,系统就忽略这个异常

答案:D

解析:

126.[单选题]下面有关数值书写错误的是()。

A)1242D

B)IOllOB

C)34H

D)C4D2Q

答案:D

解析:

127.[单选题]现有如下程序,则程序的输出结果为(>

Intf(int

A,intb)

{intc;

if(a>0&&a<10)c=(a+b)∕2;

elsec=a*b∕2;

returnc;

Intmain()

{inta=8,b=20,c;

c=f(a,b);

cout<<c«endl;

return0;

)

A)随机数

B)80

C)28

D)14

答案:D

解析:

128.[单选题]对于二分搜索法,下面描述正确的是()

A)可用于数组

B)可用于单链表

C)最坏情况下时间复杂度是0(N*LogN)

D)以上都不正确

答案:A

解析:

129.[单选题]有函数intfunc(inti)的实现为intfunc(inti){if(i>1)returni*func(i

-1);elsereturn1;}请问函数调用func(5)的返回值是多少()

A)5

B)15

020

D)120

答案:D

解析:

130.[单选题]

[虚基类初始化]下列程序的输出是:

ttinclude<iostream>

Usingnamespacestd;

ClassA(public:A(){cout<<"A";}};

ClassB:virtualpublicΛ{public:B(){cout<<"B";}};

ClassCzvirtualpublicA{public:C(){cout<<"C";}};

ClassD:public

B,publicC{public:D(){cout<<"D";}};

Intmain(){

Ddl;return0;

A)ABACD

B)ΛBCD

OBCD

D)D

答案:B

解析:

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

)o

A)true

B)false

C)与X的值相同

D)与X的值相反

答案:D

解析:

132.[单选题]下面程序的输出结果是()ttincludeusingnamespacestd;intfun(inta,int

b){return(++a*b++);}intmain(){intx=3,y=4,z=5,r;r=fun(fun(x,y),z);cout

A)8534

B)6034

012645

D)8545

答案:A

解析:

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

A)返回类型

B)const

C)参数个数

D)参数类型

答案:B

解析:

134.[单选题]定义以下结构体类型structs(intx;charf;

}a[3]:

语句Printf("%d",sizeof(a))的输出结果为()

A)4

B)12

015

D)6

答案:C

解析:

135.[单选题]下列程序的输出结果为。

#incIudeusingnamespacestd;intmain(){enumcolor(red,yellow,blue=4,green,white}cl,c2;cl=ye

How;c2=white;cout<

A)l,6

B)2,5

01,4

D)2,6

答案:A

解析:

136.[单选题]设x,y,z,t均为int型变量,则执行以下语句后,t的值为。

x=y=z=l;t=++xI|++y&&++z;

A)不定值

B)2

Ol

D)0

答案:C

解析:

137.[单选题]ASCΠ码(含扩展ASCn码)可以用一个字节表示,则可以表示的ASCn码值个数为___。

(

题)

A)1024

B)512

0256

D)128

答案:C

解析:

138.[单选题]设已有定义Char*st="howareyou";下列程序中正确的是。

A)chara[ll],*p;strcpy(p=a+l,&st[4]);

B)chara[l1],*p;strcpy(++a,st);

C)chara[11],*p;strcpy(a,st);

D)chara[],*p;strcpy(p=a[l],st+2);

答案:A

解析:

139.[单选题]若有说明:intn=2,*p=&n,*q=p;,则以下非法的赋值语句是()

A)n=*q

B)p=n

OP=q

D)*q=*P

答案:B

解析:指针变量中保存的是一个地址,有时也称指针指向一个地址。

指针P指向整型变量n,P中保存n的地址,而不是值2。P指向的地址中的值是2。地址与地址中的值不

要混淆。

故P是指向int类型的指针,n是int类型的数据,不能p=n。故B错。

140.[单选题]#ifdefM

A;

≠else

B;

Jtendif

这段代码的意思是()。"

A)如果定义了标识符M,则编译A,否则编译B

B)如果定义了变量M,则编译A,否则编译B

C)如果定义了标识符M,则执行A,否则执行B

D)如果定义了变量M,则执行A,否则执行B

答案:A

解析:

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

A)p=l;

B)*q=2;

C)q=p;

D)*p=5;

答案:D

解析:

142.[单选题]所有在函数中定义的变量,连同形式参数,都是()

A)全局变量

B)局部变量

C)静态变量

D)寄存器变量

答案:B

解析:

143.[单选题]已知有声明inta[10];,下列对a数组元素的正确引用是。

A)aL10]

B)a[2.5]

C)a(5)

D)a[10-10]

答案:D

解析:

144.[单选题]C++语言的跳转语句中,对于break和ContinUe说法正确的是()0

A)break语句只应用于循环体中。

B)continue语句只应用于循环体中。

C)break是无条件跳转语句,continue不是。

D)break和ContinUe的跳转范围不够明确,容易产生问题。

答案:B

解析:

145.[单选题]假设AClaSS为抽象类,下列正确的说明语句是()。

A)Aclassfun(int);

B)Aclass*p;

C)intfun(Aclass);

D)AclassObj;

答案:B

解析:

146.[单选题]设变量a和b的值满足a<b,判断变量X的值是否位于闭区间[a,b]的表达式是()。

A)a<x<y

B)a<=x<=b

C)x>=a⅛fex<=b

D)a<x&&x<b

答案:C

解析:

147.[单选题]以下关于函数的叙述中正确的是_

A)每个函数都可以被其它函数调用(包括main函数)

B)每个函数都可以被单独编译

C)每个函数都可以单独运行

D)在一个函数内部可以定义另一个函数

答案:B

解析:

148.[单选题]有函数原型Voidfun2(int);下面选项中,不正确的调用是()。

A)inta=21;fun2(a);

B)inta=15;fun2(a*3);

C)intb=100;fun2(&b);

D)fun2(256);

答案:C

解析:

149.[单选题]关于成员函数特征的下列描述中,()是错误的。

A)成员函数一定是内联函数

B)成员函数可以重载

C)成员函数可以设置缺省参数值

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

答案:A

解析:

150.[单选题]在用关键字CIaSS定义的类中,以下叙述正确的是()。

A)在类中,不作特别说明的数据成员均为私有类型

B)在类中,不作特别说明的数据成员均为公有类型

C)类成员的定义必须是成员变量定义在前,成员函数定义在后

D)类的成员定义必须放在类定义体内部

答案:A

解析:

151.[单选题]下列常量中,()不是字符常量。

A),\005'

B),∖n,

C)'c,

D)“a”

答案:D

解析:

152.[单选题]执行下列语句后,输出的结果是()inta=3,b=5;floatc=b∕a;cout<<c<<endl;

A)1.66666

B)1.0

Ol

D)l.7

答案:C

解析:

153.[单选题]下列关于C++语言的说法错误的是()。

A)C++语言的运行过程是编辑、编译、连接、运行

B)C++语言不区分大小写

C)C++语言的是面向对象的

D)C++程序本身不提供输入输出语句

答案:B

解析:

154.[单选题]以下叙述中错误的是。

A)C++语言源程序经编译后生成后缀为.Obj的目标程序

B)C++语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

C)用C++语言编写的程序称为源程序,它以ASCn代码形式存放在一个文本文件中

D)C++语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

答案:D

解析:

155.[单选题]对于类中定义的成员,不设置访问权限,默认的访问权限为()。

A)public

B)protected

C)private

D)static

答案:C

解析:

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

A)重载函数的参数个数可以不同

B)重载函数的参数类型可以不同

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

D)重载函数的参数个数或参数类型必须有所不同

答案:C

解析:

157.[单选题]以下不能对二维数组a进行正确初始化的语句是()。

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

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

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

D)inta[][3]={1,2,3,4,5,6);

答案:C

解析:

158.[单选题]以下程序中,while循环的的循环次数为()。

A)l

B)10

06

D)死循环,不能确定次数

答案:D

解析:

159.[单选题]构造函数是在O时被执行的

A)程序装入内存

B)创建对象

C)创建类

D)定义构造函数

答案:B

解析:

160.[单选题]在C++中,函数原型不能标识()

A)函数的返回类型

B)函数参数的个数

C)函数参数类型

D)函数的功能

答案:D

解析:

161.[单选题]在C++中按照标识符的要求,什么符号不能组成标识符。

A)连接符

B)下划线

C)大小写字母

D)数字字符

答案:A

解析:

162.[单选题]若一棵二叉树的前序遍历序列和后序遍历序列分别为1,2,3,4和4,3,2,1,则该

二叉树的中序遍历序列不会是

A)l,2,3,4

B)2,3,4,1

03,2,4,1

D)4,3,2,1

答案:C

解析:

163.[单选题]有如下函数调用语句:

Fun(paral,para2+para3,(para4,para5));

该函数调用语句中,含有的实参个数是()。

A)3

B)4

05

D)有语法错

答案:A

解析:

164.[单选题]友元的作用是()。

A)提高程序的运用效率;

B)加强类的封装性;

C)实现数据的隐藏性;

D)增加成员函数的种类;

答案:A

解析:

165.[单选题]在下列运算符中,()优先级最低。

A)!

B)&&

0!=

D)?:

答案:D

解析:

166.[单选题]在一个具有n个结点的有序单链表中插入一个新结点,并使插入后仍然有序,则该操作

的时间复杂性量级为O

A)0(1)

B)0(n)

C)0(nlog2n)

D)0(n2)

答案:B

解析:

167.[单选题]执行下面的程序段后,变量k中的值为()。

Intk=3,s[2];

S[O]=k;k=s[l]*10;

A)不定值

B)33

C)30

D)10

答案:A

解析:

168.[单选题]下列表达式,能将P声明为指向常量的指针的是()

A)constint*P;

B)int*constP;

C)constint*constP;

D)int*P;

答案:A

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

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

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

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

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

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

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

本题要声明”指向常量的指针”,即所指数据是常量,故COnSt在左侧,选A。

169.[单选题]假定a和b为int型变量,则执行以下语句后b的值为。

ttinclude<iostream>

Usingnamespacestd;

Voidmain()

(

Inta=l;

Intb=10;

Do

{

B-=a;

A++;

}while(b—<0);

}(题)

A)-l

B)-2

C)8

D)9

答案:C

解析:

170.[单选题]下面对友员的错误叙述是()。

A)关键字friend用于声明友员

B)一个类中的成员函数可以是另一个类的友员

C)友员函数访问对象的成员不受访问特性影响

D)友员函数通过this指针访问对象成员

答案:D

解析:

171.[单选题]为了使类中的某个成员不能被类的对象通过成员操作符(即成员访问运算符)访问,则应

该把该成员的访问权限定义为O

A)public

B)protected

C)private

D)PriVate或ProteCted

答案:D

解析:

172.[单选题]有如下类声明,则类MyDERlVED中保护的数据成员和成员函数的个数是

()

ClassMyBASE

{private:intk;

public:voidset(intn){k=n;}

Intget()const(returnk;}};classMyDERIVED:protectedMyBΛSE

{protected:intj;

public:voidset(intm,intn){MyBASE::set(m);j=n;}

intget()const{returnMyBASE::get()+j;});

A)4

B)3

C)2

D)l

答案:B

解析:

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

ttinclude<iostream>

Usingnamespacestd;

Voidmain()

(

Cout<<"a∖bre∖'hi∖'y∖∖∖bou∖n";

}

运行该程序的输出结果是。(题)

A)re'hi'you

B)are'hi'you

C)are'hi'y∖ou

D)are'hi'y∖bou

答案:A

解析:

温馨提示

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

评论

0/150

提交评论