2023年贵州省遵义市全国计算机等级考试C++语言程序设计真题(含答案).docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2023年贵州省遵义市全国计算机等级考试C++语言程序设计真题(含答案).docx》由会员分享,可在线阅读,更多相关《2023年贵州省遵义市全国计算机等级考试C++语言程序设计真题(含答案).docx(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023年贵州省遵义市全国计算机等级考试C+语言程序设计真题(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .派生类的构造函数的成员初始化列表中,不能包含()。A.基类的构造函数B.派生类中子对象的初始化C.基类中子对象的初始化D.派生类中一般数据成员的初始化2 .软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及 oA.阶段性报告B.需求评审C.总结D.都不正确3 .下面能表示一个正确的类的是()oA.class A B.class A() C.class A D.class A4 .在下面的函数声明中,存在着语法错误的是A.void BC(i
2、nt a, int)B.void BD(int, int)C.void BE(int, int=5)D.int BF(int x ; int v)5 .下列关于C+运算符结合性的说法中,正确的是()。A.赋值运算符是左结合的B.复合运算符是左结合的C单目运算符是double x ;switch(ch) (casex=double(a) +b; break;casex= double(a) b ;break;case 7: x=double(a) * b; break;case 7:if(B) x=double(a) /b; else exit(l) break default: exit(l)
3、;void main()(cout Func(32,6 :;cout Func(32, 6 :;cout Func(32, 6 ,7) endl;31 .在关系运算中,【】运算是对两个具有公共属性的关系所进行的运 算。32 .软件工程的3个要素是工具、过程和【】。33 .阅读下面程序:#include template class TAdd ( private: Tx, y; public:TAdd(T a,T b) ( x=a; y=b; )T add()(return x +y;);void main() (TAdd a(5,6);TAdd b(2.4,5.8);cout nsl = A.
4、 add() ” J;cout ns2=n B, add() endl;写出该程序的运行结果:【】。34 .下列程序的运行结果是【o#include class Basepublic:virtual void func(int i)cout class Base: i endl;);class Derived: public Base (public:void func(double d)cout class Derived:n d endl;);void main()(Base a, *p=&a;Derived b;p=&b;(* p).func(3.3);35 .运算符重载仍然保持其原来的
5、优先级、和 o四、程序改错题(10题)36 .使用VC+ +6 .0打开考生文件夹下的源程序文件1 .cppo本程序要 求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输 入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕 中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *errc)r*的下面。试题程序:#includeinti=O ;charstr120;coutnEnterastringendwith? . nendl ;vl* vt*vt*k*不不不不不不不不不不不不不不不不cin . getline(str, 1
6、20);不*r*个个个.、个个nor个个个不不小个个while(str)kI个个个个个个个个nor个个个个个个个个if(stri)=a)stri=stri-a + A ;i+ + ;coutstrendl ;return ;37 .使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错。请改正程序中的错误,使程序输出的结果为1003732注意:错误的语句在/ / *eiror*的下面,修改该语句即可。试题程序:#includevoidmainvt*vL* k1*k!不不不不不不ej*po不不不不不不intm=0142:1#不下不不不不erpor不小不不不不intn=0X27
7、 :intq=32;cout m endl ;cout n endl;cout q endl ;return ;38 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp。本程序 要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可 能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出 到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *error*的下面。试题程序:#includeinti=O;charstr120;coutnEnterastringendwith?. nendl ;cin. getline(str
8、, 120);while(str) if(stri)=a) stri=stri-a+A;i+ +;)coutstrendl;return ;39 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number= 1 number=10 number= 100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结 构,错误的语句在/ / *error*的下面。试题程序:#include classTC public:TC(inti) (number=i;) voidSetNumber(intm) (numbe
9、r=m ;) intGetNumberconst (returnnumber;) voidPrintconst(coutnnumber=nnumberendl;)private:intnumber;;voidmain (/不不不不不不不不error不不不不不不不不TCobjl;objl. Print;TCobj2(3);/7,7,7,7,/不不不小不不不不error不不小不不不不不objl. number= 10;/ * error* 0 * *TC. SetNumber(lOO);objl. Print;obj2. Print; )40 .使用VC+ +6 .0打开考生文件夹下的源程序文件1
10、 .cpp,该程序运 行有问题,请改正main函数中的错误,使程序的输出结果为: number= 1 number=10 number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/ / *errc)r*的下面。试题程序:#includeclassTC (public :TC(inti) ( number=i ; )voidSctNumbcr(intm) (number=m ;intGetN umberconstreturnnumber ;)voidPrintconst (coutnnumber=nnumberendl ;)private :intnu
11、mber ;voidmainvl* vl*vl*个个个个个个个个rror个个*个个个个个TCobjl ;objl . Print ;TCobj2(3);errorobjl . number=10 ;! 1 * enor* * *TC . SetNumber(lOO);objl . Print ;obj2 . Print ; )41 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为Constructor, i=0,Destructor注意:错误的语句在/ / *error*的下面,修改该语句即可。试题程序:#inclu
12、de(iostream h)classTC (inti;public:TC;voiddisplay;TC;kL* 1*errorTC:TCcoutnConstructornn,二 i=0;errorTC: display( toutni=nin, nendl;K.t 7, .卜q. q. q、error7,7 T”左结合的D.双目算术运算符是左结合的6 .下面有关for循环的正确描述是A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来7
13、. 若有以下程序:#include using namespace std; int f() static int i = 0; int s = 1; s+=i; i+; return s; int main () int i,a = 0; for(i =0;i =A& ch =ZTC: TCCOUIHDestructornendl :) voidmainTCa;a. display;cpp,该程序运42 .使用VC+ +6 .0打开考生文件夹下的源程序文件1 .行时有错误,请改正程序中的错误,使得程序输出:9, 8, 7, 6, 5注意:错误的语句在/的下面,修改该语句即可。其他的语句不能修
14、改。试题程序:#include(iostream . hclassTC1*errorTC(inti) (m_i=i ;) voidprint coutm_i kJ# 7,个干个个个不不不nor个个个小个小个个inti ;TC04(10);while(i5)! * * * !1+ + :04 . print ; ) coutendl ;returnO ;)43 .使用VC + +6 .0打开考生文件夹下的源程序文件1.cpp,该程序运 行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果 为:sizeof(Sl)=5sizeof(s2)=10sizeof(s3)=l注意:不要改动mai
15、n函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *error*的下面。不能删除assert ()语句。只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#include#includevoidmain ()(chartsl=nabcn:/不下不不不不下不error不不不不个不不不assert(sizeof(sl )=3):coutnsizeof(sl)=5nendl ;chars210=nabn:/ 7 7,7 77 7,7,7 7 7,7,/不不不小不不不不error不不小不不不不不assert(sizeof(s2)=2);coutns
16、izeof(s2)=10nendl ;chars3=23 :/不不不不不不不不error不不不不不不不不assert(sizeof(s3)=4);coutnsizeof(s3)=lnendl ;return ;)44 .使用VC+ +6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,输出的结果为 Constructor, i=0,Destructor注意:错误的语句在/ /*error*的下面,修改该语句即可 试题程序:#include(iostream . h) classTC ( inti ;public :TC ;voiddisplay ;
17、-TC ;);/ / *error*TC : TC (coutnConstructornn /i=0 ; )/ I *epj*or*TC : display ( touti=i)endl ; )I I *error*TC : TCCOUInDestructornendl :) voidmainTCa ;a . display ;45.使用VC+6. 0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为error0 ERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结
18、 构,错误的语句在/ / *errc)r*的下面。试题程序:#includeiostream. h) intmain try throw(nerrorn);个个个个个个个个个个个个个个个catch(chars) coutsendl;try(throw(int)0);si*vl*个个个个个个个个rror个个个个个个个个catch(coutiendl ;) try (throw(O);throw(nerrorn);/不不不不不不不不error不不不不不不不不catch(coutnERRORnendl;)returnO ;)五、综合应用题(2题)46.(l)“while应改为while(infile
19、 . get(ch),o(2)应添力burlen + + =ch ; burlen=ch ; len + + ;”。(3)应添力routfne2vvburi + + ; ”或“outfile2vvbufi ; i + + ; ”。(4)“TCobj ; ”应改为“TCobi(”in . txt); ”。【解析】本题考查了文件流的使用。根据题意,第1处要获得一个字符, 并判断是否到文件结尾,所以应使用get函数;第2处应将ch存入buf 数组,同时让len增1 ;第3处将buf中的字节输出给outfile2,注意同 时让i增1,否则while循环将进入死循环 悌4处TC只确一个带char* 参数
20、的构造函数,所以创建对象时必须使用构造参数,根据题意这个参 数应该是“”in .txt“。47.使用VC+6. 0打开考生文件夹下的源程序文件3. cpp,其中定 义了类A、A1和A2,其中A1类由A类公有派生,A2类由A1类公 有派生。定义类A的构造函数,该构造函数有一个整型的参数x,在构造函 数中请将x赋值给数据成员a。请在注释“/ / *1*”之 后添加适当的语句。定义类A1的构造函数,该构造函数有两个整型的参数x和y,在构 造函数中请将x赋值给数据成员b,将y作为基类A构造函数的参数 值传人。请在注释“/ / *2*”之后添加适当的语句。定义类A2的构造函数,该构造函数有3个整型的参数
21、x, y和z, 在构造函数中请将x赋值给数据成员C,将y和z分别赋值给基类A1 构造函数的参数x和y。请在注释“/ / *3*”之后添加 适当的语句。(4)完成类A2的成员函数show的定义,该函数调用基类成员函数,输在输出时以空格隔开。出基类数据成员a和b及类A2自身的数据成员C的值,上述3个值 请在注释“ / / *4*“之后添加适当的语句。程序输出结果如下:73738注意:除在指定的位置添加语句之外,请不要改动程序的其他部分。试题程序:#includeclassA (inta;public:/ / *intgetareturna; );class Al : publicA (intb;p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 贵州省 遵义市 全国 计算机等级考试 C+ 语言程序设计 答案
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内