1、二级 C+笔试-118 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.有如下 4 个语句: eoutAsetfill($)leflsetw(7)Bendl; eoutsetfill(*)leflsetw(7)ABendl; eoutAsetfill(*)rightsetw(7)Bendl; eoutsetfill(*)rightsetw(7)ABendl; 其中能显示 A*B 的是(分数:2.00)A.和B.和C.和D.和2.下列有关抽象类和纯虚函数的叙述中,错误的是(分数:2.00)A.拥有纯虚函数的类是抽象类,不能用来定义对象B.抽象
2、类的派生类若不实现纯虚函数,它也是抽象类C.纯虚函数的声明以“=0;”结束D.纯虚函数都不能有函数体3.有如下程序: #includeiostream using namespace std; class Base int x; public: Base(int n=0):x(n)coutn; int getX( )constreturn x; ; class Derived:public Base int y; public: Derived(int m,int n):y(m),Base(n)toutm; Derived(int m):y(m)coutm; ; int main( ) Der
3、ived dl(3),d2(5,7); return 0; 程序的输出结果是(分数:2.00)A.375B.357C.0375D.03574.已知 Value 是一个类,value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(分数:2.00)A.Value operator+(Value v,inti);B.Value operator+(Value v=value,inti);C.Value operator+(Value V,int i=0);D.Value operator+(Value v=value,int i=0);5.已知枚举类型声明语句为:
4、 enumCOLORWHITE,YELLOW,GREEN=5,RED,BLACK=10; 则下列说法中错误的是(分数:2.00)A.枚举常量 YELLOW 的值为 1B.枚举常量 RED 的值为 6C.枚举常量 BLACK 的值为 10D.枚举常量 WHITE 的值为 16.有 3 个关系 R、S 和 T,如下: (分数:2.00)A.B.C.D.7.设有表示学生选课的 3 张表:学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩8
5、.下列有关类继承的叙述中,错误的是(分数:2.00)A.继承可以实现软件复用B.虚基类可以解决由多继承产生的二义性问题C.派生类构造函数要负责调用基类的构造函数D.派生类没有继承基类的私有成员9.有如下程序: #includeiostream using namespaee std; class VAC public: int f( )COUStreturn 3; int f( )return 5; ; int main( ) VAC vl; const VAC v2; eoutv1.f( )v2.f( ); return 0; 程序的输出结果是(分数:2.00)A.53B.35C.55D.3
6、310.有如下类和对象的定义: class Constants public: static double getPI( )return 31416; ; Constants constants; 下列各组语句中,能输出 3.1416 的是(分数:2.00)A.coutconstants-getPI( );和 coutConstants:getPI( );B.coutconstantsgetPI( );和 coutConstants.getPI( );C.coutconstants-getPI( );和 coutConstants-getPI( );D.couteonstantsgetPI(
7、);和 coutConstants:getPI( );11.下列符号中能够作为 C+标识符的是(分数:2.00)A.constB.2aC._shapeD.-connt12.在软件开发过程中,需求分析阶段产生的主要文档是(分数:2.00)A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划13.有如下程序: #includeiostream using namespace std; class Amount int amount; public: Amount(int n=0):amount(n) int getAmount( )constreturn amount; Am
8、ount&operator+=(Amount(分数:2.00)A.amount+=a.amount; return; ; int main( ) Amount x(3),y(7); x+=y: coutx.getAmount( )endl; return 0; 已知程序的运行结果是 10,则下画线处缺失的表达式是 A) *thisB.thisC.&amountD.amount14.下列有关函数重载的叙述中,错误的是(分数:2.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同D.重载函数的参数可以带有默认值15.下列有关类成员的叙述中
9、,正确的是(分数:2.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员16.有如下定义: inta5=1,3,5,7,9,*p=a; 下列表达式中不能得到数值 5 的是(分数:2.00)A.a2B.a3C.*(p+2)D.*p+417.算法的有穷性是指(分数:2.00)A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用18.在数据库设计中,将 E-R 图转换成关系数据模型的过程属于(分数:2.00)A.需求分析阶段B.概念设计阶段C.逻辑设计阶段D.
10、物理设计阶段19.下面是一个模板声明的开始部分: templatetypename Tdouble 由此可知(分数:2.00)_20.结构化程序设计的基本原则不包括(分数:2.00)A.多态性B.自顶向下C.模块化D.逐步求精21.下列有关 C+流的叙述中,错误的是(分数:2.00)A.C+操作符 setw 设置的输出宽度永久有效B.C+操作符 endl 可以实现输出的回车换行C.处理文件 I/O 时,要包含头文件 fstreamD.进行输入操作时,eof( )函数用于检测是否到达文件尾22.有如下类定义: ClaSS MyClass int value; public: MyClass(in
11、t n):value(n) int getValue( )constreturn value; l; 则类 MyClass 的构造函数的个数是(分数:2.00)A.1 个B.2 个C.3 个D.4 个23.有如下程序: #includeiostream using namespace std; class GA public: virtual int f( )return 1; ; class GB:public GA public: virtual int f( )return 2; ; void show(GA g)eoutg.f( ); void display(GAg)coutg.f(
12、 ); int main( ) GA a;show((分数:2.00)A.;display(A) ; B.;display(B)C.11 2D.121224.执行下列语句段后,输出字符“*”的个数是 for(inti=50;i1;i-=2)tout*;(分数:2.00)A.24B.25C.26D.5025.下列关于栈的叙述正确的是(分数:2.00)A.栈按“先进先出”的原则组织数据B.栈按“先进后出”的原则组织数据C.只能在栈底插入数据D.不能删除数据26.在下列关键字中,不能用来表示继承方式的是(分数:2.00)A.privateB.staticC.publicD.protected27.下
13、列有关模板的叙述中,正确的是(分数:2.00)A.函数模板不能含有常规形参B.函数模板的一个实例就是一个函数定义C.类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参28.已知函数 f 的原型是 void f(int *a,longB) ;,变量 v1、v2 的定义是: int v1:long v2: 下列调用语句中正确的是(分数:2.00)A.f(v1,&v2);B.f(v1,v2);C.f(&vl,&v2);D.f(&vl,v2);29.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是(分数:2.00)A.快速排序B.冒泡排序C
14、.直接插入排序D.堆排序30.下列有关运算符重载的叙述中,正确的是(分数:2.00)A.运算符重载是多态性的一种表现B.C+中可以通过运算符重载创造新的运算符C.C+中所有运算符都可以作为非成员函数重载D.重载运算符时可以改变其结合性31.有如下类声明: class Base protected: int amount; public: Base(int n=0):araount(n) int getAmount( )constretum amount; ; class Derived:public Base protected; int value; public: Derived(int
15、m,int n):value(n1),Base(n) int getData( )constreturn value+amount; ; 已知 x 是一个 Derived 对象,则下列表达式中正确的是(分数:2.00)A.value+xgetAmount( )B.getData( )-xgetAmount( )C.getData( )-xamountD.value+xamount32.程序流程图中带有箭头的线段表示的是(分数:2.00)A.图元关系B.数据流C.控制流D.调用关系33.有如下类定义: class Point private: static int how_many; ; _ho
16、w_many=0; 要初始化 Point 类的静态成员 how_many,在下画线处应填入的内容是(分数:2.00)A.intB.static intC.int Point:D.static int Point:34.软件设计中模块划分应遵循的准则是(分数:2.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合35.下列语句分别是不同程序中的第一个输入/输出语句,若去掉其中的“left”,则输出效果将发生变化的是(分数:2.00)A.eoutleftsetfill(*)357;B.coutleftsetw(5)357;C.eoutleftsetw(5)“ABCDE“;D.e
17、outleft“ABCDE“;二、填空题(总题数:15,分数:30.00)36.测试用例包括输入值集和 1 值集。(分数:2.00)填空项 1:_37.深度为 5 的满二叉树有 1 个叶子结点。(分数:2.00)填空项 1:_38.设某循环队列的容量为 50,头指针 front=5(指向队头元素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_39.在关系数据库中,用来表示实体之间联系的是 1。(分数:2.00)填空项 1:_40.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中, 1 负责数据的模式定义与数据
18、的物理存取构建。(分数:2.00)填空项 1:_41.在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作“类”。类是一种抽象的概念,属于该类的一个实例称为“ 1”。(分数:2.00)填空项 1:_42.指针数组是由 1 构成的数组。(分数:2.00)填空项 1:_43.如果使用数组名作为函数参数,形实结合时,传递的是 1。(分数:2.00)填空项 1:_44.在类的对象被创建的时候, 1 函数会被自动调用。(分数:2.00)填空项 1:_45.在类中, 1 成员为类的所有对象所共享。(分数:2.00)填空项 1:_46.有如下程序: #includeios
19、tream using namespace std; class Base public: int m,n; ; class Derivedl:_Base ; class Derived2:public Derivedl public: void SetMN(int M,int N)nl:M;n=N; int GetSumMN()retum(m+n); ; int main( ) Derived2 objD; objDSetMN(3,4); cout“M+N=“objDm+bojDnendl: retum 0; 编译时只有“eout“M+N=“objD.m+bojD.nendl;”有语法错误,
20、程序的其他地方没有语法错误,请判断下画线处使用的关键字是什么。(分数:2.00)填空项 1:_47.有如下程序: #includeiostream using namespace std; class Base int b; public: Base(int i)b=i; void disp( )cout“Base:b=“b; ; class Basel:virtual public Base public: Basel(int i):Base(i) f; class Base2:virtual public Base public: Base2(int i):Base(i) ; class
21、Derived:public Base2public Basel int d; public: Derived(inl i,int j):Basel(j),Base2(J),_d=i; void disp( )cout“Derived:d=“d“: f; int main( ) Derived objD(1,2);objDdisp( ); objDBasce:disp( ); objDBascel:disp( ); objDBasce2:disp( ); return 0; 请将程序补充完整,使程序在运行时输出: Derived:d=1 Base:b:2 Base:b=2 Base:b=2(分
22、数:2.00)填空项 1:_48.如下程序声明了一个电话号码类 PhoneNumber,重载了流插入运算符,以便于电话号码的输出。请将程序补充完整。 #includeiostream #includeiomanip #includestring using namespace std; class PhoneNumber public: void setNumber(string number)this-number=number; friend_(ostream&output,const PhoneNumber&nuln) /重载流插入操作符 outputnumnumber;return o
23、utput; private: string number; ; int main( ) PhoneNumber phone; phonesetNumber(“8008100598“); cout“The phone number is:“phoneendl: return 0; (分数:2.00)填空项 1:_49.如下程序声明了一个二维图形类 TwoDShape,从其派生出矩形类 Rec。 #includeiostream #includestring using namespace std; class TwoDShape /二维图形类 char name20; public: TwoD
24、Sha TwoDShape pe(char*n=“unknown“)strepy(name,n); char*getName( )return name; _=0; ; class Rec:public TwoDShape double width,height; public: Rec(double w=0.0,doubleh=0.0):TwoDShape(“rectangle“)width=w;height=h; double getWidth( )return width; double getHeight( )return height; double area( )return wi
25、dth*height; ; int main( ) TwoDShape*shape; shape=new Rec(2.1,3.0); cout“object is“shape-getName( )“/n“; cout“Area is“shape-area( )“/n“; return 0; 请将程序补充完整,使程序在运行时输出: object is triangle Area is 6.3(分数:2.00)填空项 1:_50.如下程序声明了一个使用两个通用数据类型的模板类 dataClass,其中构造函数用于初始化两个数据成员,成员函数 show 用于输出两个数据成员的数值。 #include
26、iostream using namespaee std; _ T1 i; T2 j; public: dataClass(T1 a,T2B) i=a;J=b; void show( )eouti“,“j/n; ; int main( ) dataClassint,doubleobl(10,0.23); dataClasschar,char*oh2(X,“my data“); obl show( ); ob2show( ); return 0; 请将程序补充完整,使程序在运行时输出: 10,0.23 X,my data(分数:2.00)_二级 C+笔试-118 答案解析(总分:100.00,做
27、题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.有如下 4 个语句: eoutAsetfill($)leflsetw(7)Bendl; eoutsetfill(*)leflsetw(7)ABendl; eoutAsetfill(*)rightsetw(7)Bendl; eoutsetfill(*)rightsetw(7)ABendl; 其中能显示 A*B 的是(分数:2.00)A.和B.和C.和 D.和解析:解析 预定义操作符中,setfill(C) 设置 c 为填充字符。setw(n),n 为宽度;left 为左对齐,右填充,right 为右对齐,左填充。所有的预定义操作
28、符均只对紧跟其后的输出语句起作用。2.下列有关抽象类和纯虚函数的叙述中,错误的是(分数:2.00)A.拥有纯虚函数的类是抽象类,不能用来定义对象B.抽象类的派生类若不实现纯虚函数,它也是抽象类C.纯虚函数的声明以“=0;”结束D.纯虚函数都不能有函数体 解析:解析 纯虚函数的声明格式为: virtual 函数类型函数名(参数表)=0 拥有纯虚函数的类就叫抽象类,如果在派生类中不实现纯虚函数,则派生类也是抽象类。纯虚函数在派生类可以被重新定义,即可以拥有函数体。3.有如下程序: #includeiostream using namespace std; class Base int x; pub
29、lic: Base(int n=0):x(n)coutn; int getX( )constreturn x; ; class Derived:public Base int y; public: Derived(int m,int n):y(m),Base(n)toutm; Derived(int m):y(m)coutm; ; int main( ) Derived dl(3),d2(5,7); return 0; 程序的输出结果是(分数:2.00)A.375B.357C.0375 D.0357解析:解析 对象在创建时,先调用基类的构造函数,然后调用派生类的构造函数。在调用基类的构造函数时
30、,如果没有给基类的构造函数形参赋值,则基类的构造函数使用带默认值的参数,所以 d1(3)打印03;如果给基类的构造函数形参赋有初值,则使用实参值,故 d2(5,7)打印 75。4.已知 Value 是一个类,value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是(分数:2.00)A.Value operator+(Value v,inti);B.Value operator+(Value v=value,inti); C.Value operator+(Value V,int i=0);D.Value operator+(Value v=value,int
31、 i=0);解析:解析 +是二元运算符,重载不能改变这一点。所以为了保证+有两个参数,所以不允许有默认参数。5.已知枚举类型声明语句为: enumCOLORWHITE,YELLOW,GREEN=5,RED,BLACK=10; 则下列说法中错误的是(分数:2.00)A.枚举常量 YELLOW 的值为 1B.枚举常量 RED 的值为 6C.枚举常量 BLACK 的值为 10D.枚举常量 WHITE 的值为 1 解析:解析 枚举变量中的枚举元素系统是按照常量来处理的。如果没有进行元素赋值操作,那么元素将会被系统从 0 开始自动递增地进行赋值操作,但是,如果一旦定义了某一个元素的值,那么系统将对下一个
32、元素进行按前一个元素的值加 1 操作,故 wHITE=1,YELLOW=2,GREEN=5,RED=6,BLACK=10。6.有 3 个关系 R、S 和 T,如下: (分数:2.00)A.B.C.D. 解析:解析 在关系运算中,交的定义如下:设 R1 和 R2 为参加运算的两个关系,它们具有相同的度n,且相对应的属性值取自同一个域,则 R1R2 为交运算,结果仍为度等于 n 的关系,其中,交运算的结果既属于 R1 又属于 R2。7.设有表示学生选课的 3 张表:学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为
33、(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:解析 “选课表”SC 是“学生表”S 和“课程表”C 的映射表,主键是两个表主键的组合。8.下列有关类继承的叙述中,错误的是(分数:2.00)A.继承可以实现软件复用B.虚基类可以解决由多继承产生的二义性问题C.派生类构造函数要负责调用基类的构造函数D.派生类没有继承基类的私有成员 解析:解析 派生类继承基类,即继承了基类的所有成员,包括公有成员、私有成员和保护成员,只是私有成员在派生类中不能被访问。9.有如下程序: #includeiostream using namespaee std; class V
34、AC public: int f( )COUStreturn 3; int f( )return 5; ; int main( ) VAC vl; const VAC v2; eoutv1.f( )v2.f( ); return 0; 程序的输出结果是(分数:2.00)A.53 B.35C.55D.33解析:解析 常对象只能访问常成员函数,而不能访问普通成员函数;同样,普通成员函数也不能访问常成员函数。10.有如下类和对象的定义: class Constants public: static double getPI( )return 31416; ; Constants constants;
35、 下列各组语句中,能输出 3.1416 的是(分数:2.00)A.coutconstants-getPI( );和 coutConstants:getPI( );B.coutconstantsgetPI( );和 coutConstants.getPI( );C.coutconstants-getPI( );和 coutConstants-getPI( );D.couteonstantsgetPI( );和 coutConstants:getPI( ); 解析:解析 Constants 定义了一个类对象,对象对类的成员函数引用时,用的是“”而不是“-”操作符。或者在类外部对类中的成员函数进行显
36、式调用为: 类名:成员函数名( )11.下列符号中能够作为 C+标识符的是(分数:2.00)A.constB.2aC._shape D.-connt解析:解析 在 C+中,变量标识符必须以大小写字母或下画线开始,是由数字或者字母、下画线等组成的一个字符串,其中 C+关键字不能作为标识符,不能包含-、+、*、/等运算符号。C+变量区分大小写。12.在软件开发过程中,需求分析阶段产生的主要文档是(分数:2.00)A.可行性分析报告B.软件需求规格说明书 C.概要设计说明书D.集成测试计划解析:解析 需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审 4 个方面。产生的主要文
37、档为软件需求规格说明书。13.有如下程序: #includeiostream using namespace std; class Amount int amount; public: Amount(int n=0):amount(n) int getAmount( )constreturn amount; Amount&operator+=(Amount(分数:2.00)A.amount+=a.amount; return; ; int main( ) Amount x(3),y(7); x+=y: coutx.getAmount( )endl; return 0; 已知程序的运行结果是 1
38、0,则下画线处缺失的表达式是 A) *this B.thisC.&amountD.amount解析:14.下列有关函数重载的叙述中,错误的是(分数:2.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同 D.重载函数的参数可以带有默认值解析:解析 当两个或者两个以上的函数共用一个相同的函数名时,称为函数的重载。函数重载时函数名必须相同。函数的参数个数和类型不同;函数的返回值类型可以相同,也可以不同。15.下列有关类成员的叙述中,正确的是(分数:2.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的 C.类成员函数必须声明
39、为公有的D.类的静态数据成员不能是常成员解析:解析 即可以是不属于任何类的非成员函数,也可以是另外一类的成员函数,统称为成员函数。友元函数不是当前类的成员函数,而是独立于当前类的外部函数。类成员函数可以声明为任何访问权限。类的静态成员可以定义为常成员,只是其值不能改变。16.有如下定义: inta5=1,3,5,7,9,*p=a; 下列表达式中不能得到数值 5 的是(分数:2.00)A.a2B.a3 C.*(p+2)D.*p+4解析:解析 a3=7,*(p+2)等于从首地址移动 2 个元素位,指向数组 a2=5,*p+4 等于 a0+4=5。17.算法的有穷性是指(分数:2.00)A.算法程序
40、的运行时间是有限的 B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用解析:解析 算法具有:有穷性。一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,每一步都可在有限时间内完成,即运行时问是有限的。确定性。算法中每一条指令必须有确切的含义,读者理解时不会产生歧义。可行性。一个算法是可行的,即算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。输入。一个算法有 0 个或多个输入,这些输入取自于某个特定的对象的集合。输出。一个算法有一个或多个输出。18.在数据库设计中,将 E-R 图转换成关系数据模型的过程属于(分数:2.00)A.需求分析
41、阶段B.概念设计阶段C.逻辑设计阶段 D.物理设计阶段解析:解析 数据库的逻辑设计分为:将概念模型转换成一般的数据模型;将一般的数据模型转换为特定的数据库管理系统所支持的数据模型。把概念模型转换成关系数据模型就是把 ER 图转换成一组关系模式。19.下面是一个模板声明的开始部分: templatetypename Tdouble 由此可知(分数:2.00)_解析:解析 函数模板声明的格式: templatetypename 类型参数返回类型函数名(模板形参表)函数体 类模板的声明格式: templatetypename 类型参数class 类名类成员声明20.结构化程序设计的基本原则不包括(分
42、数:2.00)A.多态性 B.自顶向下C.模块化D.逐步求精解析:解析 结构化程序设计的原则包括“自顶而下,逐步求精,模块化”。多态性是面向对象程序语言的特征。21.下列有关 C+流的叙述中,错误的是(分数:2.00)A.C+操作符 setw 设置的输出宽度永久有效 B.C+操作符 endl 可以实现输出的回车换行C.处理文件 I/O 时,要包含头文件 fstreamD.进行输入操作时,eof( )函数用于检测是否到达文件尾解析:解析 setw 设置的宽度只对紧跟其后的输出语句有效。22.有如下类定义: ClaSS MyClass int value; public: MyClass(int
43、n):value(n) int getValue( )constreturn value; l; 则类 MyClass 的构造函数的个数是(分数:2.00)A.1 个 B.2 个C.3 个D.4 个解析:解析 对于类的构造函数,如果有显式定义,那么在构造该类对象时就自动调用显式定义的构造函数,否则系统将给类一个默认的空构造函数。23.有如下程序: #includeiostream using namespace std; class GA public: virtual int f( )return 1; ; class GB:public GA public: virtual int f(
44、)return 2; ; void show(GA g)eoutg.f( ); void display(GAg)coutg.f( ); int main( ) GA a;show((分数:2.00)A.;display(A) ; B.;display(B)C.11 2 D.1212解析:解析 基类对象作为实参进行传递时,无论使用的是对象还是对象引用作为形参,都只能在该函数中调用基类成员函数,因此当 GA a 作为实参时,调用的只能是 GA 的成员函数。而当派生类对象作为实参传递时,函数的形参则要分情况而定:如果是普通的对象传递,则是值传递,那么在函数中也只能调用基类的成员函数;如果是对象引用
45、作为形参,则是地址传递,这个时候函数就可以调用重载后的虚成员函数。24.执行下列语句段后,输出字符“*”的个数是 for(inti=50;i1;i-=2)tout*;(分数:2.00)A.24B.25 C.26D.50解析:解析 此题等价于求 150 之间的偶数个数,答案为 25。25.下列关于栈的叙述正确的是(分数:2.00)A.栈按“先进先出”的原则组织数据B.栈按“先进后出”的原则组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 在栈中,允许插入与删除的一端称为栈顶。栈顶元素总是最后被插入的元素,从而也是最先被删除的元素;即栈是按照“先进后出”或“后进先出”的原则组织数据的。2
46、6.在下列关键字中,不能用来表示继承方式的是(分数:2.00)A.privateB.static C.publicD.protected解析:解析 static 用来定义静态成员而不是继承方式。27.下列有关模板的叙述中,正确的是(分数:2.00)A.函数模板不能含有常规形参B.函数模板的一个实例就是一个函数定义 C.类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参解析:解析 函数模板和类模板均允许使用多个类型参数,也允许常规形参出现。类模板的成员函数可以为模板函数。使用模板定义对象时,类模板的实际类型名不能省略,而模板的实参表则不一定必须有。28.已知函数 f 的原型是 void f(int *a,longB) ;,变量 v1、v2 的定义是: int v1:long v2: 下列调用语句中正确的是(分数:2.00)A.f(v1,&v2);B.f(v1,v2);C.f(&