大学C++期末考试题库与答案.docx

上传人:b****6 文档编号:6556617 上传时间:2023-01-07 格式:DOCX 页数:47 大小:42.01KB
下载 相关 举报
大学C++期末考试题库与答案.docx_第1页
第1页 / 共47页
大学C++期末考试题库与答案.docx_第2页
第2页 / 共47页
大学C++期末考试题库与答案.docx_第3页
第3页 / 共47页
大学C++期末考试题库与答案.docx_第4页
第4页 / 共47页
大学C++期末考试题库与答案.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

大学C++期末考试题库与答案.docx

《大学C++期末考试题库与答案.docx》由会员分享,可在线阅读,更多相关《大学C++期末考试题库与答案.docx(47页珍藏版)》请在冰豆网上搜索。

大学C++期末考试题库与答案.docx

大学C++期末考试题库与答案

2021年大学C++期末考试题库

一、单项选择题:

1.能作为C++程序的根本单位是(C)。

A.字符B.语句C.函数D.源程序文件

2.程序中主函数的名字为〔A〕。

A.mainB.MAINC.MainD.任意标识符

3.关于C++与C语言的关系的描述中,〔D〕是错误的。

A.C语言是C++的一个子集;B.C语言与C++是兼容的;

C.C++对C语言进展了一些改良;D.C++和C语言都是面向对象的

4.可用作C++语言用户标识符的一组标识符是(B)。

A.voiddefine+WORDB.a3_b3_123YN

C.for-abcCaseD.2aDOsizeof

5.存储以下数据,占用存储字节最多的是〔D〕。

A.0

B.

‘0’

C.“0〞D.0.0

6.

设int

a=12

;那么执行完语句

a+=a*a;后,a的值是(C)

A.12

B.144C.156

D.288

7.

假设在程序中

a、b、c均被定义成整型,所赋的值都大于

1,那么以下能正确表示代数式

1的表达式是(D)。

abc

A.1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)cD.1.0/a/b/c

8.以下说法中正确的选项是〔B〕。

A.C++程序总是从第一个定义的函数开场执行

B.C++程序总是从main函数开场执行

C.C++函数必须有返回值,否那么不能使用函数

D.C++程序中有调用关系的所有函数必须放在同一个程序文件中

9.

下面有关构造函数的描述中,正确的选项是〔

B〕。

A.

构造函数可以带有返回值

B.

构造函数的名字与类名完全一样

C.

构造函数必须带有参数

D.

构造函数必须定义,不能缺省

10.

10.在声明类时,下面的说法正确的选项是〔

〕。

A.可以在类的声明中给数据成员赋初值

B.数据成员的数据类型可以是register

C.private,public,protected可以按任意顺序出现

D.没有用private,public,protected定义的数据成员是公有成员

11.在下面有关析构函数特征的描述中,正确的选项是〔A〕。

A.一个类可以有多个析构函数B.析构函数与类名完全一样

C.析构函数不能指定返回类型D.析构函数可以有一个或多个参数

12.构造函数是在〔B〕时被执行的。

A.程序编译B.创立对象C.创立类D.程序装入内存

13.下面有关静态成员函数的描述中,正确的选项是〔B〕

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

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

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

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

第1页共29页

C++程序设计试卷

14.下面有关友员函数的描述中,真确的说法是〔A〕

A.友员函数是独立于当前类的外部函数

B.一个友员函数不可以同时定义为两个类的友员函数

C.友员函数必须在类的外部进展定义

D.在类的外部定义友员函数时必须加上friend关键字

15.

友员的作用之一是〔

A

A.

提高程序的运行效率

B.

加强类的封装

C.

实现数据的隐蔽性

D.

增加成员函数的种类

16.

使用派生类的主要原因是〔

A

A.

提高代码的可重用性

B.

提高程序的运行效率

C.

加强类的封装性

D.

实现数据的隐藏

17.

在C++中继承方式有几中〔

C

A.1

B.2C.3

D.4

18.假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,那么

定义类derived的正确写法是〔D

A.classderived

studentprivate{

//

,,,

.}

B.classderived

studentpublic{

//

,,,

.}

C.classderived

publicstudent{

//

,,,

.}

D.classderived

privatestudent{

//

,,,

.}

19.派生类的对象对它的基类成员中〔C〕是可以访问的。

A.公有继承的公有成员;B.公有继承的私有成员;

