还剩39页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2022年贵州省安顺市全国计算机等级考试C++语言程序设计模拟考试(含答案)学校:班级:姓名:考号:
一、
1.选择题(10题).对建立良好的程序设计风格,下面描述正确的是()A.程序应简单、清晰、可读性好B.符号的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无.将字符C输出不正确的是()A.charch;ch=c;cout.putch;B.cout.putc;C.coutc;D.coat〉c;.对定义重载函数的下列要求中,()是错误的A.要求参数的个数不同B.要求参数中至少有一个类犁不同C要求参数个数相同时,参数类型不同D.要求函数的返回值不同.以下程序的输出结果是#includeiostream.hvoidmain{inta5b6i0J0;switcha{case5:switchb{case5:i++;brcak;ease6:j++;break;default:i++;j++;}case6:i++;j++;break;default:i++;j++;}coutijendl;}A.12B.13C.22D.23*1^*1^*1^*1^^L»error不不不不个不不不outl.openfl.txtbinary|app;forinti=0;s[i]!=0;i++kJk1kI7,k17,k17,kJk1kI7“、!个个个个不不不不^^nor个个不不不不个不outl.putss[i];outl.close;voidClearFileofstreamoutl;outl.opennl.txt”;outl.close;intmainchars
[1024];ClearFile;cout«npleaseinputastrin9n«endl;cin.getlines1024;WriteFiles;returnO;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常程序异常,输出信息为error0ERROR注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******errcr******的下面试题程序#includeiostream.hintmaintrythrownerrorn;errorcatchcharscout«s«endl;trythrowint0;个个个个个个个个^^nor个个个个个个个小catchcout«i«endl;trythrowO;thrownerrorn;/不不小小小小不小error不不小小不不小小catchcout«nERRORn«endl;}returnO;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正程序中的错误,使得程序输出98765注意错误的语句在/********error********/的下面,修改该语句即可其他的语句不能修改试题程序#includeiostream.hclassTC/*!kL*/不不不不不不不不error不不不不不不不不/TCintim_i=i;voidprintcout«—m_i«;}public:intmi;intmain*1**1*•1k!k!个不不不不个不不不个个个个个个个inti;TC0410;whilei5I********errOr********/i++
04.print;cout«endl;returnO;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面试题程序#includeiostream.hvoidmaininti=O;charstr
[120];cout«nEnterastringendwith.n«endlzII********error********cin.getlinestr120II********eiror********whilestrII********error********ifstr[i]=astr[i]=str[i]-a+A;i++;}cout«str«endl;return;}.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正程序中的错误本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件L中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在******error******-।hjo试题程序:#includeiostream#includefstream个个个个个个个个^^rror个个***个个个个个usingstd;voidWriteFilechar*sofstreamoutl;^1#1#个个个个个个个个^^nor个个个个个个个个outl.opennl.txt,binary|app;forinti=0;s[i]!=0;i++sixsi*kJ*个个个个个个个个个个个个个个个个outl.putss[i];outl.close;voidClearFileofstreamoutl;outl.opennl.txt;outl.close;intmainchars
[1024];ClearFile;cout«Hpleaseinputastrin9n«endl;cin.getlines1024;WriteFiles;returnO;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行有问题,请改正main函数中的错误,使程序的输出结果为number=lnumber=10number=100注意不要改动main函数,不能增加或删除行也不能更改程序的结构,错误的语句在//******error******的下面试题程序#includeiostream.hclassTCpublic:TCintinumber=i;voidSetNumberintmnumber=m;intGetNumberconstreturnnumber;voidPrintconstcout«Hnumber=H«number«endl;private intnumber;voidmain7*7*7*个个个个不小个个^^nor个个个不个个个个TCobjl;objl.Print;TCobj23;objl.number=10;!1********ej*j*0]*^^0******TC.SetNumberlOO;objl.Print;obj
2.Print;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructori=0Destructor注意错误的语句在//******error******的下面,修改该语句即可试题程序#includeiostream.hclassTCinti;public TC;voiddisplay;〜TC;errorTC TCcout«nConstructorn«ni=0;errorTC displaytoutni=n«i«nn«endl;TC TCCOUI«nDestructorn«endl voidmainTCa;a.display;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面试题程序:#includeiostream.hvoidmaininti=O;charstr
[120];cout«nEnterastringendwith.n«endl;^1*vl*vl*kL*kL*个不个个不不不个个个不不不个个个cin.getlinestr120;.对建立良好的程序设计风格,下面描述正确的是0A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无.下列表示纯虚函数的成员函数是A.virtualintfuncint;B.voidfuncint=0;C.virtualvoidfunc=0;D.virtualvoidflmcint{}.下列运算符中,要求运算对象必须是整数的是()oA./B.*C.%D.!.设有以下说明语句typedefstruct{intn;charch
[8];}PER;则下面叙述中,正确的是()A.PER是结构体变量名B.PER是结构体类型名C.typedefstruct是结构体类型D.struct是结构类型名.下面程序执行后的结果是#includeiostreamusingnamespacestd;voidfunc1inti;voidfunc2inti;charst[]=hellofriend!;voidfundinti{coutst[i];ifi3{i+=2;func2i;}}voidfunc2inti{coutst[i];ifi3{i+=2;funcli;}}voidmain{inti=0;funcli;coutendl;}A.elloB.helC.hloD.himkI个个个个个个个•te不不不不不不不不whilestr不个个不不不不不不不不不不不不不str[i]=str[i]-a+A;i++;cout«str«endl;return;
44.使用VC++
6.0打开考生文件夹下的源程序文件Lcpp该程序运行时有错请改正程序中的错误,使程序输出的结果为1003732注意错误的语句在//******error******的下面,修改该语句即可试题程序:#includeiostream.h*!**kL*kL#不不不不不不en*or不不不不不不voidmain*1*kJ*kL*不不不不不不erpor不不不不不不intn=0X27intq=32;coutmendl;coutnendl;coutqendl;return;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp但该程序运行有问题,请改正main函数中的错误,使该程序的输出结果正确程序输出:注意错误的语句在/********error********/的下面修改该语句即可,其他的语句不能修改试题程序:#includeiostream.hclassCOpublic个个个个个个个个个个***个个个个个staticintn=O intCOn;voidmainCOobj;COobj2
[7];COCNULL c二obj k1*k17,7,kJk!error不不不不小小下不eout«C.n«endl;cout«C0n«endl;
五、综合应用题(2题).使用VC++
6.打开考生文件夹下的源程序文件
3.cpp请完成以下部分,实现在屏幕上输出为C3C2这个程序需要修改的部分,请按照以下部分实现⑴类CO不能被实例化,请定义一个纯虚函数print在注释1后添加适当的语句2类C1私有虚继承类CO请在注释2后添加适当的语句⑶类C2公有继承于CO请在注释3后添加适当的语句4类c3公有继承于C2与CL请在注释4后添加适当的语句注意增加代码或者修改代码的位置已经用符号表示出来请不要修改其他的程序代码试题程序#includeiostream.hclassCO//1/I;-j、■[、j、J^T,[、«,/[、classCl publicvoidprintcoutHCrendl;};//k!kIk1k!slk!k|kJk!k!kJ/rr*.Xrj*rT*classC2public voidprintcoutnC2nendl;};/I********4***x****classC3public voidprintcoutC3endl;};voidmainC3Obj3;C20bj2;obj
3.print;obj
2.print;return;.使用VC++
6.0打开考生文件夹下的源程序文件
3.cpp其中定义了类BA、PA1和PA2其中PA1类由BA类公有派生,PA2类由PA1类公有派生上述3个类的定义并不完整,请按要求完成下列操作,将程序补充完整程序输出结果如下1O510571定义类BA的构造函数,该构造函数有一个整型的参数m在构造函数中将m赋值给数据成员ao请在注释1之后添加适当的语句2定义类PA1的构造函数,该构造函数有两个整型的参数m和n在构造函数中将m赋值给数据成员b将n作为基类BA构造函数的参数值传人请在注释2之后添加适当的语句3定义类PA2的构造函数,该构造函数有3个整型的参数m、n和k在构造函数中请将m赋值给数据成员c将n和k分别赋值给基类PA1构造函数的参数m和n请在注释3之后添加适当的语句4完成类PA2的成员函数show的定义,该函数调用基类成员函数,输出基类私有成员a、b及类PA2自身的数据成员C的值,上述3个值在输出时用空格隔开请在注释4之后添加适当的语句注意除在指定位置添加语句之外,请不要改动程序中的其他内容试题程序#includeiostream.hclassBAinta;public1*1kJk!t\!*1*ywry*rj**ywI*yw*1^intgeta{returna;}};classPAl publicBAintb;public//*£**1**1**1**1*■!**L*.!*1*kJ^1**1**1**1**1*/q、q、q,J-[,彳、,卜■卜―卜q、intgetb{returnb;};classPA2publicPAlintC;public//kIkJkI7t7,/^r*^T*rr*rT%rr%rTwrj*rr*rr*voidshowII********4********};voidmainPA2a7510;cout«a.geta«endl;cout«a.getb«endl;a.show;
六、
3.综合应用题2题.使用VC6打开考生文件夹下的工程MyProjl3此工程包含一个源程序文件MyMainl
2.cppo程序中定义了两个类Base和Derived但类的定义并不完整请按要求完成下列操作,将类的定义补充完成
①定义类shapes的保护成员x和y它们都是整型变量请在注释“〃**1**之后添加适当的语句
②完成构造函数shapesintdintw定义,使类shapes的保护成员x、y分别初始化为d、w并分别具有默认值
0、0请在注释“〃**2**”之后添加适当的语句
③完成类shapes的成员函数setvalueintdintw的定义,shapes类的数据成员x和y分别被设置成d和w请在注释“//**3**”之后添加适当的语句
④将类shapes的成员函数voiddisp设置成纯虚函数请在注释“〃**4**之后添加适当的语句注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件MyMainl
3.cpp清单如下//MyMainl
3.cpp#includeiostreamusingnamespacestd;classshapes〃***]***public voidsetvalueintdintw〃***3***〃***4***;classsquare:publicShapespublic:voiddispcoutx*yendl;};intmainshapes*ptr;squares1;ptr=sl;ptr-setvalue105;ptr-disp;return0;.使用VC6打开考生文件夹下的工程test20_3此工程包含一个源程序文件tesOO_
3.cpp其中定义了用于表示复数的类comp但类comp的定义并不完整请按要求完成下列操作,将类comp的定义补充完整1定义comp的构造函数,函数含参数x和y它们都是in型的数据,默认值都为0请使用参数列表的形式分别将类数据成员a和b初始化x和y的值请在注释“〃**1**”之后添加适当的语句2完成类comp的成员函数inputintxinty的定义,将血型的参数x和y分别赋值给数据成员s和b请在注释“〃**2**”之后添加适当的语句;3完成类comp的友元函数friendcomppluscompxcompy的定义该函数首先要定义一个comp类的对象c然后将参数x和y的数据成员a与b分别相加并分别赋值给c的成员a和b最后返回c的值,请在注释“〃**3**”之后添加适当的语句输出结果如下10+20i2+3iresult12+23i注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件test20_
3.cpp清单如下#includeiostream.hclasscompinta;intb;public:〃**]**friendcomppluscompxcompy;voidinputintxintyvoidoutput
10.下列叙述中正确的是A.软件测试的目的是证明程序是否正确B.软件测试的目的是尽可能多的发现程序中的错误C.软件测试的目的是使程序运行结果正确D.软件测试的目的是使程序符合结构化原则
二、单选题13题.如果表达式“-x/y”中的和“/”是作为友元函数重载的运算符采用运算符函数调用格式,该表达式还可以表示为A.operator/X.operator—y;B.operator/operator—xy;C.X.operator—.operator/y;D.y.operator/operator—x;.有如下程序段inti=5;whileinti=0{cout«4*5;i—;}运行时输出“*”的个数是A.0B.1C.5D.无穷.软件按功能可以分为应用软件、系统软件和支撑软件或工具软件couta+bninend1;};comppluscompxcompyc.b=x.b+y.b;returnc;voidmaincompx1020yz;y.input23;z=plusxy;x.output;y.output;coutresult:;z.output;参考答案.A解析本题涉及程序的编程风格,考生应该掌握一些基本的良好编程风格符号的命名不仅要符合语法,应有一定实际意义,且尽量简洁除非对效率有特别要求,程序编写要做到清晰第一,效率第二,必须要有必要的注释.D解析屏幕输出是将插入符作用在流类对象cout上,格式cout〈表达式.D.A.A解析符号名的命名不仅要符合语法,而且符号名的命名应具有一定实际含义,以便于对程序功能的理解所以,选项B错误程序设计风格强调“清晰第一,效率第二”,而不是效率第一所以,选项C错误程序中的注释部分虽然不是程序的功能,计算机在执行程序时也不会执行它,但在程序中加入正确的注释能够帮助读者理解程序,注释是提高程序可读性的重要手段所以选项D错误本题的正确答案为A.C解析:本题考查纯虚函数的定义形式由于纯虚函数在最后要有“=0”故据此排除A和D而B中没有出现virtual关键词,故正确答案为C.C解析题目中的运算对象既可以是整数,也可以是实数,只有取余数运算符“%”要求运算对象必须是整数.B解析本题考核用typedef定义自己的变量类型C++语言允许定义用关键字typedef所命名的新的数据类型实际上,没有建立一个新的数据类型,而仅是对存在的类型定义了一个新的名字所定义的新名是现有的类型名的补充,而不是取代.C解析主函数中调用funcl函数,实参赋值为0在该函数中先输出st[O]即h;然后funcl函数又调用func2函数实参赋值为2func2函数运行时先输出st⑵,即力”;然后又调用funcl函数,实参赋值为4func1函数运行时先输出st
[4]即“0”.B解析软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定由此可知,测试不是为了证明程序是正确的,而是在设想程序有错误的前提下进行的,其目的是设法暴露程序中的错误和缺陷测试只能说明程序有错,而不能证明程序无错,希望通过有限次的测试就能发现程序中的所有错误是不可能的,即完全测试是不可能的
11.BBo【解析】本题考查运算符的重载假定已经作为某个类的成员函数重载了二元运算符+且cl、c2都是该类的对象,贝厂cl.operator+c2”与“cl+c2”含义相同如果+作为该类的非成员函数重载,则toperator+clc2”与“cl+c2”含义相同同理,运算符“/”作为友元函数重载,则--X/y”与表达式“operator/--Xy”相同前缀运算符-”作为友元函数重载,则“-X与operator-x”相同,所以组合起来是“Operator/operator--xy;”即B选项
12.A解析语句whileinti=O是重新定义了一个变量i并赋值为0因此while循环条件为假,不执行循环体,所以不会输出“*.C解析软件按功能可以分为应用软件,系统软件、支撑软件或工具软件应用软件是为解决特定领域的应用而开发的软件例如,事务处理软件、工程与科学计算软件,实时处理软件,嵌入式软件,人工智能软件等应用性质不同的软件因此选项C教务管理系统属于应用软件系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件如操作系统,编译程序,汇编程序,网络软件,数据库管理系统等因此选项A、B、D都属于系统软件.DD【解析】本题考查虚函数的概念虚函数是非静态的成员函数它不能是友元函数,但可以在另一个类中被声明为友元函数虚函数必须是类的成员函数,虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型
15.B解析采用结构化程序设计方法编写程序,可使程序结构良好、易读、易理解、易维护,它包括3种基本控制结构,分别是顺序结构、选择结构和重复结构(又称循环结构)注意控制程序结构的方法和作用
16.B解析栈是限定在二端进行插入与删除的线性表在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素,即栈是按照“先进后出”或“后进先出”的原则组织数据的注意队列组织数据的原则是“先进先出”或“后进后出”注意数据结构中,栈和队列组织数据的原则
17.C解析本题考查的知识点是函数重载在C++语言中,允许定义一系列函数名相同,但形参的个数或类型不完全相同函数这种定义就叫做函数的重载重载函数对返回值类型不作要求,返回值类型也不参与区分函数的重载形式故本题应该选择C
18.Dconst是一个C++关键字,用于限定不允许改变的变量选项B是指向常量的指针,定义时可以不初始化;选项D是指针常量,定义时必须初始化故答案为D.D冒泡排序、简单插入排序与简单选择排序法在最坏情况下均需要比较nn-l/2次,而堆排序在最坏情况下需要比较的次数是nlog2n故答案为D选项.A本题主要考查了常成员函数和运算符重载因为const关键字可以用于对重载函数的区分,所以在类外定义常成员函数时不能省略const关键字,因此选项B和选项D错误选项C中,如果mp.mnp.n返回值为true但题目要求返回值应为false因此选项C错误2LB解析由程序中的主函数main入手,分别调用funlfun2fun3函数,得出输出结果其中,3个函数都是实现的两个形参的交换功能,只是值传递的方式不同,有的是引用,有的是传值第一个函数中参数采用的是值传递的方式,形参的变化不影响实参所以d调用funl后,实参a和b并没有交换,仍然是AB第二个调用中,实参a采用的是地址即传递的是地址,所以形参a的改变会影响实参a的值,即BB同理,调用fun3后为BA.
22.B一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性.D.外模式外模式
25.BDBD解析因为本题中的print函数不是虚函数,所以通过基类指针pb调用的print函数是基类中的版本,而通过派生类指针pb调用的print函数是派生类中的版本因此,程序运行时会先输出一个字符B[然后输出字符.软件工程学软件工程学.动态静态动态静态
28.1919解析根据二叉树的性质,在任意一棵二叉树中,度为的节点即叶子节点总是比度为2的节点多一个由于本题中度为2的节点数为18因此,叶子节点数为18+1=19个
29.ptr-SetNum50;ptr-SetNum50;解析本题考查的是考生使用对象指针调用成员函数的能力,指针调用成员函数应该使用符号”-
30.软件开发软件开发解析基于软件下程的目标,软件工程的理论和技术性研究的内容主要包括软件开发技术和软件工程管理软件开发技术包括软件开发方法学、开发过程、开发工具和软件工程环境,其主体内容是软件开发方法学软件工程管理包括软件管理学、软件工程经济学,以及软件心理学等内容.需求分析需求分析解析需求分析的步骤是需求获取、需求分析、需求描述和需求验证.概念设计概念设计解析本题考查数据库设计的流程,数据库设计按流程分为以下阶段需求分析阶段一概念设计阶段一逻辑设计阶段一物理设计阶段一数据库实施阶段一数据库运行、维护阶段.类类解析在面向对象方法中,类描述的是具有相似性质的一组对象所以,属性与操作相似的一组对象称为类.一对多或1N一对多或1N解析两个文体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一1;1的联系、一对多1N或多对一N1的联系和多对多M N的联系
35.4004100140041001解析本题考查静态成员变量在不同对象间的共享现象无论哪个对象修改了其静态变量的值,其他对象再访问该变量时已经发生了变化.1应改为usingnamespacestd;\n2应改为“outl.open,
1.txtios::binary|iosapp;\n3应改为“outl.puts[i];\n[解析】本题第1处的“usingstd广是在程序中引入标准命名空间std对于C++中弓I入标准命名空间的格式,缺少namespace所以第1处的语句修改为“usingnamespacestd;第2处调用成员函数open中输入、输出方式是在ios类中定义的所以“outl.openl.txtbinary|app;”语句缺少类ios即第2处的语句修改为“out
1.open.txtiosbinary|iosapp;第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“utl.puts[i];.1应改为catchchar*s”2应改为catehinti”3应改为catch…”【解析】本题中第1个标识前的异常抛出语句为“throwerror”;,其中的类型为字符串所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句“catchchars”是字符型的,所以第1处的语句修改为catchchar*S”第2个标识前的异常抛出语句为“throwint0;”其中的类型为int对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行即第2处的语句修改为catchinti”如果在catch子句中没有指定异常信息的类型,那么就用删节号“…”表示它可以捕捉任何类型的异常信息,即修改为catch.⑴应添加“public\n2“inti”应改为“inti10;\n3“i++;”应改为“i—;\\n【解析】本题主要考查的是成员的访问属性成员的访问属性有公有、保护和私有3种,而默认的访问属性为私有,只有公有成员才能通过类的对象被访问故应在构造函数前添加“public:,否则该类无法被实例化变量的初始化可以通过“=”号,也可以和初始化对象一样添加构造参数,题目已要求使用后者本题要求输出5个数,while的循环变量i每次减1在i5时循环,故i初始化应为10若循环中i每次增1则循环永远不会退出.1应改为“ein.getlinestr120;\n2应改为whilestr[i]o\n3应改为ifstr[i]=astr[i]=2o\n【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为“cin.getline字符数组,字符个数终止标志字符字所以第1处改为“cin.getlinestr120;第2处的“whilestr”语句应该是判断字符串str中的每一个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为“whilestr[i]”°第3处的“ifstr[i]=a”语句是判断字符str[i]是否为小写字符,而现有的语句只是判断字符是否大于a但是小写字符应该是a到2所以修改为“ifstr[i]=astr[i]=zo.⑴应改为usingnamespacestd;2应改为“outl.openl.txtiosbinaryIiosapp;3应改为“outl.puts[i];【解析】本题第1处解usingstd;”是在程序中引入标准命名空间std对于C++中引入标准命名空间的格式,缺少namespace所以第1处的语句修改为“usingnamespacestd;第2处,调用成员函数open中输入、输出方式是在ios类中定义的,所以“outl.openl.txtbinaryIapp;”语句缺少类ios即第2处的语句修改为“outl.openl.txtiosbinaryIiosapp;第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“outl.puts[i];.1应改为TCobjll;”\n2应改为“Objl.SetNumberlO;\n3应改为“0bj
2.SelNumberlOO;\n【解析】本题第1处的“TCobjl;”语句是声明TC类的对象Objl根据TC类构造函数的定义TCinti存在整型参数,并且题目要求第一个输出结果两1所以补全参数1即第1处的“TCobjl⑴;\第2处处的“objl.number=10;”应该是调用成员函数SetNumber赋值在C++中成员函数的使用形式应该是对象名.成员函数,所以修改为uobjl.SetNumberlO;类是对象的抽象,而对象是类的具体实例第3处“TC.SetNumberlOO第语句中的TC为类并不是对象这里应该使用定义的对象,即obj2所以将语句修改为“obj
2.SetNumberlOO;.1应改为“TCTC”\n2应改为voidTC::display”\n3应改为“TC〜TC”\n【解析】在类的外部定义成员函数时,必须在成员函数前面加上类名和作用域运算符“作用域运算符用采表示某个成员属于哪个类,使用格式为“类名<成员函数>参数函数,因此第1处应改为“TCTC”,默认构造函数没有参数由第2处“TC」display”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void因此第2处的语句应改为“voidTC=display由第下面属于应用软件的是OA.编译程序B.操作系统C.教务管理系统D.汇编程序.下面关于虚函数的描述中正确的是()A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型.程序的3种基本控制结构是A.过程、子过程和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移.下列数据结构中,按先进后出原则组织数据的是()A.线性链表B.栈C.循环链表D.顺序表.关于函数重载,下列叙述中错误的是A.重载函数的函数名必须相同B.重载函数必须在参数个数或类型上有所不同C.重载函数的返回值类型必须相同D.重载函数的函数体可以有所不同3处的语句“TCTC”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“〜”字符,用采与构造函数加以区别,因此第3处的语句应改为“TC〜TC”
43.1应改为“ein.getlinestr120;”2应改为whilestr[i]”3应改为“ifstr[i]=ast巾]=2”【解析】本题中要求以输入字符“”为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为“cin.getline字符数组字符个数终止标志字符”所以第1处改为“cin.getlinestr120;第2处的“whilestr”语句应该是判断字符串str中的每一个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为“whilestr[i]°第3处的“ifst巾]=a”语句是判断字符str[i]是否为小写字符,而现有的语句只是判断字符是否大于a但是小写字符应该是a到2所以修改为44ifstr[i]=astr[i]=zo
44.l4voidmaino2“intm=0144;3“intn=OX25;”或“intn===0x25;【解析】本题主要考查了主函数定义及幕同进制之间的转换,包括十进制到八进制,十进制到十六进制主函数定义的定义形式为“main”,函数名之后必须是一对括号,因此第1处应改为“voidmain”cout输出默认是以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的100对应八进制的144卡进制的37对应十六进制的25因止匕2和3应分另I]改成“intm=0144;”,“intn=025;”或“intn=0x25;
45.1丫2比血11=0”应改为\@比111111;o2uintCOn;”应改为“intCOn=0;”34tcout«c.n«endl;应改为coutv〈c-nendl;【解析】本题要在屏幕上输出两个字符,首先要静态变量初始化,第1处应改为“staticintn;,第2处要给n赋值,第3处输出时引用c的对象,应改为cout«c-nendl;
46.1应添力□virtualvoidprint=02“classCl应改为classCl virtualprivateCO”3“classC2”应改为classC2publicCO”4tcclassC3”应改为classC3publicC2publicCl”【解析】本题考查了类的继承根据题意,第1处应该添加“virtualvoidprint=0;第2处根据题意,在冒号后面应添加“virtualprivateCO”第3处根据题意,冒号后应添加“publicCO第4处根据题意,冒号后应添加“publicC2publicClo⑴应添加“BAintm{a=m;}“2应添加“PAlintmintn BAn{b=m;3应添力H“PA2intmintnintk PAlnk{C=m;”4应添力【解析】根据第1处要求,构造函数的函数名和类名一致,显然BA构造函数的名称为BA在BA中通过参数m完成对成员变量a的赋值,因此构造函数的名称为BAintm在函数内部对成员a赋值,故第1处的语句应添加“BAintm{a=m;广根据第2处的要求,构造函数的形式为“PAlintmintnm赋值给PA1类成员b将n作为基类BA构造函数的参数值传入,故第2处应添加“PAlintmintn BAn{b=m;}”根据第3处的要求,函数形式为PA2intmintnintk在构造函数中将m赋值给数据成员c将n和k分别赋值给基类PA1构造函数的参数m和n因此第3处应添加“PA2intmintnintk PAlnk{C=m;}”根据第4处的要求,PA2类公有派生于PA1而PA1公有派生于BA因此在PA2类中可以调用基类的geta和getb来获得基类私有成员a和b再输出PA2的私有成员C即满足要求,因止匕第4处应添力1compintx=Ointy=0:axby{}2a=x;b=y;3compc;c.a=x.a+y.a;1\r\ncompintx=Ointy=0axby{}\r\n2\r\na=x;\r\nb=y;\r\n3\r\ncompc;\r\nc.a=x.a+y.a;解析本题考查考生对于类的定义和友元函数定义的掌握,请注意1中的参数列表形式和3中对象使用“.”访问它的数据成员A.constintbuffer=256;B.constdouble*point;C.intconstbuffer=256;D.double*eonstpoint.下列排序方法中,最坏情况下比较次数最少的是oA.冒泡排序B.简单选择排序C.直接插入排序D.堆排序.有如下程序#includeiostreamusingnamespacestd;classPair{intm;intn;public:Pairintiintj:minj{}booloperatorPairpconst;〃须在类体外给出定义;intmain{Pairpl34p243p345;cout«plp2«p2pl«p2p3«p3p2;return0;运算符函数operator〉的功能是比较两个Pair对象的大小,当左边对象大时,返回true否则返回false比较规则是首先比较两对象的m成员,m大者为大;当m相等时比较nn大者为大程序输出0101下列对运算符重载函数的正确定义是A.boolPair::operatorPairpconst{ifm!=p.mreturnmp.m;returnnp.n;jB.boolPair::operatorPairp{ifm!p.mreturnmp.m;retumnp.n;}C.boolPair::operatorPairpconst{ifmp.mreturntrue;retumnp.n;}D.boolPair::operatorPairp{ifmp.mreturntrue;returnnp.n;}.下列程序输出的结果是#includestdio.hfun1characharb{charc;c=a;a=b;b=c;}fun2char*acharb{charc;c=*a;*a=b;b=c;}fun3char*achar*b{charc;c=*a;*a二*b;*b=c;}voidmain{charab;a=A;b=B;fun1ab;putchara;putcharb;a=A!;b=B;fun2ab;putchara;putcharb;a=A;b=B;fun3ab;putchara;putcharb;putchar\n;}A.BABBABB.ABBBBAC.ABBABAD.ABABBA.软件设计中划分模块的一个准则是oA.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合.C++语言中规定函数的返回值的类型是由A.retum语句中的表达式类型所决定B.调用该函数时的主调用函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指定的数据类型所决定
三、
2.填空题(12题).数据库系统在其内部分为三级模式即概念模式、内模式和外模式其中,【】是用户的数据视图,也就是用户所见到的数据模式.如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员下列程序没有使用多态机制,其输出结果是0#includeiostreamusingnamespacestd;classBase{public:voidprint{coutB;}};classDerived:publicBase{public:.软件危机出现于20世纪60年代末,为了解决软件危机,人们提出用的原理来设计软件,这就是软件工程诞生的基础.对虚函数使用对象指针或引用调用,系统使用联编;使用对象调用时,系统使用联编.某二叉树中度为2的节点有18个,则该二叉树中有【】个叶子节点.对于下面定义的类MyClass请在函数f中添加对象成员把n的值修改为50classMyClasspublic:MyClassintx{n=x;}voidSetNumintnl{n=nl;}private intn;intfMyClass*ptr=newMyClass45;[].软件工程研究的内容主要包括[]技术和软件工程管理.需求分析的步骤是需求获取、需求描述、需求验证和【】.数据库设计分为需求分析阶段阶段、逻辑设计阶段、物理设计阶段、数据库实施阶段、数据库运行和维护阶段.在面向对象方法中,属性与操作相似的一组对象称为【】34•一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体”项目主管,,与实体,,项目,,的联系属于【】的联系.下列程序的运行结果是o#includeiostream.hclassSomeClasspublic:SomeClassintvalue{somevalue=value;;voidshow_datavoiD{coutdataHsome_valueendl;};staticvoidset_dataintvalue{data=value;};private:staticintdata;intsomevalue;;intSomeClass::data=0;voidmainvoidSomeClassmy_class1001your_class2002;your_class.set_data4004;my_class.show_data;
四、程序改错题(10题).使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正程序中的错误本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件
1.txt中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在II************自勺-试题程序#includeiostream#includefstreamusingstd;voidWriteFilechar*sofstreamoutl;。