全国计算机等级考试(二级c)历年真题及答案.pdf
全国计算机等级考试二级笔试试卷公共基础知识及C+语言程序设计(考试时间90分钟,满 分 100)分)一、选择题1)(35)每小题2 分,共 70分)下列各即A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。(1)下面叙述正确的是A)算法的执行效率与数据的存储结构无关B)算法的空间复杂度是指算法程序中指令(或语句)的条数C)算法的有穷性是指算法必须能在执行有限个步骤之后终止D)以上三种描述都不对(2)以下数据结构中不属于线性数据结构的是A)队列 B)线性表 C)二叉树 D)栈(3)在一棵二叉树上第5 层的结点数最多是A)8 B)16 C)32 D)15(4)下面描述中,符合结构化程序设计风格的是A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B)模块只有一个入口,可以有多个出口C)注重提高程序的执行效率D)不使用goto语句(5)下面概念中,不属于面向对象方法的是A)对象 B)继承 C)类 D)过程调用(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是A)可行性分析 B)需求分析 C)详细设计 D)程序编码(7)在软件开发中,卜面任务不属于设计阶段的是A)数据结构设计 B)给出系统模块结构C)定义模块算法 D)定义需求并建立系统模型(8)数据库系统的核心是A)数据模型 C)软件工具B)数据库管理系统 D)数据库(9)下列叙述中正确的是A)数据库系统是一个独立的系统,不需要操作系统的支持B)数据库设计是指设计数据库管理系统C)数据库技术的根本目标是要解决数据共享的问题D)数据库系统中,数据的物理结构必须与逻钳结构一致(10)卜列模式中,能够给出数据库物理存储结构与物理存取方法的是A)内模式 B)外模式 C)概念模式 D)逻辑模式(11)关于面向对象的程序设计方法,卜.列说法正确的是A)“封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理B)“多态性”指的是对象的状态会根据运行时要求自动变化C)基类的私有成员在派生类的对象中不可访问,也不占内存空间D)在面向对象的程序设计中.结构化程序设计方法仍有着重要作用(12)判断字符型变量ch是否为大写英文字母,应使用表达式A)ch=,A,&ch=Z B)ch=ZC)A=ch=A&ch=,Z(13)己知下列语句中的x 和 y 都是u it型变量,其中错误的语句A)x=y+;B)x=+y;C)(x+y)+;D)+x=y;(14)执行语句序列iiit n;cm n;switch(n)case 1:case 2:cout T;case 3:case 4:cout ,2 break;default:cout 3f;)时,若健盘输入1,则屏幕显示A)1 B)2 C)3 D)12(15)下列程序的输出结果是include usmg namespace std;mt maui()(cliar a=Hello,Woildn;char*ptr=a,while(*ptr)(if(*ptr=a*&*ptr v=Z)cout chai(*ptr+A-a);else cout *ptr;ptr+;return 0,)A)HELLO,WORLD B)Hello,WorldC)11ELLO.WORLD D)hello,world(16)已知:mt m=10:在下列定义引用的语句中,正确的是A)iiit&x=m;B )int y=&m;C )int&z,D )int(1 7)下列函数原型声明中错误的是A)v oid x=0.mt y=0);B )v oid Fun(mt x,mt y);C )v oid Fun(iiit x,iiit y=0);D )v oid Fun(int x=0.int y);(1 8)已知程序中已经定义了函数test,其原型是int test(int,int,int);,则下列重载形式中正确的是A)c ha r test(int,int,int);B)doub le test(iiit.iiit.doub le);C)int test(muint.mt=O);D )floa t test(mtjntfloa t=3.5F);(1 9)有以下程序#inc ludeint i=0;v oid fin1 0 sta tic int i=1;std 二 c outwi+YV,;std 二 c out iv,二iJint ma in。(fiinQ;retimi 0;j程序执行后的输出结果是A)l,2,l,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0,(2 0)己知函数f的原型是:v oid*int*a.long&b);变量v l、v2的定义是:intv l;longv 2;,正确的调用语句是A)f(v L&v 2);B)f(v Lv 2);C)氏&v l,v 2);D)H&v l,&v 2);(2 1)有以下类定义c la ss MyCla ssp ub lic:MyCla ss()c out l;;则执行语句MyCla ss a.b 2 ,*p 2 ;后,程序的输出结果是AJ1 1 B)lll CJllll DJ1 1 1 1 1(2 2)关于友元,下列说法错误的是A)如果类A是类B的友元,那么类B也是类A的友元BJ如果函数fb nO被说明为类A的友元,那么在fiin。中可以访问类A的私有成员C)友元关系不能被继承D)如果类A是类B的友元,那么类A的所有成员函数都是类B的友元(2 3)关于动态存储分配,下列说法正确的是A j n e w和delete是C+语言中专门用于动态内存分配和释放的函数B)动态分配的内存空间也可以被初始化C)当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间D)当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用n e w(2 4)有以下程序#inc hideu sm g na mesp a c e std;c la ss MyCla ss(p ub lic:MyCla ss(mt n)numb er=n;拷贝构造函数MyCla ss(MyCla ss rother)numb er=oT her.numb er;-MyCla ss()p riv a te:mt numb er;MyCla ss fiin(MyCla ss p)(MyCla ss temp(p);rerurn temp;)mt ma in()(MyCla ss ob jl(1 0),ob j2(0);MyCla ss ob j3(ob jl);ob j2=fun(ob j3);lenun 0;)程序执行时,M y C l a s s类的拷贝构造函数被调用的次数是A)5 B)4 C)3 D)2(2 5)在公有派生的情况下,派生类中定义的成员函数只能访问原基类的A)公有成员和私有成员 B)私有成员和保护成员C)公有成员和保护成员 D J私有成员、保护成员和公有成员(2 6)在C+中用来实现运行时多态性的是A)重载函数 B)析构函数C)构造函数 D)虚函数(2 7)一个类可以同时继承多个类,称为多继承。卜列关于多继承和虚基类的表述中,错误的是A)每个派生类的构造函数都要为虚基类构造函数提供实参B)多继承时有可能出现对基类成员访问的二义性问题C)使用虚基类可以解决二义性问题并实现运行时的多态性D)建立最派生类对象时,虚基类的构造函数会首先被调用(2 8)在一个类体的卜列声明中,正确的纯虚函数声明是A)v irtua l v oid v f()=0;B)v oid v f(iiit)=O;C)v irtua l uit v flint);D)v irtua l v oid (2 9)在下面的运算符重载函数的原型中,错误的是A)V o l u m e ope r a t or -(d ou b l e,d ou b l e);B)d ou b l e b l u me:ope r a t or-(d ou b l e);C)V b l u m e W l u m e:ope i a t or -(V ol u me);D)V o l u m e ope r a t or -(V ol u me,V b l u me);(3 0)卜列是模板声明的开始部分,其中正确的是A)t e mpl a t e B)t e mpl a t e C)t e ni pl a t e D)t e mpl a t e(3 1)执行语句序列ofs t r e a m ou t fi l e(MD ATA.D ATM);i f()c ou t vv“O K”;e l s e c ou t v v “F A I L”;后,如果文件打开成功显示“O K H否则就显示“F A n J。由此可知,上面i f语句的.处的表达式应是A)ou t fi l e.fa i l 0 或 ou t fl l e B)ou t fi l e.g ood()或 l ou t fi l eC)ou t fi l e.g ood()或 ou t fi l e D )ou t fi l e.fa i l()或!ou t fi l e(3 2)C+流中重载的运算符是一个(A)用于输出操作的非成员函数 B)用于输入操作的非成员函数C)用于输出操作的成员函数 D)用于输入操作的成员函数(3 3)行以卜.类定义c l a s s P oi nt pu b l i c:P oi nt(i nt x =0,m t y =0)_.x =x,_.y =y;v oi d Mov e(i i i t x Off,i i i t y Off)_ x +=x Off;_.y +=y Off;v oi d P r mt()c ons t(c ou t (1 _ x ;_ y 7 e nd l;pr i v a t e:m t _ x._ y;卜列语句中会发生编译错误的是A)P oi nt pt,pt.P i mt O;B)c ons t P ou i t pt;pt.P i i nt();C)P oi nt pt;pt.Mov e(l,2);D)c ons t P oi nt pt;pt.Mov e(k 2);(3 4)有以下类定义c l a s s M y C l a s s(pr i v a t e:i nt i d;c l i a r g e nd e i;c l i a r *pi i one;pu b l i c:My C l a s s Q:i d(0),g e nd e r(W ),ph oi i e(NU L L)My C l a s s(mt no,c h a i g e=存;c h a r *pl i=N ULL)i d=no;g e nd e=g e;ph one=ph;下列类对象定义语句中错误的是A)M y C l a s s m y O b j;B)M y C l a s s my Ob j(l l,1 3 3 O 1 U 1 1 5 5H);C)M y C l a s s my Ob j(1 2,m);D)M y C l a s s my Ob j(1 2);(3 5)有以下程序#i nc l u d e u s i ng na me s pa c e s t d;c l a s s C o m p l e x(pu b l i c:C ompl e x(d ou b l e r =0.d ou b l e i =O):r e(r).1 1 1 1(1)d ou b l e i e a l()c ons t r e t u i n r e;d ou b l e u u a g()c ons t r e t u r n i m;C o m p l e x ope r a t or +(C o m p l e x c)c ons t r e t u r n C ompl e x(i e+c.r e,i m+c.i m);pr i v a t e:d ou b l e r e,u n;yJ m t ma i n。(C o m p l e x a =C o m p l e x。,1)+C ompl e x(5);c ou t a.i e a l()+a.i ni a g(),i,e nd l;r e t u r n 0;程序执行后的输出结果是A)6+61 B)6+l i C)1+61 D)1+1 1二、填空题(每空2分,共30分)请 将 每 一 个 空 的 正 确 答 案 写 在 答 题 卡 序 号的横线上,答在试卷上不得分e注意:以命令关健字填空的必须拼写完整。(1)算法的复杂度主要包括口 狂杂度和空间复杂度。(2)数据的逻辑结构在计算机存储空间中的存放形式称为数 据 的 2 o(3)若按功能划分,软件测试的方法通常分为白盒测试方法 和 3 测试方法。(4)如果一个工人可管理多个设备,而一个设备只被一个工人管理,则实体“工人”与实体“设备”之间 存 在 4 的联系。关 系数据库管理系统能实现的专门关系运算包括选择、连 接 和 5 o(6)设有定义语句:int a=1 2;,则表达式a*=2+3的运算结 果 是 6 o(7)从实现的角度划分,C+所支持的两种多态性分别是 7 时的多态性和运行时的多态性。(8)将一个但数声明为一个类的友元函数必须使用关键字 8。(9)请按卜面注粹的提示,将类B的构造函数定义补充完整。c la ss A(iiit a;public:A(iiit a a=O)a=a a;xc la ss B :public A iiit b;A c;public:用a a初始化基类A,用a a+1初始化类对象成员cB(int a a):9 b=a a+2;(1 0)下列程序的输出结果是 1 0 ,#inc lud e using na me spa c e std;int ma in()(mt i=5;int&r =i;r=7;c out i e nd l;re nun 0;(1 1)下列程序的输出结果是 1 1 O#inc lud e using na me spa c e std;c la ss T e st public:T e stQ c nt+;T e stQ e nt-;sta tic mt C ount()re turn e nt;priv a te:sta tic mt e nt;int T e st:c ut=0;iiit ma in()(c out T e st:C ouiitO *T e st th t2;T e st*pT 3 =n e w T e st;T e st*p T 4 =n e w T e st;c out T e st:C ountOd e le te pT 4;d e le te pT 3;c out T e st:C ountQ e nd l;re tuin 0;(1 2)卜 面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是unsig ne d f a c(unsig ne d n)(if (n =1)re turn 1;re turn 1 2 ;(1 3)卜 列程序的输出结果是 1 3 o#inc lud e u sm g na me spa c e std;te mpla te T f uii(T a,T b)re turn(a i i a m e等 价 的 表 达式是14。(1 5)卜列程序的输出结果是 1 5 o#inc lud e u sm g na me spa c e std;c la ss ba se public:int n;ba se(iiit x)n=x;v uma l v oid se t(int m)n=m;c out n;);c la ss d e iiv e A public ba se public:d e nv e A(int x):ba se(x)v oid se t(mt m)n+=m;c out n ;);c la ss d e iiv e B public ba se public:deriveB(int x)base(x)void set(int m)n+=m;cout n *;int main()(deiiveAdl(l);denveB d2(3);base*pbase;phase=&dl;pbase-aet(l);phase=&d2;pbase-set(2);return 0;2004年 9 月全国计算机等级考试二级笔试试卷公共基础知识及C+语言程序设计答案及评分标准选择题(。1 3 5)每小题2 分,共 70分)(1)C(2)C(3)B(4)A(5)D(6)B D(8)B(9)C(10)A(11JD(12)D(13)C(14)D(15)A(16)A(17)D(18)B(19)D(20)C(21)B(22)A(23)B(24)B(25)CQ6)D(27)C(28)A(29)A(30)C(31)C(32)B(33)D(34)B(35)B二、填空题(每空2 分,共 30分)时间(2)2存储 结 构 或物 理 结 构 或 物 理 存 储 结 构(3)3黑盒 或 黑箱(4)4 一 对 多 或 1 对 多 或 I:M或I:N(其中M、N 大小写均可)(5)5投影(6)6 60 编译(8)8 fiiend(9)9 A(aa),c(aa+1)或 c(aa+l),A(aa)(10)10 7(11)11042(12)12 n*fact(n-l)(13)13 3,3.14(14)14(*p).name(15)15 252010年 3 月计算机等级考试二级C+笔试试题一、选择题(每小题2 分,共 70分)下列各即A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是A)对长度为n 的有序链表进行查找,最坏情况下需要的比较次数为nB)时长度为11的有序链表进行时分查找,最坏情况下需要的比较次数为(n/2)C)对长度为n 的有序链表进行对分查找,母坏情况下需要的比较次数为(log2n)D)对长度为n 的行序链表进行对分查找,最坏情况下需要的比较次数为(nlog2nj(2)算法的时间更杂度是指A)算法的执行时间B)算法所处理的数据量C)算法程序中的语句或指令条数D)算法在执行过程中所需要的基本运算次数(3)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件”下面属于系统软件的是A)编辑软件B)操作系统C)教务管理系统D)浏览器(4)软件(程序)调试的任务是A)诊断和改正程序中的错误B)尽可能多地发现程序中的错误C)发现并改正程序中的所有错误D)确定程序中错误的性质(5)数据流程图(DFD图)是A)软件概要设计的工具B)软件详细设计的工具C)结构化方法的需求分析工具D)面向对象方法的需求分析工具(6)软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于A)定义阶段B)开发阶段C)维护阶段D)上述三个阶段(7)数据库管理系统中负面数据模式定义的语言是A)数据定义语言B)数据管理语言C)数据操纵语言D)数据控制语言(8)在学生管理的关系数据库中,存取一个学生信息的数据单位是A)文件B)数据库C)字段D)记录(9)数据库设计中,用 E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库役计的A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段(10)有两个关系R 和 T 如下:则由关系R 得到关系T 的操作是A)选择B)投影C)交D)并(11)卜.列关于函数的描述中,错误的是A)函数可以没有返回值B)函数可以没有参数C)函数可以是一个类的成员D)函数不能被定义为模板(12)77 MyClass是一个类名,且有如下语句序列MyClass cl,*c2;MyClass*c3=new MyClass;MyClass&c4=cl;上面的语句序列所定义的类对象的个数是A)1B)2Q3D)4(13)卜列关于继承方式的描述中,错误的是A)如果不显式地指定继承方式,缺省的继承方式是私有(private)B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D)采用私行继承方式时,基类中的私有成员在派生类中仍然是私有成员(14)将前缀运算符重载为非成员函数,下列原型中,能正确用于类中说明的是A)Decr&operator-(int);B)Deci operator DecrS:.mt);C)fiiend DecrSr operator (Decr&);DJfilend Deci operator-(Deci&,mt);(15)若 MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列MyTempp2;MyTempp32;编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是A)1B)2C)3D)0(16)在 C+中,cm 是个A)类B)对象C)模板D)函数(17)在卜列字符中,不允许作为C+标识符的是A)bB)BC)_D)2(18)下列叙述 中,错误的是A)false是一个逻辑型常量B)”b”是一个字符型常量C)365是一个int常量D)3.1415926 是一个 double 常量(19)若 x 和 y 是程序中的两个整型变量,则下列if语句中正确的是A)if(x=0)y=l;else y=2;B)if(x=0)then y=l else y=2;C)if(x=0)y=l else y=2;D)if x=0 y=l;else y=2;(20)要定义整型数组x,使之包括初值为O 的三个元素,下列语句中错误的是A)int x3=0,0,0;B)mtx=0;CJstatic int.引=0;D)intx=0,0,0;(21)关于函数中的 返回类型),下列表述中错误的是A)返回类型 中有可能包含关键字m(B)返回类型,中有可能包含自定义标识符C)返回类型,中有可能包含字符*D)返回类型 中可能包含口(22)要定义一个引用变量p,使之引 用 类 MyClass的一个对象,正确的定义语句是A)MyClass p=MyClass;BJMyClass p=new MyClass;CJMyClass&p=uew MyClass;D)MyClass a.void pnnt()const coutC R l*R lvv,;void print(iiit x)cout,P,R 1*R l*R l-,;private:mt rl;mt main。A al;const Aa2(4);al.print(2);al.piintO;reuini 0;运行时的输出结果是A)P8-E4B)P8-C16-C)P0-E4.D)P0-C16-(30)下列代码声明了 3 个类class Person。;class Student public Person1;class Undergiaduate:Suident;卜列关于这些类之间关系的描述中,错误的是A)类 Person 是类 Undeigiaduate 的基类B)类 Undergraduate 从类 Student 公有继承C)类 Student是类Person的派生类D)类 Undergraduate是类Person的派生类(31)有如下程序includeusi ng na me spa c e std;C la ss B a se pub li c:B a se(ui t x=O):va lB(x)c out;A L B;-B a se()c out V A L B;pri va te:ui t va lB;);c la ss D e ri ve d pub li c B a se pub li c:D e ri ve d(i nt x=O.i ntv=0):B a se(x).va lD(y)c out V A L D;D e ri ve d Q c out V A L D;pri va te:ui t va lD;);i i i t ma i i i(jD e ri ve d ob j 1 2(2,3);re tue n 0;)运行时的输出结果是A)2 3 3 2B J 2 3 2 3C)3 2 3 2D J 3 2 2 3(3 2)卜面是类S h a pe的定义:c la ss S h a pe pub li c:vi rtua l voi d D ra w()=0;下列关于S h a pe类的描述中,正确的是A)类S h a pe是虚基类B)类S h a pe是抽象类C)类S h a pe中的D r a w函数声明有误D)语句“S h a pe s;”能够建立S h a pe的一个对象s(3 3)将运算符重载为非成员函数,下列原型声明中,错误的是A J M yC loc k ope i a tor+(M y C loc k J ong);B)M yC loc k ope i a tor+(M yC loc k,M yC loc k);C )M yC loc k ope ra tor+(long,long);D J M yC loc k ope ra tor+(long,M yC loc k);(3 4)打开文件时可单独或组合使用卜列文件打开模式J yi os_ b a se;:a pp i os_ b a se二b i na ryi os_ b a se:m 3 i os_ b a se:out若要以二进制读方式打开一个文件,需使用的文件打开模式为A)B)C)D)(3 5)有如下程序:#i nc lud eusi ng na me spa c e std;C la ss B pub li c:B(mt xx):x(xx)+c out;x+=1 0;vi rtua l voi d sh ow(J c onst co u t C O U N T J X E N D L;prote c te d:sta ti c ui t c ount;pri va te:h i t x;c la ss D pub li c B(pub li c:D(mt xxa nt yy):B(xx),y(yy)+c oui i t;y+=1 0 0;vi rtua l voi d sh ow(J c onst co u t COUNTJYENDL;pri va te:i nty;mt B:c oi mt=0;i nt i na m()B *ptr-ne wD(1 0,2 0);pti-sli owQ;d e le te ptr;re turn 0;运行时的输出结果是A)l_ i 2 0B)2 _ 1 2 0C)l_ 2 0D)2 _ 2 O二、填空题(每空2分,共30分)请将每一个空的正确答案写在答题卡【1】1 5 序号的横线上,答在试卷上不得分。(1)一 个 队 列 的 初 始 状 态 为 空。现 将 元 素A B,C D,E,F,5,4,3,2,1依次入队,然后再依次退队,则元素退队的顺序为【1】。(2)设 某 循 环 队 列 的 容 量 为50,如果头指针丘ont=4 5(指向队头元素的前一位置卜尾指针r e ai=1 0(指向队尾元素),则该循环队列中共有2个元素,(3)设二叉树如b :对该二叉树进行后序遍历的结果为【3】o(4)软 件 是4、数据和文档的集合。(5)有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程的关系模式为:课程(课号,课程名,学时卜其中两个关系模式的健分别是学号和课号,则关系模式选课可定义为:选课(学号,【5】,成绩)。(6)若x和y是两个整形变量,在执行了语句序列x=5;y=6;y+=x;后,x+y的 值 为【6】。(7)在执行语句序列i i i t i=0;do i+;wh i l e(i*i 1 0);时,d o后面的循环体语句i+被执行的次数为 7 o(8)有如下的函数定义:m t X f ti n(m t*a.m t n)i i i t x=*a;*pa=a+i,pai f(*pa x)x=*pa;l e tum x,)若执行了语句m tx 5 =2 3.4 6,78.5 5.1 6);后,通过表达式X f i m(x,5)调用该函数,则得到的返回 值 为【8】o(9)有如下的函数定义:m t X f i i n(m t x)i i i t y=x;i nt x=1 0,y+=x;r e tur n x+y;)通过表达式X f i i n(5)调用该函数,则得到的返回值为【9】o(1 0)假定Xc s是一个类,该类中一个成员函数的原型为 X cs*ab c();,则在类外定义时对应的函数头为10。(1 1)请将卜面的类D a t e的定义补充完整,使得由语句D ate F ustD ay;定义的对象F i i stD av的值为2 0 1 0年1月1 口。cl ass D ate pub l i c:D ate(1 1 ):ye ar(y).m onth(m day(d)pr i vate:i i i t ye ar,m onth.day;/K 次表示年、月、口;(1 2)请 将 卜面的程序补充完整,使得程序输出“飘是张娜的书”。存 i ncl udeusi ng nam e space std;cl ass B ook pub l i c:B ook(ch ar *str)str cpy(ti tl e,str);)1 2 voi dP i ui tI nf o(J c o u t TITLE E NDL;pr ote cte d:cl i ai ti tl e 5 0 ;);cl ass M y B o o k pub l i c B ook pub l i c:M yB ook(cl i ar *sl,ch ar *s2=张 娜)1 3 sti cpy(o wne r.s2);vi r tual voi d P i i utl nf。c o u t TITLE M 是“OWNE R”的书”E N D L;pr i vate:ch ar o ne r f l O ;i nt i nam()B o o k *pn=ne w M y B o o k(飘“);pi 1-P i i i i tI i i f o(J;r e tur n 0;(1 3)在存理数类R ati onal中重载插入运算符以便按a/q形式输出。请将水运算符函数的定义补充完整。cl ass R ati onal pub l i c:R ati oi i al(i nt aa.m t q q):a(aa),q(q q)f r i e nd 1 4 ope i ator(ostr e am&out,R ati onal&x)/ir e tur n(o u t X.A p 9 x.q);opr i vate:i i i t a.q;(1 4)卜面的函数定义是某函数模板能够生成的函数实例m t sq uar e(m t n)r e tur n n*n;doub l e sq uar e(doub l e n)r e tur n n*n;由此可知,该函数模板的定义是【1 5】o2007年4月计算机等级考试C+考试及答案一、选 择 题(每小题2分,共70分)下列各题A)、B),C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答即卡相应位置上,答在试卷上不得分。(1)下列叙述中正确的是。A)算法的效率只与问题的规模有.关,而与数据的存储结构无关.B)算法的时间复杂度是指执行算法所需要的计算工作量C)数据的逻轼结构与存储结构是一一对应的.D)算法的时间更杂度与空间复杂度一定相关.(2)在结构化程序设计中,模块划分的原则是。A)各模块应包括尽量多的功能B)各模块的规模应尽量大C)各模块之间的联系应尽量紧密D)模块内具有高内聚度,模块间具月低耦合度(3)下列叙述中正确的是。A)软件测试的主要目的是发现程序中的错误.B)软件测试的主要目的是确定程序中错误的位置.C)为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作D)软件测试是证明软件没有错误(4)卜面选项中不属于面向对象程序设计特征的是。A)继 承 性B)多态性C)类 比 性D)封装性(5)下列对列的叙述正确的是6A)队列属于非线性表B)队列按“先进后出”的原则组织数据C)队列在队尾删除数据D)队列按“先进先出”原则组织数据(6)对下列二叉树A)DYBEAFCZX B)YDEBFZXCA C)ABDYECFXZ D)ABCDEFXYZ(7)某二叉树中有n个度为2的结点则该二叉树中的叶子结点数为A)ii+l B)n-1 C)2nD)n/2(8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是。A)井B)交C)投 影D)笛卡儿乘积(9)在E-R图中,用来表示实体之间是联系的图形是oA)矩 形B)椭圆形C)菱 形D)平行四边形(10)下列叙述中错误的是0A)在数据库系统中,数据的物理结构必须与逻辑结构一致.B)数据库技术的根本目标是要解决数据的共享问题C)数据库设计是指在已有数据库管理系统的基础上建立数据库D)数据库系统需要操作系统的支持(11)为了取代C中带参数的宏,在C+中使用A)重载函数B)内联函数C)递归 函数D)友元函数(12)下列关于类定义的说法中,正确的是A)类定义中包括数据成员和函数成员的声明B)类成员的缺省访问权限是保护的C)数据成员必须被声明为私有的D)成员函数只能在类体外进行定义(13)下列关于派生类构造函数和析构函数的说法中,错误的是A)派生类的构造函数会陷含调用基类的构造函数B)如果基类中没有缺省构造函数,那么派生类必须定义构造函数C)在建立派生类对象时,先调用基类的构造函数,再调用派生类的构造函数D)在销毁派生类对象时,先调用基类的析构函数,再调用派生类的析构函数(14)通过运算符重载,可以改变运算符原有的A)操作数类型B)操作数个数C)优 先级D)结合性(15)有如下函数模板:template T sou are(T x)(renmix x;)基中T是A)函数形参B)函数实参C)模板 形 参D)模板实参(16)使用输入输出操作符setw,可以控制A)输出精度B)输出 宽 度C)对齐方式D)填充字符(17)下列字符串中,不可以用作C+标识符的是A)y_2006 B TEST_H C)Return D)switch(18)字面常量42、4.2、42L的数据类型分别是A)long,double mtB)long,floar,intC)int、double long D)int、float、long(19)执行下列语句段后,输出字符“它的个数是fbr(mti=50;Il;i)co u t,*,A)48B)49 0 50D)51(20)有如下程序段iiiti=0,j=l;mt&i=i;/;int*p=&i;*p=&r;/基中会产生编译错误的语句是A)B)C)D)(21)有如下函数定义:void fiinc(iiit a,iiit&b)a+;b-H-J若执行代码段:uitx=O,y=lfuuc(x.y);则变量x和y值分别是A)0 和 IB)1 和 1C)O 和 2D)1 和2(22)有如下程序:#includeusing namespace std;class A(publicstatic mt a;void init()a=l;A(mt a=2)init();a+;iiit A:;a=OAobj;hit main()(coutobj.a;letumO;J运行时输出的结果是A)OB)IC)2 D)3(2 3)卜冽有关继承和派生的叙述中,正确的是A)派生类不能访问基类的保护成员B)作为虚基类的类不能被实例化C)派生类应当向基类的构造函数传递参数D)虚函数必须在派生类中重新实现(2 4)下列运算符中,不能被重载的