C.公有继承的保护成员;D.私有继承的公有成员。

20.类中定义的成员默认为〔A〕访问属性。

A.publicB.privateC.protectedD.friend

21.以下存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用〔A〕适宜。

A.内联函数;B.重载函数;C.递归调用;D.嵌套调用。

22.C++对C语言作了很多改良,以下描述中〔D〕使得C语言发生了质变,从面向过程变成了面向对象。

A.增加了一些新的运算符;B.允许函数重载,并允许设置缺省参数;

C.规定函数说明必须用原型;D.引进了类和对象的概念;

23.按照标识符的要求,〔A〕符号不能组成标识符。

A.连接符B.下划线C.大小写字母D.数字字符

24.以下变量名中,〔A〕是合法的。

ACHINABbyte-sizeCdoubleDA+a

25.以下各种函数中,〔C〕不是类的成员函数。

A构造函数B析构函数C友元函数D拷贝构造函数

26.以下〔A〕是正确的语句。

A;Ba=17Cx+yDcout<<"\n"

27.不能作为函数重载判断的依据的是(B)

A.返回类型B.constC.参数个数D.参数类型

28.通常,拷贝构造函数的参数是(C)

A.某个对象名B.某个对象的成员名

C.某个对象的引用名D.某个对象的指针名

第2页共29页

C++程序设计试卷

29.下面对静态数据成员的描述中,正确的选项是(C)

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

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

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

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

30.假定AB为一个类,那么执行ABx;语句时将自动调用该类的(B)

A.有参构造函数B.无参构造函数C.拷贝构造函数D.赋值构造函数

31.C++程序从上机到得到结果的几个操作步骤依次是(B)。

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

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

32.假定一条定义语句为“inta[10],x,*p=a;〞,假设要把数组a中下标为3的元素值赋给

x,那么不正确的语句为〔A〕。

A.x=p[3];B.x=*(a+3);C.x=a[3];D.x=*p+3;

33.关于封装,以下说法中不正确的选项是〔D〕。

A.通过封装,对象的全部属性和操作结合在一起,形成一个整体

B.通过封装,一个对象的实现细节被尽可能地隐藏起来〔不可见〕

C.通过封装,每个对象都成为相对独立的实体

D.通过封装,对象的属性都是不可见的

34.预处理命令在程序中都是以(B)符号开头的。

A.*B.#C.&D.@

35.存储以下数据,占用存储字节最少的是〔B〕。

A.0B.‘0’C.“0〞D.0.0

36.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(D)符号作为分隔

符。

A.

空格或逗号

B.

逗号或回车

C.

逗号或分号

D.空格或回车

37.

假定变量m定义为“intm=7;

〞,那么定义变量

p的正确语句为〔

B

〕。

A.intp=&m;

B.int*p=&m;

C.int

&p=*m;

D.int

*p=m;

38.

下面的哪个保存字不能作为函数的返回类型?

C

A.void

B.int

C.new

D.long

39.

采用重载函数的目的是〔

B

〕。

A.

实现共享

B.

减少空间C.

提高速度

D.

使用方便,提高可读性

40.假定AB为一个类,那么(C)为该类的拷贝构造函数的原型说明。

A.AB(ABx);B.AB(intx);C.AB(AB&x);D.voidAB(AB&x);

41、C++对C语言作了很多改良,以下描述中〔D〕使得C语言发生了质变,从面向过程变成了面向对象。

A、增加了一些新的运算符;B、允许函数重载,并允许设置缺省参数;C、规定函数说明必须用原型;D、引进了类和对象的概念;

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

A.类B.对象C.函数体D.数据块

43、关于new运算符的以下描述中,〔C〕是错误的。

A、它可以用来动态创立对象和对象数组;

B、使用它创立的对象或对象数组可以使用运算符delete删除;

C、使用它创立对象时要调用构造函数;

第3页共29页

C++程序设计试卷

D、使用它创立对象数组时必须指定初始值;

44、〔D

〕不是构造函数的特征。

A、构造函数的函数名与类名一样;

B、构造函数可以重载;

C、构造函数可以设置缺省参数;

D、构造函数必须指定类型说明。

45、假定一个类的构造函数为

B(intx,inty){a=x--;b=a*y--;},

那么执行Bx(3,5);

语句

后,x.a和x.b

的值分别为(C)

A、3和5

B、5和3C

、3和15D

、20和5

46、关于成员函数特征的以下描述中,

〔A〕是错误的。

A、成员函数一定是内联函数;

B

、成员函数可以重载;

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

D、成员函数可以是静态的;

47、在公有继承的情况下,基类成员在派生类中的访问权限〔

B〕。

A、受限制

B

、保持不变

C

、受保护

D

、不受保护

48、友元的作用是〔

A〕。

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

B、加强类的封装性;

C、实现数据的隐藏性;

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

49、在C++中,关于以下设置缺省参数值的描述中,

〔B

〕是正确的。

A、不允许设置缺省参数值;

B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;

C、只能在函数的定义性声明中指定参数的缺省值;

D、设置缺省参数值时,必须全部都设置;

50、关于delete运算符的以下描述中,〔C〕是错误的。

A、它必须用于new返回的指针;

B、使用它删除对象时要调用析构函数;

C、对一个指针可以使用屡次该运算符;

D、指针名前只有一对方括号符号,不管所删除数组的维数。

51、constint*p

说明不能修改〔

C〕。

A、p指针;

B

、p指针指向的变量;

C、p指针指向的数据类型;

D、上述A、B、C三者;

52、当需要翻开

A盘上的以xxk.dat

文件用于输入时,那么定义文件流对象的语句为(B)。

A、fstreamfin(

“A:

xxk.dat

〞,1)

B

、ifstreamfin(

“A:

xxk.dat

〞,ios:

:

nocreate)

C、ofstreamfin(

“A:

xxk.dat

〞)

D

、ifstreamfin(

“A:

xxk.dat

〞,ios:

:

app)

53、派生类的对象对它的基类成员中〔A〕是可以访问的。

A、公有继承的公有成员;B、公有继承的私有成员;

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

D、私有继承的公有成员;

54、假定一个字符串的长度为

n,那么定义存储该字符串的字符数组的长度至少为〔

C〕。

A、n-1B

、n

C

、n+1D

、n+2

55、在inta=3;*p=&a;

中,*p的值是〔

D〕。

A、变量a的地址值

B

、无意义

C

、变量p的地址值

D

、3

56、以下常量中,〔D〕不是字符常量。

A、’\005’

B、’\n’

C、’c’

D、“a〞

57、在inta=3,*p=&a;

中,*p的值是〔

D〕。

A〕变量a的地址值

B

〕无意义

C

〕变量p的地址值

D

〕3

58、以下4个选项中,不能看作一条语句的是〔

B

〕。

A)if(b==0)m=1;n=2;B)a=0,b=0,c=0;

C)if(a>0);

D){;}

第4页共29页

C++程序设计试卷

59、〔D〕不是构造函数的特征。

A〕构造函数的函数名与类名一样

B

〕构造函数可以重载

C〕构造函数可以设置缺省参数

D

〕构造函数必须指定类型说明

60、以下程序段中与语句

k=a>b?

1:

0;功能等价的是〔D〕。

A〕if(a>b)k=1;

B

〕if(a>b)k=0

C〕if(a>b)k=1;

D

〕if(a

61、以下常量中,〔D〕不是字符常量。

A〕’\005’

B

〕’\n’

C)

’c’

D

〕"a"

62、表示“x大于1而小于10〞的逻辑表达式是〔B〕。

A〕1

B

〕x>1&&x<10

C)!

(x<=1||x>=10)

D

〕x>1||x<10

63、关于成员函数特征的以下描述中,

A〕是错误的。

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

B

〕成员函数可以重载

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

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

64、有以下程序

#include

voidmain()

{inti,s=0;for(i=1;i<10;i+=2)s+=i;cout<

程序执行后的输出结果是〔

C〕。

A〕自然数1~9

的累加和

B

〕自然数1~10

的累加和

C〕自然数1~9

中的奇数之和

D〕自然数1~10

中的偶数之和

65、设有定义:

intn=0,*p=&n,**q=&p;

那么以下选项中,正确的赋值语句是〔

D〕。

A〕p=1;B

〕*q=2;

C

〕q=p;D

〕*p=5;

66、〔A〕能正确输出结果:

C++。

A〕chars[]="C++";cout<

B〕chars[3]="C++";cout<

C〕chars[3]={'C','+','+','\0'};cout<

D〕chars[3]={'C','+','+'};cout<

67、有以下程序段

inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a,b;

b=p[5];

b中的值是〔

B〕。

A〕5B

〕6

C〕8

D

〕9

68、有以下程序

#include

voidmain()

{char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};cout<

}

