还剩41页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2021年陕西省铜川市全国计算机等级考试C++语言程序设计模拟考试含答案学校:班级:姓名:考号:
一、.选择题题110在中提供控制格式的标志位中,是转换为十六进制形式的标志
1.iOS位A.hex B.oct C.dec D.left.数据库设计的根本目标是要解决2数据共享问题数据安全问题.大量数据存储问题简化数据维护A.B.C D.以下哪个基类中的成员函数表示纯虚函数
3.A.virtual voidvf intB.void vfint=0C.virtual voidvf=0D.virtual voidvf int{}完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测
4.试用例的测试方法是黑箱测试法.白箱测试法.错误推测法安装测试法A.B C D.一个程序由函数和函数构成,在函数中分别调
5.C++A,B,C PA用了函数和函数在函数中调用了函数且在函数中也调B C,B A,P用了函数则可以说A,.使用打开考生文件夹下的源程序文件但该程36VC++
6.
1.cpp,序运行有问题,请改正函数中的错误,使该程序的输出结果正main确程序输出88注意错误的语句在/的下面修改该语句********error********/即可,其他的语句不能修改试题程序(#include iostream.hclassCO(public/*.17,7,777,7,/不不不不不不不不不不不不不不不不/en0rstaticintn=O CO(n++)〜CO(n—)}*1^^1*^1**1**1*^1*vl*/KL*KL«不不不不不不不不不不下不不不不不/en*orintCOn;voidmainCOobj;COobj2
[7];CO*C=NULLc=objvl*vl*不干不不不不不不不不不不不不不不eout«C.n«endl;cout«C0n«endl;.使用打开考生文件夹下的源程序文件该程序37VC++
6.
01.cpp,运行时有错请改正程序中的错误,使程序输出的结果为1003732注意错误的语句在/的下面,修改该语句即/******eir()r******可试题程序:#includeiostream.hvl*vl**1*^1*KL*KI*不不不不下不不不不不不不en*orvoidmain不下不不不不不可不不不不eu*orintm=
0142、!,77777,7777,不不不不不不不不不小小不en0rintn=0X27intq=32;cout mendl;cout nendl;cout qendl;return;.使用打开考生文件夹下的源程序文件该程序运行时38VC++
6.
01.cpp,有错误,请改正程序中的错误本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件中
1.txt注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在白勺******error******试题程序:#includeiostream#includefstream*1^vl*^1*个个个个不不小个个不不不不个个usingstd;voidWriteFilechar*s ofstreamoutl;outl.opennl.txt,binary|app;forinti=0;s[i]!=O;i++//7,77,777,/不不不不不不不不不不小不不不不不erroroutl.putss[i];}outl.close;voidClearFile ofstreamoutl;outl.opennl.txt”;outl.close;intmainchars
[1024];ClearFile;cout«Hpleaseinputastrin9n«endl;cin.getlines,1024;WriteFiles;returnO;.使用打开考生文件夹下的源程序文件该程序运39VC++
6.
01.cpp,行时有错误,请改正程序中的错误,使得程序输出9,8,7,6,5注意错误的语句在/的下面,修改该语句即********eiror********/可其他的语句不能修改试题程序#includeiostream.hclassTC不不不不不小不不不不不不不不不不enorTCinti;m_i=i voidprint;cout«—m_i«,public;intm_iintmain个个个个个个个个个***个个个个个个^^rror;intiTC0410;whilei5口I********e Or********I i++;
04.printreturnO;.使用打开考生文件夹下的源程序文件本程序40VC++
6.
01.cpp要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******error******试题程序:#includeiostream.h voidmain inti=O;charstr
[120];cout«nEnterastringendwith.n«endl;KL*KL*KL*KL*个小个个个不不小个个不不不小个个^^norcin.getlinestr,120;«»£个个个个小个个个个个小个个个个个^^norwhilestrKL KI个个个个个个个个个个个个个个个个^^norifstr[i]=astr[i]=str[i]-a+A;i++;cout«str«endl;return;.使用打开考生文件夹下的源程序文件该程序运行时41VC++
6.
01.cpp,有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为sizeofSl=5sizeofs2=10sizeofs3=l注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******errc r******⑴不能删除语句assert⑵只能修改后面的数字提示函数如果为假,则会产生一个中断异常assert试题程序#includeiostream.h#includeassert.hvoidmaincharts l=nabcn/不不不不不不不不不不小不不不不不errorassertsizeofs1==3cout«nsizeofsl=5n«endl;chars2
[10]=nabn//*1**J*1^*1*si**1**1**1**1*/不不不不不不不不不不不不不不不不error;assertsizeofs2==2cout«nsizeofs2=10n«endl;chars3=23:/不不不不不不不不不不不不不不不不error;assertsizeofs3==4cout«,,sizeofs3=r,«endl;;return}.使用打开考生文件夹下的源程序文件该程序42VC++
6.
01.cpp,运行有问题,请改正函数中的错误,使程序的输出结果为mainnumber=1number=10number=100注意不要改动函数,不能增加或删除行也不能更改程序的结main构,错误的语句在/的下面/******eirc r******试题程序#includeiostream.hclassTC publicTCinti number=i;voidSetNumberintm number=m;intGetNumberconst returnnumber;voidPrintconst cout«n number=n«number«endl;privateintnumber;};voidmain个个个个小个个个个个小个个个个个^^norTCobjl;objl.Print;TCobj23;7,、!7,K!7个个个不不不下不个个个小个个个个^^rrorobjl.number=10;I!********error*******TC.SetNumberlOO;objl.Print;obj
2.Print;.使用打开考生文件夹下的源程序文件该程序运43VC++
6.
01.cpp,行有问题,请改正函数中的错误,使程序的输出结果为mainnumber=1number=10number=100注意不要改动函数,不能增加或删除行也不能更改程序的结main构,错误的语句在/的下面/******error******试题程序#includeiostream.hclassTC publicTCinti number=i;voidSetNumberintmnumber=m;intGetNumberconstreturnnumber;voidPrintconstcout«nnumber=n«number«endl;private:函数中调用的函数是函数的间接递归调用A.B A A.函数被函数调用是直接递归调用B A B.函数直接递归调用了函数C PA.函数中调用的函数是函数的嵌套D PA P有如下程序
6.#includeiostreanlusing namespaeestd;class;}};;AA{publicAA{coutT classBB public AA{intk public;}};BBk0{eout2;}BBintnkn{cout3intmain{BB,b4,;;程序的输出结果是c return0下面程序的执行结果是
7.#includeiostream.h void main{int*p,r;程序p=new int;*p=20;r=sizeof*p;coutrendl;delete p;}A.错误内存为地址的大小B.20C.20D.4有以下程序;
8.#includeiostreamusing namespace std;class R{public:Rint rl,int r2{Rl=rl;R2=r2;}void print;void printconst;private:intRI,R2;};void R::print{coutRIJR2endl;}void R::print const{coutRInR2endl;}int main{R a5,4;执行后的输出结果是const Rb20,52;b.print;return0;}A.5,4B.20,52C.0,0D.4,5以下数据结构中不属于线性结构的是
9.队列线性表二叉树栈A.B.C D.类模板的使用实际上是将类模板实例化成一个具体的()
10.intnumber;voidmainvl*vt*vt*K£*不不不不不不不不不不不不不不不不^^noi*TCobjl;objl.Print;TCobj23;KI KI KIK1个个个个个个个个个个个个个个个个^^norobjl.number=10;I I********error*^^0******TC.SetNumberlOO;objl.Print;obj
2.Print;.使用打开考生文件夹下的源程序文件该程序44VC++
6.
01.cpp,运行时有错误,请改正错误,使程序正常运行,并且要求最后一个必须抛出执行的任何异常catch程序异常,输出信息为error0ERROR注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******error******试题程序:#includeiostream.h intmaintry throw,error;7777,777777,7,77777,个个个个不不个个个个个个个个个个^^rrorcatchchars cout«s«endl;try throwint0;个个个个个个个个个个个个个个个个^^norcatch cout«i«endl;try throwO;thrownerrorn;K.t t个个个个个个个个•个个个个个个个个catch cout«nERRORn«endl;;returnO.使用打开考生文件夹下的源程序文件本程序要求输45VC++
6.
01.cpp0入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******error******试题程序#includeiostream.h voidmain;inti=Ocharstr
[120];cout«nEnterastringendwith.n«endl;/不不不不不不不小、小不个不不不不errorcin.getlinestr,120;/不不不不不不不不不不不不不不不不errorwhilestr/不不不不不不不不不不不不々,不不不errorifstr[i]=astr[i]=str[i]-a+A;i++;cout«str«endl;return;
五、综合应用题题
246.请使用【答题】菜单命令或直接用打开考生文件夹下的工程VC6其中声明了类,该类在内部维护一个动态分配的整型prog3,ValArray数组类的复制构造函数应实现对象的深层复制请编写ValArray类的复制构造函数在函数中给出了一组测试数据,此ValArray main种情况下程序的输出应该是要求ValArray vl={1,2,3,4,5ValArray v2={l,2,3,4,5}补充编制的内容写在“〃******与***333**********之间,不得修改程序的其他部分*〃*********666*********“注意程序最后将结果输出到文件中输出函数已经out.dat writeTo File编译为文件,并且在本程序中调用boj//ValArray.h#includeiostream usingnamespace std;class ValArray{int*vint size;publicValArrayconst int*P,int nsizen{v=new int[size];forint i=0;isize;i++v[i]=P[i];.使用打开考生文件夹下的源程序文件其中定义的类47VC++
6.
03.cpp不完整,按要求完成下列操作,将类的定义补充完整⑴定义类的公有数据成员函数、其中是血型的数NO Name
[32],NO据,为字符型请在注释后添加适当的语句Name
[32]1完成函数的定义,分别设置和的值,请在注释后添加2Set NO Name2适当的语句⑶完成函数请在注释后添加适当的语句,输出结果如下print,3NO=12345Name=HelloWorld!添加默认构造函数,设置为为空,请在注释后添加适当4NO0,Name4的语句注意增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码试题程序#includeiostream.hclassTC public//1/rj*rywrT*rT*IrT*rrwrj*rT*rTw//、/],J,jNo=no;fbrinti=O;strName[i]!=O;i++Name[i]=strName[i];Name[i+1]=0;}voidprint//7,7,7,/rj*ry*rj*\ry*rj*TC/I********4********;intmain TCstustu.Set12345,nHelloWorld!n;stu.print;returnO;
六、.综合应用题(题)
32.使用打开考生文件夹下的工程此工程包含一个源程序文48VC6tsst6_3,件其中定义了用于表示考生的类请按要求完成下列操test6_
3.cpp,Student,作,将程序补充完整⑴定义私有数据成员、分别用于表示考生的编号、英语成绩、code english它们都是型的数据请在注释“〃**”之后添加适当的语句int1**完成成员函数的定义,该函数用于用户2void Student::inputinformation输入一个考生对象的信息,输入格式如下输入编号英语成绩;计算机成绩请在注释“〃***之后添加适当的语句2**利用己实现的类的成员函数,完成函数3Student voidfirstnameStudent的定义,该函数根据考生信息输出个考生中总分最*A[],int numA[],num高者的编号及其相应的总分,在此不考虑总分相同的情况请在注释“〃**,,之后添加适当的语句3**注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件清单如下test6_
3.cpp#includeiostream.h classStudent〃**]**int computer;int total;publicvoid getinformation;void computcsum;int getcode;int gettotalscore;〜Student;;void Student::getinformationCOUt英语成绩:n;cinenglish;计算机成绩:cout;cincomputer;void Student::computesum total=english+computer;编号总分:coutcodetotalendl;int student::getcodereturn code;int Student::gettotalscorereturn total;void firstnameStudent*A[],int numtempsum=*A
[0].gettotalscore;forint i=l;inum;i++if^A[i].gettotalscoretempsumtempcode=^A[i].getcode;telnpsum=*A[i].gettotalscore;cont”总分最高者tempcoden:ntempsumendl;void mainStudent*A
[3];int i,n=3;fori=0;in;i++A[i]=new Student;A[i]-getinformation;fori=0;in;i++A[i]-computesum;firstnameA,3;.使用打开考生文件夹下的工程此工程包含一个源程序文49VC6test22_3,件其中定义了用于表示考生的类和它的派生类test22_
3.cpp,CStudent但它们的定义并不完整请按要求完成下列操作,将程CGraduateStudent,序补充完整定义的构造函数,函数含参数它是型的指针数据,1CStudent nm,char请使用字符串函数将类数据成员初始化请在注释“/之后添name/**1***加适当的语句完成类的成员函数的定义,将类数据2CStudent void addscoredouble sc成员加上参数请在注释“〃**”之后添加适当的语句score sc,2**添加类的成员函数的定义,将3CGraduateStudent voidaddpaperint dint型的参数的值加到类的数据成员叩上,请在注释“〃***之后添d per3**加适当的语句调用对象的成员函数使得该考生的论文数量变为将请在4sdt addpaper10,注释“〃**”之后添加适当的语句4**输出结果如下Student HansonAdvisor:MichaelPhongTotal paperis10注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件清单如下test22_
3.cpp#includeiostream.h#includestring.h classCStudentprivatechar name
[30];int code;double score;publicCStudentchar*nmCStudent{}void putnamechar*nm{strcpyname,nm;}void putcodeintd{code=d;}二void putscorcdoublcsc{score sc;}void getnamechar*nm{strcpynm,name;}double getcode{return code;double getscore{return score;}.类对象.函数模板类AB.C D.
二、单选题题13己知类是类的友元,类是类的友元,则
11.X YY Zo类一定是类的友元A.X Z.类一定是类的友元B ZX.类的成员函数可以访问类的对象的任何成员C ZY.类的成员函数可以访问类的对象的任何成员D KY.在图中,用来表示实体联系的图形是12E—R椭圆图矩形菱形三角形A.B.C.D..已知数据表中每个元素距其最终位置不远,为节省时间,应采用的13A算法是堆排序直接插入排序.快速排序直接选择排序A.B.CD..有如下函数定义;若执行代码14voidfunCinta,intB.{a++;b++段;;则变量和的值分别是intx=O,Y=1funCX,Y xy和和和和A.01B.11C.02D.12已知一函数的形参说明为则与此等效的形参说明为
15.intarr
[5]
[6],A.intarr[][]B.int
[5][]C.int*a
[6]D.int*a
[6]voidaddscoredouble scclass CGraduateStudent:public CStudentprivate:char advisor
[30];int paper;public:void putadvisorchar*nm{strcpyadvisor,nm;void getadvisorchar*nm{strcpynm,advisor;}void putpaperintd{paper=d;}int getpaper{return paper;};void mainCGraduateStudentsdt;sdt.putnamenHansonn;sdt.putadvisorHMichaelPhongn;sdt.putpaper8;char csname
[30];sdt.getnamecsname;char caname
[30];sdt.getadvisorcaname;coutStudent”csnameendl;coutnAdvisor:ncanamennendl;coutTotal paperis”sdt.getpaperendl;参考答案解析格式控制标志格式控制是整数按十六进制输出;格式LA hexoct控制是整数按八进制输出格式控制是整数按十进制输出输出数dec;left据在指定的宽度内左对齐
2.A解析由于数据的集成性使得数据可为多个应用所共享,特别是在网络发达的今天,数据库与网络的结合扩大了数据关系的应用范围数据的共享本身又可极大地减少数据冗余性,不仅减少了不必要的存储空间,更为重要的是可以避免数据的不一致性因此,数据库设计的根本目标是要解决数据共享问题
3.B解析黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是
4.A根据功能导出测试用例注意白箱测试是根据对程序内部逻辑结构的分析来选取测试用例,白箱测试也称为逻辑覆盖测试,故选项不正确;B错误推测法只是黑箱测试所使用的一种具体的方法,故选项不正确;C安装测试是测试层次中的一种,它属于高级测试,故选项不正确注意D常用的黑箱测试方法及其定义,白箱测试用例的准则解析本题考察递归调用递归调用分为直接递归和间接递归属
5.AA于间接递归解析创建派生类对象时,先调用基类构造函数,然后调用派生类构
6.A造函数,先调用基类构造函数,然后调用的带参数构造函数,打b4BB印和;调用基类的构造函数,然后调用的构造函数,打印13cAABB和故答案为12A解析理解的用法,它可以运算出各种数据类型所占内存空间
7.D sizeof的多少注意选项中是指针所指向的内存地址中内容是C p20注意在用完申请后的内存应立刻释放解析使用关键字修饰的对象成为常对象,题中对象被声明
8.B constb为类的常,对象使用关键字说明的成员函数称为常成员函数,R const类中用重载了函数()在使用常对象和常成员函数时应注R constprinto意的是是函数类型的一个组成部分,因此在常成员函数部分也要const带关键字;常成员函数不能更新对象的数据成员,也不能调用该类const中没有用修饰的成员函数;如果将一个对象说明为常对象,则通过const该常对象只能调用它的常成员函数,不能调用其他的成员函数;关const键字可以参与区分重载函数本题中,为类的常对象,通过只能调b Rb用类的常成员函数输出R print20,52解析线性表、栈和队列所表达和处理的数据都以线性结构为组织形
9.C式解析类模板就是把类中的数据分离出来,作为一个类的描述
10.A C++编译器根据类模板和特定伪数据类型来产生一个类,类模板就是一个抽象的类
11.D【解析】图中用矩形表示实体(等同于表),用椭圆形表
12.CC E—R示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)堆排序先把序列看成一棵大根堆或小根堆,摘取最大或最小元素后
13.B再建成新的根堆,再排序堆排序的过程是先建一个堆,输出堆顶的最大或最小的元素,再将剩余的个元素重新调整成一个新堆如此反n-1复进行,直到排序完成直接插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好的有序表中,从而得到一个新的、记录数增的有序表首先,1将序列中的第个记录看成是一个有序的子序列,然后从第个记录起逐12个进行插入,直至整个序列变成按关键字非递减有序序列为止快速排序是对冒泡排序的一种改进它的基本思想是通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可以分别对这两部分记录继续进行排序,以达到整个序列有序直接选择排序是通过次关键字间的比较,从个记录中选出关键n-i n-i+1字最小的一个记录,并和第个记录交换这样重复执行趟选择排序i n-1在本题中,数据表中每个元素距其最终位置不远,即说明数据表基本有A序,简单移动一些元素即可完成排序,在这种情况下,使用直接插入排序法所需时间最少,最合理因此本题的正确答案是B\r\n\r\n\r\n
14.C函数参数的种传递方式
①将变量名作为形参和实参,即传值方式;3
②传递变量指针;
③引用形参本题中实参为传值方式,所以的值不x X会改变;丫为引用形参,所以会改变故本题答案为C解析二维数组可以看作是一维数组的扩展选项表示的是一个
15.D D一维数不清组,里面每个元素是一个指针,而指针肯定指向某个地址,从而完成二维数组的扩展考生要注意选项中*和口的运算优先级C
16.B解析本题考查的知识点是构造函数如果一个类中没有定义任何构造函数,编译器将生成一个不带参数的公有缺省构造函数但只要定义了一个任意的构造函数,就不会生成缺省构造函数了故本题应该选择Bo解析构造函数是类的一个特殊成员函数,它与类同名,并且没有返
17.D回值在创建一个对象时,会自动调用类的构造函数,在构造函数中C++可以执行初始化成员变量的操作构造函数可以是内联函数,也可以重载
18.C【解析】非成员函数一般都是友元函数,相比成员函数第一个操作数Co是对象本身以指针的形式隐含在参数列表中,非成员函数调用必须显this式的列出参数;选项中没有类型,故选C MyClockC
19.B考点点击本题主要考查的知识点为预定义流对象要点透析为标cin准输入,即键盘输入为标准输出,即屏幕输出cout
20.D解析本题考查了类的定义语言规定,在类体中不允许对所定义的C++数据成员进行初始化故本题应该选择D解析+语言中的类是可以组成层次结构的,类是用于描述事物
21.C C+的属性和对事物的操作,类与类之间有相对的独立性,但其可以通过一些方法进行信息的通信
22.C解析此题考查的是继承中的构造函数构造函数不能够被继承派生类构造函数的调用顺序如下
①调用基类的构造函数,调用顺序按照它们继承时说明的顺序;
②调用子对象类的构造函数,调用顺序按照它们在类中说明的顺序;
③派生类构造函数体中的内容
23.D解析在使用标准输入流和流提取运算符>>进行多项数据的输入时,cin使用空白字符(空格键、回车键和键)作为两项数据的分隔符,当Tab遇到后面的空格时,对象即停止接收后面的数据本题正确答案为I cinD
24.
5.模式或逻辑模式或概念模式模式或逻辑模式或概念模式
25.叶子结点叶子结点
26.类类解析在面向对象方法中,类描述的是具有相似性质的一组对象27所以,属性与操作相似的一组对象称为类.二义性二义性
28.开发开发解析软件生命周期可分为多个阶段,一般分为定义阶段、开29发阶段和维护阶段定义阶段包括可行性研究初步项目计划和需求分析开发阶段包括概要设计、详细设计、实现和测试;维护阶段包括使用、维护和退役解析符号重载时往往采用的
30.return tl.area+t
2.area;return tl.area+t
2.area;方法是对对象中的每个成员分别处理,封装之后体现出对象参与运算的现象解析此题考查的是递归算法本题中函数在小于等于时
31.1515f n1返回值为其余情况返回值为由此分析可以得到1,n*n-2,f5=5*f3=5*3*fl=5*3*l=
15.此程序的运行结果为此程序的运行结果为32x=0y=0x=l y=2\r\n x=0,y=O\r\n x=l,y=2解析虚函数以及多态的概念,调用某一处理
33.
55.链式存储和顺序存储链式存储和顺序存储解析栈和队列都属于线性34表,它们一般采用顺序存储结构,也可以对它们采用链式存储结构注意栈、数组、表采用的存储结构,各种存储结构的定义和区别+或+或解析因为卜
35.x+y+x+y++x+y+x+y++operator++0是对成员重载运算符,所以是成员重载,在参数表中又有一个参数,y是重载后缀++,即x+y++应改为
36.1“staticintn=O staticintn;”应改为2“intCOn;“intCOn=0;3C4cout«c.n«endl;应改为cout«c-nendl;【解析】本题要在屏幕上输出两个字符,首先要静态变量初始化,第处1应改为第处要给赋值,第处输出时引用的对象,“staticintn;,2n3c应改为cout«c-nendl;
37.l“voidmain”2“intm=0144;”或3“intn=OX25;“intn===0x25;【解析】本题主要考查了主函数定义及幕同进制之间的转换,包括进1制到八进制,十进制到十六进制主函数定义的定义形式为函数“main”,名之后必须是一对括号,因此第处应改为输出默认是1“voidmain”cout以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的对应八进制的卡进制的对应十六进制的因止100144,3725,匕2和3应分另U改成“intm=0144;”,t4intn=0x25;”或“intn=0x25;应改为;
38.⑴usingnamespacestd应改为;\n2“outl.openl.txt,iosbinary|iosapp应改为;\n3“outl.puts[i]【解析】本题第处的产是在程序中引入标准命名空间对\n1“usingstd std,于+中弓[入标准命名空间的格式,缺少所以第处的语句C+namespace,1修改为;第处,调用成员函数中,输入、输“usingnamespacestd2open出方式是在类中定义的,所以是”语句缺ios“outl.open.txt,binary|app;少类即第处的语句修改为;ios,2“outl.open
1.txt]iosbinary|iosapp第个标识应该用流成员函数输出字符,所以第处的语句修改为3put3;“outl.puts[i]应添加
39.1“public应改为;\n2“inti”“inti10;”应改为;\n3“i++“i-【解析】本题主要考查的是成员的访问属性成员的访问属性有公有、保\n护和私有种,而默认的访问属性为私有,只有公有成员才能通过类的3对象被访问故应在构造函数前添加:,否则该类无法被实例化“public变量的初始化可以通过“=”号,也可以和初始化对象一样添加构造参数,题目已要求使用后者本题要求输出个数,的循环变量每次减5while i1,在时循环,故初始化应为若循环中每次增则循环永远不会5i10i1,退出应改为;
40.1“ein.getlinestr,120,应改为2whilestr[i]°应改为巾3“ifst]=astr[i]v=2”【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员函数函数读入一行字符,格式为字符数组,字符个数,getline“cin.getline终止标志字符广,所以第处改为1“cin.getlinestr,;第处的语句应该是判断字符串中的每一120,2“whilestr”str个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为巾]”第处的“whilest3“ifst巾]语句是判断字符是否为小写字符,而现有的语句只是判断=a”str[i]字符是否大于a,但是小写字符应该是a到2,所以修改为44ifstr[i]=astr[i]=z,,
41.1应改为匕55«1102«0心1尸=4;o应改为尸;\n2assertsizeofs2=10⑶应改为尸;\n assertsizeofs3=1【解析】函数如果为假,则会产生一个中断异常所以要让它正常\n assert执行输出结果,那么函数只有为真,才不会产生中断异常assertuassertsizeofs1==3;语句中“sizeofsl尸=3”为假,这会使程序产生异常,不能正常执行因为的值为但是它还有一个尾符,它的长度应该strl abc,是而不是所以在第处修改为了说明,4,3,1“assertsizeofsD==4str2
[10]的空间为在第处修改为尸;str210,2“assertsizeofs2=10charstr3=23语句说明23是字符,所占存储空间为1,所以修改为uassertsizeofs3==;”1应改为
42.1TCobjll;应改为2“Objl.SetNumberlO;应改为3“0bj
2.SelNumberlOO;【解析】本题第处的”语句是声明类的对象根据1“TCobjl;TC Objl,TC类构造函数的定义存在整型参数,并且题目要求第一个输出结果TCinti,两所以补全参数即第处的第处处1,1,1“TCobjll;2的”应该是调用成员函数赋值在+中“objl.number=10;SetNumber C+成员函数的使用形式应该是对象名.成员函数,所以修改为“objl.类是对象的抽象,而对象是类的具体实例第处SetNumberlO;3“TC.”语句中的为类,并不是对象,这里应该使用定义SetNumberlOO;TC的对象,即所以将语句修改为bj2,“obj
2.SetNumberlOO;.对于一个类定义,下列叙述中错误的是
16.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数A.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函B数如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝C.构造函数如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函D.数.下列关于构造函数的描述中,错误的是17构造函数可以设置默认参数A.构造函数在定义类对象时自动执行B..构造函数可以是内联函数C构造函数不可以重载D..将运算符“十”重载为非成员函数,下列原型声明中,错误的是18O;A.A.MyClockoperator+MyClock,long;B.MyClockoperator+MyClock,MyCloek;C.MyCloekoperator+long,long应改为;”D.MyClockoperator+long,MyCloek
43.⑴“TCobjll应改为;\n2“Objl.SetNumber10应改为;\n3“0bj
2.SelNumberlOO[解析]本题第处的;”语句是声明类的对象根据\n1“TCobjl TCObjl,TC类构造函数的定义存在整型参数,并且题目要求第一个输出结果TCinti,两所以补全参数即第处的;第处处的1,1,1“TCobjll2“objl.;”应该是调用成员函数赋值在+中成员函number=10SetNumber C+数的使用形式应该是对象名.成员函数,所以修改为;“objl.SetNumberlO类是对象的抽象,而对象是类的具体实例第处第语句中的为类,并不是对象,这里应该3“TC.SetNumberlOO TC使用定义的对象,即所以将语句修改为;obj2,“obj
2.SetNumberlOO应改为
44.1catchchar*s”应改为2“catehinti”应改为”3catch…【解析】本题中第个标识前的异常抛出语句为其中1“throw,error;,的类型为字符串所以对应的异常捕捉语句中应该符合这个类型,catch而程序中给出的语句是字符型的,所以第处的语句修改为“catchchars”1“catchchar*S”第2个标识前的异常抛出语句为uthrowint0;,其中的类型为对应的异常捕捉语句中应该符合这个类型,所以补充int catch子句中的类型,否则如果找不到匹配的块,系统就会调用一个catch catch系统函数,使程序终止运行即第处的语句修改为如果2“catchinti”在子句中没有指定异常信息的类型,那么就用删节号“…”表示它catch可以捕捉任何类型的异常信息,即修改为”“catch…应改为;
45.1“ein.getlinestr,120,⑵应改为\n whilestr[i]”\n3应改为“ifstr[i]=astr[i]=2,,o【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员\n函数函数读入一行字符,格式为字符数组,字符个数getline“cin.getline终止标志字符”,所以第处改为;第处的1“cin.getlinestr,120,2语句应该是判断字符串中的每一个字符是否为结束符,若“whilestr”str不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为修第处的语句是判断字符是否为“w3“ifstr[i]=a”str[i]小写字符,而现有的语句只是判断字符是否大于但是小写字符应该是a,a到2,所以修改为“ifstr[i]=a str[i]=z,,o
46.size=othe].size;v=liew int[size]forint i=0;isize;i++setAtTayi,other.v[ij;应添力口、加”
47.10;charName
[32];2应添力口”0115©1:111110,char*strName,,3应添力口o“coutvvNo=vvNovvendlvName=vvName«endl;应添加”4“No=Name
[0]=0;【解析】第处要求“定义类的公有数据成员函数、其中1NO Name
[32],为血型,为字符型”在已有程序中类定义的区域,NO Name
[32]public定义变量即在第处添加语句、出^};NO,Name
[32],10;charName
[32]第处要求“完成函数的定义,分别设置和2Set N的值”在第处说明函数的语句中,应该包括变量Name2Set no,strName的定义,然后在函数中将其值赋值给即添加定义语句NOName,第处要求”完成函数根据输出voidSetintno,char*strName”3print”,结果,知道输出的是和的值,所以这里补全N Namettcout«,No=«No«endl«,Name=«Name«endl;第4处要求“添加缺省构造函数,设置为为空”,即在构造函数中补充赋值语句N0,Name TC”“No=Name
[0]=0;输入编号
48.1int code;int english;2coutcincode;3inttempcodetempsum;tempcode=*A
[0].getode;l\r\n intcode;\r\n int〈’输入编号:english;\r\n2\r\n cout;\r\n cincode;\r\n3\r\nint解析本题是对程tempcode,tempsum;\r\n tempcode=*A
[0].getode;C++序设计的综合考查,其设计类的成员及成员函数的定义与调用,数据的输入输出,循环语句,条件判断语句等多个知识点,注意⑶中指针for if数组的使用,指针数组是一组指针,每一个成员都按照指针的操作规则,但是整个访问规则仍然使用数组下标方式,如指的是第一个A
[0]指针,而*是取出第一个指针指向的内容A
[0];;
49.1strcpynamenm2score+=sc3void addpaperintd{paper+=d;}4sdt.addpaper2;1\r\n strcpyname,nm;\r\n2\r\nscore+=sc;\r\n3\r\n voidaddpaperint d{paper+=d;}\r\n4\r\n;解析本题主要考查考生对于类的定义和使用对象调用sdt.addpaper2成员函数的理解,注意认真的阅读主程序,弄清楚中的原值为4paper
8.在中使用流进行输入输出,其中用于键盘输入的对象是【】19C++A.cerr B.cin C.cout D.cfile有如下类定义
20.classFoo publicFoointvvaluev{}//@〜Foo{}//
②private Foo{}//
③intvalue=0;II®;其中存在语法错误的行是A.
①B.
②C.
③D.@下列关于+语言类的描述中错误的是
21.C+类用于描述事物的属性和对事物的操作A.类与类之间通过封装而具有明确的独立性B..类与类之间必须是平等的关系,不能组成层次结构C.类与类之间可以通过一些方法进行通信和联络D.建立一个有成员对象的派生类对象时,各构造函数体的执行次序为22°派生类、成员对象类、基类成员对象类、基类、派生类基类、成A.B.C.员对象类、派生类基类、派生类、成员对象类D..有如下语句序列23char str[l0];cin»str;当从键盘输入时,中的字符串是1love this game”strA/l lovethisgameB.I loveAi C.T love”D.T
三、.填空题题212定义字符指针已知则
24.char*str=hello,sizeofstr=4,strlenstr=数据的逻辑结构在计算机存储空间中的存放形式称为数据的
25.树中度为零的结点称为
26.o在面向对象方法中,属性与操作相似的一组对象称为【】
27.为解决在多重继承环境中因公共基类带来的问题,语言提供了
28.C++虚基类机制软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维
29.护阶段编码和测试属于阶段
30.下列程序对加号进行了重载,划线部分的语句是_______o#includeiostream.h#includemath.h classTriangleint x,y,z;double area;public:Triangleint i,int j,int kdouble s;x=i;y=j;z=k;s=x+y+z/
2.0;area=sqrts*s-x*s-y*s-z;void dispareacoutnArea=nareaendl;friend doubleoperator+Triangle tl,Triangle t2;void mainTriangletl3,4,5”25,12,13;doubles;coutdisparea;coutnt2:n;t
2.disparea;s=tl+t2:总面积=coutsendl;已知递归函数的定义如下
31.fint fint n〃递归结束情况ifn=1return1;〃递归else returnn*fn-2;则函数调用语句的返回值是一f5下列程序的运行结果是【】
32.includeiostream.h classSample{int x,y;public:Sample{x=y=0;}Sampleint a,int b{x=a;y=b;}void disp{coutn x=x,y=nyendl;;voidmain{Sample si,s2l,2;
51.dispO;
52.disp;下列程序的输出结果是【】
33.#includeiostream usingnamespacestd;class base{public:intn;baseiht x{n=x;}virtual void setint m{n=m;coutnn;};class deriveA:public base{public:deriveAint x:basex{}void setintm{n+=m;coutnn;}}:class deriveB:public base{public:deriveBint x:basex{}voidsetintm{n+=m;coutnn;};int mainderiveAdll;deriveB d23;base*pbase;pbase=d1;phase-setl;pbase=d2;phase-set2;return0;栈和队列通常采用的存储结构是【】
34.表达式还可以写成
35.X.operator+y.operator++0
四、程序改错题题10。