2022年广东省韶关市全国计算机等级考试C++语言程序设计真题(含答案).docx
《2022年广东省韶关市全国计算机等级考试C++语言程序设计真题(含答案).docx》由会员分享,可在线阅读,更多相关《2022年广东省韶关市全国计算机等级考试C++语言程序设计真题(含答案).docx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022年广东省韶关市全国计算机等级考试C+语言程序设计真题(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .以下关于C+语言类的说法中正确的是()。A.C+语言的默认访问权限是privateB.C+语言中的类定义,用户一定要自己定义一个构造函数用于实例化类C.C+语言中的成员函数的实现部分一定要写在类定义外D.C+语言中的类不能够嵌套定义2 .下面是关于静态成员的说法,其中不正确的是()。A.静态函数没有this指针B.同一个类的不同对象拥有相同的静态数据成员C.静态数据成员的初始化必须在类外进行D.静态函数可以访问所有数据成员3 .下列程序的输出结果是 #inClUde ih
2、t b=2 ; int funC(int*a) b+二*a ; return(b) ; void main() inta=2, res=2 ; res+=func(&a);cout res ; A.4B.6C.8 D.10)void main()(func(10);func(20); )28 .在面向对象方法中,类之间共享属性和操作的机制称为】。29 . C+在重载运算将中,如用成员函数重载一元运算符参数表中需要个参数,如用友元函数重载一元运算符参数表中需要 个参数。30 .一棵二叉树第6层(根结点为第一层)的结点最多为 个。31 .下列程序的运行结果是【o#include class Bas
3、e(public:virtual void func(int i)cout class Base: i endl;);class Derived: public Base(public:void func(double d)cout class Derived:H d endl;);void main()(Base a, *p=&a;Derived b;p=&b;(* p).func(3.3);)32 .一棵树的广义表表示为 a(b(c, d(e, f), g(h), i(j, k(x, y),结点f的层数为【】。假定树根结点的层数为0。33 .转义字符序列中的首字符是字符。34 .在数据库的
4、概念结构设计中,常用的描述工具是】。35 .下列程序的输出结果为2,请将程序补充完整。#include using namespace std;class Base(public:void fun() cout 1;);class Derived: public Base (public:void fun() cout fun();delete p;return 0;)四、程序改错题(10题)36 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为error0ERR
5、OR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/ / *errc)r*的下面。试题程序:#includeiostream. h)intmain( try (throw(nerrorn);)/不不不不不不不不error不不不不不不不不catch(chars)(coutsendl ;) try (throw(int)0);)/不不不不不不不不error不小不不不不不不catch coutiendl;) try (throw(O);throw(nerrorn);7,7,个个个个个个个个个个个个个个个个catch(coutnERRORnendl;)returnO
6、;)37 .使用VC+ +6 .0打开考生文件夹下的源程序文件1 .cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number= 1number=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/error的下面。试题程序:#include classTC public :TC(inti) (number=i ;) voidSetNumber(intm) (number=m ;) intGetNumberconst(returnnumber ;) voidPrintconst (coutnnumber=nnum
7、berendl ;)private :intnumber ;);voidmain(/不不不不不不不不error不不不不不不不不TCobjl ;objl . Print ;TCobj2(3);/不下不不不、下不error下不不不少不不不objl . number= 10 ;/ * enor* 0 * *TC . SetNumber(lOO);objl . Print ;obj2 . Print ;38 .使用VC + +6.0打开考生文件夹下的源程序文件1 .cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输 入多行,当输入字符“?”时,默认字符输入结束,最后把结果输
8、出到屏幕 中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *error*的下面。试题程序:#include voidmain inti=0 ;charstr120;coutnEnterastringendwith? . nendl ;个个个个个个个个nor个个个个个个个个cin . getline(str, 120);7,7“7,7while(str)k1 kI个个个个个个个个个个个个个个个个if(stri)=a)stri=stri-a + A ;i+ + ;coutstrendl ;return ;39 .使用VC+6. 0打开考生文件夹下的源程
9、序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor, i=0,Destructor注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include(iostream. h)classTC (inti;public:TC;voiddisplay;TC;);/不不不不不不error不不不不不不TC:TCcoutnConstructornn, i=0;k1 kJ7,1 1*k! kL 7“ 7,1不不小小不不enor不不不不小不TC : display toutni=nin, nendl;*# *2# *X# 不可不不不
10、不eu*or不不可不不不TC:TCCOUInDestructornendl :)voidmain(TCa;a. display; )40 .使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为1003732注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include/不不不不不不erroi*不不不不不不 voidmain( / 1#/不下不不不不error不小不不不不intm=0142:/ k1 k! kI7,1、! 7,7,1/不不小小个不error不不不不不不intn=0X27 :intq=32;c
11、out m endl;cout n endl ;cout q classCO public:*1个个个个个个个个个个个个个个个小staticintn=O:CO n+ + :CO n-:):个个个个个个个个个个个个个个个小intCO: n;voidmainCOobj ;COobj27;CO*C=NULL:c二 & obj :个个个个个个个个n*or个个个个个个个个eoutC . nendl ;coutC0:nendl;4 .不能作为函数重载的判断依据的是()A.constB.返回类型C.参数个数D.参数类型5 .有如下数组声明:intnum10;,下标值引用错误的是()。A.num10 B.nu
12、m5 C.num3 D.num06 .下列关于严格控制got。语句使用的理解中,错误的是()。A.用一个非结构化的程序设计语言实现一个结构化的构造B.若不使用goto语句会使功能模糊C.在某种可以改善而不是损害程序可读性的情况下D.goto语句可以完全不用7.下列表示引用的方法中,()是正确的。已知:intm=l。:A.int &x=m ;B.int &y=10 ;C.int &ZD.float &t=&m ;8 .使用操作符setw对数据进行格式输出时,需要包含 头文件。 9 .将小写字母h赋值给字符变量ch,正确的操作是()。A.ch=n B.ch=110 C.ch=n D.ch=N10
13、.在最坏情况下,冒泡排序所需要的比较次数为A.n/2 B.(n+l)/2 C.n(n-l)/2 D.n(n+l)/242 .使用VC+ +6.0打开考生文件夹下的源程序文件1 .cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor, i=0,Destructor注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include(iostream . h)classTC (inti ;public :TC ;voiddisplay ;TC ;TC : TC coutnConstructornn, i=0;vL*不下不不个个epj*
14、or个个个个不不TC : displaytoutni=nin, nendl ;TC : TCCOUInDestructornendl :voidmainTCa ;a . display ;43 .使用VC+6. 0打开考生文件夹下的源程序文件L cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number= 1 number=10 number= 100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结 构,错误的语句在/ / *error*的下面。试题程序:#include classTC public:TC(inti) number=i;)voidS
15、etNumber(intm) number=m ;)intGetNumberconst returnnumber;)voidPrintconst coutn number=n numberendl ;private:intnumber;voidmain个个个个小个个个nor个个小个个个个个TCobjl;objl. Print;TCobj2(3);7,、! 7,k! 7个个个不不不下不rror个个个小个个个个objl. number= 10;I ! * error* *TC. SetNumber(lOO);objl. Print;obj2. Print;44 .使用VC+6. 0打开考生文件夹下
16、的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可 能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出 到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *error*的下面。试题程序:#include voidmain inti=O;charstr120;coutnEnterastringendwith?. nendl ;*个个个个个个个个nor个个小个个个个个cin. getline(str, 120);7 77,7个个个不不个个个不不不不不不不不while(str)7,7,k! 7,
17、不下不不不不不*r*个个个个个个个不if(stri)=a)stri=stri-a+A;i+ + ;)coutstrendl ;return ;)45 .使用VC + +6.0打开考生文件夹下的源程序文件1 .cpp,该程序运 行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果 为:sizeof(Sl)=5sizeof(s2)=10sizeof(s3)=l注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *errc)r*的下面。不能删除assert ()语句。只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#
18、include #includevoidmain ()(charts l=nabcn:/不不不不不不不不error不不小不不不不不assert(sizeof(s 1 )=3):coutnsizeof(sl)=5nendl ; chars210=nabn:/ sX*slsl sfX sX/不不不不不不不不error不不不不不不不不assert(sizeof(s2)=2);coutnsizeof(s2)=10nendl ;chars3=23 :/不不不不不不不不error不不不不不不不不assert(sizeof(s3)=4);cout,sizeof(s3)=r,endl ;return ; )五
19、、综合应用题(2题)46 .应添加“BA(intm)a=m ; ”。(2)应添力“PAl(iiitm, intn) :BA(n)b=m ; “。(3)应添力 HPA2(intm, intn, intk) : PAl(n, k)C=m ;)”。(4)应添力口(。111:8180砧(2询;”。【解析】根据第1处要求,构造函数的函数名和类名一致,显然BA构 造函数的名称为BA,在BA中通过参数m完成对成员变量a的赋值, 因此构造函数的名称为BA(intm),在函数内部对成员a赋值,故第1处 的语句应添加“BA(intm)a=m ;):根据第2处的要求,构造函数的形式 为“PAl(intm, intn
20、)”, m赋值给PA1类成员b,将n作为基类BA构造函数的参数值传入,故第2处应添力“PAl(intm, intn) :BA(n)b=m ; 的 根据第3处的要求,函数形式为PA2(intm, intn, intk),在构造函数中 将m赋值给数据成员c,将n和k分别赋值给基类PA1构造函数的参 数 m 和 n,因此第 3 处应添加“PA2(intm, intn, intk) PAl(n, k)C=m 根据第4处的要求,PA2类公有派生于PAI,而PA1公有派生于BA, 因此在PA2类中可以调用基类的geta和getb来获得基类私有成员a和 b,再输出PA2的私有成员C即满足要求,因此第4处应添
21、加 t4coutgetagetbCendl ; ,s047 .使用VC+6. 0打开考生文件夹下的源程序文件3. cpp。类 People包括姓名和年龄两个字段。函数fun获得年龄比较大的人的姓 名,然后输出这个姓名到屏幕。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完 整。完成类的构造函数功能,请在注释1后添加适当的语句。完成构造函数对姓名的赋值,请在注释2后添加适当的语句。定义类的友元函数fun,请在注释3后添加适当的语句。(4)补充函数fun的年龄比较功能,请在注释4后添加适当的语句。注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其 他的程序代码。试题程序:#in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 广东省 韶关市 全国 计算机等级考试 C+ 语言程序设计 答案
限制150内