c++复习题教学提纲.docx

上传人:b****5 文档编号:6508651 上传时间:2023-01-07 格式:DOCX 页数:31 大小:32.84KB
下载 相关 举报
c++复习题教学提纲.docx_第1页
第1页 / 共31页
c++复习题教学提纲.docx_第2页
第2页 / 共31页
c++复习题教学提纲.docx_第3页
第3页 / 共31页
c++复习题教学提纲.docx_第4页
第4页 / 共31页
c++复习题教学提纲.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

c++复习题教学提纲.docx

《c++复习题教学提纲.docx》由会员分享,可在线阅读,更多相关《c++复习题教学提纲.docx(31页珍藏版)》请在冰豆网上搜索。

c++复习题教学提纲.docx

c++复习题教学提纲

 

C++复习题(2015)

C++练习题

一、选择题

1.C++语言是从早期的C语言逐渐发展演变而来的。

与C语言相比,它在求解问题方法上进行的最大改进是(B)。

A.面向过程 B.面向对象 C.安全性 D.复用性

2.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是(D)。

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

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

3.对C++语言和C语言的兼容性,描述正确的是(A)。

A.C++兼容CB.C++部分兼容CC.C++不兼容CD.C兼容C++

4.在C++中,头文件扩展名为(B)。

A..cppB..hC..1ibD..obj

5.C++源程序文件扩展名为(A)。

A..cppB..hC..1ibD..obj

6.由C++源程序文件编译而成的目标代码文件的缺省扩展名为(C)。

A..cppB..exeC..objD..lik

7.布尔类型标识符是(D)。

A.voidB.shortC.longD.bool

8.下列不是C++语言的基本数据类型的是(D)。

A.字符类型B.整数类型C.逻辑类型D.枚举类型

9.用于标识十六进制前缀或后缀是(D)。

A.后缀LB.后缀eC.前缀零D.前缀0x

10.设x和y均为bool量,则x&&y为真的条件是(A)。

A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假

11.在下列成对的表达式中,运算结果类型相同的一对是(D)。

A.7/2和7.0/2.0B.7/2.0和7/2C.7.0/2和7/2D.7.0/2.0和7.0/2

12.如果a=1,b=2,c=3,d=4,则条件表达式a

a:

c

c:

d的值为(A)。

A.1        B.2     C.3        D.4

13.在预编译指令中,宏定义使用哪个指令(B)。

A.#includeB.#defineC.#ifD.#else

14.包含自定义头文件file.h的预处理指令是(D)。

A.#defineB.#includefile.hC.#definefile.hD.#include"file.h"

15.可替换#definePI3.1415926的语句是(B)。

A.floatPI3.1415926;B.constfloatPI=3.1415926;

C.constPI(3.1415926);D.const3.1415926;

16.在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是(B)。

A.cerrB.cinC.coutD.cfile

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

A.cerrB.cinC.coutD.cfile

18.下列给字符数组进行的初始化中,正确的是(A)。

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

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