执行后输出结果是B

A〕dcdbeB〕abbdC〕abcD〕abb

69、以下静态数据成员的特性中,〔C〕是错误的。

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

第5页共29页

C++程序设计试卷

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

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

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

70、有以下语句

structS

{intg;

charh;}T;

那么下面表达中不正确的选项是〔

C〕。

A〕S是构造体名

B

〕该构造体包含

2个成员

C〕S是struct类型的变量

D〕T是structS

类型的变量

71、派生类的对象对它的基类成员中〔

A〕是可以访问的。

A〕公有继承的公有成员

B〕公有继承的私有成员

C〕公有继承的保护成员

D〕私有继承的公有成员

72、实现运行时的多态性用

D

A、重载函数B、构造函数

C、析构函数D、虚函数

73.以下变量名中,〔A

〕是合法的。

A.CHINA

B.byte-size

C.double

D.A+a

74.在intb[][3]={{1},{3,2},{4,5,6},{0}};b[2][2]

的值是〔D〕。

A.0

B.2

C.5

D.6

75.以下各运算符中,〔B〕优先级最高。

A.+〔双目〕B.*〔单目〕C.<=D.*=

76.以下for循环的次数为〔B〕。

for(inti(0),x=0;!

x&&i<=5;i++)

A.5B.6C.1D.无限

77.下述关于break语句的描述中,〔C〕是正确的。

A.break语句可用于循环体内,它将退出该重循环。

B.break语句可用于开关语句中,它将退出开关语句。

C.break语句可用于if体内,它将退出if语句。

D.break语句在一个循环体内可以出现屡次。

78.在一个被调用函数中,关于return语句使用的描述,〔D〕是错误的。

A.

被调用函数中可以不用

return语句。

B.

被调用函数中可以使用多个

return语句。

C.

被调用函数中,如果有返回值,就一定要有

return

语句。

D.

被调用函数中,一个

return

语句可返回多个值给调用函数。

79.

在C++中,关于以下设置参数默认的描述中,

〔C

〕是正确的。

A.不允许设置参数的默认值。

B.设置参数默认值只能在定义函数时设置。

C.设置参数默认值时,应该是先设置右边的再设置左边的。

D.设置参数默认值时,应该全部参数都设置。

80.以下存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速

度,选用〔A〕适宜。

A.内联函数B.重载函数C.递归调用D.嵌套调用

第6页共29页

C++程序设计试卷

81.以下的各类函数中,〔C〕不是类的成员函数。

A.构造函数B.析构函数C.友元函数D.拷贝初始化构造函数

82.〔D〕不是构造函数的特征

A.构造函数的函数名与类名一样B.构造函数可以重载

C.构造函数可以设置缺省参数D.构造函数必须指定类型说明

83.f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用〔C〕是正确的。

A.p=f1B.p=A:

:

f1C.p=A:

:

f1()D.p=f1()

84.以下定义中,〔A〕是定义指向数组的指针p。

A.

int*p[5]

B.

int(*p)[5]

C.

(int*)p[5]D.

int*p[]

85.循环while(inti=0)i--

;执行次数是〔

A

〕。

A.0

B.1

C.5

D.

无限

86.

设intx

;,那么经过〔

C

〕后,语句*px=0;可将x值置为0。

A.

int*px

B.

intconst*px=&x

C.int*constpx=&x

D.constint*px=&x

87.

设voidf1(int*m

,long&n)

;inta

;longb;那么以下调用合法的是〔

B〕。

A.

f1(a

,b);

B.

f1(&a

,b);

C.

f1(a

,&b);

D.

f1(&a

,&b)

88.关于对象概念的描述中,〔A〕是错误的。

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

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

C.对象是一个状态和操作〔或方法〕的封装体;

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

89.在以下double型常量表示中,〔A〕是错误的。

A.E15;B..35;C.3E5;D.3E-5

90.以下给字符数组进展初始化中,〔A〕是正确的。

A.chars1[]="12345abcd";B.chars2[3]="xyz";

C.chars3[][3]={‘a’,’x’,’y’};D.chars4[2[3]={"xyz","mnp"};

91.对于int*pa[5];的描述,〔D〕是正确的。

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

B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量;C.pa[5]表示某个数组的第5个元素的值;

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

92.以下各运算符中,〔A〕

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1