您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 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..obj5.C++源程序文件扩展名为(A)。A..cppB..hC..1ibD..obj6.由C++源程序文件编译而成的目标代码文件的缺省扩展名为(C)。A..cppB..exeC..objD..lik7.布尔类型标识符是(D)。A.voidB.shortC.longD.bool8.下列不是C++语言的基本数据类型的是(D)。A.字符类型B.整数类型C.逻辑类型D.枚举类型9.用于标识十六进制前缀或后缀是(D)。A.后缀LB.后缀eC.前缀零D.前缀0x10.设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/212.如果a=1,b=2,c=3,d=4,则条件表达式ab?a:cd?c:d的值为(A)。A.1B.2C.3D.413.在预编译指令中,宏定义使用哪个指令(B)。A.#includeB.#defineC.#ifD.#else14.包含自定义头文件file.h的预处理指令是(D)。A.#definefile.hB.#includefile.hC.#definefile.hD.#includefile.h15.可替换#definePI3.1415926的语句是(B)。A.floatPI3.1415926;B.constfloatPI=3.1415926;C.constPI(3.1415926);D.const3.1415926;16.在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是(B)。A.cerrB.cinC.coutD.cfile17.在C++中使用流进行输入输出,其中用于屏幕输出的对象是(C)。A.cerrB.cinC.coutD.cfile18.下列给字符数组进行的初始化中,正确的是(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.0B.5C.6D.220.inta=3;int*p=&a;中,*p的值是(D)。A.变量a的地址值B.无意义C.变量p的地址值D.321.对于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,1526.设存在函数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.function32.包含哪种语句的函数不能声明为内联函数(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.static43.C++允许在结构中定义函数,这些函数称为(D)。A.静态函数B.构造函数C.析构函数D.成员函数44.对使用关键字new所开辟的动态存储空间,释放时必须使用(C)。A.freeB.createC.deleteD.realse45.假定指针变量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.publicB.privateC.protectedD.friend50.下列哪个不是面向对象的关键要素(B)。A.抽象性B.结构性C.封装性D.多态性51.下列可以不是类的成员函数的是(C)。A.构造函数B.析构函数C.友元函数D.复制构造函数52.print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是(A)。A.voidprint()constB.constvoidprint()C.voidconstprint()D.voidprint(const)53.在定义类成员时,为产生封装性,则需使用哪个关键字(D)。A.publicB.publishC.protectedD.private54.如没有使用private关键字定义类的数据成员,则默认为(A)。A.privateB.publicC.protectedD.friend55.类的私有成员可在何处被访问(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.该函
本文标题:C++复习题(2015)
链接地址:https://www.777doc.com/doc-2901617 .html