还剩22页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
2023年河南省周口市全国计算机等级考试C++语言程序设计测试卷(含答案)学校:班级:姓名:考号:
一、
1.选择题(10题).数据库系统的核心是()A.数据库B.数据库管理系统C.模拟模型D.软件工程.以下不属于对象的基本特点的是()A.分类性B.多态性C.继承性D.封装性.一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本,此虚函数又称为A.虚析构函数B.虚构造函数C.纯虚函数D.静态成员函数.若语句coutseffillC)setw⑸3141512sctw
(5)OK!;是程序中第1个输出语句,则输出结果是()A.3141512OK!B.31415120K!C.314150K!D.31415OK!.下列描述中错误的是()A.继承分为多重继承和单继承B.对象间通信靠传递消息实现C.在外面看不到对象的内部特征是基于对象的“模块独立性好”这个特征public TCintinumber=i;}voidSetNumberintmnumber=m;intGetNumberconstreturnnumber;voidPrintconst{coutz/number=z/numberendl;}private intnumber;};voidmain//********error********TCobjl;objl.Print;TCobj23;//********error********objl.number=10;//********error*%******TC.SetNumber100;objl.Print;obj
2.Print;
39.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正程序中的错误本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件
1.txt中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面试题程序#includeiostream#includefstreamI/********error********usingstd;voidWriteFilechar*sofstreamoutl;//********error********outl.openl.txtbinary|app;forinti=0;s[i]!=0;i++II********error********outl.putss[i];outl.close;voidClearFileofstreamoutl;outl.openl.txt;outl.close;intmainchars
[1024];ClearFile;coutpleaseinputastrin9:endl;cin.getlines1024;WriteFiles;returnO;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正程序中的错误,使得程序输出98765注意错误的语句在/********error********/的下面,修改该语句即可其他的语句不能修改试题程序#includeiostream.hclassTCI********error********/TCintim_i=i;voidprintcout--mj;public intmj;;intmain/********error********/inti;TC0410;whilei5/********errOr********/i++
04.print;coutendl;returnO;.使用VC++
6.0打开考生文件夹下的源程序文件
1.CPP,该程序运行时有错误,请改正程序中的错误本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件
1.txt中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面试题程序#includeiostream#includefstream//********error********usingstd;voidWriteFilecharts{ofstreamoutl;//********error********outl.openz/l.txt〃binary|app;forinti=0;s[i]!=0;i++//********error********outl.putss[i];outl.close;voidClearFile{ofstreamoutl;outl.open/zl.txt〃;outl.close;}intmainchars
[1024];ClearFile;cout/zpleaseinputastrin9zzendl;cin.getlines1024;WriteFiles;returnO;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错请改正程序中的错误,使程序输出的结果为1003732注意错误的语句在//******error******的下面,修改该语句即可试题程序#includeiostream.h//******error******voidmain{//******error******intm=0142//******errcr******intn=0X27intq=32;coutmendl;coutnendl;coutqendl;return;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cppo本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时、默认字符输入结束,最后把结果输出到屏幕中注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******errcr******的下面试题程序#includeiostream.hvoidmaininti=0;charstr
[120];cout,,Enterastringendwith./zendl;//********error********cin.getlinestr120;//********error********whilestr{//********error********ifstr[i]=astr[i]=str[i]-a+A;i++;coutstrendl;return;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructori=0Destructor注意错误的语句在//******error******的下面,修改该语句即可试题程序#includeiostream.hclassTCinti;public TC;voiddisplay;〜TC;;TC TCcoutConstructor;i=0;//******error******TC displaytouti=iendl;//******errcr******TC TCCOUIDestructorHendl:voidmainTCa;a・display;.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常程序异常,输出信息为error0ERROR注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******errcr******的下面试题程序#includeiostreamhintmaintrythrowerror;}//********error********catchcharscoutsendl;trythrowint0;//********error********catchcoutiendl;}try{throw0;throwerror;//********error********catchcout«z/ERR0Rzz«endl;returnO;
五、综合应用题2题.使用VC++
6.0打开考生文件夹下的源程序文件
3.cpp其中定义的类不完整,按要求完成下列操作,将类的定义补充完整每卖出一个水果,则计算水果的重量,还要计算所有卖出水果的总重量以及总个数,同时允许退货,请按照以下的操作,把类补充完整⑴定义类TCFruit的私有静态数据成员float型变量AllWeight和int型变量A11N0请在注释1后添加适当的语句2完成类TCFruit的带一个float型变量w的构造函数,并把这个w加到AllWeight中,并且AHNo自加请在注释2后添加适当的语句⑶在析构函数中,在AHWeight中减去weight然后AllNo自减,请在注释3后添加适当的语句4完成静态成员变量的初始化为0请在注释4后添加适当的语句注意增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码试题程序ftincludeiostream.hclassTCFruitprivate floatWeight;staticintAHNo;public TCFruitfloatwXzXz^AZ•JVXZxLzsXzXjX✓TxxTsTxxTx✓Tx✓Tx/xrx✓£*xxxfxxr%✓Tx✓7**AllWeight+=w AlINoH—H〜TCFruit{/不不不不不不不不J不不不不不不不不AllWeight-二Weight voiddisplaycout/zSellaFruitwithz/Weight/zk9,/endl;coutV〈”Allsellnumber/zAllNoendl;cout/zAllsellweight,/AHWeightz/k9,,«endlendl;}//********4********floatTCFruitAllWeight=O.0;intmain{TCFruitFruitl
1.2;Fruitl.display;TCFruitFruit
22.3;Fruit
2.display;returnO;
47.请使用【答题】菜单命令或直接用VC6打开考生文件夹下的工程prog3其中声明了ValArray类,该类在内部维护一个动态分配的整型数组ValArray类的复制构造函数应实现对象的深层复制请编写ValArray类的复制构造函数在main函数中给出了一组测试数据,此种情况下程序的输出应该是ValArrayvl={l2345}ValArrayv2={l2345}要求补充编制的内容写在“〃*********333**********与*〃*********666**********之间,不得修改程序的其他部分注意程序最后将结果输出到文件out.dat中输出函数writeToFile已经编译为boj文件,并且在本程序中调用//ValArray.h#includeiostreamusingnamespacestd;classValArray{int*v intsize;public ValArrayconstint*Pintn sizen{v=newint[size];forinti=0;isize;i++v[i]=P[i];
六、
3.综合应用题2题
48.使用VC6打开考生文件夹下的工程MyProjl4此工程包含一个源程序文件MyMainl
4.cpp程序中定义了3个类A、B和C但类的定义并不完整请按要求完成下列操作,将类的定义补充完成
①类A的成员函数setxintiintj是虚函数,其实现的功能是将类A的保护成员x和y分别设置成i和j并且y具有默认值0请在注释“〃**1**”之后添加适当的语句
②将类A的成员函数print声明成员纯虚函数请在注释7/**2**”之后添加适当的语句
③完成类A的保护数据成员x和y的定义,它们都是整型变量请在注释7/**3**”之后添加适当的语句注意除在指定位置添加语句之外,请不要改动程序中的其他内容源程序文件MyMainl
4.cpp清单如下//MyMainl
4.cpp#includeiostreamusingnamespacestd;classApublic://***]***//***2***protected://***3***;classB:publicApublic:voidprintcoutx*x:classC:publicApublic:voidprintcoutx*x*xendl;;intmainA*pa;Bb;Cc;pa=b;pa-setx5;pa-print;pa=c;pa-setx2;pa-print;return0;49使用VC6打开考生文件夹下的工程test41_3此工程包含一个test41_
3.cpp其中定义了类Rectangle但该类的定义并不完整请按要求完成下列操作,将程序补充完整1定义类Rectangle的私有数据成员lefttop和fightbottom它们都是int型的数据请在注释“〃**1**”之后添加适当的语句⑵添加类Rectangle的带四个int型参数
1、t、r、b的构造函数的声明,并使这四个参数的默认值均为0请在注释7/**2**”之后添加适当的语句⑶添加类Rectangle的成员函数SetTop参数为int型的t作用为把t的值赋给类的数据成员top添加类Rectangle的成员函数SetBottom参数为int型的t作用为把t的值赋给类的数据成员bottom请在注释7/**3***之后添加适当的语句⑷完成派生类Rectangle的成员函数Show的定义,使其以格式“right-bottompointisrightbottom”输出,请在注释7/**4**”之后添加适当的语句源程序文件test41_
3.cpp清单如下#includeiostream.hclassRectangleintrightbottom;public://**2**~Rectangle;voidAssignint1inttintrintb;voidSetLeftintt{left=t;}voidSetRightintt{right=t;}〃**3**D.类是具有共同属性、共同方法的对象的集合.下列关于构造函数的描述中,错误的是()A.构造函数可以设置默认参数B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数D.构造函数不可以重载.C++语言类体系中,不能被派生类继承的有()A.转换函数B.构造函数C.虚函数D.静态成员函数.下列关于线性表叙述中,不正确的是()A.可以有几个节点没有前件.只有一个终端节点,它无后件C.除根节点和终端节点,其他节点都有且只有一个前件,也有且只有一个后件D.线性表可以没有数据元素下面不属于软件设计原则的是oA.抽象B.模块化C.自底向上D.信息隐蔽.已知类A中有公用数据成员B*b;其中B为类名则下列语句错误的是voidSetBottomintt{bottom=t;}voidShow;;Rectangle::Rectangleint1inttintrintbleft=1;top=t;right=r;bottom=b;voidRectangle::Assignint1inttintrintbleft=1;top=t;right=r;bottom=b;voidRectangle::Show{coutleft-toppointislefttop\n;*火4**voidmainRectanglerect;rect.ShowQ;rect.Assign100200300400;rect.Show;参考答案LB解析数据库管理系统DataBaseManagementSystem简称DBMS是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,数据库管理系统是数据库系统的核心.C解析对象的基本特点包括;标识惟一性、分类性、多态性、封装性和独立性等继承性不属于对象的基本特点.C解析本题考核纯虚函数的定义纯虚函数是一种特殊的虚函数,纯虚函数是在虚函数的后面加上“二0”,表示该虚函数无函数体,并非赋值运算纯虚函数的一般格式如下virtual类型函数名参数表=0;在很多情况下,在基类中不能对虚函数给出有意义的实现,而把它说明为纯虚函数,它的实现留给该基类的派生类去做题目中描述的是纯虚函数的特点.A5c解析对象的封装性是指从外面看只能看到对象的外部特性而对象的内部,其处理能力的实行和内部状态对外是不可见的,是隐蔽的.D解析构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值C++在创建一个对象时,会自动调用类的构造函数,在构造函数中可以执行初始化成员变量的操作构造函数可以是内联函数,也可以重载.B解析派生类对象的数据结构是由基类中说明的数据成员和派生类中说明的数据成员共同构成,所以不能继承基类的构造函数,必须重新定义.A解析线性表要求只有一个根节点,它无前件,所以选项A是错误的线性表要求只有一个终端节点,它无后件,选项B是正确的线性表要求其他节点都有且只有一个前件,也有且只有一个后件,选项C是正确的一个线性表中可以没有数据元素,称为空线性表,选项D是正确.C解析软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念
①抽象是一种思维工具,就是把事物本质的共同特性抽出来而不考虑其他细节
②模块是指可以单独命名且可编址的元素如高级语言中的过程、函数、子程序等
③信息隐蔽是指在一个模块内包含的信息过程或数据,对于不需要这些信息的其他模块来说是不能访问的
④模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单因此,本题的正确答案是C.C解析首先考生要能判断出四个选项是构造函数和析构函数,其中d是类A的一个需要初始化的数据成员,且是一个指针在初始化时,必须指明类B的某对象的地址,所以,newB可以完成这个功能而析构函数不能带参数,这是常识性的知识,因此正确答案为Co
11.C解析本题考查的知识点是字面常量对于整型字面常量,只要没有超出C++中整数所能表示的范围,C++将自动按整数int来存储此数也可以通过在整型字面常量后添加u或1大、小写均可,来指定按无符号整数unsigned或长整数long来存储,也可同时使用u和1对排列无要求,来指定按无符号长整数unsigned\u30001ong来存储对于实型字面常量,C++自动按双精度数double来存储也可通过在实型字面常量后添加f大、小写均可,来指定按单精度数float来存储故本题应该选择C
12.D预处理命令是以开始的语句,每一条预处理命令必须单独占用一行.由于不是C语言的语句并且命令行的最后不能以分号表示结束,定义格式为“#de-fine标识符字符串”,预处理命令行是系统对源程序进行编译之前进行处理的,不是在程序执行的过程中
13.CCo【解析】声明必须以友元friend开头为了区分,用++表示前自增,用++int表示后自增
14.AAo【解析】当自加运算符做后缀表达式的时候,表达式的值不变,只有变量的值增1所以表达式x++*2/3相当于11*2/3取整后为7O
15.D解析二维数组可以看作是一维数组的扩展选项D表示的是一个一维数不清组,里面每个元素是一个指针,而指针肯定指向某个地址,从而完成二维数组的扩展考生要注意选项C中*和□的运算优先级
16.AAo【解析】如果按题要求,高4位取反,低4位不变,则a为10101101在选项中操作的结果,选项A中a*b=10101101选项B中a|b=1111101选项C中ab=01010000选项D中a〈4=11010000故选项A正确
17.BBo【解析】本题考查模板函数的应用,表达式intL1和int
4.2用于将
1.1和
4.2强制转换为整型
18.AAo【解析】选项B中whilel永远为真,一直自加下次进入死循环;选项C中whilen=10同理死循环,没有下限范围;选项D中for循环中i也没有循环限定条件也将进入死循环;只有选项A中while水二循环判定成立,循环结束
19.D
20.B表达式值的类型是由操作数的类型决定的,因为本题的两个数都是int型的,所以得出的结果也为int型,即去掉小数点后的部分,只取商的整数部分
21.A解析本题考查了常对象与常成员函数的概念使用const关键字修饰的对象称为常对象,它的特点是不能被更新;使用const关键字声明的成员函数称为常成员函数,它的特点也是不能更新对象的数据成员因为其他成员函数没有这个限制,即可以更新对象的数据成员,所以通过常对象只能调用常成员函数而不能调用其他成员函数,而且常成员函数也只能调用常成员函数而不能调用其他成员函数,否则它们的特性就会被打破故应该选择A
22.AAo【解析】本题考查const修饰符的作用注意,const位置不同,其修饰的部分也是不同的本题中const修饰的是ptr所指的对象本身,所以,ptr可以重新指向新的对象,而ptr-a则无法被更新
3.B解析希尔排序法的基本思想是将整个无序序列分割成若干个小的子序列分别进行插入排序所以希尔排序法属于插入类排序,但它对简单插入排序做了很大的改进.多态性多态性解析面向对象系统包含了三个特征一封装性、继承性和多态性,这三个特征可以很好的实现数据抽象,进行行为共享,完成进化求解和描述一个系统的确定行为
25.mainmain解析所有的C++语言程序都是从main函数开始执行,而普通函数的存在是为了简化main函数的复杂程度26nn解析在长度为n的线性表中查找一个表中不存在的元素,需要的比较次数为no
27120.多对多多对多解析一名学生可选择多门课程,一门课程也可由多名学生选择,因此是多对多联系.变换型变换型解析典型的数据流类型有两种变换型和事务型,,变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;在很多软件应用中,存在某种作业数据流它可以引发一个或多个处理,这此处理能够完成液作业要求的功能,这种数据流就叫做事务.baseclassderivelclassderive2classbaseclass\r\n\u3000\u3000\u3000derivelclass\r\n\u3000\u3000\u3000derive2class解析类base含有虚函数who该类派生出derivel类和derive2类两个派生类中都有虚函数who的定义在main函数中定义了一个指向base类的指针,它也被允许指向其派生类在执行过程中,不断改变它所指的对象,当p-who时就能调用不同的版本这是因为使用了虚函数,因而进行动态联编注意应掌握静态联编的使用方法.virtualintDerived::virtualintDerived::解析:virtualint用于声明虚函数;Derived::用于指定类Derived成员函数.内聚内聚解析内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,内聚是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量.A或者friendA或者friend解析友元的定义.数据字典数据字典解析在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为数据字典.returnx;returnx;解析本题函数声明时指定了函数的返回值为double因此在函数体中必须存在一个return语句.1应改为uassertsizeofsl==4;\n2应改为uassertsizeofs2==lO;\n⑶应改为aassertsizeofs3==l\n【解析】assert函数如果为假,则会产生一个中断异常所以要让它正常执行输出结果,那么assert函数只有为真,才不会产生中断异常“assertsizeofsl二二3;”语句中“sizeofsl二二3”为假这会使程序产生异常不能正常执行因为strl的值为abc但是它还有一个尾符它的长度应该是4而不是3所以在第1处修改为“assertsizeofsl==4;str2
[10]说明,str2的空间为10在第2处修改为uassertsizeofs2==10;charstr3=23;语句说明23是字符所占存储空间为1所以修改为Massertsizeofs3==lo.⑴应改为“TCobjl⑴为\n⑵应改为uObjl.SetNumberlO;Mo\n⑶应改为“0bj
2.SelNumberlOO;*o\n【解析】本题第1处的“TCobjl语句是声明TC类的对象Objl根据TC类构造函数的定义TCinti存在整型参数,并且题目要求第一个输出结果两L所以补全参数1即第1处的uTCobjll;no第2处处的“objl.number=10应该是调用成员函数SetNumber赋值在C++中成员函数的使用形式应该是对象名.成员函数,所以修改为uobjl.SetNumberlO;no类是对象的抽象,而对象是类的具体实例第3处UTC.SetNumberlOO;语句中的TC为类,并不是对象,这里应该使用定义的对象,即obj2所以将语句修改为uobj
2.SetNumberlOOfo.⑴应改为“TCobjll;”2应改为“ObjLSetNumber10;”3应改为“0bj
2.SelNumberlOO;【解析】本题第1处的“TCobjl;”语句是声明TC类的对象Objl根据TC类构造函数的定义TCinti存在整型参数,并且题目要求第一个输出结果两1所以补全参数1即第1处的“TCobjll;第2处处的“objl.numbeLlO;”应该是调用成员函数SetNumber赋值在C++中成员函数的使用形式应该是对象名.成员函数,所以修改为“objl.SetNumberlO;vo类是对象的抽象,而对象是类的具体实例第3处“TC.SetNumberlOO;”语句中的TC为类,并不是对象,这里应该使用定义的对象,即obj2所以将语句修改为“obj
2.SetNumberlOO;o.⑴应改为“usingnamespacestd;o\n2应改为Uoutl.openl.txtios::binary|ios::app\n⑶应改为Uoutl.puts[i];o\n【解析】本题第1处的“usingstd;是在程序中引入标准命名空间std对于C++中引入标准命名空间的格式缺少namespace所以第1处的语句修改为usingnamespacestd;第2处调用成员函数open中,输入、输出方式是在ios类中定义的所以“outl.openQtxtbinary|app;语句缺少类ios即第2处的语句修改为Uoutl.openl.txtios::binary|ios::app;第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为Uoutl.puts[i].⑴应添加“public°\n⑵“inti”应改为“inti10\n⑶“i++;”应改为“i--\n【解析】本题主要考查的是成员的访问属性成员的访问属性有公有、保护和私有3种而默认的访问属性为私有,只有公有成员才能通过类的对象被访问故应在构造函数前添加“public”,否则该类无法被实例化变量的初始化可以通过—’号,也可以和初始化对象一样添加构造参数,题目已要求使用后者本题要求输出5个数,while的循环变量i每次减1在>5时循环,故i初始化应为10若循环中i每次增L则循环永远不会退出.⑴应改为Uusingnamespacestd;2应改为outl・open〃l・txt〃iosbinaryIiosapp;”3应改为outLputs[i];o【解析】本题第1处的usingstd;是在程序中引入标准命名空间std对于C++中引入标准命名空间的格式,缺少namespace所以第1处的语句修改为usingnamespacestd;第2处,调用成员函数open中,输入、输出方式是在ios类中定义的,所以“outl.open/zl.txt〃,binaryIapp;”语句缺少类ios即第2处的语句修改为“outl.open/zl.txt〃,iosbinaryIiosapp;”第3个标识应该用流成员函数put输出字符,所以第3处的语句修改为“outl.puts[i];no.1“voidmain”“intm=0144;”“intn=0X25;”或“intn=二0x25;”【解析】本题主要考查了主函数定义及幕同进制之间的转换,包括十进制到八进制,十进制到十六进制主函数定义的定义形式为“main”,函数名之后必须是一对括号,因此第1处应改为“voidmaincout输出默认是以十进制方式输出的,根据题目要求输出的结果可发现变量的初值不正确,十进制的100对应八进制的144卡进制的37对应十六进制的25因此2和3应分别改成“intm=0144;”,“intn=0X25;”或“intn=0X25;”.1应改为“ein.getlinestr120;2应改为uwhilestr[i]o3应改为aifstr[i]=astr[i]=2o【解析】本题中要求以输入字符为结束符,用于字符输入的流成员函数getline函数读入一行字符,格式为“cin.getline字符数组,字符个数,终止标志字符,所以第1处改为“cin.getlinestr120;第2处的“whilestr”语句应该是判断字符串str中的每一个字符是否为结束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写,则转换所以应该修改为“whilestr[i]”第3处的ifstr[i]=a语句是判断字符str[i]是否为小写字符,而现有的语句只是判断字符是否大于a但是小写字符应该是a到2所以修改为ifstr[i]=astr[i]=zvo.⑴应改为UTCTCno\n2应改为voidTC::display”\n⑶应改为“TC〜TC”\n【解析】在类的外部定义成员函数时必须在成员函数前面加上类名和作用域运算符\作用域运算符用采表示某个成员属于哪个类,使用格式为“类名成员函数〉参数函数因此第1处应改为UTCTC默认构造函数没有参数由第2处“TCdisplay”后的语句看,这是在类外实现TC函数,因此也有作用域运算符使用错误问题,display函数返回值为void因此第2处的语句应改为uvoidTC::display由第3处的语句“TCTC”可知,显然这里是在类外实现析构函数,析构函数是一个特殊的函数,它的名称和类名相同,并在前面加“〜”字符,用采与构造函数加以区别,因此第3处的语句应改为“TC〜TC”.1应改为catchchar*s”2应改为“catehinti”3应改为catch…”【解析】本题中第1个标识前的异常抛出语句为throwz/errorz,;其中的类型为字符串所以对应的异常捕捉语句catch中应该符合这个类型,而程序中给出的语句catchchars是字符型的,所以第1处的语句修改为catchchartso第2个标识前的异常抛出语句为“throwint0;”,其中的类型为int对应的异常捕捉语句catch中应该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配的catch块,系统就会调用一个系统函数,使程序终止运行即第2处的语句修改为“catchinti”如果在catch子句中没有指定异常信息的类型,那么就用删节号表示它可以捕捉任何类型的异常信息,即修改为“catch…”.1应添加^staticfloatAllWeight;2应添加“Weight二w;⑶应添加“AllNo—4应添加uintTCFruitAllNo二0;”【解析】静态数据成员声明时需使用关键字static因此第1处应添加staticfloatAHWeight;□构造函数用来对类成员进行初始化,在TCFruit类的构造函数TCFruitfloatw中,完成weight的初始化,并把这个w加到AllWeight中,并且AllNo自加,因此第2处应添加“weight=w;调用析构函数相当于退出,这时AllWeight中减去weight然后A11N自减,因此第3处应添加“AllNo—;静态数据成员的初始化格式为“〈数据类型X类名》静态数据成员>=初始值,因此第4处应添加^intTCFruitAllNo=0;”.size=othe].size;v=liewint[size]forinti=0;isize;i++setAtTayiother.v[ij;..1intlefttop;2Rectangleint1=0intt=0intr=0intb=0;3voidSetTopintt{top=t;}4coutright-bottompointisrightbottom\n;l\r\nintlefttop;\r\n2\r\nRectangleint1=0intt=0intr=0intb=0;\r\n3\r\nvoidSetTopintt{top=t;}\r\n4\r\ncoutright-bottompointisrightbottom\WnV;解析主要考查考生对于类的定义和定义一般成员函数的掌握,其中⑵中为了使构造函数可以不带参数,使用了对于参数给定默认值的方法,这点需要考生注意,4中连续的字符流的输出可以连续使用“”符号实现A.A:dnewB{}B.AconstAoo:dnewrB{*d=*oo.d;}C.〜Ad{}D.〜A{deleted;
二、单选题13题.字面常量
42、
4.
2、42L的数据类型分别是A.long、doublesintB.long、float、intC.int、doubleslongD.int、float、long.下列叙述中错误的是A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#defineMAX是合法的宏定义命令行D.C++中预处理命令行的处理是在程序执行的过程中进行的
13.若为Fraction类重裁前增1运算符++应在类体中将其声明为OA.A.Fractionpoerator++;B.B.Fractionpoeralor++int;C.C.friendFractionoperator++;D.D.friendFractionoperator++int;.设有intx=ll;则表达式x++*2/3的值是A.A.7B8C.llD.
12.已知一函数的形参说明为intarr
[5]
[6]则与此等效的形参说明为()A.intarr[][]B.int
[5]QC.int*a
[6]D.int(*a)
[6].变量a中的数据用二进制表示的形式是01011101变量b中的数据用二进制表示的形式是11110000若要求将a的高4位取反,低4位不变,所要执行的运算是oA.a*bB.a|bC.abDa
4.下列程序的运行结果为#includeiostream.htemplateclassTTclassFF{TTaLa2a3;public FFTTblTTb2TTb3{al=bl;a2=b2;a3=b3;}TTSum{returna1+a2+a3;}};voidmain{FFintxint
1.123yint
4.256;coutx.Sumy.Sumendl;}A.
6.
115.2B615C.
615.2D
6.
115.下列不构成无限循环的语句或语句组是A.n=0;do{++n;whilen=0;B.n=0;whilel{n++;C.whilen=10;{n--;}D.forn=0i=l;;i++n+=i
19.己知类X是类Y的友元,类Y是类Z的友元,贝IJA.类X一定是类Z的友元B.类Z一定是类X的友元C.类Z的成员函数可以访问类Y的对象的任何成员D.类K的成员函数可以访问类Y的对象的任何成员.下列程序的运行结果为()^includevoidmain{inta=2intb=a+l couta/bendl A.O.66667B.OC.O.7D.O.66666666-.由于常对象不能被更新,因此()oA.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象的成员都是常成员D.通过常对象可以调用任何不改变对象值的成员函数.已知类A有公用数据成员a并重载了二运算符,且有Aobj2;constA*ptr=newA;则下列语句错误的是()oA.ptr-a=lOO;B.ptr=obj2;C.ptr++;D.obj2=*ptr;.希尔排序法属于()A.交换类排序法B.插入类排序法C.选择类排序法D.建堆排序法
三、
2.填空题(12题).C++中封装性、继承性和【】是面向对象思想的主要特征.C++程序是从【】函数开始执行的.在长度为n的线性表中查找一个表中不存在的元素,需要的比较次数为【】.以下程序的执行结果是#includeiostrearn.hintfintb[]intnintir=l;fori=0;in;i++r=r*b[i];returnr;voidmain{intxa[]={23456789;x=fa3coutxendl;.在数据库技术中,实体集之问的联系可以是一对一或一对多或多对多的,那么“学生”和“可选课程”的联系为O.数据流图的类型有【】和事务型.以下程序的执行结果为【】#includeiostreamusingnamespacestd;classbasepublic:virtualvoidwhocoutbaseclassendl;;classderivel:publicbasepublic voidwho{coutderivelclas.将下面程序补充完整#includeiostreamusingnamespacestd;classBase{public:[]fun{return0;}〃声明虚函数;classDerived:publicBase{public:xy;voidSetValintaintb{}intfun{returnx+y;}};void[]SetValintaintb{x=a;y=b;}〃类Derived成员函数voidmain{Derivedd;coutd.funendl;.耦合和内聚是评价模块独立性的两个主要标准,其中【】反映了模块内务成分之间的联.将一个函数声明为一个类的友元函数必须使用关键字【.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为【】.下列程序不能通过编译,应该在划线部分填写的语句是[]o#includeiostreamh#includestdlib.hdoubleFuneintaintbcharchdoublex;switchchcasex=doublea+b;break;casex=doublea--b;break;case7:x=doublea*b;break;case7:ifBx=doublea/b;elseexitlbreakdefault:exitl;}voidmaincoutFunc326coutFunc326coutFunc3267endl;
四、程序改错题10题.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果为sizeofSl二5sizeofs2=10sizeofs3=l注意不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面°⑴不能删除assert语句⑵只能修改后面的数字提示assert函数如果为假,则会产生一个中断异常试题程序#includeiostream.h#includeassert.hvoidmainchar*sl=abc//********error********assertsizeofsl==3:coutsizeofsl=5endl;chars2
[10]=ab//********error********assertsizeofs2==2;coutsizeofs2=10endl;chars3=23//********error********assertsizeofs3==4;coutsizeofs3=lendl;return;}.使用VC++
6.0打开考生文件夹下的源程序文件
1.cpp该程序运行有问题,请改正main函数中的错误,使程序的输出结果为number=lnumber=10number=100注意不要改动main函数,不能增加或删除行也不能更改程序的结构,错误的语句在//******error******的下面°试题程序#includeiostream.hclassTCpublic TCintinumber=i;voidSetNumberintmnumber二m;intGetNumberconstreturnnumber;voidPrintconstcoutnumber=numberendl;private:intnumber;;voidmain//********error********TCobjl;objl.Print;TCobj23;//********error********objl.number=10;//********errcr*%o******TC.SetNumberlOO;objl.Print;obj
2.Print;.使用VC++
6.0打开考生文件夹下的源程序文件Lcpp该程序运行有问题,请改正main函数中的错误,使程序的输出结果为number=lnumber=10number=100注意不要改动main函数,不能增加或删除行也不能更改程序的结构,错误的语句在//******errcr******的下面试题程序#includeiostream.hclassTC。