2023年河南省南阳市全国计算机等级考试C++语言程序设计预测试题(含答案).docx

上传人:太** 文档编号:97958897 上传时间:2024-07-08 格式:DOCX 页数:42 大小:67.66KB
返回 下载 相关 举报
2023年河南省南阳市全国计算机等级考试C++语言程序设计预测试题(含答案).docx_第1页
第1页 / 共42页
2023年河南省南阳市全国计算机等级考试C++语言程序设计预测试题(含答案).docx_第2页
第2页 / 共42页
点击查看更多>>
资源描述

《2023年河南省南阳市全国计算机等级考试C++语言程序设计预测试题(含答案).docx》由会员分享,可在线阅读,更多相关《2023年河南省南阳市全国计算机等级考试C++语言程序设计预测试题(含答案).docx(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2023年河南省南阳市全国计算机等级考试 C+语言程序设计预测试题(含答案)学校:班级:姓名:考号:一、1.选择题(10题)1 .以下程序的输出结果是 #include voidreverse(int a, int n) inti , t ; for(i=0; n/2;i+) t=ai=ai =an-l-i ; an-l-i=t ; voidmainQ intb10=l, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; inti, s=0 ; reverse(b, 8) ; for(i=6;i 10;i+)s+=bi ; cout s ; ) A.22B.10C.34 D.302 .

2、若有如下程序:#include using namespace std; class A public: A(int ijnt j) a=i; b=j; void move(int x,int y) a+=x; b+=y; void show() cout a J b endl; private: int a,b; ; class B:private A public: B(int i,intj):A(ij) void fun() move(3,5); void fl() A:show(); ; int main() B d(3,4); d.fun(); d.fl(); return 0; 程

3、序执行 后的输出结果是()。A.3,4 B.6,8 C.6,9 D.4,33 .数据库管理系统是位于用户与操作系统之间的一个数据管理软件,以 下不属于它的基本功能的是()oA.数据共享功能B.数据定义功能C.数据操纵功能D.数据库的运行管 理与控制功能4 .下面对于友元函数描述正确的是()A.友元函数的实现必须在类的内部定义void main() char a = nclanguage, t;intl,j,k;k = strlen(a);for(i = 0;i = k - 2;i + = 2)for(j = i + 2;j = k;) if() t = ai ;ai = aj ;aj =t;

4、cout a;cout endl;)35 .从一个函数模板产的模板函数是同名的,因此编译器用 的解决方法调用相应函数。四、程序改错题(10题)36 .使用VC+ + 6 .0打开考生文件夹下的源程序文件1 .cpp0本程序要 求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输 入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出到屏幕 中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *errc)r*的下面。试题程序:#includevoidmain inti=O ;charstr120;coutnEnterastringendw

5、ith? . nendl ;7,1kI 7,、!、! 7个个个不不不下不rror个个个小个个个个cin . getline(str, 120);vl*J *J *1 vi*个个个个个个个个nor个个个个个个个个while(str)vt*vL*vL*个个个不不不不不不不不不不个不stri=stri-a + A ;1+ + ;coutstrendl ;return ;37 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行时有错误,请改正错误,使程序正常运行,并且要求最后一个catch必须抛出执行的任何异常。程序异常,输出信息为errorOERROR注意:不要改动main函数

6、,不能增加或删除行,也不能更改程序的结的下面。构,错误的语句在/ / *eiror*试题程序:#include ! !* !*! kJ* kJ*.!个个个小小个不小nor个个不不不不不不catch(chars) coutsendl;) try throw(int)0);*1*个个个个个个个个nor不不不不不不不不catch coutiendl;) try throw(O);throw。error);kL*个小小个个小个下个不不不不不不catch coutnERRORnendl;)returnO; )38 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行有问题,请改正ma

7、in函数中的错误,使程序的输出结果为:number= 1number= 10number= 100注意:不要改动main函数,不能增加或删除行。也不能更改程序的结构,错误的语句在/ / *eirc)r*的下面。试题程序:#includeclassTC (public:TC(inti) ( number=i;)voidSetNumber(intm)(number=m;)intGetNumberconst(returnnumber;)voidPrintconst)private:intnumber;voidmain个个个个个个个个nor个个个个个个个个TCobjl;objl. Print;TCob

8、j2(3);7,7,7classTC(不不不不不不不不en*or不不不不不不不不TC(inti)(m_i=i ;) voidprint(coutm i,;)public :intm_i ;intmain7,7,7,7,7,7个个个个个不不个个个不不不不不不inti ;TC04(10);while(i5)! * eirOr * * / i+ + :04 . print ;coutendl ;returnO ;)40 .使用VC+ + 6 .0打开考生文件夹下的源程序文件1 .cpp,该程序运 行时有错,请改正其中的错误,使程序正常运行,并使程序输出的结果 为:sizeof(Sl)=5sizeof

