【计算机类职业资格】全国计算机等级考试二级C++真题2005年4月及答案解析.doc
《【计算机类职业资格】全国计算机等级考试二级C++真题2005年4月及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】全国计算机等级考试二级C++真题2005年4月及答案解析.doc(13页珍藏版)》请在麦多课文档分享上搜索。
1、全国计算机等级考试二级 C+真题 2005年 4月及答案解析(总分:94.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.数据的存储结构是指(分数:2.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示2.下列关于栈的描述中错误的是(分数:2.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针3.对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是(分数:2.00)A.冒泡排序 n/2B.冒泡排序为 nC.快
2、速排序为 nD.快速排序为 n(n-1)/24.对长度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为(分数:2.00)A.log2nB.n/2C.nD.n+15.下列对于线性链表的描述中正确的是(分数:2.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的6.下列对于软件测试的描述中正确的是(分数:2.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发
3、现程序中的错误D.软件测试的目的是使程序符合结构化原则7.为了使模块尽可能独立,要求(分数:2.00)A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强8.下列描述中正确的是(分数:2.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合9.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指(分数:2.00)A.数据与程序独立存放B.不同的数据被
4、存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对10.用树形结构表示实体之间联系的模型是(分数:2.00)A.关系模型B.网状模型C.层次模型D.以上三个都是11.要定义数组 A,使得其中每个元素的数据依次为:3、9、4、8、0、0、0,错误的定义语句是(分数:2.00)A.int A =3,9,4,8,0,0,0;B.int A7=3,9,4,8,0,0,0;C.int A =3,9,4,8);D.int A7=3,9,4,8);12.在 C+中,实现封装性需借助于(分数:2.00)A.枚举B.类C.数组D.函数13.下列关于虚函数的描述中,正确的是(分数:2
5、.00)A.虚函数是一个 static类型的成员函数B.虚函数是一个非成员函数C.基类中采用 virtual说明一个虚函数后,派生类中定义相同原型的函数时可不必加 virtual说明D.派生类中的虚函数与基类中相同原型的虚函数具有不同的参数个数或类型14.下列关于运算符重载的描述中,正确的是(分数:2.00)A.运算符重载可以改变操作数的个数B.运算符重载可以改变运算符的优先级C.运算符重载可以改变运算符的结合性D.运算符重载可以使运算符实现特殊功能15.有如下函数模板声明: templatetypename T T Max(Ta,Tb)return(a=b)?a:b;) 下列对函数模扳 Ma
6、x的调用中错误是(分数:2.00)A.Max(3.5,4,5)B.Max(3.5,4)C.Maxdouble(3.5,4.5)D.Maxdouble(3.5,4)16.若语句: coutsetfill()setw(5)3141512setw(5)“OK!“; 是程序中第一个输出语句,则输出结果是(分数:2.00)A.3141512OK!B.31415120K!C.414150K!D.31415OK!17.有如下语句序列; int k=0; dok+=5;couk$;) while(k19); while(k-0)cout*; 执行上面的语句序列输出字符$和。的个数分别是(分数:2.00)A.4
7、和 20B.5和 20C.4和 21D.5和 2118.针对数组定义 int data10;,下列表述中错误的是(分数:2.00)A.用*data 可访问到数组的首元素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data共有 10个元素,其首元素是 data119.已知 n是一个 int型变量,下列语句中错误的是(分数:2.00)A.long *p=new long;B.long p;C.long *p=new long(;D.longpr10;20.下列函数中对调用它的函数没有起到任何作用的是(分数:2.00)A.void f1(double)C.
8、void f3(double -x;)D.double f4(double *-*x;retum *x;21.在下面的类定义中,横线处应填入的内容是 class Fred public: void print()coutdataendl; void setData(double d)(data=d; static int count; private: double data; ; count=0; /静态数据成员的定义(分数:2.00)A.intB.static intC.int Fred:D.static int Fred:22.有如下程序: #includeiostream using
9、namespace std; class Base protected: in i; public: int j; ; class Derived:public Base int m; public:int n; ; int main() Derived d; d.i=0; /1 d.j=0; /2 d.m=0; /3 d.n=0; /4 retum 0; 其中主函数中有两个赋值语句有错,这两个借误的赋值语句是(分数:2.00)A.1和2B.1和3C.2和3D.2和423.在表达式 x-y中,“_”是作为非成员函数重载的运算符。若使用显式的函数调用代替直接使用运算符“_”,这个表达式还可表示为
10、(分数:2.00)A.operator-(B.operator-(y,C.operator-(D.operator-(x,24.下面的函数模板定义中错误的是(分数:2.00)A.templateB.template Q F(Q retum Q+x;) Q F(Q return x+x;C.templateclassTD.templateclass T TF(T return x*x;) Bool F(treturn x1;)25.已知 outfile是一个输出流对象,要想将 outfile的文件指针定位到当前位置之前 321字节处,正确的函数调用语句是(分数:2.00)A.outfilseek
11、p(321,ios_base:cu;B.outfilseekp(321,ios_base:bg;C.outfilseekp(-321,ios_base:be;D.outfilseekp(-321,ios_base:cu;26.有如下的程序: #includecstring #includeiostream using namespace std; class MyString public: MyString(const char*s); MyString()deletedata; Protected: unsigned len; char*data; ; MyString:MyString(
12、const char*s) len=strlen(s); data=new charlen+1; strcpy(data,s); int main() MyString a(“C+Programing“); MyString b(a); return 0; 在运行上面的程序时出错,出错的原因是(分数:2.00)A.构造函数的实参不允许是本类的对象B.没有定义实现深层复制(深拷贝)的拷贝构造函数C.构造对象 a时实参与形参类型不符D.系统不能生成缺省的拷贝构造函数27.有如下程序: #includeiostream using namespace std; class Demo public:
13、Demo() cout“default constructor/n“; Demo(const Demo Demo userCode(Demo b)DemoC(b);return c; int main() Demo a,d; cout“calling userCode()/n“; d=userCode(a); return 0; 执行上面程序的过程中,构造函数 Demo()和 Demo(const Demo 与语句 ff=O;的效果完全相同。对于这一现象,下列表述中错误的是(分数:2.00)A.ff是某个类的数据成员,func 是该类的友元函数B.ff是某个类的数据成员,func 是该类的成员
14、函数C.this-ff 和 ff是同一个变量D.func不是一个静态成员函数29.有如下程序: #includeiostream using namespace std; class Base pubfic: Base()cout“BB“;f(); void f()cout“Bf“: ; class Derived:public Base public: Derived()cout“DD“;) voidf()cout“Df“: ; intmain()Derived d;retum 0; 执行上面的程序将输出(分数:2.00)A.BBBfDDB.BBDfDDDfC.DDD.DDBBBf30.下列
15、说法中错误的是(分数:2.00)A.公有继承时基类中的 public成员在派生类中仍是 public成员B.私有继承时基类中的 protecte成员在派生类中仍是 protected成员C.私有继承时基类中的 public成员在派生类中是 private成员D.保护继承时基类中的 public成员在派生类中是 protected成员31.下面是关于派生类声明的开始部分,其中正确的是(分数:2.00)A.class virtual B:public AB.virtual class B:public AC.class B:public A virtualD.class B:virtual pub
16、lic A32.在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是(分数:2.00)A.后缀一元运算符B.前缀一元运算符C.无操作数的运算符D.二元运算符34.有如下程序: #qncludeiostream #includeiomanip using namespace std; class CSum int x,y; public: CSum(int x0,int y0):x(xo),y(yo) friend ostream return os; ; int main() CSum y(3.5; coutsetfill(*)8 couty; return0; 执行上面程序
17、的输出是(分数:2.00)A.88B.*88C.*8*8D.8*835.有如下程序: #ncludeiostremn using namespace std; class Stack public: Stack(unsigned n=10:size(n)rep_=new intsize;top=O; Stack(Stack for(int i=0;isize;i+)rep_i=s.rep_i; top=s.top; Stack()deleterep_; void push(int a)rep_top=a; top+; int opo()-top;return rep_top; bool is
18、Empty()constreturn top=O; pavate: int*rep_; unsigned size,top; ; int main() Stack s1; for(int i=1;i5;i+) s1.push(i); Stack s2(s1); for(i=1;i3;i+) couts2.pop(),; s2.push(6); s1.push(7); while(!s2.isEmpty() couts2.pop(),; return 0; 执行上面程序的输出是(分数:2.00)A.4,3,2,1B.4,3,6,7,2,1C.4,3,6,2,1D.1,2,3,4二、B填空题/B(
19、总题数:12,分数:24.00)36.某二叉树中度为 2的结点有 18个,则该二叉树有 【1】 个叶子结点。(分数:2.00)填空项 1:_37.在面向对象方法中,类的实例称为 【2】 。(分数:2.00)填空项 1:_38.诊断和改正程序中错误的工作通常称为 【3】 。(分数:2.00)填空项 1:_39.在关系数据库中,把数据表示成二维表,每一个二维表称为 【4】 。(分数:2.00)填空项 1:_40.问题处理方案的正确而完整的描述称为 【5】 。(分数:2.00)填空项 1:_41.在下面函数的横线处填上适当的内容,使该函数能够利用递归方法求解字符串 sb的长度(不得使用系统提供的字符
20、串处理函数)。 int GetLen(char*str) it(U 【6】 /U)returnU 【7】 /U; else return 1+GetLen(str+1); (分数:2.00)填空项 1:_42.下列程序的输出结果是U 【8】 /U。 #includeiostream #includecstring using namespace std; void fun(const char *s,char int main() char str=“ABCDE“; char ch=str1; fun(str,ch); coutch; return 0; (分数:2.00)填空项 1:_43.
21、在下面程序的横线处填上适当的内容,使程序执行后的输出结果果为 1/2005。 #includeiostmam using namespace std; class Date public: Date(int m=1,int y=0):month(m),year(y) void Print()coutmonth“/“yearendl; operator+(const Date private: int month,year; ; operator+(const Date year=d1.year+d2.year; month=d1.month+d2.month; year+=(month-1)/
22、12; month=(month-1)%12+1; return Date(month,year); void main() Date d1(3,2004),d2,d3(10); d2=d3+d1; d2.Print(); (分数:2.00)填空项 1:_44.在下面程序的横线处填上适当的内容,使程序执行后的输出结果为 ABCD。 #includeiostream using namespace std; class A public: A()coutA; ; class B:U 【11】 /U public:B()coutB;) ; class C: U【12】 /U public;C()c
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 全国 计算机等级考试 二级 2005 答案 解析 DOC
