《2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计真题(含答案).docx》由会员分享,可在线阅读,更多相关《2021年辽宁省抚顺市全国计算机等级考试C++语言程序设计真题(含答案).docx(38页珍藏版)》请在优知文库上搜索。
1、2021年辽宁省抚顺市全国计算机等级考试C+语言程序设计真题(含答案)学校:班级:姓名:考号:一、L选择题(10题)1.下列关于虚函数的说法中,正确的是()。A.如果在重定义虚函数时使用了保留字VirtUa1,则该重定义函数仍然是虚函数B.虚函数不得声明为静态函数C.虚函数不得声明为另一个类的私有函数D.派生类必须重新定义基类的虚函数2 .数据的存储结构是指()。A.数据所占的存储空间B.数据的逻辑结构在计算机中的存放形式C.数据在计算机中的顺序存储方式D.存储在计算机外存中的数据3 .多态性指的是A.以任何方式调用一个虚函数8 .以任何方式调用一个纯虚函数C.借助于指向对象的基类指针或弓I用
2、调用一个虚函数D.借助于指向对象的基类指针或引用调用一个纯虚函数4 .在单链表中,增加头结点的目的是oA.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现5 .下列说法中错误的是()。A.公有继承时基类中的public成员在派生类中仍是public的B.公有继承时基类中的private成员在派生类中仍是private的C.私有继承时基类中的public成员在派生类中是private的D.保护继承时基类中的public成员在派生类中是protected的6 .在C+语言程序中A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义和调用
3、均可以嵌套C.函数的定义和调用均不可以嵌套D.函数的定义不可以嵌套,但函数的调用可以嵌套7 .若已定义inta=1,2,3,4,5,6,7,8,9,10,*p=a,i=5;则对数组元素的不正确的引用是A.ap-aB.*(&ai)C.piD.*(*(a+i)8 .与语句CoUtendl;不等价的是A.cout,n,;B.cout,12;C.cout,xA,;D.cout,+,*,D.l+,*12 .定义无符号整数为Ui叫下面可以作为类Uint实例化值的是()oA.369B.369C.0.369D.整数集合1,2,3,4,513 .用黑盒技术测试用例的方法之一为()。A.因果图B.逻辑覆盖C循环覆
4、盖D.基本路径测试14 .下列有关继承和派生的叙述中,正确的是()。A.派生类不彘访问基类的保护成员B.作为虚基类的类不能被实例化C.派生类应当向基类的构造函数传递参数D.虚函数必须在派生类中重新实现15 .算法的空间复杂度是指()。A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数16 .以下程序的执行结果为()。#includeclassSampleintn;public:Sample(inti)n=i;operator+()n+;)前缀重载运算符operator+(int)n+=2;后缀重载运算符voi
5、ddisp()cout,n=nendl;voidmain()SampleA(2),B(2);A+;+B;A.disp();A.disp();)A.n=4B.n=lC.n=3D.n=5n=3n=2n=4n=617 .已知一函数的形参说明为intarr56,则与此等效的形参说明为()oA.intarrB.int5C.int*a6D.int(*a)6(21)以下程序的执行结果是()。#includeclassTestClass2(public:TestClass2();TestClass2(inti,intj);voidprintb();private:inta,b;);classTestClass
6、l(public:TestClassl()TestClassl(inti,intj);voidprinta();private:TcstClass2c;;TestClass1:TestClass1(inti,intj):c(ij)()voidTcstClass1:printaO(c.printb();)TestC!ass2:TestClass2(inti,intj)(a=i;b=j;voidTestClass2:printb()(coutMa=a,nb=Hbendl;voidmain()r(TestClasslm(7,9);m.printa();C) a=7, b=9D) a=8, b=9A)
7、a=7b=8B)a=8,b=719 .下面对静态数据成员的描述中,正确的是()。A.静态数据成员可以在类体内进行初始化B.静态数据成员不可以被类的对象调用C.静态数据成员不能受private控制符的作用D.静态数据成员可以直接用类名调用20 .下列函数的运行结果是()。#includeintf(inta,intb)intc;if(ab)c=l;elseif(a=b)c=0elsec=-1;retum(c);voidmain()inti=2,j=3;intp=f(i,j);coutp:)A.-lB.lC.2D.编译出错,无法运行21 .若变量已正确定义并赋值,以下符合C+语言语法的表达式是()O
8、A.A.a:=b+1B.a=b=c+2C.intl8.5%3D.a=a+7=c+b22 .有如下函数定义:voidfunC(inta,int&B.a+;b+;)若执行代码段:intx=0jY=I;funC(X,Y);则变量X和y的值分别是()。AO和1B.1和1C.0和2D.1和223 .设ima=l,b=2;,则(a+)+b和a+b这两个表达式的值分别为()。A.3,3B.3,4C.4,3D.4,4三、2.填空题(12题)24 .模块的独立程度可以由两个定性标准度量。其中,是度量一个模块功能强度的一个相对指标。25 .请将下列程序的横线处补充完整,使得输出结果为bbaa#includeusi
9、ngnamespacestd;classApublic:coutaa;);classBrpublicApublic:-B()coutbb;);intmain()B*p=new26 .下列程序的运行结果是【】。#includeclassA(inta,b;public:A()a=b=0;)A(intaa,intbb)(a=aa;b=bb;coutabendl;voidmain()Ax,y(2,3),z(4,5);27 .长度为n的顺序存储线性表中,当在任何位置上插入一个元素概率都相等时,插入一个元素所需移动元素的平均个数为【】。28 .在MyCIaSS类的定义中,对赋值运算符;进行重载。请将横线处
10、缺失的部分补充完整。MyClass:operator=(constMyClass&rhs)(if(this=&rhs)return*this;value=rhs.value;return*this;)29 .某二叉树中度为2的结点有n个,则该二叉树中有【】个叶子结点O30 .设i,j,k均为int型变量,则执行完for(i=0,j=10;i=j;i+lj-)k=i+j;语句后,k的值为031 .请在下列程序中的空格处填写正确的语句:classSamplepublic:Sample()-Sample()voidSetData(intdalA)将Sample类成员变量data设置成形参的值priv
11、ate:intdata;32 .某二叉树中度为2的结点有18个,则该二叉树中有【】个叶子结点O33 .Jackson方法是一种面向的结构化方法。34 .Jackson结构化程序设计方法是英国的M.Jackson提出的,它是一种面向【】的设计方法。35 .假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为【】。四、程序改错题(10题)36 .使用VC+6.。打开考生文件夹下的源程序文件1cpp,该程序运行有问题,请改正main函数中的错误,使程序的输出结果为:number=1number=10number=100注意:不要改动main函数,不能增加或删除行。也不能更改程序
12、的结构,错误的语句在/*error*的下面。试题程序:#includeclassTCpublic:TC(inti)(number=i;)voidSetNumber(intm)(number=m;)intGetNumberconst(retumnumber;)VoidPrintconst(coutnumber=numberendh)private:intnumber;voidmain(I/*error*TCobjhobjl.Print;TCobj2(3);I/*error*objl.number=10;/*error*%0*TC.SetNumber(l00);objl.Print;obj2.Pr
13、int;37 .使用VC+60打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正程序中的错误。本程序要求实现的功能为从键盘输入一个字符串,并将结果保存到文件1tt中。注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在I!*error*卜试题程序:#include#include!1*e*0r*usingstd;VoidWriteFile(Char*s)(Ofstreamoutl;!1*e*0r*outl.open(u1.txt,binaryapp);for(inti=0;si!=0;i+)(1i*e*or*outl.puts(si);outl.close;VoidClearFile(Ofstreamoutl;outl.open(,l.txt);outl.close;)intmain