2023年江西省抚州市全国计算机等级考试C++语言程序设计真题(含答案).docx
《2023年江西省抚州市全国计算机等级考试C++语言程序设计真题(含答案).docx》由会员分享,可在线阅读,更多相关《2023年江西省抚州市全国计算机等级考试C++语言程序设计真题(含答案).docx(45页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年江西省抚州市全国计算机等级考试 C+语言程序设计真题(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .类模板的使用实际上是将类模板实例化成一个具体的()。A.类B.对象C.函数D.模板类2 .有如下程序:#include using namespace std;class Base private: void fun 1 () const cout nfunln; protected: void fun2() eonst cout “fun2; public: voidtim3()const cout nfun3!f; ; class Derived: protecte
2、d Base public: void fun4() const cout fun4; ;int main()Derived obj;obj.funl();/ obj.fun2();obj.fun3();/obj.fun4();return 0;其中有语法错误的语句是()。A.B.C.D.3 .有以下程序; #include using namespace std; class R public: R(int rl Jnt r2) Rl=rl; R2=r2; ) void print(); void print () const; private: intRl,R2; ; voidR:prin
3、t() cout RI J R2 endl; void R:print() const cout RI n, n R2 endl; int main () R a(5,4); const R b(20,52); b.print(); return 0; 执行后的输出结果是 A.5,4 B.20,52 C.0,0 D.4,54 .若有以下程序:#include using namespace std; class A private: int a; public: A(int i) a=i; void disp() cout a J; abort();char line80;int 1=0;wh
4、ile(!infile. eof()(I+;infile.getline(line, sizeof(line);cout I n:n line endl;)infile.close();)四、程序改错题(10题)36 .使用VC+ + 6 .0打开考生文件夹下的源程序文件1 .cpp。本程序要 求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输 入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕 中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *error*的下面。试题程序:#include voidmain(inti=
5、0 ;charstr120;coutnEnterastringendwith? . nendl ;/ vl* vl* vt*vt*/不不不不不不不不error不不不不不不不不cin . getline(str, 120);while(str) if(stri)=a) stri=stri-a + A ;i+ + ; )coutstrendl ;return ;37 .使用VC+ +6 .0打开考生文件夹下的源程序文件1 .cpp,该程序运 行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果 为:sizeof(Sl)=5 sizeof(s2)=10 sizeof(s3)=l注意:不要改
6、动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/ / *errc)r*的下面。不能删除assert ()语句。只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#include#include voidmain () char*sl=nabcn:个个个个个个个个nor个个个个个个个个assert(sizeof(s 1 )=3): coutnsizeof(sl)=5nendl ;chars210=nabM:,、errorassert(sizeof(s2)=2);coutnsizeof(s2)=10nendl ;chars3=23 :si*r
7、errorassert(sizeof(s3)=4);coutnsizeof(s3)=r,endl ;return ;38 .使用VC + + 6 . 0打开考生文件夹下的源程序文件1 . cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现 的功能为从键盘输入一个字符串,并将结果保存到文件1 . txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在* eno * * * * * * 白勺 试题程序:#include#includevl* vt*vt*k*不不不不不不不不不不不不不不不不usingstd ;voidWriteFile(char*s
8、) ofstreamoutl ;kI个个个个个个个个nor个个个个个个个个outl . open(nl . txt, binary|app);for(inti=0 ; si!=0 ; i + +)个个个个个个个个nor个个个个个个个个outl.puts(si);outl.close ;)voidClearFile ofstreamoutl ;outl . open(Hl .txt);outl . close ;) intmain chars 1024;coutnpleaseinputastrin9 :nendl ;cin . getline(s, 1024);WriteFile(s);retu
9、rnO ;)39 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为error O ERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/ / *errc)r*的下面。试题程序:#include、!、! 7,个个个*t*不不个下nor个个个个个个个个catch coutiendl;) try throw(O);throw。error);个个个个个个个个rror个个个个个个个个catch coutnERRORnendl ;retu
10、rnO;40 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实 现的功能为从键盘输入一个字符串,并将结果保存到文件1. txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在* error* *j 日 j。试题程序:#include#include7,7,7,7, 7,、! 7,个个个*t*不不个下个个个个个个个个usingstd;voidWriteFile(char*s) ofstreamoutl ;kL* vL* *1*1* vl*不不不不不不个不nor不不不不不不不不outl. ope
11、n(Hl. txt,binary|app);for(inti=0; si!=0; i+ +)7,7,个不不不不不个个nor个个个个个个个不outl. puts(si);outl. close;)voidClearFile ofstreamoutl ;outl. open(nl. txt);outl. close;) intmain chars 1024;coutnpleaseinputastrin9 :nendl ;cin. getline(s, 1024);WriteFile(s);returnO;41 .使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序
12、中的错误,使程序输出的结果为1003732注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#include voidmain7,kJ不不不小不不enor不不不不小不intm=0142:vl*不不不不不不enor不不个个不不intn=0X27:intq=32;cout m endl;cout n endl ;cout q endl; return ;)42 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp。本程序 要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可 能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出 到屏幕中。注意:不
13、要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *erT()r*的下面。试题程序:#include voidmain(inti=0;charstr120;coutnEnterastringendwith?. nendl;/不不不不不不不不error不不不不、不不不cin. getline(str, 120);/不不不不不不不不error不不不不不不不不 while(str)(/不不不不不不不不error不小不不不不不不if(stri)=a)stri=stri-a+A;i+ +;)coutstrendl ;return ; )43 .使用VC+6. 0打开考生文
14、件夹下的源程序文件1. cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number= 1number=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/ / *errc)r*的下面。试题程序:#includeclassTC (public:TC(inti) ( number=i;voidSetNumber(intm)(number=m ;)class B private: int b; public: B(int j) b=j; ) void disp() cout b ; class C: public B,
15、public A private: int c; public: C(int k):A(k- 2),B(k+2) c=k; void disp() A:disp(); B:disp(); cout c endl; ;int main() C obj (10); obj.disp(); return 0; 程序执行后的输出结果是 A.10,10,10 B.10, 12,14 C.8,10,12 D.8,12,105 .如果算符函数调用格式的表达式:x.operator-(operator+(y, 0)中的是作为成员函数重载的,“+”是作为友元函数重载的,那么该表达式还 可以表示为:()A.x-y
16、+ B.x-(+y) C.(x+)-y D.+x-y6 .在面向对象的程序设计中,下列叙述中错误的是()。A.任何一个对象构成一个独立的模块B.一个对象不是独立存在的实体,各个对象之间有关联,相互依赖C.下一层次的对象可以继承上一层次对象的某些属性D.上述三种说法都正确7 .下列描述中正确的是A类中可以定义与类名相同的数据成员8 .直接于类中可以定义与父类名相同的数据成员C.孙子类中可以定义与爷爷类名相同的数据成员。D.类的所有子孙中都不可以定义与该类同名的数据成员。9 .下列关于构造函数和析构函数的描述,错误的是()。A.析构函数中调用虚函数采用静态联编intGetNumberconst r
17、eturnnumber;voidPrintconst (coutnnumber=nnumberendl;)private:intnumber;voidmain objl. number=10;rj*errorTCobjl;objl. Print;TCobj2(3);errork1* rj*! I * eno* 0 * *TC. SetNumber(l 00);objl. Print;obj2. Print;44.使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序 运行时有错,请改正其中的错误,使程序正常运行,输出的结果为 Constructor, i=0,Destructor注意
18、:错误的语句在/ / *error*的下面,修改该语句即 可。试题程序:#include(iostream. h) classTC ( inti;public:TC;voiddisplay;TC;coutnConstructornn,;i=0;TC:TCTC: display toutni=ni classCO public:rrw T*r *rk1 *1* *1* *1* *i* *J *J *J enor个个个个个个个个staticintn=O:CO(n+ + :)CO(n:):eoutC . nendl ;7 7 k1 7 7 7, kJ 7, q. q. 、errorintCO: :
19、n;voidmain(COobj ;COobj27;CO*C=NULL:c= & obj :k1#*1rjkIa1enor不不不不不不不不coutC0: nendl;五、综合应用题(2题)46 .应添加“virtualvoidGetNamt!=0 ;。(2)应添力constchar*GetName2”。(3)应添加“TC2(char*str)”。(4)应添加“m_st巾=0 ;【解析】本题第1处要求“在类TC1中定义接口函数GetName,为纯虚 函数”。在C + +中,在基类中用virtual声明成员函数为虚函数。纯虚 函数是在声明虚函数时被初始化为0的函数,即 “virtualvoidGe
20、tName=0 ; 。第2处要求“函数GetName2实现获得名字 的缓存,但只获得读允许操作这个缓存”。只能引用数据成员,而不能修 改,所以使用常成员函数,其一般形式为“const函数类型函数名”,即 “constchar*GetName2。第3处要求“实现TC2的构造函数”。TC2的构 造函数与类TC2的名称应该相同,而且第3处的大括弧中是对字符数 组str的操作,所以类TC2的构造函数中的参数为str,即这里补全为 “TC2(char*str)”第4处要求“完成TC2的构造函数,实现对名字的处 理”,补全类TC2的构造函数,构造函数中的名字变量str对应于类TC 中的成员变量m_str,
21、所以这里补全变量赋值操作“m_stri=0 ; ”。47 .使用VC+6.。打开考生文件夹下的源程序文件3. cpp。其中定 义的类不完整,按要求完成下列操作,将类的定义补充完整。每卖出 一个水果,则计算水果的重量,还要计算所有卖出水果的总重量以及 总个数,同时允许退货,请按照以下的操作,把类补充完整。定义类TCFruit的私有静态数据成员float型变量AllWeight和int型 变量AHN0,请在注释1后添加适当的语句。(2)完成类TCFruit的带一个float型变量w的构造函数,并把这个w加 到AllWeight中,并且AHNo自加。请在注释2后添加适当的语句。(3)在析构函数中,在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 江西省 抚州市 全国 计算机等级考试 C+ 语言程序设计 答案
限制150内