9、(s2)=10sizeof(s3)=l注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *error*的下面。(1)不能删除assert ()语句。只能修改后面的数字。提示:assert函数如果为假,则会产生一个中断异常。试题程序:#include#includevoidmain () (chartsl=nabcn:/vl*vl* 1*/不不不不不不不不eiror不不不不,不不不assert(sizeof(sl )=3):coutnsizeof(sl)=5nendl ;chars210=ab:/不不不不不不不不error不不不不不不不不assert(si

10、zeof(s2)=2);coutnsizeof(s2)=10nendl ;chars3=23 :error%!?、q. rj. rj、assert(sizeof(s3)=4);coutnsizeof(s3)=lnendl ;return ;41 .使用VC+6. 0打开考生文件夹下的源程序文件1. cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实 现的功能为从键盘输入一个字符串,并将结果保存到文件1. txt中。 注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在error的下面。试题程序:#include#include个个个个个个个个nor个个个

11、个个个个个usingstd;voidWriteFile(chars) (ofstreamoutl ;erroroutl. open(Hl. txt,binary|app);for(inti=0; si!=O; i+)/不下不不不不可不error不不不不个不不不outl. puts(si);outl. close;)voidClearFile(ofstreamoutl ;outl. open(nl. txt);outl. close;) intmain(chars 1024;ClearFile;coutnpleaseinputastrin9 :nendl ;cin. getline(s, 102

12、4);WriteFile(s);returnO;)42.使用VC+6. 0打开考生文件夹下的源程序文件1.cpp。本程序要求输入一个字符串,然后将其中的小写字母改成大写字母,字符可能输入多行,当输入字符“?”时,默认字符输入结束,最后把结果输出 到屏幕中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结 构,错误的语句在/ / *errc)r*的下面。试题程序:#include voidmain inti=O;charstr120;coutnEnterastringendwith?. nendl;*1* *1*k1* vt* *1不个不不不不不不error个个个个个个个个cin

13、. getline(str, 120);不不不不不不不不enoj*不不不不不不个个while(str)kJ*1* *1* kJ#不不不不不不不不error不不个个个个小小if(stri)=a) stri=stri-a+A;coutstrendl;return ;B.友元函数是类的成员函数C.友元函数破坏了类的封装性和隐藏性D.友元函数不能访问类的私有成员5 .若二叉树中度为2的结点有15个,度为1的结点有10个,则有()个 叶结点。A.25B.30C.31 D.166 .考虑下面的函数原型:void testDefaulParam (int a, int b=7,char z=*); 下面的函

14、数调用中,不合法的是()。A.testDefaulParam(5);B.testDefaulParam(5, 8);C.testDefaulParam(6, f#f);D.testDefaulParam(0,0/*t);7 .以下类定义中可能会引起错误的语句是class A public :A()/1 int i ; 111 private : int j /3 A(int i)i+ ; /4 ;A.l B.2C.3 D.48 .下列描述中,()是抽象类的特性。A.可以说明虚函数B.可以进行构造函数重载C可以定义友元函数D. 不能说明其对象9 .下列叙述中正确的是A.程序设计过程中的主要工作是

15、编制程序43 .使用VC+6.。打开考生文件夹下的源程序文件1.cpp,该程序 运行时有错误,请改正错误,使程序正常运行,并且要求最后一个 catch必须抛出执行的任何异常。程序异常,输出信息为error0ERROR注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在/ / *errc)r*的下面。试题程序:#includeclassCO public:I *error* /staticintn=O :CO n+ + :)co):I * error* * / intCO: n;voidmain (COobj ;COobj27;COCNULL:c二 & obj :I

16、* *error* * *eoutC. nendl;coutC0: nendl;45 .使用VC + + 6 .。打开考生文件夹下的源程序文件1 . cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1 . txt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在error的下面。试题程序:#include#include*1*1 kL*?、rr rr rrwerror*1* *1* k1*kL*JrTr*rrusingstd ;voidWriteFile(char*s) (ofstreamoutl

17、;vl, -J、*1* 1*k !* .!*error不不不不不不不不 outl . open(nl . txt, binary|app);for(inti=0 ; si!=0 ; i + +)*1 *1* *1* 1* *1error outl . puts(si);)outl . close ;)voidClearFile(ofstreamoutl ;outl . open(nl . txt);outl . close ; )intmain chars 1024;ClearFile ;coutnpleaseinputastrin9 :nendl ;cin . getline(s, 1024

18、);WriteFile(s);returnO ; )五、综合应用题(2题)46 .使用VC+6. 0打开考生文件夹下的源程序文件3. cpp。其中定 义的类不完整,按要求完成下列操作,将类的定义补充完整。定义类的公有数据成员函数NO、Name32,其中NO是血型的数据,Name32为字符型。请在注释1后添加适当的语句。(2)完成函数Set的定义,分别设置NO和Name的值,请在注释2后添 加适当的语句。完成函数print,请在注释3后添加适当的语句,输出结果如下:N0=12345Name=HelloWorld!(4)添加默认构造函数,设置NO为0, Name为空,请在注释4后添加 适当的语句。

