【计算机类职业资格】全国计算机等级考试二级C++真题2006年9月及答案解析.doc
《【计算机类职业资格】全国计算机等级考试二级C++真题2006年9月及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】全国计算机等级考试二级C++真题2006年9月及答案解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、全国计算机等级考试二级 C+真题 2006年 9月及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.下列选项中不符合良好程序设计风格的是(分数:2.00)A.源程序要文档化B.数据说明的次序要规范化C.避免滥用 goto语句D.模块设计要保证高耦合、高内聚2.从工程管理角度,软件设计一般分为两步完成,它们是(分数:2.00)A.概要设计与详细设计B.数据设计与接口设计C.软件结构设计与数据设计D.过程设计与数据设计3.下列选项中不属于软件生命周期开发阶段任务的是(分数:2.00)A.软件测试B.概要设计C.软件维护D.详细设计4.在数据
2、库系统中,用户所见的数据模式为(分数:2.00)A.概念模式B.外模式C.内模式D.物理模式5.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计6.设有如下三个关系表 (分数:2.00)A.TRSB.TRSC.TRSD.TRS7.下列叙述中正确的是(分数:2.00)A.一个算法的空间复杂度大,则其时间复杂度也必定大B.一个算法的空间复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度火,则其空间复杂度必定小D.上述三种说法都不对8.在长度为 64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为(分数:2.00)A.
3、63B.64C.6D.79.数据库技术的根本目标是要解决数据的(分数:2.00)A.存储问题B.共享问题C.安全问题D.保护问题10.对下列二叉树 (分数:2.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG11.下列有关内联函数的叙述中,正确的是(分数:2.00)A.内联函数在调用时发生控制转移B.内联函数必须通过关键字 inline来定义C.内联函数足通过编译器来实现的D.内联函数函数体的最后一条语句必须是 return语句12.下列情况中,不会调用拷贝构造函数的是(分数:2.00)A.用一个对象去初始化同一类的另一个新对象时B.将类的一个对象赋值给该类的另一
4、个对象时C.函数的形参是类的对象,调用函数进行形参和实参结合时D.函数的返回值是类的对象,函数执行返回调用时13.下列有关继承和派生的叙述中,正确的是(分数:2.00)A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员B.派生类的成员函数可以防问基类的所有成员C.基类对象可以赋值给派生类对象D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类14.下列运算符不能重载为友元函数的是(分数:2.00)A.()-B.+ - + -C. D.+ - * /15.关于在调用模板函数时模板实参的使用,下列表述正确的是(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如
5、果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略16.下列关于输入流类成员函数 getline()的描述中,错误的是(分数:2.00)A.该函数是用来读取键盘输入的字符串的B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格17.下列符号中,正确的 C+标识符是(分数:2.00)A.enumB.2bC.foo-9D._3218.下列语句
6、中,错误的是(分数:2.00)A.const int buffer=256;B.const double *point;C.int const buffer=256;D.double * const point;19.if语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句1else语句 2 关于上面的语法格式,下列表述中错误的是(分数:2.00)A.条件部分可以是一个 if语句,例如 if(if(a=0)B.语句部分可以是一个 if语句,例如 if()if()C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循
7、环语句,例如 if()while()20.有如下说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9的表达式是(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+821.若有下面的函数调用: fun(a+b,3,max(n-1,b) 则 fun的实参个数是(分数:2.00)A.3B.4C.5D.622.以下关键字不能用来声明类的访问权限的是(分数:2.00)A.publicB.staticC.protectedD.private23.在公有继承的情况下,允许派生类直接访问的基类成员包括(分数:2.00)A.公有成员B.公有成员和保护成员C.公
8、有成员、保护成员和私有成员D.保护成员24.关于运算符重载,下列表述中正确的是(分数:2.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符25.关于关键字 class和 typename,下列表述中正确的是(分数:2.00)A.程序中的 typename都可以替换为 classB.程序中的 class都可以替换为 typenameC.在模板形参表中只能用 typename来声明参数的类型D.在模板形参表中只能用 class或 typename来声明参数的类型2
9、6.有如下程序 #includeiostream #includeiomanip using namespace std; int main() coutsetprecision(3)fixedsetfill(*)setw(8); cout12.345_34.567; return 0; 若程序的输出是: * 12.345*34.567 则程序中下划线处遗漏的操作符是(分数:2.00)A.setprecision(3)B.fixedC.setfill(*)D.setw(8)27.有如下程序 #include iostream #include iomanip using namespace s
10、td; class MyClass public: MyClass() coutA; MyClass(char c) coutc; MyClass() coutB; ;int main( ) MyClass p1,*p2; p2=new MyClass(X); delete p2; return 0; 执行这个程序屏幕上将显示输出(分数:2.00)A.ABXB.ABXBC.AXBD.AXBB28.有如下程序 #include iostream using namespace std; int i=1; class Fun public: static int i; int value( ) r
11、eturn i-l; int value( )const return i+1; ; int Fun:i=2; int main( ) int i=3; Fun funl; const Fun fun2; _ return 0; 若程序的输出结果是: 123 则程序中下划线处遗漏的语句是(分数:2.00)A.coutfunvalue( )Fun:ifun2.value( );B.coutFun:ifunvalue()fun2.value( );C.coutfunvalue( )fun2.value( )Fun:i;D.coutfun2.value( )Fun:ifun1.value( );29
12、.有如下程序: #include iostream using namespace std; class Obj static int i; public: Obj( )i+; Obj()i-; static int getVal( ) return i; ; int Obj:i=0; void f() Obj ob2; coutob2.getVal( ); int main( ) Obj ob1; f(); Obj *ob3=ew Obj; coutob3-getVal( ); delete ob3; coutObj:getVal( ); return 0; 程序的输出结果是(分数:2.00
13、)A.232B.231C.222D.22130.有如下程序 #include iostream using namespace std; class Base protected: Base( )coutA; Base(char c) coutc; ; class Derived: public Base public: Derived(char c) coutc; ; int main( ) Derived d1 (B); return 0; 执行这个程序屏幕上将显示输出(分数:2.00)A.BB.BAC.ABD.BB31.有如下类定义: class MyBase int k; public
14、: MyBase(int n=0):k(n) int value( )const return k; ; class MyDerived: MyBase intj; public: MyDerived(int i): j(i) int getK( )const return k; int getJ( )const return j; ; 编译时发现有一处语法错误,对这个错误最准确的描述是(分数:2.00)A.函数 getK试图访问基类的私有成员变量 kB.在类 MyDerived的定义中,基类名 MyBase前缺少关键字 public、protected 或 privateC.类 MyDeri
15、ved缺少一个无参的构造函数D.类 MyDerived的构造函数没有对基类数据成员 k进行初始化32.在一个派生类对象结束其生命周期时(分数:2.00)A.先调用派生类的析构函数后调用基类的析构函数B.先调用基类的析构函数后调用派生类的析构函数C.如果基类没有定义析构函数,则只调用派生类的析构函数D.如果派生类没有定义析构函数,则只调用基类的析构函数33.有如下的运算符重载函数定义: double operator +(int i,int k)return double(i+k); 但定义有错误,对这个错误最准确的描述是(分数:2.00)A.+只能作为成员函数重载,而这里的+是作为非成员函数重
16、载的B.两个 int型参数的和也应该是 int型,而这里将+的返回类型声明为 doubleC.没有将运算符重载函数声明为某个类的友元D.C+已经提供了求两个 int型数据之和的运算符+,不能再定义同样的运算符34.语句 ofstream f(“SALARYDAT“,ios_base:app);的功能是建立流对象 f,并试图打开文件SALARY.DAT与 f关联,而且(分数:2.00)A.若文件存在,将其置为空文件;若文件不存在,打开失败B.若文件存在,将文件指针定位于文件尾:若文件不存在,建立一个新文件C.若文件存在,将文件指针定位于文件首;若文件不存在,打开失败D.若文件存在,打开失败;若文
17、件不存在,建立一个新文件35.有如下程序 #include iostream using namespace std; class A public: virtual void funcl( ) cout“A1“; void func2( ) cout“A2“; ; class B:public A public: void funcl( ) cout“B1“; void func2( ) cout“B2“; ; int main( ) A *p=new B; p-func1 ( ); p-func2( ); return 0; 运行此程序,屏幕上将显示输出(分数:2.00)A.B1B2B.A
18、1A2C.B1A2D.A1B2二、B填空题/B(总题数:15,分数:30.00)36.下列软件系统结构图 (分数:2.00)填空项 1:_37.U【2】 /U的任务是诊断和改正程序中的错误。(分数:2.00)填空项 1:_38.一个关系表的行称为U 【3】 /U。(分数:2.00)填空项 1:_39.按“先进后出”原则组织数据的数据结构是U 【4】 /U。(分数:2.00)填空项 1:_40.数据结构分为线性结构和非线性结构,带链的队列属于U 【5】 /U。(分数:2.00)填空项 1:_41.若有定义语句:int* a,b;,则变量 b的数据类型是U 【6】 /U。(分数:2.00)填空项
19、1:_42.已知数组 a中的元素个数为 n,下列语句的作用是将下标为 i的元素移动到下标为 i-1 的单元,其中1in。例如,当 n4,a 中原有数据为 1,2,3,4 时,则移动后 a中元素变为 2,3,4,4。请将语句补充完整: for(int i=0;in-1;i+) ai=aU 【7】 /U;(分数:2.00)填空项 1:_43.已知递归函数 f的定义如下: int f(int n) if(n =1)return 1; /递归结束情况 else return n*f(n-2); /递归 则函数调用语句 f(5)的返回值是U 【8】 /U。(分数:2.00)填空项 1:_44.创建对象数
20、组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数。下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是U 【9】 /U。 #includeiostream using namespace std; class Foo public: Foo(int x)coutA; Foo() ; int main() Foo f3, g(3); return 0; (分数:2.00)填空项 1:_45.已知下列程序的输出结果是 42, 请将画线处缺失的部分补充完整。 #includeiostream using namespace std; class
21、Foo int value; public: Foo( ): value(0) void setValue(int value) U 【10】 /U=value; /给 Foo的数据成员 value赋值 void print( ) coutvalue; ; int main( ) Foo f; f.setValue(42); f.print(); return 0;(分数:2.00)填空项 1:_46.如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问问从基类继承的成员。下列程序没有使用多态机制,其输出结果是U 【11】 /U。 #include iostream us
22、ing namespace std; class Base public: void print ( ) cout B; ; class Derived: public Base public: void print ( ) cout D; int main( ) Derived* pd = new Derived( ); Base* pb = pd; pb-print( ); pd-print(); delete pd; return 0; (分数:2.00)填空项 1:_47.在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承 private。 已知有如下类定义: cla
23、ss Base protected: void fun() ; class Derived:Base; 则 Base类中的成员函数 fun(),在 Derived类中的访问权限是U 【12】 /U(注意:要求填写 private、protected或 public中的一项)。(分数:2.00)填空项 1:_48.在 MyClass类的定义中,对赋值运算符二进行重载。请将画线处缺失的部分补充完整。 U【13】 /UMyClass:operator(const MyClassj0;-j) if(t=aj-1)break; aj=aj-1; aj=t; protected: int*a,n;/指针
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 全国 计算机等级考试 二级 2006 答案 解析 DOC
