还剩7页未读,继续阅读
文本内容:
1604-全国-C++程序设计总分100
一、单选题(共题,共分)
20201、下列运算符中,在C++中不能重载的是()(1分)A:+B:=C:::D:/
2、如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()(1分)A:a.operator++l B:operator++a C:operator++a,1D:a.operator++
3、关于函数模板,描述错误的是()(1分)A:函数模板必须由程序员实例化为可执行的函数模板B:函数模板的实例化由编译器实现C:一个类定义中,只要有一个函数模板,则这个类是类模板D:类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化
4、关于this指针的说法错误的是()(1分)A:this指针必须显式声明B:当创建一个对象后,this指针就指向该对象C:动态成员函数拥有this指针D:静态成员函数不拥有this指针
5、按照标识符的要求,不能组成标识符的是()(1分)A:连接符B下划线C:大小写字母D:数字字母
6、以下能正确定义数组并正确赋初值的语句是()(1分)A:intN=5,b[N][N];B:inta
[2]={{l},{3},{4},{5});C:intc
[2][{{1,2},{3,4}};D:intd
[3]
[2]={{1,2},{3,4}};
7、已知func()函数是一个类的常成员函数,它无返回值,下列表示中,是正确的是()(1分)A:voidfunc()const;B:constvoidfunc;C:voidconstfunc;D:voidfunc const;
8、已知p是一个指向类A数据成员ni的指针,Al是类A的一个对象如果要给m赋值为5,正确的是()(1分)A:Al.p=5;B:A1-P=5;C:AL*P=5;D:*A
1.P=5;
9、下列不是类的成员函数的是()(1分)A:友元函数B:构造函数C:析构函数D:拷贝构造函数
10、已知类A是类B的友元,类B是类C的友元,则()(1分)A:类A一定是类C的友元B:类C一定是类A的友元C:类C的成员函数可以访问类B的对象的任何成员D:类A的成员函数可以访问类B的对象的任何成员
11、在编译指令中,宏定义使用哪个命令(1分)A:#ifB:#includeC:#defineD:terror
12、假定一个类的构造函数为A(intaa,intbb){a=aa++;b=a*++bb;},则执行Ax(4,5);语句后,x.a和x.b的值分别为()(1分)A:4和5B:4和20C:4和24D:20和
513、以下基类中的成员函数表示纯虚函数的是()(1分)A:virtualvoidvf(int)B:voidvf(int)=0C:virtualvoidvf()二0D:virtualvoidyf(int){}
14、实现两个相同类型数加法的函数模板的声明是()(1分)A:add(Tx,Ty)B:Taddx,yC:TaddTx,yD:TaddTx,Ty15>类Cat是类Animal的公有派生类,类Animal和类Cat中都定义了虚函数func(),p是一个指向类Animal对象的指针,则P-〉Animal::func()将()(1分)A:调用类Animal中的函数func()B:调用类Cat中的函数func()C:根据p所指的对象类型而确定调用类Animal中或类Cat中函数func()D:既调用类Animal中函数,也调用类Cat中的函数
16、下列关于对静态数据成员的描述中,正确的是()(1分)A:静态数据成员不能用public控制符修饰B:静态数据成员可以直接用类名或者对象名来调用C:静态数据成员不可以被类的对象调用D:静态数据成员不能用private控制符修饰
17、要求指针p既不可以修改其本身的内容,也不可修改其所指向地址的内容,定义正确的是()(1分)A:constchar*p=“ABCD”;B:char*constp二〃ABCD〃;C:charconst*p=,,ABCD,z;D:constchar*constp二〃ABCD〃;
18、在C++中,类与类之间的继承关系具有(1分)A:自反性B:对称性C:传递性D:反对称性
19、通常拷贝构造函数的形式参数是()(1分)A:某个对象的成员名B:某个对象的指针名C:某个对象的引用名D:某个对象名
20、适宜采用inline定义函数情况是()(1分)A:函数体含有循环语句B:函数体含有switch语句C:函数代码多,不常调用D:函数代码少,频繁调用
二、填空题(共题,共分)
202021、C++程序的源文件扩展名为(1分)
22、C++中有两种继承单一继承和o(1分)
23、在C++中,有两种给出注释的方法一种是沿用C语言的注释符,即/**/另一种是从它开始,直到它所在行尾的字符都为注释的注释符,即o(1分)
24、下面程序运行的结果是o#includeiostreani.hvoidmain(){cout.fill(*);cout,width
(6);cout,,hello,,endl;cout.clear();}(1分)25执行下列代码stringstr(,zNihaoC++,z);cout«str.substr(5,3);程序的输出结果是(1分)
26、重载的运算符保持其原有的操作数、和结合性不变(1分)
27、重载函数在参数类型或参数个数上不同,但必须相同(1分)
28、C++程序的编译是以为单位进行的(1分)
29、为了避免可能出现的歧义,C++对if.・・else语句配对规则规定为else总是与配对(1分)
30、已知有20个元素int类型向量VI,若用VI初始化为V2向量,语句是(1分)
31、语句序列ifstreaminfile;inf ile.open(data.dat〃);的功能可用一个语句实现,这个语句是O(1分)
32、通常使用对象的引用来初始化创建中的对象(1分)33假设inta=l,b=2;则表达式(++a/b)*b—的值为(1分)
34、使用new为int数组动态分配10个存储空间是(1分)
35、C++流库预定义了4个流,它们分别是cin、cout clog和(1分)
36、在用class定义一个类时,数据成员和成员函数的默认访问权限是o(1分)
37、C++支持两种多态性时的多态性和运行时的多态性(1分)
38、vector类中用于删除向量中的所有对象的函数是(1分)
39、抽象类中至少要有一个函数(1分)
40、举出C++中两种代码复用的方式、复用(1分)
三、综合题共题,共分
52041、完成下面类中成员函数的定义4分#includeiostrcam#includestringusing namespace sld;class str\private char*st;public strchar*aIset a;I〃运符」瞅载函数I频delete st;lsi;return♦this;Ivoid showj cout«st«endl;\*str|delete st;|void sctchar♦sstrcpyst s;tII;void mainIsirslMhclloM s2Hworld11;f
51.shows
2.show;t
52.=si;
53.show,s2・show;4分
42、补充程序(4分)#includeiostreain using namespace std;int a[]=[2,4,6,7,101;int indexint i1return a[i];\void main|inti;〃调用函数,将数组中的元素替换为index a78,尿〃输出数组acout«a[i]«M w•14分
43、下面程序中的Base是抽象类请在下面程序的横线上填上适当内容,以使程序完整,并使程序的输出为Derlcalled!Der2called!(4分)#includeiostrcam hclass Baseclass Deripublic Base|pdblic void display{cout«”Dcrl called!«endl;\;I|Drri bl;classDer2public Baseler2b2;|public«endl;}p=voiddisplayI cout«”Dcr2called!funp;;Ip=b2;funp;一一void fun,—4{p-display;Ivoid main]public
44、任意输入10个同学的成绩,计算其平均成绩要求用函数average计算平均成绩主函数输入数据并输出结果将程序补充完整(4分)#includcM stdafx.h#includeiostrcain usingnamespacesld;void mainvoidIfloat averagefloat a1];float score
[10];forIcin»score]i];I二cout«u average«averagescore«cndl;Ifloat averagefloata[]Ifloat sum=0;for inti=0;i10;i1returnsum/10;4分
45、Test_Static类内有一静态成员变量num,且初始值设为15将程序补充完整(4分)#includciostream usingnamespace std;class Test_StalicIprivatepublic Test_Static int;void print;I;Test.StaticTest_Static intnInum=n;Ivoid Test_StaticprintIcout«num«endl;Ivoid mainITest.Static t$10;ts.print;14分
四、文字题共题,共分840#includeiostrcamusingnamespacestd;int mainIint a-10;int*pl=NULL;int*p2cout«pl«*P return0;。