19.在intb[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是(C)。

A.0       B.5       C.6        D.2

20.inta=3;int*p=&a;中,*p的值是(D)。

A.变量a的地址值B.无意义C.变量p的地址值D.3

21.对于int*pa[5];的描述,正确的是(D)。

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

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

C.pa[5]表示某个数组中的第5个元素的值

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

22.已知:

inta,&ra=a;关于ra的描述中正确的是(C)。

A.ra是int型变量a的地址值      B.a是int型变量ra的地址值

C.ra是int型变量a的引用        D.ra是int型变量a的指针

23.假定变量x定义为“intx=5;”,要使rx成为x的引用(别名),rx应定义为(D)。

A.intrx=x;B.intrx=&x;C.int*rx=&x;D.int&rx=x;

24.设存在整型变量intx,则下列语句中与其它三项含义不同的是(A)。

A.int*p=&x;B.int&p=x;C.int&p=x;D.int&p=x;

25.设函数voidswap(int&,int&)将交换两形参的值,如两整型变量inta=10;intb=15;

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

A.10,10B.10,15C.15,10D.15,15

26.设存在函数intmin(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是(B)。

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);

27.设存在函数intmax(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是(C)。

A.intm=max(22,max(59,70));B.intm=max(max(22,59),70);

C.intm=max(22,59,70);D.intm=max(59,max(22,70));

28.以下正确的函数原型语句是(C)。

A.doublefun(intx,inty)B.doublefun(intx;inty)

C.doublefun(int,int);D.doublefun(intx,y);

29.在函数声明中,下面哪项不是必要的(D)。

A.函数参数的类型和参数名B.函数名

C.函数的类型D.函数体

30.使用值传递方式将实参传给形参,下列说法正确的是(A)。

A.形参是实参的备份B.实参是形参的备份

C.形参和实参是同一对象D.形参和实参无联系

31.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为(A)

A.mainB.MAINC.nameD.function

32.包含哪种语句的函数不能声明为内联函数(A)。

A.循环B.变量自增自减C.if...else…D.变量声明

33.在(C)情况下适宜采用inline定义内联函数。

A.函数体含有循环语句B.函数体含有递归语句

C.函数代码少、频繁调用D.函数代码多、不常调用量

34.一个函数功能不太复杂,但要求被频繁调用,选用(A)。

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

35.在C++中,关于下列设置参数默认值的描述中,正确的是(C)。

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

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

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

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

36.函数默认参数在函数原型中说明,默认参数必须放在参数序列的(C)。

A.前部B.中部C.后部D.两端

37.下列哪种默认参数的声明是不正确的(C)。

A.intmax(inta,intb,intc,intd=0);

B.intmax(inta,intb,intc=0,intd=0);

C.intmax(inta=0,intb,intc=0,intd=0);

D.intmax(inta,intb=0,intc=0,intd=0);

38.下列函数不能和函数voidprint(char)构成重载的是(C)。

A.intprint(int);B.voidprint(char,char);

C.intprint(char);D.voidprint(int,int);

39.intFunc(int,int);不可与下列哪个函数构成重载(B)。

A.intFunc(int,int,int);B.doubleFunc(int,int);

C.doubleFunc(double,double);D.doubleFunc(int,double);

40.定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来(A)。

A.<>B.“”C.()D.{}

41.设有函数TSum(Tx,Ty){returnx+y;},其中T为模板类型,则下列语句中对该函数错误的使用是(D)。

A.Sum(1,2);B.Sum(3.0,2.2);

C.Sum(‘A’,‘C’);D.Sum("A","C");

42.对于结构中定义的成员,其隐含访问权限为(C)。

A.publicB.protectedC.privateD.static

43.C++允许在结构中定义函数,这些函数称为(D)。

A.静态函数B.构造函数C.析构函数D.成员函数

44.对使用关键字new所开辟的动态存储空间,释放时必须使用(C)。

A.freeB.createC.deleteD.realse

45.假定指针变量p定义为“int*p=newint[30];”,要释放p所指向的动态内存,应使用语句(D)。

A.deletep;B.delete*p;C.delete&p;D.delete[]p;

46.要使语句“p=newint[10][20];”能够正常执行,p应被事先定义为(D)。

A.int*p;B.int**p;C.int*p[20];D.int(*p)[20];

47.使用delete[]删除对象数组时,描述正确的是(A)。

A.数组中各元素都调用析构函数B.数组中各元素都调用构造函数

C.不调用析构函数D.只有首元素调用析构函数

48.有关类的说法不正确的是(D)。

A.类是一种用户自定义的数据类型

B.类中的成员函数可以存取类中的私有数据

C.在类中,如果不作特别说明,所有的数据均为私有类型

D.在类中,如果不作特别说明,所有的成员函数均为公有类型

49.在下列关键字中,用以说明类中公有成员的是(A)。

A.public      B.private C.protected     D.friend

50.下列哪个不是面向对象的关键要素(B)。

A.抽象性B.结构性C.封装性D.多态性

51.下列可以不是类的成员函数的是(C)。

A.构造函数B.析构函数C.友元函数D.复制构造函数

52.print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是(A)。

A.voidprint()const     B.constvoidprint()

C.voidconstprint()      D.voidprint(const)

53.在定义类成员时,为产生封装性,则需使用哪个关键字(D)。

A.publicB.publishC.protectedD.private

54.如没有使用private关键字定义类的数据成员,则默认为(A)。

A.privateB.publicC.protectedD.friend

55.类的私有成员可在何处被访问(A)。

A.本类的成员函数中B.本类及子类的成员函数中

C.通过对象名在任何位置D.不可访问

56.this指针存在的目的是(B)。

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

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

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

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

57.有关构造函数的说法不正确的是(D)。

A.构造函数名字和类的名字一样  B.构造函数在定义对象时自动执行

C.构造函数无任何函数类型       D.构造函数有且只有一个

58.为对象进行初始化的是(C)。

A.析构函数    B.数据成员C.构造函数   D.静态成员函数

59.类的构造函数在以下什么情况下会被自动调用(B)。

A.定义成员函数时B.定义对象时C.定义数据成员时D.定义友元函数时

60.构造函数不具备的特征的是(D)。

A.构造函数的函数名与类名相同B.构造函数可以重载

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

61.一个类拥有多个构造函数,则这些构造函数间为(A)。

A.重载关系B.重复关系C.拷贝关系D.无关系

62.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是(A)。

A.编译器总是自动创建一个不带参数的构造函数

B.这个类没有构造函数C.这个类不需要构造函数D.该类不能通过编译

63.对于拷贝构造函数point:

:

point(point&p),下列说明正确的是(C)。

A.该函数只能访问P的私有成员B.该函数不能访问P的公有成员

C.该函数可以访问P的私有和公有成员D.该函数不能访问P的成员

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

A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名

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

A.3B.4C.6D.9

66.下列关于析构函数描述正确的是(D)。

A.可以重载B.函数体中必须有delete语句

C.返回类型必须是void类型D.不能指定返回类型

67.类的析构函数是在(C)调用的。

A.类创建时B.创建对象时C.删除对象时D.不自动调用

68.类的析构函数的作用是(D)。

A.一般成员函数B.类的初始化C.对象的初始化D.撤消对象时做清理工作

69.下述静态数据成员的特性中,错误的是(D)。

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

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

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

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

70.设类Test中存在成员staticintx,则下列哪种初始化方式是正确的(C)。

A.Test:

:

intx=25;B.intx=25;C.intTest:

:

x=25;D.intTestx=25;

71.下列关于友元的描述错误的是(A)。

A.成员函数不可作友元B.类可以作友元

C.普通函数可以作友元D.静态函数可以作友元

72.对于友元描述正确的是(B)。

A.友元是本类的成员函数B.友元不是本类的成员函数

C.友元不是函数D.友元不能访问本类私有成员

73.如果类A被说明成类B的友元,则(D)。

A.类A的成员即类B的成员B.类B的成员即类A的成员

C.类A的成员函数不得访问类B的成员D.类B不一定是类A的友元

74.下列运算符中,在C++中不能重载运算符是(A)。

A.?

       B.+      C.-        D.=

75.假定要对类AB定义“+”号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为(B)。

A.ABoperator+(AB&a,AB&b)B.ABoperator+(AB&a)

C.operator+(ABa)D.AB&operator+()

76.继承的机制是(C)。

A.信息隐藏B.数据封装C.定义新类D.数据抽象

77.关于私有继承,下列说法错误的是(B)。

A.基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员可以直接访问他们。

B.基类的公有成员和保护成员被继承后作为派生类的私有成员,派生类的其他成员不能直接访问他们。

C.派生类的成员和派生类的对象都无法访问基类的私有成员。

D.派生类的对象无法访问基类的所有成员。

78.在公有继承中,基类中的保护成员作为派生类的(C)。

A.公有成员B.私有成员C.保护成员D.私有成员函数

79.C++类体系中,不能被派生类继承的有(A)。

A.构造函数B.虚函数C.静态成员函数D.赋值操作函数

80.C++类体系中,能被派生类继承的是(B)。

A.构造函数B.虚函数C.析构函数D.友元函数

81.基类中的(C)不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏能力,又提供了开放的接口。

A.公有成员B.私有成员C.保护成员D.私有成员函数

82.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是(B)。

A.A类构造函数先执行B.成员构造函数先执行

C.两者并行执行D.不能确定

83.在哪种派生方式中,派生类可以访问基类中的protected成员(B)。

A.public和privateB.public和protected

C.protected和privateD.仅protected

84.派生类的对象可以访问以下那种情况继承的基类成员(D)。

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

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

85.在继承中,派生类拥有的基类个数为(D)。

A.0个B.1个C.多个D.至少1个

86.基类中的protected成员,通过public派生,其在派生类中的可见性为(C)。

A.不可访问B.privateC.protectedD.public

87.下面关于C++中类的继承与派生的说法错误的是:

(C)。

A.基类的protected成员在公有派生类的成员函数中可以直接使用

B.基类的protected成员在私有派生类的成员函数中可以直接使用

C.私有派生时,基类的所有成员访问权限在派生类中保持不变

D.继承可以分为单一继承与多重继承

88.下列关于继承的描述中,正确的是(D)。

A.继承不是类之间的一种关系     B.C++语言仅支持单一继承

C.继承会增加程序的冗余性       D.继承是面向对象方法中一个很重要的特性

89.下列关于派生类构造函数的描述中,错误的是(A)。

A.派生类构造函数应包含直接基类和所有间接基类的构造函数

B.派生类构造函数仅包含直接基类构造函数和其他(如子对象)类构造函数等

C.派生类构造函数通常带有成员初始化表

D.派生类默认构造函数中隐含包括直接基类的默认构造函数

90.如果一个类至少有一个纯虚函数,那么就称该类为(A)。

A.抽象类    B.虚基类 C.派生类    D.以上都不对

二、填空题

1.在C++中,声明布尔类型变量所用的关键字是(BOOL)。

2.执行下列代码

intb=100;

cout<<"Hex:

"<

程序的输出结果是(Hex:

64)。

3.执行下列代码

cout<<″Hex:

″<

程序的输出结果为(Hex:

ff)。

4.执行“cout<

5.C++语言中可以实现输出一个换行符并刷新流功能的操控符是(endl)。

6.cout实际上是C++系统定义的对象名,称为(输出流对象)。

7.若使用标准输出流把整型变量a的值输出到屏幕上,实现此操作的C++语句是(cout<

8.C++将数据从一个对象流向另一个对象的流动抽象为“流”,从流中获取数据的操作称为

(提取)操作。

9.使用cin和cout进行输入输出操作的程序必须包含头文件(iostream或iostream.h),其指令格式为(#include)。

10.若要使用C++标准类库,需要指定相应的命名空间,所用的语句是(usingnamespacestd;)。

10.C++的注释行以(//)开头。

11.一般编译系统给出的出错信息分为两种:

一种是(错误或error);

一种是(警告或warning)。

12.转义字符’\t’在内存中占

(1)个字节。

13.将一个字符常量存放到内存单元时,实际上并不是把该字符本身放到内存单元中去,而是将该字符相应的(ASCII)代码放到存储单元中。

14.变量必须先(定义),后(使用)。

15.在定义变量时,如果加上关键字(const),则变量的值在程序运行期间不能改变,这种变量称为(常)变量。

16.数学式子00&&x<5)。

17.循环结构中,要提前结束本次循环的语句是(continue)。

18.如果被调用的函数的定义出现在主调函数之后,需要对被调用的函数进行(声明)。

19.定义内联函数所用的关键字是(inline),定义友元所用的关键字为(friend)。

20.重载函数的参数(个数)、参数(类型)或参数(参数顺序)三者中必须至少有一种不同。

21.字符串的结束标志是(‘\0’)。

22.C++提供了一种用于处理字符串的数据类型,叫(字符串类型或string类型)。

23.C++语言的函数参数传递方式有传值和(传地址)两种方式。

24.C++语言中的,每条复合语句以(})作为结束符。

25.变量分为全局和局部两种,(局部)变量没有赋初值时,其值是不确定的。

26.C++程序必须有且只有一个主函数,其函数名为(main)。

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

当前位置:首页 > 医药卫生

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

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