19、注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其 他的程序代码。试题程序:#includeclassTC public:/1k k!/ q. 、.、q. .、. I .卜,,、q. .、,.、,,、/ *J *J *1 *J *J *J *J *J*J *J *J *J/rj* rj*ry* J?、No=no;for(inti=0; strNamei!=O; i+)Namei=strNamei;Namei+1=0; ) voidprint ()/*Tw)TC ()1 I *4*);intmain ()(TCstu:stu. Set( 12345, nHelloWorld!n); s

20、tu. print ();returnO ;47 .(1)应添力virtualvoidGetNamt!=0 ;。应添加“constchar* GetName2”。应添加“TC2(char*str)”。(4)应添加“m_stri=0 ;【解析】本题第1处要求“在类TC1中定义接口函数GetName,为纯虚 函数在C+ +中,在基类中用virtual声明成员函数为虚函数。纯虚 函数是在声明虚函数时被初始化为0的函数,即 t4virtualvoidGetName=0 ; 。第2处要求“函数GetName2实现获得名字 的缓存,但只获得读允许操作这个缓存”。只能引用数据成员,而不能修 改,所以使用常成

21、员函数,其一般形式为“const函数类型函数名”,即 “constchar*GetName2。第3处要求“实现TC2的构造函数”。TC2的构 造函数与类TC2的名称应该相同,而且第3处的大括弧中是对字符数 组str的操作,所以类TC2的构造函数中的参数为str,即这里补全为 “TC2(char*str)”第4处要求“完成TC2的构造函数,实现对名字的处 理”,补全类TC2的构造函数,构造函数中的名字变量str对应于类TC 中的成员变量m_str,所以这里补全变量赋值操作“m_stri=0 ;六、3.综合应用题(2题)48 .使用VC6打开考生文件夹下的工程test25_3,此工程包含一个源程

22、序文件test25_3.cpp,其中定义了用于表示堆的类Set,但它的定义并不完 整。请按要求完成下列操作,将程序补充完整。(1)完成成员函数int IsMemberOf(int n)的定义,该函数检查参数n是否 在类的数据成员数组elems中,如果在返回1,反之返回0。请在注释 “* 1 *,,之后添加适当的语句。(2)完成成员函数int Add(intn)的定义,如果参数n包含在类的数据成员 数组elems中则返回1如果数组超界则返回0,如果都不是,则将参数 n插入到elems中,下标大小为类的数据成员PC,之后PC自加一。请在 注释“*2*,之后添加适当的语句。完成拷贝初始化构造函数Se

23、t(Set&s)的定义,请在注释“*3*之后 添加适当的语句。输出结果如下:1()1, 2, 3, 4, 5, 6, 7, 8)注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test25_3.cpp清单如下:#include class Setpublic :Set() PC=O;Set(Sct &s);void Empty() PC=O;int IsEmptyO return PC=O;int IsMemberOf(int n);int Add(int n);void Print();private:int elems100;int PC;);int Set: :Is

24、MemberOf(int n)* if(elemsi=n)return 1;return O;)int Set:Add(int n) return 1;else if(PC =100) return O; else elemsPC+=n;return 1;Set:Set(Set &s) for(int i=O; i PC; i+)elemsi=s.elemsi;)void Set:Print()(cout ”;for(int i=O; i PC-1; i+) cout elemsi O)cout elemsPC-l;cout endl;)void main()Set A;cout A.IsEm

25、ptyO endl;A.Print();SetB;for(int i=l; i =8; i+)B.Add(i);B.Print(); )49.使用VC6打开考生文件夹下的工程MyProj3。此工程包含一个源程 序文件MyMain3.cpp,其中定义的类并不完整。请按要求完成下列操作, 将类的定义补充完整。定义类Planet的保护数据成员distance和revolve,它们分别表示行星 距太阳的距离和行星的公转周期。其中,distance为double型,revolve 为int型。请在注释“*1*”之后添加适当的语句。定义类Earth的构造函数Earth(double d,int r),并在

