《2021年山东省烟台市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx》由会员分享,可在线阅读,更多相关《2021年山东省烟台市全国计算机等级考试C++语言程序设计模拟考试(含答案).docx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2021年山东省烟台市全国计算机等级考试 C+语言程序设计模拟考试(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .在软件测试设计中,软件测试的主要目的是()A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.发现软 件错误而执行程序2 .下面各派生类的定义中,正确的是()。A.classA 类的成员 ;classB : A public类B中新增的成员 ); B.classA类的成员; private class B: A类 B 中新增的成员 ); C.class A 类的成员 ; class B: protected A类B中新增的成员 );D.classA 类的成员
2、 ; class B:A类B中新增的成员 );3 .C+语言类体系中,不能被派生类继承的有()。A.转换函数B.构造函数C.虚函数D.静态成员函数4 .下列不属于结构化分析的常用工具的是A.数据流图B.数据字典C判定树D.PAD图5 .对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较inti ;TC04(10);while(i5) (I * * Ii+ + :04 . print ; )coutendl ;returnO ; )37.使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,
3、i=0, Destructor注意:错误的语句在/ / *errcr*的下面,修改该语句即可。试题程序:#include(iostream. h) classTC ( inti;public:TC;voiddisplay ;TC;I i *error*TC: TCcout Constructor,;i=0;)I i *error*TC: display(toutni=i,endl;I i *error*TC: TC(2OUInDestructornendl:voidmain(TCa;a. display;38.使用 VC+ +6 . 0打开考生文件夹下的源程序文件1 ,cpp,该程序运行时有错
4、误,请改正程序中的错误。本程序要求实现 的功能为从键盘输入一个字符串,并将结果保存到文件1 . txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在*e1Tor* 的 下面。试题程序:#include#include/ I *error*usingstd ;voidWriteFile(char*s) (ofstreamoutl ;I I *error*outl . open(nl . txt, binary|app); for(inti=0 ; si!=0 ; i+ +) (I I *enx)r*outl . puts(si);)outl . close
5、 ;voidClearFile ofstreamoutl ;outl . open(Hl .txt);outl . close ;) intmain (chars 1024;ClearFile ;coutnpleaseinputastrin9 :nendl ;cin . getline(s, 1024);WriteFile(s);returnO ; )39 .使用VC + +6 .0打开考生文件夹下的源程序文件1 .cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number= 1number= 10number= 100注意:不要改动main函数,不能增加或删除行。
6、也不能更改程序的结构,错误的语句在/ / *em)r*的下面。试题程序:#includeclassTC (public :TC(inti) (number=i ;)voidSetNumber(intm)number=m ;intGetNumberconst (returnnumber ;)voidPrintconst (coutnumber= Hnumberendl ;)private :intnumber ;voidmain(/ kL* vt*1* *1*vl*/不不不不不不不不error不不不不不不个个TCobjl ;objl . Print ;TCobj2(3);I I *enor*ob
7、jl . number=10 ;I i *enor*oo*TC . SetNumber(lOO);objl . Print ;obj2 . Print ;40 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp。本程序 要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可 能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出 到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *eirc)r*的下面。试题程序:#include voidmain(inti=O;charstr120;coutnEnterastringe
8、ndwith?. nendl;/不不不不不不不不error不不不不,不不不cin. getline(str, 120);*个个个个个个个个nor个个小个个个个个while(str)kL* 个个个个个个个个nor个个个个个个个个if(stri)=a)stri=stri-a+A;i+ + ;)coutstrendl ;return ;41 .使用VC + +6.0打开考生文件夹下的源程序文件1 .cpp,该程序运 行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果 为:sizeof(Sl)=5 sizeof(s2)=10 sizeof(s3)=l注意:不要改动main函数,不能增加或删
9、除行,也不能更改程序的结构,错误的语句在/ / *errc)r*的下面。不能删除assert ()语句。只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#include#includevoidmain ()(charts l=nabcn:/不不不不不不不不error不小小不不不不不assert(sizeof(s 1 )=3):coutnsizeof(sl)=5nendl ;chars210=nabn:assert(sizeof(s2)=2);coutnsizeof(s2)=10nendl ;chars3=23 :assert(sizeof(s3)=4);co
10、utnsizeof(s3)=lnendl ;return ;42 .使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,但该程 序运行有问题,请改正main函数中的错误,使该程序的输出结果正 确。程序输出:8 8注意:错误的语句在/ *error* /的下面。修改该语句 即可,其他的语句不能修改。试题程序:#include(iostream. h classCO(public:staticintn=O:con+ + :)co:I *error* /intCO: n;voidmain(COobj ;COobj27;CO*C 二 NULL:c= & obj :I *error* /eoutC
11、. nendl;coutC0: nendl ;43 .使用VC+6.。打开考生文件夹下的源程序文件1. Cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实 现的功能为从键盘输入一个字符串,并将结果保存到文件txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在* eno1* * 白勺 |* j 自 jo试题程序:#include#includekL*kI*个个个个个个个个nor不不不不不不不个usingstd;voidWriteFile(char*s) ofstreamoutl ;vt* kI* vt* kL*个个个不不不不不个个不不不不不不ou
12、tl. open(nl. txt, binary|app);for(inti=0; si!=0; i + +)kL*kL* kL*个个小个个个个不不不不不不不不不outl. puts(si);outl. close;voidClearFile ofstreamout l ;outl. open(nl. txt”);outl. close;intmain次数中正确的是()0A.冒泡排序为n / 2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-l) /26 .下列叙述中错误的是A.二又树不是线性结构B.线性表是非线性结构C.线性链表是线性结 构D.栈与队列是线性结构7 .下列有关数据库的描
13、述,正确的是A.数据处理是将信息转化为数据的过程8 .数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不 变C关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个 关系的关键字,则称其为本关系的外关键字9 .下面程序的功能是把316表示为两个加数的和,使两个加数分别能 被13和11整除,在划线处应填入的选项是#include void main( ) int i=0, j, k ; doi+ ; k=316 - 13*i ; while(); j=k/ll ; cout 316=13* i +H* j ; A.k/11 B.k%
14、l l C.k/ll=0 D.k%ll=010 下列关于纯虚函数与抽象类的描述中,错误的是()。A.纯虚函数是一种特殊的虚函数,它没有具体的实现chars1024;ClearFile;coutnpleaseinputastrin9 : nendl;cin. getline(s, 1024);WriteFile(s);returnO ; 44 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序 运行时有错误,请改正错误,使程序正常运行,并且要求最后一个 catch必须抛出执行的任何异常。程序异常,输出信息为error OERROR注意:不要改动main函数,不能增加或删除行,也
15、不能更改程序的结 构,错误的语句在/ / *errc)r*的下面。试题程序:#includeiostream. h) intmain( try (thro w( error);)/不不不不个不不不error不不小不不不不不catch(chars)(coutsendl;try(throw(int)0);si*vl*个个个个个个个个rror个个个个个个个个catch(coutiendl ;) try (throw(O);throw。error”);/不不不不不不不不error不不不不不不不不catch(coutnERRORnendl;)returnO;)45 .使用VC+6. 0打开考生文件夹下的
16、源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为error0ERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/ / *error*的下面。试题程序:#include 7,/不不不不不不不不error不不小不不不不不catch(coutnERRORnendl ;returnO ;)五、综合应用题(2题)46 .使用VC+6. 0打开考生文件夹下的源程序文件3. cpp,其中定 义了用于表示矩形的CRect类,但类CRect的定义并不完整。请按要 求完成下列操作,将
17、类CRect的定义补充完整。(1)定义私有数据成员 leftPoint topPoint、rightPoint bottomPoint,分 别用于表示矩形左上角及右下角的点的坐标,它们都是double型的数 据。请在注释1之后添加适当的语句。(2)完成默认构造函数CRect的定义,指定默认实参为0,它们都是 double型的数据。请在注释2之后添加适当的语句。定义函数体为空的析构函数。请在注释3之后添加适当的语句。(4)在main函数中定义GReet类的实例rect2,并把recti 的值赋给rect2。请在注释4之后添加适当的语句。注意:除在指定位置添加语句之外,不要改动程序中的其他内容。试
18、题程序:#includeclassCRect private:vt* kF*vt*/ vt* vl* kL*vt* vL*卜q、1* 卜一I、 I q、q、一卜,q、-public:/ vt ! kJ#!vt* !v!/ rT ,7 、 , 、 ,、/、 、r7 -j、/ si* *J *J*1 *1 vf *J*1 vl* kL* vf kJ kJ vl*/rTw rl rrT rt rj rrvoidSetPoints(double,double, double,double);voidSetLeftPoint(doublem) leftPoint=m ; voidSetRightPoin
19、t(doublem) rightPoint=m ; voidSetTopPoint(doublem) topPoint=m ; voidSetBottomPoint(doublem) bottomPoint=m ; voidDisplay ();CReet: CRect(doublel, doublet, doubler, doubleb) (leftPoint= 1 ; topPoint=t ;rightPoint=r; bottomPoint=b ; )voidCRect: Setpoints(doublel, doublet, doubler, doubleb) (leftPoint=l
20、 ; topPoint=t;rightPoint=n ; bottomPoint=b ; )voidCRect: Display ()coutnleft-toppointis(nleftPointn, ntop-PointH)nn;cout,fright-bottompointis(nrightPointn,”bottomPointn)n n;)voidmain ()(CRectrectO;rectO. Display ();rectO. SetPoints(20, 20. 6, 30, 40);rectO. Display ();CRectrectl(O, 0, 150, 150);rect
21、i. SetTopPoint(10. 5);rect 1. SetLeftPoint( 10. 5);I I *4* rect2 Display (47.使用VC+6. 0打开考生文件夹下的源程序文件3. cpp,其中定 义了类BA、PA1和PA2,其中PA1类由BA类公有派生,PA2类由 PA1类公有派生。上述3个类的定义并不完整,请按要求完成下列操 作,将程序补充完整。程序输出结果如下:1051057(1)定义类BA的构造函数,该构造函数有一个整型的参数m,在构造 函数中将m赋值给数据成员a。请在注释1之后添加适当的语句。定义类PA1的构造函数,该构造函数有两个整型的参数m和n,在 构造函
22、数中将m赋值给数据成员b,将n作为基类BA构造函数的参 数值传人。请在注释2之后添加适当的语句。(3)定义类PA2的构造函数,该构造函数有3个整型的参数m、n和 k,在构造函数中请将m赋值给数据成员c,将n和k分别赋值给基类 PA1构造函数的参数m和no请在注释3之后添加适当的语句。(4)完成类PA2的成员函数show的定义,该函数调用基类成员函数, 输出基类私有成员a、b及类PA2自身的数据成员C的值,上述3个 值在输出时用空格隔开。请在注释4之后添加适当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 试题程序:#include(iostream. hclassBA(i
23、nta;public:/ vl*1vi* vl* *1# vl*/Irr* rr*intgetareturna; );classPAl: publicBAintb;public:/*J *JU *j/、 J rjintgetb returnb ; );classPA2 : publicPAl (intC;public:/ vt 7 7*vt k!k! vt/r7 彳、J、rj、T*、voidshowI I *4*;voidmain(PA2a(7, 5, 10);couta . getaendl ;couta . getbendl ;a. show;)六、3.综合应用题(2题)48.使用VC6打
24、开考生文件夹下的工程MyProj5。此工程包含一个源程 序文件MyMain5.cpp,其中定义了用于表示日期的类Date,但类Date 的定义并不完整。请按要求完成下列操作,将类Date的定义补充完成: 定义私有数据成员lengths width和labe 1,其中lengthx width是int 型,label是类point的对象。它们分别表示长方形的长、宽以及坐标点。 请在注释“* 1 * ”之后添加适当的语句。完成构造函数square的定义,使square对象的默认值为: lengths,widths, label(0, 0),请在注释“*2*”之后添加适当的语句。 完成重载构造函数s
25、quare(int l,int w,int x,int y)的定义,把数据成员 lengths width和对象label分别初始化为参数象w、x和y的值,请在 注释“*3*,之后添加适当的语句。完成成员函数get_area()的类外定义,此函数的功能是返回此长方形 的面积,及返回length*width的值。请在注释“*4*”之后添加适当的 语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain5.cpp清单如下: /MyMain5.cpp#include using namespace std; class point (private:int x,y;p
26、ublic:void set (int i,int j) x=i;y=j;int get_y () return y;);class square*public:* * 2 * *square(int IJnt w, int x, int y)(* * B * *)void set(int l,int w)(length=l;width=w;)int get_area() const(return length*width;);int square:get area() const square small(2,4,35);cout small.get_area() endl;return 0
27、;)49.使用VC6打开考生文件夹下的工程test28_3o此工程包含一个test28_3.cpp,其中定义了类Person,但该类的定义并不完整。请按要B.抽象类是指具有纯虚函数的类C一个基类中说明具有纯虚函数,该基类的派生类一定不再是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出10 .下列选项中不属于结构化程序设计原则的是()。A.可封装B.自顶向下C.模块化D.逐步求精二、单选题(13题)11 .下列有关类成员的叙述中,正确的是()。A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员12.25.执行
28、语句:coutsetfill( * *)setw( 10)setfill(1 # ;)left 123HOKendl; 后将输出( ).A. 123 * OKB. 123# # # # # # #OKC. 123 #* OK *#*D. 123 # OK #13.21.可以用p.a的形式访问派生类对象p的基类成员a,其中a是( 兀A.私有继承的公有成员B.公有继承的私有成员 求完成下列操作,将程序补充完整。C.公有继承的保护成员D.公有继承的公有成员定义类Person的私有数据成员forename、surname和 money, forename和surname都是char型的指针数据,mon
29、ey是double型的 数据。请在注释“*1*”之后添加适当的语句。(2)完成类Person的带三个参数的构造函数Person(char *f, char *s, double m),分别为forename和surname申请新的空间来存储参数f和s 指针指向的内容,注意空间的大小,最后把参数m的值赋给money, 请在注释“*2* ”之后添加适当的语句。(3)完成类Person的析构函数的定义,把forename和surname指向的空 间释放,请在注释“*3*”之后添加适当的语句。(4)完成类Person的成员函数display的定义,使其以格式“forname surname has m
30、oney”的形式输出内容,请在注释“*4*。”之后添加适 当的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。输出结果如下:Richard Berk has 1000.56源程序文件test28_3.cpp清单如下:#include #include class Person(private:* *double money;public:Person(char *f, char *s, double m);Person。;void display(););Person:Person(char *f, char *s, double m) (* 2 *strcpy(forena
31、me, f);surname = new charstrlen(s)+l;strcpy(surname, s);money=m;)Person: :-Person ()(* 3 *)void Person: display ()(* 4 *)void main ()(Person p(nRichard nBerk 1000.56);p.display ();)参考答案LD解析:使用人工或自动手段来运行或测定某个系统的过程,其目的 在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的 差别。软件测试的目的是为了发现错误而执行程序的过程。测试要以查 找错误为中心,而不是为了演示软件的正确功
32、能。2.C3.B解析:派生类对象的数据结构是由基类中说明的数据成员和派生类 中说明的数据成员共同构成,所以不能继承基类的构造函数,必须重新定义。4 .D属于结构化分析的常用工具数据流图,数据字典,判定树和判定表, PAD是详细设计的工具5 .DDo【解析】本题主要考查对排序算法的理解。冒泡排序法首先将第一 个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然 后比较第二个与第三个,以此类推,直至第n-1个与第n个记录的关 键字进行比较。第一趟冒泡排序使最大的关键字元素放到最后。以此 类推,进行第2n次冒泡排序。如果在排序过程中不存在逆序,则排 序结束。在最坏情况下,冒泡排序中,若初始序
33、列为“逆序”序列,则 需要比较n(D-l)/2次。快速排序是对冒泡排序的一种改进。它的基本 思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分 记录的关键字比另一部分记录的关键字小,然后分别对这两部分记录 继续进行排序,最终达到整个记录有序。对于快速排序,当初始记录 序列按关键字有序或基本有序时,快速排序退化为冒泡排序,最坏情 况下比较次数为n(n-l)/2。6.B解析:线性表肯定是线性结构.二叉树是非线性结构;线性链表是 线性结构,栈与队列是特殊的线性表,也是线性结构;线性表是线性结 构。7.D数据处理是指将数据转换成信息的过程,故选项A叙述错误。数据的 物理独立性是指数据的物理结
34、构的改变,不会影响数据库的逻辑结 构,故选项B叙述错误。关系中的行称为元组,对应存储文件中的记 录,关系中的列称为属性,对应存储文件中的字段,故选项C叙述错 误。所以本题选D。8.B解析:do-while语句的一般形式是 do(语句while(表达式);特点是:“直到型”循环结构。先执行一次“语句”,判“表达式”,当“表达 式”为非0,再执行“语句,直至表达式的值为。时停止执行语句。在 一般情况下,用while和do-while语句解决同一问题时,若二者的循环 体部分是一样的,它们的结果也一样。但当while后面的“表达式”一开 始就为“假”时,两种循环的结果不同。这是因为此时while循环的
35、循环 不被执行,而do-while循环的循环体被执行一次。本题的关键是两个加 数分别能被13和11整除,在i=0时,直接将316赋值给k,当k%ll 的值为。时,则不必执行循环,将执行/k/U语句,输出结果,所以该 表达式合理的条件是k%l lo9 .C解析:纯虚函数是在声明虚函数时被“初始化”为0的虚函数。不定 义对象而只作为一种基本类型用作继承的类,称为抽象类。凡是包含纯 虚函数的类都是抽象类。抽象类的作用是作为一个类族的共同基类。10 .AAo【解析】结构化程序设计方法的主要原则可以概括为自顶向下、 逐步求精、模块化、限制使用got。语句等。11.B解析:此题考查的是类成员的有关概念。类
36、的友元函数可以直接访 问该类的所有成员,但它不是类的成员函数,故选项A)错误;类成员函 数的访问权限可以声明为公有、保护、私有,故选项C)错误;静态数据 成员的声明是使用关键字static,它可以是常成员,故选项D)错误。12.B13 .D14 .D解析:程序中的TestClassl为TestClass的派生类,从程序中的main 函数入手,定义了 TestClassl对象xo调用析构函数的顺序,先执行派 生类自己的析构函数,对派生类新增加的成员进行清理,然后调用子对 象的析构函数,对予对象进行清理,最后调用基类的析构函数,对基类 进行清理。这里派生类中析构函数输出DERIVED,基类析构函数
37、输出 BASEO15 .Dn如果使用用户自己定义的函数,而该函数与调用它的函数(即主 调用函数)在同一程序单元中,且位置在主调用函数之后,则必须在调用 此函数之前对被凋用的函数作声明。n16 .D栈是先进后出的线性表,所以A错误;队列是先进先出的线性表, 所以B错误;循环队列是线性结构的线性表,所以C错误。故答案为D 选项。17.C 本题考查常对象、常成员函数及构造函数。常对象只能调用常成员函 数,普通对象调用普通成员函数。所以本题中。bjl为常对象,执行 objl. print后,会执行常构造函数,输出const: val=10;而obj2为普 通对象,执行obj2. print时,会执行默
38、认构造函数,输出val=20。放 答案为C。18 .D解析:二维数组可以看作是一维数组的扩展。选项D表示的是一 个一维数不清组,里面每个元素是一个指针,而指针肯定指向某个地址, 从而完成二维数组的扩展。考生要注意选项C中*和口的运算优先级。19 .C当有序线性表为顺序存储时才能用:二分法查找。可以证明的是对 于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较1092n 次,而顺序查找需要比较n次。20.BB .【解析】快速排序的基本思想是:从表中选取一个元素(如本题中 的33),将表中小于此元素的移到前面,大于此元素的移到后面,结果 把线性表分割成两部分(两个子表),此元素插入到其分界
39、线的位置处。 然后分别对两个子表再次分割本题中33作为分割的中界线,第一 趟排序后排在比它小的18、9、25、序后面。21 .D本题主要考查指针变量对数值的引用。在题目中,首先定义了整型 指针变量point和一个整型变量a,变量a的初值为4,然后是指针变量 指向a,或者说将变量a所在存储单元的地址值赋给指针变量。在选项A中,很显然,不全是地址,只有point表示地址,而*&a等价 于* (&a),表示取一个数值。在选项B中,也不都表示地址,其中*point表示数值,其他两个表示地 址。在选项C中,与选项B类似,其中的*point表示数值。在选项D中,都表示地址,是题目的选择答案。22 .DDo
40、【解析】字符型数据在计算机内部是以AsCIl码存储的,英文大写 字母和小写字母在ASCII码表中都是连续的。大写字母Az是从 6590,小写字母az是从97122。所以只要变量C大干等于a并 且等于小于2,就能保证其为小写字母。23.B本题考查公用继承对基类成员访问属性。公用继承中,基类的公用成 员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私 有,本题中若要给派生类继承下来基类的私有成员赋值,那么只能调 用基类的成员函数来对它赋值,所以本题答案为B。24 .对象对象解析:在面向对象概念中,所有的同类的实体的抽象就构 成一个类,而类被实例化就形成一个对象。25 .私有或privat
41、e私有或private解析:此题考查的是类的成员的默认 访问权限。在未声明,即默认情况下,类中数据成员和成员函数的默认 访问级别为私有。26 .或程序调试(阶段)或软件调试(阶段)或Debug(阶段)解析:软件测试 的目的是发现程序中的错误,而调试的目的是确定程序中错误的位置和 引起错误的原因,并加以改正。换句话说,调试的目的就是诊断和改正 程序中的错误。调试不是测试,但是它总是发生在测试之后。因此,本 题的正确答案是调试(阶段)或程序调试(阶段)或软件调试(阶段)或 Debug(阶段)27 .编译运行编译,运行解析:C+中的多态性分为两类:编译时的多 态性和运行时的多态性。编译时的多态性通过
42、函数重载和模板体现的, 而运行时的多态性是通过虚函数体现的。28 .类类解析:在面向对象方法中,类描述的是具有相似性质的一组对 象。所以,属性与操作相似的一组对象称为类。29 .friend void Func();friendu3000voidu3000Func();解析:注意 friend 关键词应加在函数的前面,表示该函数作为本类的一个友元函数。30 .每个数据成员所占空间之和每个数据成员所占空间之和解析:结构 体没有行为,即没有代码占用空间,故其占用的空间仅仅包含其数据成 员占用的空间之和。31 .malloc(ll) 或malloc(sizeof(char)* 11 )malloc( 11)或malloc(sizeof(char)* 11)解析:malloc函数的参数可以是一个具体的常数, 也可以是一个表达式。在本题中,可以是malloc(ll),也可以借助于sizeof 运算符来表示。32 .有格式有格式 解析:C+中运算符“ ”和“”都是属于有格式 的输入输出。注意:使用cin, cout进行输入输出时应包括头文件 iostream.ho33 .return tl.area+t2.area;return tl.area+t2.area;解析:符号重载时往往采 用的方法是对对象中的每个成员分别处理,封装之后体现出对象参与运