还剩24页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2022年辽宁省沈阳市全国计算机等级考试C++语言程序设计模拟考试含答案学校:班级:姓名:考号:
一、.选择题题110程序设计方法要求在程序设计过程中
1..先编制出程序,经调试使程序运行结果正确后再画出程序的流程图A.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处B加注释先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果C.正确后再在程序中的适当位置处加注释以上三种说法都不对D.有以下类定义;;
2.class MyClass{privateint idChar genderChar*phone;publicMyClassid0,gender,#phoneNULL{}MyClassintno,charge=,char*ph=NULL;下列类对象定义语句中错误的是{id=no;gender=ge;phone=ph;}o;A.MyClass myObj;B.MyClass myObjl1,3301111155;C.MyClassmyObj12,m;D.MyClassmyObj
12.作为非成员函数重载的运算符,所有操作数都必须以的形式出现在参数表中35
四、程序改错题题
10.使用打开考生文件夹下的源程序文件该程序运行时有错误,请改正36VC++
6.
01.cpp,程序中的错误,使得程序输出9,8,7,6,5注意错误的语句在/的下面,修改该语句即可其他的语句不能修改********error********/试题程序#includeiostream.hclassTCI********error********/TCinti{;m_i=ivoidprint;cout--m_i,public;intmj;intmain/********error********/;inti;TC0410whilei5I********errC3r********/i++;
04.print};coutendl;returnO.使用打开考生文件夹下的源程序文件该程序运行有问题,请改正37VC++
6.
01.cpp,main函数中的错误,使程序的输出结果为number=lnumber=10number=100注意不要改动函数,不能增加或删除行也不能更改程序的结构,错误的语句在/main/的下面******errcr******试题程序#includeiostream.h classTC{publicTCinti{二;number ivoidSetNumberintm{二;number mintGetNumberconst;returnnumber}voidPrintconst{coutzznumber=,znumberendl;;private intnumber;voidmain//********error********;TCobjl;objl.Print;TCobj23;//********eiror********objl.number=10;;;//********error*%******TC.SetNumber100objl.Print obj
2.Print.使用打开考生文件夹下的源程序文件本程序要求输入一个字符串,然38VC++
6.
01.cpp后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/main/的下面******errcr******试题程序#includeiostream.hvoidmain{;inti=O;charstr
[120];coutEnterastringendwith.endl//********error********;cin.getlinestr,120I I********error********whilestr//********error********ifstr[i]=a;str[i]=str[i]-a+A;i++;coutstrendl;return.使用打开考生文件夹下的源程序文件该程序运行时有错请改正程序39VC++
6.
01.cpp,中的错误,使程序输出的结果为1003732注意错误的语句在/的下面,修改该语句即可/******error******试题程序#includeiostream.h//******error******voidmain//******error******intm=0142//******error******intn=0X27;intq=32;;;;coutm endlcout nendl coutqendl return.使用打开考生文件夹下的源程序文件该程序运行时有错误,请改正错40VC++
6.0L cpp,误,使程序正常运行,并且要求最后一个必须抛出执行的任何异常catch程序异常,输出信息为error0ERROR注意不要改动函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/main/的下面******errcr******试题程序#includeiostream,h intmaintry{;throw error}//********error********catchchars{;coutsendl;}trythrowint0//********error********catch;coutiendl;try throw0;throw error//********error********catchcout«z/ERRORz,«endl;;returnO}.使用打开考生文件夹下的源程序文件本程序要求输入一个字符串,然41VC++
6.0L cppo后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕中注意不要改动函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/main/的下面******error******试题程序#includeiostream.hvoidmain|;inti=0;charstr
[120]coutz/Enterastringendwith.〃endl;//********error********;cin.getlinestr,120//********error********while str{//********eiror********ifstr[i]=a;str[i]=str[i]-a+Ai++;;coutstrendl;return.使用打开考生文件夹下的源程序文件该程序运行时有错误,请改正错42VC++
6.0L cpp,误,使程序正常运行,并且要求最后一个必须抛出执行的任何异常catch程序异常,输出信息为error0ERROR注意不要改动函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/main/的下面******error******试题程序#includeiostream,hintmaintry{;throw error//********error********catchchars;coutsendltry;throwint0//********error********catch;coutiendltry;throw0;throwerror//********error********catchcout«z/ERROR/z«encll;;returnO.使用打开考生文件夹下的源程序文件该程序运行有问题,请改正43VC++
6.
01.cpp,函数中的错误,使程序的输出结果为mainnumber=1number=10number=100注意不要改动函数,不能增加或删除行也不能更改程序的结构,错误的语句在/main的下面试题程序/******error******二;#includeiostream.h classTCpublic:TCintinumber ivoidSetNumberintm;;number=m}intGetNumberconst returnnumbervoidPrintconst;;coutnumber=numberendlprivate:intnumber;voidmain;;;//********error********TCobjl objl.Print TCobj23;;//********error********objl.number=10//********error*%******TC.SetNumberlOO objl.;;Print obj
2.Print使用打开考生文件夹下的源程序文件
44.VC++
6.0,该程序运行时有错误,请改正程序中的错误本程序要求实现的功能为从键盘输
1.CPP入一个字符串,并将结果保存到文件中
1.txt注意不要改动函数,不能增加或删除行,也不能更改程序的结构,错误的语句在main的下面//******errcr******试题程序#includeiostream#includefstream//********error********;usingstdvoidWriteFilecharts{;ofstreamoutl//********error********outl.open/
1.txt〃,binary|app;;;for inti=0s[i]!=0i++{//********error********;outl.puts s[i];outl.closevoidClearFile{;ofstreamoutl〃・〃;outl.open l txt;outl.close}intmain{;chars
[1024];ClearFilecout/zpleaseinputastrin9〃endl;;cin.getlines,1024;WriteFile s;returnO.使用打开考生文件夹下的源程序文件该程序运行时有错,请改正其45VC++
6.
01.cpp,中的错误,使程序正常运行,并使程序输出的结果为二sizeofSl5sizeofs2=10sizeofs3=l注意不要改动函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/main的下面/******error******不能删除语句1assert⑵只能修改后面的数字提示函数如果为假,则会产生一个中断异常assert试题程序#includeiostream.h#includeassert.hvoidmainchar*sl=abcI I********error********assertsizeofsl==3:;coutsizeofsl=5endlchars2
[10]=1,abn://********error********;assertsizeofs2==2;coutsizeofs2=10endl chars3=23//********error********;assertsizeofs3==4;coutsizeofs3=lendl;return
五、综合应用题题2⑴应添加二;
46.“virtualvoidGetNamt!0”⑵应添加uconstchar*GetName2n⑶应添加uTC2char*strn⑷应添加um_str[i]=0;□【解析】本题第处要求“在类中定义接口函数为纯虚函数”在中,1TC1GetName,C++在基类中用声明成员函数为虚函数纯虚函数是在声明虚函数时被“初始化”为virtual的函数,即;第处要求“函数实现获得名字的缓“virtualvoidGetName=02GetName2存,但只获得读允许操作这个缓存”只能弓用数据成员,而不能修改,所以使用常成员I函数,其一般形式为函数类型函数名”,即第处要求“实“const“constchar*GetName2”3现的构造函数”的构造函数与类的名称应该相同,而且第处的大括弧中TC2TC2TC23是对字符数组的操作,所以类的构造函数中的参数为即这里补全为str TC2str,uTC2char*strn第4处要求“完成TC2的构造函数,实现对名字的处理”,补全类TC2的o构造函数,构造函数中的名字变量对应于类中的成员变量所以这里补全变量str TCm str,赋值操作;“m_str[i]=0”.使用打开考生文件夹下的源程序文件其中定义了类47VC++
6.
03.cpp,、和其中类由类公有派生,类由类公有派生A A1A2,A1A A2A1⑴定义类的构造函数,该构造函数有一个整型的参数在构造函数中请将赋值给数据A x,x成员请在注释“/之后添加适当的语句a/********1********”o⑵定义类的构造函数,该构造函数有两个整型的参数和在构造函数中请将赋值给A1x y,x数据成员将作为基类构造函数的参数值传人请在注释“/之后b,y A/********2********”添加适当的语句⑶定义类的构造函数,该构造函数有个整型的参数和在构造函数中请将赋值A23x,y z,x给数据成员将和分别赋值给基类构造函数的参数和请在注释“/C,y zA1x y/之后添加适当的语句********3********”完成类的成员函数的定义,该函数调用基类成员函数,输出基类数据成员和4A2show a及类自身的数据成员的值,上述个值在输出时以空格隔开请在注释“/b A2C3/之后添加适当的语句********4********”程序输出结果如下7738注意除在指定的位置添加语句之外,请不要改动程序的其他部分试题程序;#includeiostream.h classAinta publicxlxviz1vlx vL*vlx KL*xy*xjx XjXxjx xjxxjx Ixjs xjxxjx xjsxjx xy*xjx;;intgeta{returna}classAl publicAintb public//•J/不不不不不不不不乙不不不不不不不不;intgetb{returnb}classA2publicAl;intC public/不不不不,不不不不不不不不不不不不Jvoidshow//********4********}voidmain.下列不属于结构化分析的常用工具的是
3.数据流图.数据字典判定树图A B C.D.PAD以下能对二维数组进行正确初始化的语句是
4.a));A.inta
[2][]={{l,0,1},{5,2,3));B.inta[]
[3]={{l,2,3},{4,5,6;C.int a
[2]
[4]={{l,
2.3},{4,5},{6}});D.inta[]
[3]={{l,0,1},{},{
1.1}.下面不正确的描述为()50调用函数时,实参可以是表达式A.调用函数时,实参与形参可以共用内存单元B.调用函数时,将为形参分配内存单元C.调用函数时,实参与形参的类型必须一致D.下列程序的输出结果是
6.o#includeiostream.hvoid main{int x=6,y=8;ifxl++6cout++yendl;ifx6cout—yendl;else couty++endl;}编译不成功A.8B.9C.7D.在情况下适宜采用定义内联函数
7.inline函数体含有循环语句函数体含有递归语句函数代码少、频繁调A.B.C.用函数代码多、不常调用D.A2a
8.
3.7;couta.getaendl couta.getbendl a.show
六、.综合应用题题
32.使用打开考生文件夹下的工程此工程48VC6testl6_3,⑴定义类的保护数据成员用于表示年龄,它是型的数据请在注释〃之Cat itsAgeint“**1**”后添加适当的语句⑵定义类Cat的保护数据成员GetAge的类外定义,返回成员的itsAge值,请在注释7/**2**n之后添加适当的语句⑶完成成员函数的类外定义,把数据成员赋值为参数的值,请在SetAgeint ageitsAge age注释〃之后添加适当的语句“**3*⑷完成成员函数的类外定义,使其输出字节符串到屏幕上请在注释Meow“meow.”“**4**”后添加适当的语句输出结果如下meow.kitty isa catwho is5years old.meow.注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件清单如下:testll
3.cpp#includeiostream.h classCatpublic:int GetAge;void SetAgeint age;void Meow;protected:II;int Cat::GetAge}void Cat::SetAgeint age//**3**}void Cat::Meow//**4**}void main{Cat kitty;kitty.Meow;kitty.SetAge5;coutkitty isa catwho is;coutkitty.GetAgecoutyears oldAn;kitty.Meow;.使用打开考生文件夹下的工程此工程包含一个其中定义了49VC6testll_3testll_
3.cpp,类但该类的定义都并不完整请按要求完成下列操作,将类的定义补CPosition,CPosition充完整⑴在类定义外完成重载的两个构造函数和其中CPosition CPositiondouble dx,double dy,前者为不带参数的构造函数,使对象的默认值为后者为带参数的构造函CPosition x=0,y=0,数,把数据成员和分别初始化为参数和的值请在注释之后添加适当的x ydx dy7/**1**”语句⑵在类体中添加函数的定义,使得点的坐标和分别移动和movedouble ax,double ayx yax个单位,请在注释之后添加适当的语句ay7/**2**”⑶完成函数的定义,该函数返回*和点的距double distancedouble bx,double bythis bx,by离,请在注释〃之后添加适当的语句“**3**”注意除在指定的位置添加语句外,请不要改动程序中的其他语句源程序文件清单如下testll_
3.cpp#includeiostream.h#includemath.h classCPosition public;CPosition;CPositiondoubledx,double dy;double getx;double gety//**2**;double distancedouble bx,double byprivate:;double x;double y;〃**]**;;x=0y=0};;CPosition CPositiondoubledx,double dyx=dx y=dydouble CPositiongetx;return xdouble CPositiongety;return ydouble CPositiondistancedoublebx,double by//**3**void main;double a,b;coutInput x,y position of apoint:;cinab;CPosition psAa,b;coutInput x,y positionof anotherpoint;cinab;coutThe distanceispsA.distancea,bendlr-^—1-+✓/c/v参考合案解析在程序设计过程中,一个很重要的环节是首先确定实现各种功能的算法,并且用某l.D种工具将它精确地表达出来流程图是其中的工具之一因此,程序设计的过程应是先画出流程图,然后根据流程图编制出程序因此,选项中的说法是错误的程序中的注释是为A了提高程序的可读性,使程序易于理解、易于维护,注释必须在编制程序的同时加入因此,选项和中的说法也都是错误的BC解析本题考查构造函数的应用对象建立用初始化列表对数据成员进行时,列表中的参
2.B数类型要与构造函数中形参类型一致选项中第二个参数为“是字符串,而B13301111155”构造函数中第二个形参为型,两者不一致造成错误char
3.D属于结构化分析的常用工具数据流图,数据字典,判定树和判定表,是详细设计的工PAD具解析在初始化语句时,需要注意下面几点
①所赋初值个数与数组元素的个数相同;
②
4.B每行所赋初值个数与数组元素的个数不同时,系统将自动给该行其余的元素补初值;
③所0赋初值行数少于数组行数时,系统将自动给后面各行的元素补初值;
④赋初值叫省略行花0括号对在给二维数组赋初值时可以不用行花括号对注意选项)中省略了第二维的大A小,所以是错误的;选项)超出了数组的定义范围,所以是错误的;选项)在初始化赋C D值的时候出现了错误注意无沦是几维的数组,下标都是从零开始的【解析】函数调用时用实参替换形参,如果实参为表达式,将为表达武的值创建一个
1.88临时对象,然后将该实参替换形参替换的实质是变量间的复制,当然这种复制需要为形参分配内存需要注意的是形参在编泽时不分配内存,在运行时才分配内存
6.C
7.A解析数据的逻辑独立性是指数据库总体逻辑结构的改变,如修改数据模式、增加新的数8c据类型、改变数据间联系等,不需要相应修改应用程序,从而实现了数据与程序的逻辑独立性解析模块的独立程序是评价设计好坏的重要度量标准衡量软件的模块独立性使用耦合9c性和内聚性这两个定性的度量标准解析由栈“后进先出”的特点可知中不可能比先出,中不可能比先
10.B Ael e2C e3e4出,且不可能比先出,中栈是先进后出的,所以不可能是任意顺序所以是正确el e2D B的它执行的顺序是进栈一进栈出栈进栈进栈出栈一出栈一el e2le2—e3—e4-e4e3出栈,所以只看出栈序列应为el e2,e4,e3,eloll.C【解析】本题考查在继承中构造函数和析构函数的调用顺序,应该是先调用基类的构造Co函数,再调用派生类的构造函数,调用析构函数时的顺序是先调用派生类的析构函数,后调用基类的析构函数
12.A本题考核友元类和友元函数友元关系是单向的,并且只在两个类之间有效即使类是X类的友元,类是否是类的友元也要看类中是否有相应的声明即友元关系不具有Y YX X交换性,所以选项的说法是错误的类的友元函数可以直接访问该类的所有成员;类A A是类的友元类,那么类的所有成员函数都是类的友元函数B A B
13.A本题考查构造函数、常成员函数和静态数据成员外部同名的变量赋值,不能改变类的静态变量值,所以对象里的值为所以本题答案为Fun i2,A解析函数定义的一般形式为类型标识符函数名(形式参数列表){声明部分;语句}
14.C函数调用的一般格式为函数名(实参列表)而uint\u3000fun(int,int)为函数声明,是可以不写形参名,只写形参的类型所以,可以看出函数的定义和调用都是正确的fun
15.D本题主要考查语言的基本语法,选项中应该为;选项中语句可C++A mn|j mnB default有可无;选项(中可以单独作为一条语句,不是必须和搭配if else
16.A【解析】本题考查中输入流对象的使用规则,其特点是以空格、回车和为Ao C++cin tab分隔符因此和之间的空格告诉对象停止接收后面的数据故正确答案为this iscin A
17.C本题主要考查了变量的作用域与可见性在函数之前声明的变量和具有文件作用main i j域它的有效范围是整个源代码文件在函数中又声明了同名变量和并赋初值均main ij为其作用域为函数块,有效范围为整个函数体因为具有块作用域的变量隐藏了具有文8,件作用域的同名变量,所以函数中第二条输出语句中的变量和指的是在main ij main函数中声明的变量和故程序运行时的输出结果是ij,
8818.A重载运算符的规则如下
①不允许用户自己定义新的运算符,只能对已有的
19.B\n C++C++运算符进行重裁;
②不能重载的运算符只有个;
③重载不能改变运算符运算对象的个C++5数;
④重载不能改变运算符的优先级和结合性,•
⑤重载运算符的函数不能有默认的参数;
⑥重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是的标准类型所以答案为C++B\n
20.C解析此题考查的是继承中的构造函数构造函数不能够被继承派生类构造函数的调用顺序如下
①调用基类的构造函数,调用顺序按照它们继承时说明的顺序;
②调用子对象类的构造函数,调用顺序按照它们在类中说明的顺序;
③派生类构造函数体中的内容
21.C数据定义语言负责数据的模式定义与数据的物理存取构建;数据操纵语言负责数据的操纵,包括查询及增加、删除、修改等操作;数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能因此本题答案为)C
22.C
23.A定义于中,定义有偏移量所能取得的最大值,一表示streamoff iostream.h Offsetseek dir移动的基准位置,是一个有以下值的枚举(文件开头)、(文ios be9ios cur件当前位置)、(文件结尾)ios end火
24.p解析因为的值为所以相当于当时退出循环,一共进行次循
25.55b Lba595,a=55环复杂度复杂度解析算法计算量的大小称为计算的复杂度
26.时间复杂度和空间复杂度时间复杂度和空间复杂度解析算法的复杂性是指对一个在有27限步骤内终止算法和所需存储空间大小的估计算法的计算量是算法的时间复杂性,算法所需存储空间大小是算法的空间复杂性注意算法的各种属性及其相互作用解析数组名作为函数参数传递的是数组的首地址,即实参数组名把实参数组的首28,212,1地址传给了形参数组名,形参数组名就指向了相应的实参数组,就是说形参数组和实参数其实就是同一个数组,对形参数组元素的修改也同样影响到对应的实参数组元素解析本题考核运算符的应用条件运算符是一种在两个表达式中选择一个的操作,
29.1414它是中惟一的三元运算符在本题中,先计算〉因为所以条件表达式的C++a Ba:b,ab,值为因此二而的逻辑值为真,所以表达式的值为的值,即0,y=b14,yc y14或或
30.x+y++x+y++x+y++x+y++解析二叉树的遍历是很重要的知识点,先序、中序、后序
31.ABDGCEHIFABDGCEHIF三种不同的方式要比较来掌握,注意其中的区别此类题一定要先看清题目要求的是哪种遍历方法,然后根据不同遍历的特点来计算本题要求是先序遍历,其遍历顺序应该为
①访问根节点
②先序遍历左子树;
③先序遍历右子树按照定义,先序遍历序列是ABDGCEHIF
32.Base ClassDerivedl ClassDerived Class.软件生命周期软件生命周期解析通常,将软件产品从提出、实现、使用维护到停止使33用退役的过程称为软件生命周期
34.bool.参数参数35⑴应添加
36.“public:o⑵应改为;\n“inti”“inti10”⑶;应改为;\n“i++”“i--”【解析】本题主要考查的是成员的访问属性成员的访问属性有公有、保护和私有种,\n3而默认的访问属性为私有,只有公有成员才能通过类的对象被访问故应在构造函数前添加,否则该类无法被实例化变量的初始化可以通过“二”号,也可以和初始化对象“public”一样添加构造参数,题目已要求使用后者本题要求输出个数,的循环变量每次5while i减在时循环,故初始化应为若循环中每次增则循环永远不会退出L5i10i L⑴应改为;
37.TCobjll”应改为;2“ObjL SetNumberlO应改为;3“0bj
2.SelNumberlOO【解析】本题第处的;”语句是声明类的对象根据类构造函数的定1“TCobjl TC Objl,TC义存在整型参数,并且题目要求第一个输出结果两所以补全参数即第处的TCinti,L1,1;第处处的“TCobjll2;”应该是调用成员函数赋值在中成员函数的使用形“objl.number=10SetNumber C++式应该是对象名.成员函数,所以修改为;类是对象的抽象,而对象是类的具体实例第处objl.SetNumberlO3“TC-o;语句中的为类,并不是对象,这里应该使用定义的对象,即SetNuniberlOO”TC obj2,所以将语句修改为;“obj
2.SetNumberlOO o⑴应改为;
38.“ein.getlinestr,120,”\n⑵应改为uwhilestr[i],o\n⑶应改为uifstr[i]=a str[i]=2M【解析】本题中要求以输入字符为结束符,用于字符输入的流成员函数函数读入\n getline一行字符,格式为字符数组,字符个数,终止标志字符”,所以第处改为“cin.getline1“cin.;”第处的语句应该是判断字符串中的每一个字符是getlinestr,120,2“whilestr”str否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为第处的快”语句是判断字符是否为小写字符,而现有“whilestr[i]”3str[i]的语句只是判断字符是否大于a,但是小写字符应该是a到2,所以修改为uifstr[i]=astr[i]=zn
39.1“voidmain”2uintm=0144;”3uintn=0X25;”或intn===0x25;”【解析】本题主要考查了主函数定义及幕同进制之间的转换,包括十进制到八进制,十进制到十六进制主函数定义的定义形式为,函数名之后必须是一对括号,因此第“main”1处应改为输出默认是以十进制方式输出的,根据题目要求输出的结果可发“voidmain cout现变量的初值不正确,十进制的对应八进制的卡进制的对应十六进制的因100144,3725,此和应分别改成23“intm=0144;”,“intn=0X25;”或uintn=0X25;”应改为
40.1catchchar*s”应改为2catehinti”应改为3catch…”【解析】本题中第个标识前的异常抛出语句为〃〃;,其中的类型为字1“throw error符串所以对应的异常捕捉语句中应该符合这个类型,而程序中给出的语句catch是字符型的,所以第处的语句修改为catchchars1第个标识前的异常抛出语句为;其中的类型为对应catchchar*S2throwint0,into的异常捕捉语句中应该符合这个类型,所以补充子句中的类型,否则如果找不catch catch到匹配的块,系统就会调用一个系统函数,使程序终止运行即第处的语句修改为catch2如果在子句中没有指定异常信息的类型,那么就用删节号表示它可以捕捉“catchinti”catch任何类型的异常信息,即修改为“catch…”应改为;”
41.1“ein.getlinestr,120,⑵应改为uwhilestr[i]o应改为〈=3“ifstr[i]=astr[i]2”【解析】本题中要求以输入字符为结束符,用于字符输入的流成员函数函数读入一getline行字符,格式为字符数组,字符个数,终止标志字符,所以第处改为“cin.getline1“cin.;第处的语句应该是判断字符串中的每一个字符是否getlinestr,120,2“whilestr”str为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为第处的语句是判断字符是否为小写字符,whilestr[i]o3“if str[i]=a”str[i]而现有的语句只是判断字符是否大于但是小写字符应该是到所以修改为a,a2,ifstr[i]=astr[i]=zo应改为
42.1catch char*s”应改为2catehinti”应改为3catch…”【解析】本题中第个标识前的异常抛出语句为〃〃;,其中的类型为字1“throw error符串所以对应的异常捕捉语句中应该符合这个类型,而程序中给出的语句catch是字符型的,所以第处的语句修改为catchchars1第个标识前的异常抛出语句为;,其中的类型为对应catch charts2“throwint0”into的异常捕捉语句中应该符合这个类型,所以补充子句中的类型,否则如果找不catch catch到匹配的块,系统就会调用一个系统函数,使程序终止运行即第处的语句修改为catch2如果在子句中没有指定异常信息的类型,那么就用删节号表示它可以捕捉“catchinti”catch任何类型的异常信息,即修改为“catch…”⑴应改为⑴为‘
43.“TCobjl\n⑵应改为“Objl.SetNumberlO;n⑶应改为;\n“0bj
2.SelNumberlOO o【解析】本题第处的;语句是声明类的对象根据类构造函数的定\n1“TCobjl”TCObjl,TC义存在整型参数,并且题目要求第一个输出结果两所以补全参数即第处的TCinti,L1,1uTCobjll;no第2处处的uobjl.number=10;应该是调用成员函数SetNumber赋值在C++中成员函数的使用形式应该是对象名.成员函数,所以修改为uobjl.SetNumberlO;n类是对象的抽象,而对象是类的具体实例第处;”语句中的3“TC.SetNumberlOOo为类,并不是对象,这里应该使用定义的对象,即TCobj2,所以将语句修改为uobj
2.SetNumberlOO;no应改为;
44.1^usingnamespacestd应改为・〃・〃;2“outl open ltxt,ios binary I ios app应改为;3“outl.puts[i]”【解析】本题第处的;是在程序中引入标准命名空间对于中引入标1“usingstd”std,C++准命名空间的格式,缺少所以第处的语句修改为;namespace,1“usingnamespacestd第处,调用成员函数中,输入、输出方式是在类中定义的,所以〃2open ios“outl.open l.〃,;语句缺少类即第处的语句修改为〃txt binaryI app”ios,2“outl.openl.txt”,ios;第个标识应该用流成员函数输出字符,所以第处的语句binaryIiosapp”3put3修改为;“outl.put s[i]o
45.1应改为Massertsizeofsl==4;no\n⑵应改为uassertsizeofs2==lO;”\n⑶应改为Massertsizeofs3==1;M【解析】函数如果为假,则会产生一个中断异常所以要让它正常执行输出结果,那\n assert么assert函数只有为真,才不会产生中断异常uassertsizeofsl==3;n语句中二二为假,这会使程序产生异常,不能正常执行因为的值为但是它“sizeofsl3”strl abc,还有一个尾符,它的长度应该是而不是所以在第处修改为4,3,1;说明,的空间为在第处修改为assertsizeofsl==4str2
[10]str210,2uassertsizeofs2==10;”charstr3=23;语句说明23是字符,所占存储空间为1,所以修改为;“assertsizeofs3==l”.使用打开考生文件夹下的源程序文件程序通过继承关系,实现对姓46VC++
6.
03.cppo名的控制类实现对名字访问的接口,实现对名字的设置和输出TC1TC2程序输出为\n\nTC2Name\nMay其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整\n⑴在类中定义接口函数为纯虚函数请在注释后添加适当的语句\n TCIGetName1⑵函数用于获得名字的缓存,但只获得允许读操作这个缓存,请在注释后添\n GetName22加适当的语句⑶实现的构造函数,请在注释后添加适当的语句\n TC23⑷完成的构造函数,实现对名字的处理请在注释后添加适当的语句\n TC24注意增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码\n\n试题程序\n\n#includeiostream.h\nclassTCl\n{\npublic\n II********]********;\n\nclassTC2:publicTCI\n{\npublicXnvoidGetName\n{\ncout,TC2Nameendl;\n}\n//********2********\n{;\nreturnm_str\n}\n//********3********\n\ninti;;\nfori=0str[i]!=O i++;\nm_str[i]=str[i]\n//********4********\n}\nprivate;\ncharm_str
[32];\n}\nvoidmain\n;\nTCI*P;\nTC20bjlCMay;\np=objl;\np-GetName;\ncoutobjl.GetNamc2endl;\nreturn\n}二;
47.1“Aintx{a x}”2UA1intx,intyAy{b=x;}o;3“A2intx,inty,intz Aly,z{c=x}”4Ucoutgetaz///getbz///cendl;o【解析】本题第处要求定义类的构造函数,该构造函数有一个整型的参数在构造1A x,函数中请将赋值给数据成员构造函数没有返回值类型,所以应填二;第x a,“Aintx{a x}处第处根据继承中对象的初始化语法规则可知第处要求调用基类成员函数,由于都234是公有继承,都是自身类的公有函数,所以根据继承规则,在对象中,依然ge-ta.getb A2是公有的可以通过对象直接调用A2⑴;;;;;
48.int itsAge2return itsAge3itsAge=age4coutmeowAn l\r\nint itsAge;;;解析本题\r\n2\r\nreturn itsAge\r\n3\r\nitsAge=age\r\n4\r\ncoutmeow.Wn主要考查考生对于类的定义和成员函数的定义的深刻理解,考查的都是最基本的操作⑴;;;
49.CPosition::CPosition2void movedouble axdouble ay{x+=ax y+=ay}3;⑴return sqrtpow x-bx2+pow y-by2\r\nCPosition CPosition\r\n2\r\nvoid;;;movedoubleax,double ay{x+=ax y+=ay}\r\n3\r\nreturn sqrtpow x-bx,2+pow;解析本题主要考查考生对于类的定义和重载构造函数的掌握情况在⑶中使用了y-by,2基本的数学函数求的开方,函数是求的次方sqrtx xpow x,n xn数据的逻辑独立性是指
8.o存储结构与物理结构的逻辑独立性A..数据与存储结构的逻辑独立性8数据与程序的逻辑独立性C.数据元素之间的逻辑独立性D..模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准9则是模块的.抽象和信息隐蔽.局部化和封装化.内聚性和耦合性.激活机制和A BC D控制方法.如果进栈序列为、、、则可能的出栈序列是10el e2e3e4,o、、、、、、、任意顺序A.e3el e4e2B.e2e4e3el C.e3e4el e2D.s s
二、单选题题
13.下面程序的运行结果为11#includeiostream.hClassApublicA{coutl;}〜A{cout2;}};ClassBpublicA publicB{coutn3H;}〜B{cout,4;}};VoidmainBb;A.1234B.1324C.1342D.
3142.关于友元,下列说法错误的是12如果类是类的友元,那么类也是类的友元A.A BB A.如果函数被说明为类的友元,那么在中可以访问类的私B funA funA有成员友元关系不能被继承C.如果类是类的友元,那么类的所有成员函数都是类的友元函D.A BA B数.有如下程序13#includciostrcamusing namespacestd;int i=l;class Fun{publicstatic int i;一int value{return i1;}int valueconst{return i+1;}int Funi=2;int main{int i=3;Fun funl;const Funfun2return0;若程序的输出结果是则程序中下画线处遗漏的语句是123A.COUtfunl.valueFunifun
2.value;B.toutFunifunl.valuefun
2.value;C.coutfunl.valuefuI
12.valueFuni
14.对下列程序段的描述正确的是()#includeiostream.hD.eoutfun
2.valueFunifunl.value;int funint,int voidmaincoutfunl,2endl;int funintx,int yreturn x+y;该函数定义正确,但函数调用方式错误A.该函数调用方式正确,但函数定义错误B.该函数定义和调用方式都正确C.该函数定义和调用方式都错误D..下列描述正确的是15表示为或A.mn truemnm语句结构中必须有语句B.switCh default语句结构中必须有语句C.if else如果至少有一个操作数为则包含运算符的表达式为D.true,“If”true.阅读以下程序16ftincludeiostream.hvoidmain;charline
[10];cinline;coutlineendl如运行时输入Thi sisanexamp1e.CR”,则程序的输出结果是o A.This B.Thisis C.Thisisa D.Thisisanexample有如下程序段
17.;;int i=4int j=lint main{;inti=8,j=icout ijend1;运行时的输出结果是OA.44B.41C.88D.
8118..有以下程序24void funinta*aunt Lintj intt;funa,++i,----------j imain{inta[]={l,2,3,4,5,6},i$funa«0f5;fori=0;i6;i-F+couta[i];}执行后输出结果是A.654321B.432156C.456123D.
123456.运算符重载时不需要保持的性质是19o.操作数个数.操作数类型优先级结合性ABC.D.建立一个有成员对象的派生类对象时,各构造函数体的执行次序为()派生类、成
20.o A.员对象类、基类成员对象类、基类、派生类基类、成员对象类、派生类基类、派生B.C.D.类、成员对象类负责数据库中查询操作的数据库语言是()21数据定义语言数据管理语言数据操纵语言数据控制语言A.B.C.D.关于函数返回值类型和返回值表达式的类型的描述中,错误的是()
22..函数返回值类型决定了返回值表达式的类型A函数返回值的类型是在定义函数时确定的,在函数调用时不能改变B.函数返回值的类型就是返回值表达式的类型C.函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成函数返回值类型D..在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是()23A.ios_base curB.ios-base::begC.los_base::OutD.ios—base::end
三、.填空题题212已知如下程序的输出结果是请将画线处缺失的部分补充完整
24.23,#includeiostream;using namespacestdclass MyClass{public:;void Printconst{eout23};int main{;MyClass*P=new MyClass;.Print;return0下列语句的循环次数为【】
25.for;;;Fornt a=0,b=l ba5a++.算法的计算量的大小称为计算的【]26o算法的工作量大小和实现算法所需的存储单元多少分别称为算法的【】
27.
28.函数swaparr,n可完成对arr数组从第1个元素到第n个元素两两交换在运行调用函数中的语句后,和的值分别为【a
[0]a[l];;;a
[0]=l a[l]=2swapa,
229.若a=12,b=14,c=0,则表达式ay=aB aBC ycn的值为【lo表达式还可以写成
30.x.operator+y.operator++0下图所示的二叉树的先序遍历序列是【】
31.A以下程序的执行结果是【】
32.#includeiostream;using namespacestdclass basepublic;virmal void who{coutBase Classendl;class Derivedkpublic Base publicvirtual voidwho{coutDerivedl Classendl;};class derived2:publicBase{public;virtualvoidwho{coutDerived Classendl;int mainintargc,char*argv[];base objl,*P;deliVedl obj2;derived2obj3;;p=objl p-who;;p=obj2p-who;;p=obj3p-who;return0通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为【】
33.重载的关系运算符和逻辑运算符的返回类型应当是【
34.。