26、其中计算地球绕太 阳公转的轨道周长。假定:circumference=2*d*3.1416。请在注释“*2* 之后添加适当的语句。定义类Earth的成员show。,用于显示所有信息。包括地球距太阳的 距离,地球的公转周期,以及地球绕太阳公转的轨道周长。请在注释 “*3*,之后添加适当的语句。文件MyMain3.cpp中源程序如下: /MyMain3.cpp#include B.程序设计的主要目标是编制出运行结果正确的程序C.不良的程序设计风格会增加程序的复杂性D.上述三种说法都不对10.请找出下列程序中错误之处 O#include class A private :int xl ;protec

27、ted :int x2 ;public :int x3 ;);class B : public Aprivate :int yl ;protected :int y2 ;public :int y3 ;void disp()cout xl yl ”和输出运算符只能作为非 成员函数重载。重载输入流运算符“”须使用的原型是istream& operator(istream& ,类名&);。22 .A解析:本程序设计了一个点类Point,包含了横,纵两个坐标数据 x和y,由它派生出了圃类Circle,并加入了新的数据成员,即一个半径 r和一个求圆面积的函数成员area。在主函数main中,首先定义了

28、一个Circle类的对象cl,并通过它的构造函数初始化其数据成员。由此可知,其半径r的值为10,所以其面积为PI*10*10=314,即对象cl的函 数成员area的返回值为314。23.AAo【解析】选项A中,重载函数中是允许使用默认参数的;为了使重载函数有意义,不要使用重载函数来描述毫不相干的函数;重载函 数中编译是根据参数表进行选择的,包括参数的个数和类型。24 .软件开发软件开发解析:基于软件下程的目标,软件工程的理论和 技术性研究的内容主要包括:软件开发技术和软件工程管理。软件开发 技术包括:软件开发方法学、开发过程、开发工具和软件工程环境,其 主体内容是软件开发方法学。软件工程管理

29、包括:软件管理学、软件工 程经济学,以及软件心理学等内容。25 .循环结构循环结构解析:C+语言3种基本结构就是顺序结构,选 择结构,循环结构。26.1616解析:在深度为5的完全二叉树中,就属深度为5的满二叉树 中的叶子结点的个数最多,这些叶子结点均在最后一层(即第5层)上。 又根据二叉树的性质1 :在二叉树的第k层上,最多有2(41)个结点。 因此,在第5层上最多的结点数为2. = 16。27 .投影投影解析:专门的关系运算主要包括对单个关系进行垂直分解 (投影操作)或水平分解(选择操作)和对多个关系的结合(连接操作)等。28 .b=762b=762解析:本题考查了*a+的用法,*a+作为

30、表达式时,先 计算*a作为表达式的值,然后使指针变量a本身增1,在本题中,s*=*a+ 等同于s=s*a, a+, S后面第一个*是乘号。29 .模式或逻辑模式或概念模式模式或逻辑模式或概念模式30 .传地址传地址 解析:本题考查的是传值调用和传址调用的区别 传值调用只是进行值的简单复制,返回之后不会改变原来的值;而传址 调用是把参数的地址传入,会改变原来的值。31 .Derived(int i) :Base(i) Derived(int i) : Base(i)解析:程序中,类 Derived是基类Base的公有派生。在类Derived的构造函数应该包括调 用基类构造函数,使基类的数据成员得

31、以初始化。32.1233.1934 .j+ = 2 ai =aj或 ai ajj + = 2rnai = afj或 ai aj 解析:strlen函数是测试字符串长度的函数,函数的值为字符串中的实 际长度,不包括0在内。35 .重载重载36 .(1)应改为“ein . getline(str, 120, ?);n(2)应改为 while(stri)”。n应改为 =a & & stri,。n【解析】本题中要求以输入字符“?”为结束符,用于字符输入的流成员 函数getline函数读入一行字符,格式为“cin . getline(字符数组,字符个 数,终止标志字符字 所以第1处改为“cin . ge

32、tline(str, 120, ?);”。第 2处的“while(str)”语句应该是判断字符串str中的每一个字符是否为结 束符,若不是结束符,在循环中判断每一个字符是否为小写,若为小写, 则转换。所以应该修改为“while(stri)第3处的“if(stri=a)”语句是 判断字符stri是否为小写字符,而现有的语句只是判断字符是否大于a, 但是小写字符应该是a到2,所以修改为“if(stri=a& &stri=z)”。37 .( 1)应改为catch(char*s)。(2)应改为cateh(inti)”。(3)应改为catch(.)【解析】本题中第1个标识前的异常抛出语句为“throw(error);,其 中的类型为字符串。所以对应的异常捕捉语句catch中应该符合这个类 型,而程序中给出的语句“catch(chars)”是字符型的,所以第1处的语 句修改为catch(char*S)”。第2个标识前的异常抛出语句为 4tthrow(int)0); ,其中的类型为int。对应的异常捕捉语句catch中应 该符合这个类型,所以补充catch子句中的类型,否则如果找不到匹配 的catch块,系

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