还剩44页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2022年甘肃省陇南市全国计算机等级考试C++语言程序设计模拟考试(含答案)学校:班级:姓名:考号:
一、.选择题(题)110软件测试方法中属于静态测试方法的是()
1.黑盒法逻辑覆盖错误推测人工检测A.B.C.D.
2.算法的时间复杂度是指_____o执行算法程序所需要的时间.算法程序的长度算法执行过程中A.B C.所需要的基本运算次数算法程序中的指令条数D..下列关于模板的说法正确的是()3模板的实参在任何时候都可以省略A.类模板与模板类所指的是同一概念B..类模板的参数必须是虚拟类型的C•类模板中的成员函数全部都是模板函数D设有元关系及元关系则关系只与经笛卡儿积后所得新
4.n Rm S,S关系是一个()元关系A.m B.n C.m+n D.m*n.对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的5某个成员,说明该基类成员的访问权限是()o试题程序:#includeiostream;#includefstream usingstd;voidWriteFilechar*s ofstreamoutloutl.opennl.txt,binary|app;forinti=0;s[i]!=0;i++///不不不不不不不不不不不不不不不不error;outl.putss[i];outl.closevoidClearFile;ofstreamoutloutl.opennl.txt;;outl.close intmain;chars
[1024];ClearFilecin.getlines,1024;WriteFiles;returnO;.使用打开考生文件夹下的源程序文件该程序运37VC++
6.
01.cpp,行有问题,请改正函数中的错误,使程序的输出结果为mainnumber=1number=10number=100注意不要改动函数,不能增加或删除行也不能更改程序的结main构,错误的语句在/的下面/******errc r******试题程序#includeiostream.hclassTC public:TCinti number=i;voidSetNumberintmnumber=m;intGctNumbcrconstreturnnumber;voidPrintconstcout«Hnumber=H«number«endl;privateintnumber;voidmain个个个个个个个个个个个个个个个个TCobjl;objl.Print;TCobj23;vL«^1*vt*vfvL#%L*KL*个小个个个个不个[个个个个个小个个^^ncobjl.number=10;1I********ej*j*01*^^o******TC.SetNumberlOO;objl.Print;obj
2.Print;.使用打开考生文件夹下的源程序文件该程序运38VC++
6.
01.cpp,行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor,i=0,Destructor注意错误的语句在/的下面,修改该语句即可/******error******试题程序:#includeiostream.hclassTC;intipublic;TC;voiddisplay;〜TC不不不小小不*不不不不不不;cout«Constructor«,i=0;/不不不不不不不不不不不不errorTCdisplaytoutni=n«i«n,n«endl;、不不不不不error”COUI«nDestructorn«endlvoidmainTCa;a.display;.使用打开考生文件夹下的源程序文件该程序39VC++
6.
01.cpp,运行时有错误,请改正错误,使程序正常运行,并且要求最后一个必须抛出执行的任何异常catch程序异常,输出信息为error0ERROR注意不要改动函数,不能增加或删除行,也不能更改程序的结main构,错误的语句在/的下面/******errc r******试题程序#includeiostream.h intmainsi*errorthrow error”;catchcharscout«s«endl;trythrowint0;vl*vl*KL*KL*个不个个不不不个个个不不不个个个catch cout«i«endl;throwO;thrownerrorn;,,,,,,777777个不不不不不个不个个个不不不个不catch cout«nERRORn«endl;;returnO.使用打开考生文件夹下的源程序文件该程序运行时40VC++
6.
01.cpp,有错误,请改正程序中的错误本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件中
1.txt注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在******eiror******—g j°试题程序#includeiostreamKL*不不不eiroi*#includefstream outl.putss[i];rJusingstd;voidWriteFilechar*sofstreamout l;7777,7,7,7”7,7,7,7,7777个个干干不不个个outl.opennl•txt”,binary|app;forinti=0;s[i]!=0;i++*1*1^*1^^rT*不不不不enor}outl.close;voidClearFileofstreamoutl;outl.opennl.txt;outl.close;intmainchars
[1024];ClearFile;cout«npleaseinputastrin9n«endl;cin.getlines,1024;WriteFiles;returnO;.使用打开考生文件夹下的源程序文件该程序41VC++
6.
01.cpp,运行时有错请改正程序中的错误,使程序输出的结果为1003732注意错误的语句在/的下面,修改该语句即/******errc r******可试题程序:#includeiostream.herrorvoidmainerrorintm=0142K.tKI KIKI7个不个个个不不不不不不不erporintn=0X27intq=32;cout mendl;cout nendl;cout qendl;return;.使用打开考生文件夹下的源程序文件本程序要求输42VC++
6.
01.cppo入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******eiror******试题程序#includeiostream.h voidmaininti=0;charstr
[120];cout«f,Enterastringendwith.n«endl;vtKL*KL*不不不不不不不不不不不不不不不不^^rrorcin.getlinestr,120;*1^KL*不个个个个不不个个个个不小个个^^norwhilcstrvL*vt*不个个个个个个个个个不个个个;;ifstr[i]=a str[i]=str[i]-a+A;i++cout«str«endl;return.使用打开考生文件夹下的源程序文件本程序要求43VC++
6.
01.cpp输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在/的下面/******error******试题程序#includeiostream.h voidmain;inti=Ocharstr
[120];cout«HEnterastringendwith.n«endl;/不不不不不不不不不不不不不不不不errorcin.getlinestr,120;/不不不不不不不不不不不不不不不不error whilestr/,,,,,,,/7,77”7777777777”/不不不不小个不小不小不个不不不不error公有或私有私有保护或私有公有或保护A.B.C D.一棵二叉树中共有个叶子结点与个度为的结点,则该二叉树
6.70801中的总结点数为A.221B.219C.231D.
229.若有一^个类,则执行语句;后,自动调用7MyClass MyClassa,b2,*p该类的构造函数次A.2B.3C.4D.5有如下定义』则数值为的表达式
8.int b
[10]={l,2,345,6,7,8,90},*q=b;8是oA.*q+8B.*q+7C.*q+=8D.q+
7.对于循环队列,下列叙述中正确的是9队头指针是固定不变的A.队头指针一定大于队尾指针B.队头指针一定小于队尾指针C..队头指针可以大于队尾指针,也可以小于队尾指针D.下列对于软件测试的描述中正确的是10软件测试的目的是证明程序是否正确A.软件测试的目的是使程序运行结果正确B..软件测试的目的是尽可能多地发现程序中的错误C软件测试的目的是使程序符合结构化原则D.ifstr[i]=astr[i]=str[i]-a+A;i++;cout«str«endl;return;.使用打开考生文件夹下的源程序文件该程序运44VC++
6.
01.cpp,行时有错误,请改正程序中的错误,使得程序输出9,8,7,6,5注意错误的语句在/的下面,修改该语句即********error********/可其他的语句不能修改试题程序#includeiostream.h classTCTCintim_i=i;voidprint cout«—m_i«,public:;intm iintmainKL#不不不不不不不不个不不不不不不不e;inti;TC0410whilei5!********ej*j*^^]********!i++;
04.print;cout«endl;returnO.使用打开考生文件夹下的源程序文件但该程45VC++
6.
01.cpp,序运行有问题,请改正函数中的错误,使该程序的输出结果正确main程序输出:注意错误的语句在/的下面修改该语句********error********/即可,其他的语句不能修改试题程序:(#include iostream.hclassCO(public不不不小小小不不enor7,7,!*1staticintn=O(COn++)〜CO(n—)error*1**1^*1**1^、—卜..j)intCOn;voidmain(COobj;[]COobj27;CO*C=NULLc=obj*i**1**1**1*1K1K|KI]K|KI不不不小小小不不*J Jeno eout«C.n«endl;*1rT*rrw*Tw*T**T*)cout«C0n«endl;
五、综合应用题题2应添力口;
46.1“virtualvoidGetNamt!=0应添力口2“constchar*GetName2”应添加3“TC2char*str”应添加;4“m_str[i]=O【解析】本题第处要求“在类中定义接口函数为纯虚函1TC1GetName,数在中,在基类中用声明成员函数为虚函数纯虚函数是在C++virtual声明虚函数时被初始化’’为的函数,即第0virtualvoidGetName=0;处要求“函数实现获得名字的缓存,但只获得读允许操作这2GetName2个缓存”只能引用数据成员,而不能修改,所以使用常成员函数,其一般形式为函数类型函数名“,即第处“const“constchar*GetName23要求“实现的构造函数”的构造函数与类的名称应该相TC2TC2TC2同,而且第处的大括弧中是对字符数组的操作,所以类的构造3str TC2函数中的参数为即这里补全为第处要求“完成str,“TC2char*str”4TC2的构造函数,实现对名字的处理”,补全类的构造函数,构造函数TC2中的名字变量对应于类中的成员变量所以这里补全变量赋值str TC m_str,操作;“m_str[i]=
0.请使用或使用【答题】菜单打开考生目录下的工程文件47VC6proj3proj3,此工程中包含一个源程序文件补充编制程序其功proj
3.cpp,C++proj
3.cpp,能是读取文本文件中的全部内容,将文本存放到类的对象in.dat doc中然后将中的字符序列反转,并输出到文件中myDoc myDocout.dat文件的长度不大于字节in.dat1000要求补充编制的内容写在“//**********与//***********两行之间实现将中的字符序列反转,并将反转后的序列在屏幕上输出不得修myDoc改程序的其他部分注意程序最后已将结果输出到文件中,输出函数已Out.dat writeToFile经给出并且调用//proj
3.cpp#includeiostream#includefstream#includecattingusing namespace std;class docprivate〃文本字符串首地址char*sir;〃文本字符个数int length;public〃构造函数,读取文件内容,用于初始化新对象,是文件名字符filename串首地址〃将字符序列反转docchar*filename;void reverse;一doc;void writeToFilechar*filename;;docdocchar filenameifstream myFilefilename;int len=1001,tmp;atr=new char[len];length=O;whiletrap=myFile.get!=EOFstr[l ength++]=trap;str[length]=\0;myFile.close;void docreverse//将数组中的个字符中的第一个字符与最后一个字符交换,atr length第二个字符与倒数第二个〃字符交换……////44«doc〜doe delete[]str;void docwriteToFilechar*filename OfstreamoutFilefilename;outFile«str;outFile.close;void maindoc myDocin.dat;my Doc.reveme;myDoc.writeToFilef,out.dat;
六、.综合应用题题
32.使用打开考生文件夹下的工程此工程包含一个48VC6testl3_3testl3,.cpp,o其中定义了类但类的定义并不完整请按要求完成下列操作,将Vector,程序补充完整完成构造函数的定义,把数据成员初始化为参数的值,数据成员1size s指向动态申请的型大小的空间请在注释“〃**”之后buffer int size1**添加适当的语句⑵完成拷贝构造函数的定义,注意解决多次删除的问题请在注释“〃”之后添加适当的语句**2**完成成员函数的定义,该函数返回的第个元素的值,3elem bufferndx注意如果超界,请输出请在注释“〃**”之后添ndx“error inindex”3**加适当的语句⑷完成析构函数的定义,要求先将字符打印在屏幕上,再释放指d buffer向的空间请在注释“〃**”之后添加适当的语句4**输出结果如下Odd注意除在指定的位置添加语句外,请不要改动程序中的其他语句源程序文件清单如下testl3_3#includeiostream.h#includestdlib.h classVectorpublic;Vectorint s=100;VectorVector v;int elemintndx;void display;void set;〜Vectorprotectedintsize;int buffer;Vector::Vectorint sII**]**VectorVectorVector vforint i=0;isize;i++*buffer+i=*v.buffer+i;int Vectorelemint ndxH**3**coutn errorin indexnendl;exitl;return buffer[ndx];void Vectordisplayforint j=0;jsize;j++coutelemiendl;void Vector::set*2**;;forint j=0isize j++;elemj=j+lVector〜VectorQvoid main;Vector a10;Vector ba;a.set;b.set;a.displayO;b.displayO.使用打开考生文件夹下的工程此工程包含一个源程序49VC6MyProjl3o文件程序中定义了两个类和但类的定义并不MyMainl
2.cpp BaseDerived,o完整请按要求完成下列操作,将类的定义补充完成
①定义类的保护成员和它们都是整型变量请在注释“//*shapes x y,之后添加适当的语句*1**
②完成构造函数定义,使类的保护成员、分别shapesintd,intw shapesxy初始化为、并分别具有默认值、请在注释“〃*”之后添加d w,00*2**适当的语句
一、单选题(题)
13.以下不能作为输出流对象的是()11文件内存键盘显示器A.B.C.D..存取指针所指的值时,采用的运算符是()12A.#B.C.%D.*.将前缀运算符”」重载为非成员函数,下列原型中,能正确用于类中13说明的是(){};A.Decroperator—int();B.Decroperator—Decr,int();C.friend Decrcperator Decr();D.friend Deeroperacor--Decr,int.下列关于多态性的描述,错误的是()140语言中的多态性分为编译时的多态性和运行时的多态性A.C++.编译时的多态性可通过函数重载实现B运行时的多态性可通过模板和虚函数实现C.实现运行时多态性的机制称为动态绑定D.若有定义语句卜{);”则下列对数组元素的15“intm5,4,3,2,1,i=4m引用中错误的是()0
③完成类的成员函数的定义,类的数shapes setvalueintd,int wslopes据成员和分别被设置成和请在注释“〃*”之后添加适当X yd W*3*的语句
④将类的成员函数设置成纯虚函数请在注释“〃*shapes voiddisp*4**”之后添加适当的语句注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件清单如下MyMainl
3.cpp//MyMainl
3.cpp#includeiostream usingnamespace std;class shapespublic:void setvalueintd,int wclasssquare:public Shapespublic:void dispcoutx*yendl;;int mainshapes*ptr;square s1;ptr=sl;ptr-setvalue10,5;ptr-disp;return0;参考答案解析软件测试若从是否需要执行被测试软件的角度,可以分为静态LD测试和动态测试方法若按照功能划分,可以分为黑盒测试和白盒测试静态测试可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行逻辑覆盖属于白盒测试的主要方法错误推测属于黑盒测试主要诊断方法之一解析算法的时间复杂度实际上就是执行算法程序所需要的计算工作
2.C量为了客观地反映算法性能,在度量算法的时间复杂度时,应该与编写算法程序所使用的程序设计语言、执行算法程序时所使用的计算的工具以及程序员的水平无关选项错误,因为同一算法程序在运行速度A不同的计算机上运行时,其计算时间是不同的选项错误,因为算法B所编写的程序长度往往与程序设计语言以及程序员的水平有关,同一个算法,用不同的程序设计语言或者不同的程序员所编写出的程序其长度可能会大不相同选项错误,因为根据一个算法所编制出的程序之中,D其指令条数往往与程序设计语言以及程序员的水平有关,不能用算法程序中的指令条数来度量算法的时间复杂度所以,本题正确答案为C
3.Do【解析】在中规定如果一个类被声明为类模板,那么其中的所有Do C++成员函数就都成为了模板函数解析本题考核对笛卡儿积运算的掌握笛卡儿积是两个关系的合并
4.C操作,因此元关系与元关系经笛卡儿积后所得新关系是元n Rm Sm+n关系
5.D解析此题考查的是派生类对基类成员的访问基类的成员有公有、保护和私有种访问属性;类的继承方式也有公有继承、保护继承和私有继3承种无论哪种继承方式,派生类中的成员都不能访问基类中的私有成3员,但可以访问基类中的公有成员和保护成员解析二叉树有一个性质在任意一棵二叉树中,度为的结点(即
1.B叶子结点)总是比度为的结点多一个,由于本题中的二叉树有个叶子270结点,因此有个度为的结点692该二叉树中总的结点数为度为的结点数+度为的结点数+叶子结点数=2169+80+70=219解析本题考核构造函数的调用+在创建一个对象时,会自动调
7.A C+用类的构造函数,在构造函数中可以执行初始化成员变量的操作语句创建了两个对象、和一个对象指针在创建和MyClassa,b2,*p;a ba b对象时系统会调用类的构造函数但在创建对象指针时,不调用类的构p造函数,因为指针本身不定义类对象,而是定义了可以指向一个P P的对象MyClass
8.B循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作
9.D要进行变化因为是循环利用的队列结构,所以队头指针有时可能大于队尾指针,有时也可能小于队尾指针
10.C解析关于软件测试的目的,在《Grenford J.Myers TheArt ofSoftware一书中给出了深刻的阐述软件测试是为了发现错误而执行程序Testing的过程;一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试整体来说,软件测试的目的就是尽可能多地发现程序中的错误本题答案为C
11.C输出流对象包括基本的输出设备,如显示器,内存和文件,而输入流对象则包括键盘,文件以及其他输入设备
12.D【解析】对指针所指向的地址取值时,采用的存取运算符为*为取Do B地址符解析把”运算符重载为非成员友元函数格式返回类型
13.C friendc>是前缀的格式;〈返回类型>是后缀的格operator--friend operator--int式当然也可以有参数如题中选项所示C
14.C【解析】编译时的多态性是通过函数重载和模板体现的,运行时的多Co态性是通过虚函数体现的
15.C【解析】数组的下标是从零开始的一维数组的一般定义方式为数型Co说明符数组名[常置表达式],其中“口”中的内容可以是整型数量,也可以是整型表达式选项中,数组下标越界Cm
[0]=5,m[m[o]]=m
[5],
16.D本题考查的是引用调用,因为函数用调用参数所以在函数swapOl a,swap中的变化会改变主函数中的值,即自加但的值并未改变a aa1,b
17.A【解析】本题考查的是内联函数的相关知识点引入内联函数是Ao C++用它来代替语言中的预处理宏函数,内联函数在调用时,是将表达式C用内联函数体来替换,这样会加快程序的执行速度【解析】在各种排序方法中,快速排序法和堆排序法的平均速度
18.DD是最快的,因为它们的时间复杂度都是其他的排序算法的时间Onlog2n,复杂度大都是On2o【解析】图是由若干基本框图构成的流程图,其特点是没有
19.CC N—SO流程线;图即问题分析图它是一种由左往PAD ProblemAnalysisDiagram,右展开的二维树型结构;程序流程图用于描述问题解决的过程和步骤,其中方框表示处理步骤、菱形框表示逻辑判断、箭头表示控制流向;E—R图即实体一联系图用来描述现实世界的概念EntityRelationshipDiagram,模型,构成元素有实体、属性和联系,分别用矩形、椭圆形和菱形表示本题答案为C
20.D本题考查标识符的命名规则,其规则有如下几点
①所有标识符必C++须由字母、数字或下画线组成,且必须由字母或下画线开头;
②所有标识符不能使用已有的关键字;
③大、小写字母表示不同意义,即代C++表不同的标识符选项中虽然是关键字,但因首字母大、小写不C retum同,也可用于标识符,但不建议使用故答案为D
21.B【解析】语言中当一个新对象被另一个已存在的同类型对象初始Bo C++化时要调用复制构造函数,语句”符合此条件,将调用MyStringba;类的复制构造函数,但是类没有定义此复制构造函数,MyString MyString所以会出错解析+语言中的类是可以组成层次结构的,类是用于描述事物
22.C C+的属性和对事物的操作,类与类之间有相对的独立性,但其可以通过一些方法进行信息的通信
23.C解析由于是类的静态成员函数,
24.Mf1P;MflP;fl Moo即说明类的任何对象都共享一份因此,不仅可以从对象那里访问M fl,fl,还可以用域操作符通过类名来访问解析该语句以为、为初始化,循环条件是<二
25.1010for i0j10i j,每次循环后增、减循环体是将与的和赋给这样变量将保存i1j1,i jk ko的是最后一次赋给它的值一次循环后为、为二次循环后为、i1j9,i2j为五次循环后为、为继续第六次循环,将与的和存于8,i5j5,i j1k后,为、为结束循环所以循环执行后为i6j4,k10o解析要获得字节数,必须用操作符
26.sizeof sizeofsizeof.模块模块解析矩形表示的是模块,箭头表示的是模块间的调用关系27用带实心圆的箭头表示传递的是控制信息,用带空心圆的箭头表示传递的是数据
28.
000129.
10.代码生成代码生成30解析语言中用成员函数重载为用友
31.++x++x C++++x x.operator++元函数重载为++x operator++x.时间复杂度和空间复杂度时间复杂度和空间复杂度解析算法的复杂32性是指对一个在有限步骤内终止算法和所需存储空间大小的估计算法的计算量是算法的时间复杂性,算法所需存储空间大小是算法的空间复杂性注意算法的各种属性及其相互作用解析本题考核和
33.x=newinta deletexx=newinta\r\ndeletex newdelete的使用由题可知,在类的构造函数中,是申请内存空间,并MyClass让指针指向构造函数的行参所以构造函数的函数体应该为x a在类的析构函数中,是释放类的私有成员,即指针“x=newinta MyClass变量所以析构函数的函数体应该为x,“deletex解析在任意一棵二叉树中,度为的结点即叶子结点总是
34.3503500比度为的结点多一个根据完全二叉树的定义,在一棵完全二叉树中,2最多有个度为的结点因此,设一棵完全二叉树具有个结点,若11n n为偶数,则在该二叉树中有个叶子结点以及个度为的结点,n/2n/2-l2还有个是度为的结点,•若为奇数,则在该二叉树中有[个叶11n n⑵+1子结点以及[]个度为的结点,没有度为的结点本题中,完全n/221二叉树共有个结点,是偶数,所以,在该二叉树中有个叶子700700350结点以及个度为的结点,还有个是度为的结点本题的正确答349211案为
35035.2应改为;
36.1usingnamespacestd应改为;\n2outl.open
1.txt,ios::binary|iosapp应改为[];\n3“outl.puts i【解析】本题第处的厂是在程序中引入标准命名空间对\n1“usingstd std,于+中引入标准命名空间的格式,缺少所以第处的语句C+namespace,1修改为;第处,调用成员函数中,usingnamespacestd2open输入、输出方式是在类中定义的,所以是;”ios“outl.open.txt,binary|app语句缺少类即第处的语句修改为ios,2“outl.open
2.txt,,ios binary|叩;第个标识应该用流成员函数输出字符,所以第处ios p3put3的语句修改为修;”utl.puts[i]应改为;
37.⑴“TCobjll应改为;\n2“Objl.SetNumberlO巾⑶应改为;“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应改为
38.1“TCTC”应改为\n2voidTCdisplay”应改为\n3“TC〜TC”【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和\n作用域运算符“作用域运算符用采表示某个成员属于哪个类,使用格式为“类名〈成员函数〉参数函数,因此第处应改为1“TC默认构造函数没有参数由第处后的语句看,这是TC”,2“TC display”在类外实现函数,因此也有作用域运算符使用错误问题,TC display函数返回值为因此第处的语句应改为由第void,2“voidTCdisplay30处的语句叮可知,显然这里是在类外实现析构函数,析构函数3T是一个特殊的函数,它的名称和类名相同,并在前面加“字符,用采与构造函数加以区别,因此第处的语句应改为3“TC~TC”应改为
39.1catchchar*s”应改为2catehinti”应改为”3catch…【解析】本题中第个标识前的异常抛出语句为呢其中1“throw rror”;,的类型为字符串所以对应的异常捕捉语句中应该符合这个类型,catch而程序中给出的语句是字符型的,所以第处的语句修改为“catchchars”1“catchchar*S”第2个标识前的异常抛出语句为t4throwint0;,其中的类型为对应的异常捕捉语句中应该符合这个类型,所以补充int catch子句中的类型,否则如果找不到匹配的块,系统就会调用一个catch catch系统函数,使程序终止运行即第处的语句修改为如果在2catchinti”子句中没有指定异常信息的类型,那么就用删节号“…”表示它可catch以捕捉任何类型的异常信息,即修改为”“catch…应改为
40.1usingnamespacestd;应改为2“outl.open l.txt,iosbinary Iiosapp;应改为3“outl.puts[i];A.m[—i]B.m[2*2]C.m[m[o]]D.m[m[i]|.下面程序的运行结果为16#includeiostream.h voidswapinta,int B.int temp;temp=a++a=bb=temp;void mainima=2,b=3;swapa,B.;eout«a«5\5,«b«endl;A.2,3B.3,2C.2,2D.3,
3.在程序中,如果要求通过函数来实现一种简单的功能,并且要17C++求尽可能加快程序执行速度,则应该选用().下面排序算法中,平均排序速度最快的是(
18.内联函数重载函数.递归调用嵌套调用A B.C D..冒泡排序法.选择排序法.交换排序法.堆排A BC D序法.软件详细设计产生的如下图所示该图是(19图图程序流程图图A.N—S B.PAD C.D.E—R【解析】本题第处的”是在程序中引入标准命名空间对1“usingstd;std,于中引入标准命名空间的格式,缺少所以第处的语句C++namespace,1修改为第处,调用成员函数usingnamespacestd;2open中,输入、输出方式是在类中定义的,所以ios“outl.openl.txt,binary Iapp;”语句缺少类ios,即第2处的语句修改为Uoutl.openl.txt,ios第个标识应该用流成员函数输出字符,所以binary Iiosapp;3put第3处的语句修改为Uoutl.puts[i];
41.lttvoidmain,,o2“intm=0144;”或;”3“intn=OX25;“intn===0x25【解析】本题主要考查了主函数定义及幕同进制之间的转换,包括十进制到八进制,十进制到十六进制主函数定义的定义形式为函数名之后必须是一对括号,因此第处应改为“main”,1“voidmain”cout输出默认是以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的对应八进制的卡进制的对应十六进制的100144,37因此和应分另」改成”或25,23I“intm=0144;”,“intn=0x25;“intn=0x25;应改为;
42.⑴“ein.getlinestr,120,⑵应改为\n whilestr[i]”\n⑶应改为“ifstr[i]=astr[i]=2,,o【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员\n函数函数读入一行字符,格式为字符数组,字符个数,getline“cin.getline终止标志字符字所以第处改为;”第处的1“cin.getlinestr,120,2语句应该是判断字符串中的每一个字符是否为结束符,若“whilestr”str不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为第处的语句是判断字符“whilestr[i]°3“ifstr[i]=a”str[i]是否为小写字符,而现有的语句只是判断字符是否大于但是小写字符应a,该是a到2,所以修改为“ifstr[i]=a str[i]=z,,o应改为”
43.1“ein.getlinestr,120,;⑵应改为巾]”“while®应改为3“ifstr[i]=astr[i]v=2°【解析】本题中要求以输入字符为结束符,用于字符输入的流成员函数函数读入一行字符,格式为字符数组,字符个数,终getline“cin.getline止标志字符”,所以第处改为1“cin.getlinestr,;第处的语句应该是判断字符串中的每一个120,2“whilestr”str字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为第处的巾]“whilestr[i]”°3“ifst=a”语句是判断字符是否为小写字符,而现有的语句只是判断字符是否str[i]大于但是小写字符应该是到所以修改为a,a2,t4ifstr[i]=a str[i]=z,,0应添加
44.1“public应改为;\n2“inti”“inti10;”应改为;”\n3“i++“i—【解析】本题主要考查的是成员的访问属性成员的访问属性有公有、保\n护和私有种,而默认的访问属性为私有,只有公有成员才能通过类的对3象被访问故应在构造函数前添加:,否则该类无法被实例化“public变量的初始化可以通过“=”号,也可以和初始化对象一样添加构造参数,题目已要求使用后者本题要求输出个数,的循环变量每次减5while i1,在时循环,故初始化应为若循环中每次增则循环永远不会退5i10i1,出应改为
45.1“staticintn=O staticintn;”应改为2“intCOn;“intCOn=0;344cout«c.n«endl;应改为cout«c-nendl;【解析】本题要在屏幕上输出两个字符,首先要静态变量初始化,第处1应改为,第处要给赋值,第处输出时引用的对象,“staticintn;2n3c应改为〈coutv c-n«endl;.使用打开考生文件夹下的源程序文件程序通过继承46VC++
6.
03.cppo关系,实现对姓名的控制类实现对名字访问的接口,实现对TC1TC2名字的设置和输出程序输出为\n\nTC2Name\nMay其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整\n在类中定义接口函数为纯虚函数请在注释后添加\nD TC1GetName1适当的语句函数用于获得名字的缓存,但只获得允许读操作这个缓存,\n2GetName2请在注释后添加适当的语句2实现的构造函数,请在注释后添加适当的语句\n3TC23完成的构造函数,实现对名字的处理请在注释后添加适当的\n4TC24语句注意增加或者修改代码的位置已经用符号表示出来,请不要修改其他\n的程序代码\n试题程序\n\n#includeiostream.h\nclassTCl\n\npublic\n//51c51c51c]51c\n};\nclassTC2publicTCl\n{\npublic\nvoidGetName\n{\ncout«,TC2Name!«endl;\n}*1**1*\//K不L*KL*不不不不不KL«KL*不VL*不*J,不不不不不不不不\n//\n{\nreturnm str;\n}不小小小不不小小不不不小不小不不\n//\n{\ninti\nfori=0;str[i]!=O;i++\nm_str[i]=str[i];\n//4\n}\nprivate\ncharm_str
[32];\n};\nvoidmain\n{\nTCl*P;\nTC20bj1May;\np=objl;\np-GetName;\ncout«obj
1.GetNamc2«endl;\nretum;〃定义两个整数临时变量\n}
47.intj,J;1i.j.一;fori=0,j=length1;ij;i++,j-chartemp=str[i]〃把中的值保存在临时变量str[i]tempstr[i]=str[j];〃把值赋给实现字符前后替换Str[j]Str[i],str[j]=temp;〃把保存在临时变量中的值再赋值给temp Str[j]【考点分析】本题主要考查的是类、构造函数、成员函数和析构函数doc【解题思路】题目要求将中的字符序列反转,在函数中我们看到myDoc mainmyDoc是类,根据类的定义可以知道它是把读取文件的字符串存到doc docstr动态数组中函数实现将数组中的个字符中的第一个字reverse strlength符与最后一个字符交换,第二个字符与倒数第二个字符交换,依次类推使用变量和分别表示第一个字符和最后一个字符的下标,定义i J,temp作为中间变量进行交换
48.1size=s;buffer=new int[size];2size=v.size;buffer=new int[size];3ifndxO||ndx=size4coutdendl;delete[]buffer;1\r\n二size=s;\r\n buffer=new int[size];\r\n2\r\n sizev.size;\r\n buffer=newint[size];\r\n3\r\n ifndxO||ndx=size\r\n4\r\n coutdendl;\r\n;解析本题主要考查考生对于类的构造函数与成员函数定delete[]buffer义的掌握,注意中赋值的应用,为了防止重复删除,不能直接将指针2赋值,必须使用动态申请建立一块新的空间,并且将原来对象的成new员全部复制到新的空间中中对动态一维数组空间删除的时候,应该使4用关键字,并不管原数组大小是多少,一律只写一对中括号”[『加delete上变量名
49..下列字符串中不可以用做标识符的是20C++A.y_2006B._EST_H C.Re turnD.switch.有如下的程序21#includestrin
9.h#includeiostream.husingnamespacestd;classMyString{public MyStringconstchar*s;MyString{delete[]data;}protected unsignedlemchar*data;};MyStrin9MyStringconstchar*s{len=strlens;data=newchar[len+1];strcpydata,s;}intmain{MyStringanC++Programingn;MyStringba;returnO;}在运行上面的程序时出错,出错的原因是()构造函数的实参不允许A.是本类的对象.没有定义实现深层复制的复制构造函数B.构造对象时实参与形参类型不符C a系统不能生成默认的复制构造函数D.下列关于+语言类的描述中错误的是
22.C+.类用于描述事物的属性和对事物的操作A类与类之间通过封装而具有明确的独立性B..类与类之间必须是平等的关系,不能组成层次结构C.类与类之间可以通过一些方法进行通信和联络D下列各高级语言中,是面向对象的程序语言
23.A.BASIC B.C C.C++D.PASAL
三、.填空题题212类中包含了一个静态成员函数,则函数中和;语句具有
24.main P.flP同样功能的语句为O#includeiostream.h classM{public;十二;}Mint A{A=a Ba;static voidflM m;}private:int Astatic intB;;voidMfl Mm cout“A=m,Aendl;coutB=m.Ben设、、均为型变量,则执行完
25.i jk intfori=0,j=10;i=j;i++,j-一招语句后,的值为1=1+ko要获得一数据或数据类型所占空间的字节数,应使用的操作符是【】
26.常用的软件结构设计工具是结构图也称程序结构图其中,
27.SC,用矩形表示用带空心圆的箭头表示传递的是数据
28.以下程序的执行结果是_______o#includeiostream.h voidmain intx=5y=2;cout!y==x/2;cout y!=x%3,;coutx0y0=,;coutx!=y||x=yendl;下面程序的输出结果为【】
29.#includeiostream usingnamespacestd;void initializeintprintNojnt state=0;void initializeintprintNo=l,int state;int maininitialize;return0;void initializeintprintNo,int statecoutprintNoJstateendl;下面程序的输出结果为【】编译过程一般分成个阶段【】、语法分析、错误检查、代码优化
30.5和目标代码生成表达式还可写成【】
31.x.operator++算法的工作量大小和实现算法所需的存储单元多少分别称为算法的
32.[lo下列程序在构造函数和析构函数中申请和释放类的私有成员,请完
33.成该类的实现class MyClassint*x;public:MyClassint a:〜MyClass;;MyClass::MyClassint a[];MyClass::〜MyClass[];设一棵完全二叉树共有个结点,则在该二叉树中有【】个叶子
34.700结点.假设血则表达式的值为【】35inta=l,b=2;,++a/b*b-
四、程序改错题题
10.使用打开考生文件夹下的源程序文件该程序运行时36VC++
6.
01.cpp,有错误,请改正程序中的错误本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件中
1.txt注意不要改动函数,不能增加或删除行,也不能更改程序的结构,main错误的语句在的下面。