2022年安徽省亳州市全国计算机等级考试C++语言程序设计预测试题(含答案).docx
2022年安徽省亳州市全国计算机等级考试C+语言程序设计预测试题(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .下列函数中,()是对文件进行写操作的。A.get B.read C.seekg D.put2 .设有关键码序列(Q, G, M, Z, A, N, B, P, X, H, Y, S, T,L, K, E),采用堆排序法进行排序,经过初始建堆后关键码值A在序列中的序号是()0A.1 B.4C.8 D.123 .下列关于栈的描述中错误的是()A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针4 .对于拷贝构造函数和赋值操作的关系,正确的是A.拷贝构造函数和赋值操作是完全一样的操作B.进行赋值操作时,会调用类的构造函数C.当调用拷贝构造函数时,类的对象正在被建立并被初始化D.拷贝构造函数和赋值操作不能在同一个类中被同时定义5.执行语句序列pd- > f('a') 33 .有如下的程序:#include < iostream >#include < fstream >using namespace std;int main() char s25=nProgramming language"ofstream fl(DATA.TXTn);fl < < "C+ Programming"fl.close();ifstream f2 (“DATA.TXT”);if(f2.good()f2 > >s;f2.close();cout < < s;return 0;)执行上面的程序交输出【】。34 .某二叉树中度为2的结点有12个,则该二叉树中有 个叶子结点。35 .以下程序运行后的输出结果是【】。#include < iostream >#include < string >using namespace std;class Y;class X iht x;char *strx;public:X(int a,char *str) ( x=a;strx=new charstrlen(str)+l; strcpy(strx,str);)void show(Y &ob););class Y ( private: ihty; char *stry; public:Y(int b,char *str) ( y 二 b;stry=new charstrlen(str)+ 1; strcpy(stry, str);)friend void X:show(Y &ob); );void X:show(Y &ob) (cout < < strx < <cout < < ob.stry < < endl; int main() (X a(10/stringXM); Yb(20,nstringYn); a.show(b); return 0;四、程序改错题(10题)36 .使用VC+ + 6 .0打开考生文件夹下的源程序文件1 .cppo本程序要 求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输 入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕 中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *error*的下面。试题程序:#include<iostream . h>voidmain(inti=O ;charstr120;cout«nEnterastringendwith? . n«endl ;errorcin . getline(str, 120);*17" k.j>rT* rr*error while(str)kI> *1> *1> k1>kI*kI* *.!> 7,个个个个个个个个个个个个*t*个个个if(stri)=a)stri=stri-a + A ;i+ + ;)cout«str«endl ;return ;)37 .使用VC+ +6 . 0打开考生文件夹下的源程序文件1 . cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现 的功能为从键盘输入一个字符串,并将结果保存到文件1 . txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在* * * * * * error* * * * * * _试题程序:#include<iostream>#include<fstream>个个个个个个个个nor个个个个个个个个usingstd ;voidWriteFile(char*s)*1* *X* *J> *1> *1* *1> rj*ofstreamoutl ;*.t> K.t>7< 7,error不小小不不不小小 outl . open(nl . txt", binary|app);for(inti=0 ; si!=0 ; i + +)erroroutl . puts(si);outl . close ; )voidClearFile ofstreamoutl ;outl . open(Hl . txt”);outl . close ; intmain (chars 1024;ClearFile ;cout«npleaseinputastrin9 :n«endl ;cin . getline(s, 1024);WriteFile(s);returnO ; 38 .使用VC+ + 6 .0打开考生文件夹下的源程序文件1 .cpp,该程序运 行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor, i=0, Destructor注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include(iostream . h)classTC (inti ;public :TC ;voiddisplay ;TC ;TC : TC cout«nConstructorn«n," i=0;TC : display tout<<ni=n«i«n, n«endl ;vL* *1* vl#不下不不不不erpor不小下不不不TC : TCCOUI«nDestructorn«endl :) voidmainTCa ;a . display ;39 .使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为error0ERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/ / *errc)r*的下面。试题程序:#include<iostream h) intmain throw(nerrorn);*1 *1* si*不不不不不不不不不不不不不不不不catch(chars) cout«s«endl ;throw(int)0);7, 7,*1,7,7" 7,catch cout«i«endl ;) try (throw(O);throw(nerrorn);)/7,7,7,7> 7> 7> 7,/不不不小不不不不error不不小不不不不不catch(cout«nERRORn«endl ;)returnO ;40 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp。本程序 要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可 能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出 到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *errc)r*的下面。试题程序:#include<iostream. h> voidmain(inti=0;charstr120;cout«nEnterastringendwith?. H«endl;cin. getline(str, 120);while(str) if(stri)=a) stri=stri-a+A;i+ + ;)cout«str«endl ;return ;41 .使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为error 0ERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/ / *error*的下面。试题程序:#include<iostream. h) intmain throw。error”);kL*1* vL*vL* k1*vL* vt>不不不不不不不不nor不不不不不个不catch(chars) cout«s«endl;) try throw(int)0);catch cout«i«endl;) try throw(O);thro w( "error");vl* kL* vf* vl*个个个个不不不小nor小个个个不小个个catch cout«nERRORn«endl ;int i=0;while(i<25) i+=3;cout<<i;输出结果是A.24 B.25 C.27 D.286 .下列关于break语句的叙述不正确的是()。A上reak语句可用在循环体中,它将使执行流程跳出本层循环体B.break语句可用在switch语句中,它将使执行流程跳出当前switch语 句C.break语句可用在if语句中,它将使执行流程跳出当前if语句 D.break语句在一层循环体中可以出现多次7 . NULL是指A.OB.空格C.未知的值或无任何值D.空字符串8 .类的析构函数的作用是()。A.一般成员函数的初始化B.类的初始化C对象的初始化D.删除类创 建的对象9 .有如下类定义:class XXint xdata :public : xx(int n=O):xdata(n) class YY : public XXintydata ; public : YY(intm=O, intn=O) : xx(m), ydata(n) ; YY类的对象包含的数据成员的个数是A.l B.2C.3 D.4returnO ; 42 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,但该程 序运行有问题,请改正main函数中的错误,使该程序的输出结果正 确。程序输出:8 8注意:错误的语句在/ *error* /的下面。修改该语句 即可,其他的语句不能修改。试题程序:#include(iostream. h> classCO (public:/ /小不不不不小不不en*or不不不不小不不不/staticintn=O :CO ( n+ + :) CO ( n:):kI* *j> *j> *a>个个个个个个个个nor个个个个个个个个intCO: n;voidmainCOobj ;COobj27;CO*C=NULL:c二 & obj :7, 7,7> 7> 7* 7> 7>7> 7> 7> 7” T” 7,7,个个个不不干不个enr小不不不小个个不eout«C . n«endl ;cout«C0:n«endl; )43 .使用VC + +6.0打开考生文件夹下的源程序文件1.cpp,该程序运 行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果 为:sizeof(Sl)=5 sizeof(s2)=10sizeof(s3)=l注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/error的下面。不能删除assert ()语句。(2)只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#include<iostream . h> #include<assert . h> voidmain () char*sl=nabcn:*1* *1* kL* rj* rywerror assert(sizeof(s 1 )=3):cout«nsizeof(sl)=5n«endl ;chars210=nabn:,、,、errorassert(sizeof(s2)=2);cout«nsizeof(s2)=10n«endl ;chars3=23 :.!> 7" 7,kJ>.!> kJ> 7” 7,7, 7”不不不不不个不不enr不不个个个个个不assert(sizeof(s3)=4);cout«,sizeof(s3)=r,«endl ;return ;44 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实 现的功能为从键盘输入一个字符串,并将结果保存到文件1. txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在* error* * 白勺 _j 日 jo试题程序:#include<iostream>#include<fstream>kI>个个个个个个个个rror不不不不个不不不usingstd;voidWriteFile(char*s) ofstreamout l ;kI# kL*个个个不不不不不个个不不不不不不outl. open(nl. txt", binary|app);for(inti=0; si!=0; i+ +)*J> kL*kL>个个个个个个个个nor不不不不不不不不outl. puts(si);outl. close;)voidClearFile ofstreamoutl ;outl. open(nl. txt'');outl. close;) intmainchars1024;ClearFile;cout«npleaseinputastrin9 :n«endl;cin. getline(s, 1024);WriteFile(s);returnO ;45 .使用VC+6. 0打开考生文件夹下的源程序文件L cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为1003732注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include<iostream. h> voidmainvl*不不不不不不enor不不个个不不intm=0142:intn=0X27 :intq=32;cout< <m< <endl;cout< <n< < endl ;cout< <q< <endl; return ;)五、综合应用题(2题)46 .请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程 proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList 的重载运算符函数Operator+,其功能是求当前数据表与另一个相同长 度的数据表之和;即它返回一个数据表,其每个元素等于相应两个数 据表对应元素之和。请编写这个。perator+函数。程序的正确输出应该 是: 两个数据表:1, 2, 3, 4, 5, 63, 4, 5, 6, 7, 8两个数据表之 和:4, 6, 8, 10, 12, 14 要求:补充编制的内容写在“ *333* ”与“*666*”之间,不得修改程序 的其他部分。注意:程序最后将结果输出到文件。ut. dat中。输出函数writeToFile 已经编译为。bj文件,并且在本程序中调用。/DataList. h #inClude<iostream> using namespaCe std;ClaSS DataList数据表类 intfen;double*d; public:DataList(int len, double data=NULL) ; DataList(DataList&data);int lengthConst return len ; double getElement(int i)Constt return di; DataList operator+(Const DataList&list)Const; 两个数据表求和 void showConst;显示数据表);void writeToFile(Char$, Const DataList&) ; /main. Cpp#inCludeDataList. h”DataList: DataList(int len, double data): len(ien) d=newdoublet len;for(int i=0; i<len; i+)d(九)i=(data=NULL?O. 0: datai); )DataList: DataList(DataList&data): len(data. len) d=newdouble len;for(int i=0; i<len; i+) di=data. di;DataList DataList: 0perator+(Con8t DataList&list, )Const两个数据 表求和 double*dd=new doublet list, lensth;*m*return DataList(list. 1 ength, dd) ;void DataList: showConst显示数据表 fr(into i=0; i<len-l ; i+) eout<vdivv",“;Cout«d 1 en-1 «endl ;int main double sl=l, 2, 3, 4, 5, 6;double s2=3, 4, 5, 6, 7, 8;DataList list 1(6, si), list2(6, s2);定义两个数据表对象 eoutw”两个 数据表:”endl:listl. show: list2. show;eoutwendlw”两个数据表之和:"vVendl :(listl+list2). show;writeToFilefS listl+list2); return 0:47.使用VC+6. 0打开考生文件夹下的源程序文件3. cpp。其中定 义的类不完整,按要求完成下列操作,将类的定义补充完整。每卖出 一个水果,则计算水果的重量,还要计算所有卖出水果的总重量以及 总个数,同时允许退货,请按照以下的操作,把类补充完整。定义类TCFruit的私有静态数据成员float型变量AllWeight和int型 变量A11N0,请在注释1后添加适当的语句。(2)完成类TCFruit的带一个float型变量w的构造函数,并把这个w加到AllWeight中,并且AllNo自加。请在注释2后添加适当的语句。(3)在析构函数中,在AllWeight中减去weight,然后析INo自减,请在注释3后添加适当的语句。(4)完成静态成员变量的初始化为0,请在注释4后添加适当的语句。注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其 他的程序代码。试题程序:#include(iostream. h> classTCFruit private:floatWeight;staticintAHNo;public:TCFruit(floatw)AllWeight+=w:A11NO+ + : TCFruit/si* si* k1* kI*1* kL*/ q. q、q.4 q、q.、q. q.A11W eight-=W eight:voiddisplay(cout«nSellaFruitwithn«Weight«nk9n<<endl;cout«”Allsellnumber:H«AllNo«endl ;cout«nAllsellweight:n«AllWeight«nk9n<< endl«endl;I I *4* floatTCFruit: All Weights. 0;intmain (TCFruitFruitl(l. 2);Fruitl. display;TCFruitFruit2(2. 3);Fruit2. display;returnO; 六、3.综合应用题(2题)48.使用VC6打开考生文件夹下的工程MyProj8o此工程包含一个源程序文件MyMain8.cpp,该程序实现栈的入栈和出栈的操作。其中有两个 10.下列有关模板的叙述中,正确的是()。A.函数模板不能含有常规形参B.函数模板的一个实例就是一个函数定义C.类模板的成员函数不能是模板函数D.用类模板定义对象时,绝对不能省略模板实参二、单选题(13题)11 .下列关于析构函数的描述中,错误的是()。A.类中有且仅有一个析构函数B.析构函数可以有形参C.析构函数没 有函数类型D.析构函数对象消失时被自动执行12 .下列有关内联函数的叙述中,正确的是()。A.内联函数在调用时发生控制转移B.内联函数必须通过关键字inline来定义C.内联函数是通过编译器来实现的D.内联函数函数体的最后一条语句必须是return语句13.下列叙述中正确的是oA.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构类:一个是节点类node,它包含节点值和指向上一个节点的指针prey ; 另一个类是栈类stack,它包含栈的头指针topo但类的定义并不完整。 请按要求完成下列操作,将类Sample的定义补充完成:定义私有节点值data,它是血型的数据,以及定义一个指向上一个节 点的指针prev。请在注释“/* *1* *”之后添加适当的语句。完成构造函数node(intd,node*n)的定义,使得私有成员data和prev分 别初始化为d和no请在注释“/* *2* *”之后添加适当的语句。完成类stack的成员函数push(inti)的类体内的定义。函数push。实现 入栈这个操作,即把形参i压入栈中,那么此时应该创建一个新的节点, 并让这个节点的prev指针指向栈顶。请在注释“/* *3 * *之后添加适当 的语句。注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件MyMain8.cpp清单如下:/MyMain 8.cpp#include < iostream >using namespace std;class stack;class node(private:*public:node(int d, node *n)(* * 2 * *)friend class stack;);class stacknode *top; /栈头public: stack() ( top=0;)void push(int i)(* * 3 * *)int pop() (node*t=top ;if(top) (top=top- > prev ;int c=t- > data ;delete t ;return c ;)return 0 ;);int main()(stack s ;s.push(6);s.push(3);s.push(l);return 0 ; )49.使用VC6打开考生文件夹下的工程testl5_30此工程包含一个 testl5_3.cpp,其中定义了类 Time 和 Timex, Timex 公有继承 Time,但 定义并不完整。请按要求完成下列操作,将程序补充完整。(1)完成类Time构造函数的定义,将数据成员hours和minutes分别初始 化为参数new_hours和new_minutes的值。请在注释“*1*"之后添加 适当的语句。完成类Timex的构造函数的定义,注意参数的传递。请在注释“*2*” 之后添加适当的语句。(3)请按时间格式“hour :minute"和"hour :minute :second”分别输出对象 timel和time2所表示的时间,注意必须使用已经定义的成员函数。请在 注释“*3*,之后添加适当的语句。输出结果如下:20 : 3010 : 45 : 34注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。源程序文件testl5_3.cpp清单如下:#include < iostream.h >class Time (public :Time(int new hours, int new_minutes)* *int get_hours();int get_minutes();protected :int hours, minutes ;);int Time : get_hours()(return hours ;)int Time : get_minutes()(return minutes ;class Timex : public Time(public :Timex(int new hours, int new_minutes, int new_seconds);int get_seconds();protected :int seconds ;; * 2 *(seconds=new seconds ;int Timex : get_seconds()return seconds ;)void main()(Time time 1(20, 30);Timex time2(10, 45, 34);/ * 3 *参考答案l.D2.A解析:本题考查堆排序法的相关知识。堆排序法是完全二叉树结构 的一个重要应用,是对直接排序法的概念。堆实质是一颗完全二叉树结 点的层次序列,此完全二叉树的每个结点对应于一个关键码,根结点对 应于关键码Kl0堆排序的基本思想是:对一组待排序的关键码,首先 把它们按堆的定义排成一个序列(建堆),这就找到了最小的关键码,然 后将最小的关键码取出,用剩下的关键码再建堆,便得到次最小的关键 码,如此反复,直到将全部的关键码排好序为止。题日给出的关键码序 列A值最小,因此经过初始建堆后关键码值A在序列中的序号是lo正 确答案为选项A。3.B解析:在栈中,允许插入与删除的一端称为栈顶,不允许插入与删 除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先 能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能 被删除的元素。即栈是按照先进后出(FILO, First In Last Out)或后进先 出(LIFO, Last In First Out)的原则组织数据的,因此,栈也被称为先进 后出表或后进先出表。由此可以看出,栈具有记忆作用。答案B错在带 链的栈的结点存储顺序与其逻辑顺序是可以不一致的。4 .C解析:在赋值操作中,将发生对象的拷贝操作,但并不说明两者是 完全一样的.一般情况下,如果绐类定义了赋值操作符,则应该同时定 义合适的拷贝构造函数,除非系统默认生成的拷贝构造函数满足赋值操 作。实际上,系统默认的拷贝构造函数仅仅将数据成员进行简单的对应 赋值,而在多数特殊应用中,这么简单的对应关系是不适用的,这就需 要程序员重新定义拷贝构造函数。5 .C解析:本题考核循环语句while的使用。while循环8次后i的值变 为24,符合循环条件进入循环体,经过自我赋值后i的值变为27,不符 合循环条件,结束循环执行输出语句。6 .C7 .C解析:此题属于记忆性的题目,NULL是指未知的值或无任何值。8 .D解析:析构函数就是用来释放对象的,它的调用完成之后,对象也 就消失了,相应的内存空间也被释放了。9 .B解析:派生类继承基类,继承了基类的数据成员和成员函数,加上 派生类自己新定义的数据成员,所以该类应该有2个数据成员。10.BB。【解析】本题考查的是模极的概念。函数模板可以含有常规形参; 函数模板的一个实例就是一个函数定义;类模板中的成员函数都是模板 函数;在用类模板定义对象时,由于没有像函数实参表这样的额外信患 渠道,因此无法按函数模板的方式省略模板形参,但是可以为类模板的参数设置默认值。11.B12 .C解析:此题考查的是内联函数的概念.在调用时,内联函数会像宏 函数一样地层开,将调用表达式用内联函数体来替换,所以它没有一般 函数的参数压栈和退栈操作,所以选项A)错误;即使没有使用inline 说明,编译器也会将在类的说明部分定义的函数认定为内联函数,所以 选项B)错误:内联函数只是比普通函数有更高的执行效率。对于类型 为void的函数,它不需要返回任何函数值,所以在函数体中既可以使用 return语句,也可以不使用,选项D)错误。13 .D栈是一种特殊的线性表,这种线性表只能在固定的一端进行插入和 删除操作,允许插入和删除的一端称为栈顶,另一端称为栈底。一个新 元素只能从栈顶一端进入,删除时,只能删除栈顶的元素,即刚刚被插 入的元素。所以栈又称后进先出'表。队列可看作是插入在一端进行,删 除在另一端进行的线性表,允许插入的一端称为队尾,允许删除的一端 称为队头。在队列中,只能删除队头元素,队列的最后一个元素一定是 最新入队的元素。因此队列又称先进先出'表。循环队列是将队列存储空 间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循 环使用。它的逻辑结构仍然是线性结构。14 .C解析:本题考查的知识点是:继承和派生。无论使用哪种继承方式, 派生类中的成员都不能访问基类中的私有成员,而可以访问基类中的 公有成员和保护成员,因此选项A)不正确。在C+中,只有抽象类 不能被实例化,而虚基类不一定非得是抽象类,所以选项B)不正确。在派生类中可以重新定义从基类继承下来的虚函数,也可以不重新定 义,因此选项D)不正确。故本题应该选择C。15 .CCo【解析】本题考查实型常数的指数表示法,可以肯定的是指数不能 为小数即必须为整数。由于符号E前面必须有数字。D在指数符号后 面没有数字,是错误的。16.Bn重载运算符的规则如下:C+不允许用户自己定义新的运算符, 只能对已有的C+运算符进行重裁C+不能重载的运算符只有5个; 重载不能改变运算符运算对象的个数,重载不能改变运算符的优先 级和结合性;重载运算符的函数不能有默认的参数;重载的运算符 必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象, 即不允许参数全部是C+的标准类型。所以答案为B。n 17.A 解析:此题考查的是派生类对基类成员的访问。基类的成员有公有.保护和私有3种访问属性:类的继承方式也有公有继承、保护继 承和私有继承3种。无论哪种继承方式,派生类中的成员都不能访问 基类中的私有成员,但可以访问基类中的公有成员和保护成员。18.B解析:char型数据所占内存的大小为1个字节。注意:int型数据 占内存的大小为4个,cong double, double占内存的大小为8个字节。 注意:求字节数用sizeof运算符。19.C本题考查的是顺序查找。在进行顺序查找过程中,如果线性表中 的第一个元素就是被查找元素,则只需做一次比较就查找成功,查找效 率最高;但如果被查找的元素是线性表中的最后一个元素,或者被查找 的元素根本就不在线性表中,则为了查找这个元素需要与线性表中所 有的元素进行比较,这是顺序查找的最坏情况。所以对长度为n的线 性表进行顺序查找,在最坏情况下需要比较n次。故本题答案为Co 20.CCo【解析】while中表达式值一直为0,故循环一次也不执行。21.AAo【解析】析构函数不能被重载,因为它的函数中不带有任何参数, 也没任何返回值,函数只有一个版本即“类名"。22 .DD。【解析】可复用属于面向对象程序设计方法,其他选项属于结构 化程序设计方法。23 .C24.1001110011解析:本程序中f函数的功能是将传入的实参按倒序方 式将各位数字输出。24 .7 8 926 .格式化模型格式化模型解析层次模型与网状模型属于格式化模型。 27.2028 .TT解析:定义成员函数需要模板参数声明,使函数具有通用的类型 以便被替换。29 .线性结构线性结构解析:数据结构分为线性结构和非线性结构,其 中队列是属于线性结构。队列有两种存储结构:一种是顺序存储结构,称为顺序队列;另一种是链式存储结构,称为链队列。题目中所说的带 链的队列就是指链队列。无论队列采取哪种存储结构,其本质还是队列, 还属于一种线性结构。因此,本题的正确答案是线性结构。30.2331.setfillC*'leftsetfill('*'rnleft解析:本题考核格式控制数据的输入输出。 函数se由H(charC)用于设置填充字符,在输出数据时,如果数据宽度小 于设置的宽度,则空闲位置要用填充字符填满。函数setw(intn)用于设 置输入输出宽度,宽度设置的效果只对一次输入或输出有效,在完成一 次数据的输出或输入后,宽度设置自动恢复为0。输出的初始状态为右 对齐,所以第一行输出的为右对齐,而第二行为左对齐,所以要填入关 键字“left”。32.Base: