历年二级C++真题及答案_第1页
历年二级C++真题及答案_第2页
历年二级C++真题及答案_第3页
历年二级C++真题及答案_第4页
历年二级C++真题及答案_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、公共基础知识及 C+ 语言程序设计 (考试时间 90 分钟,满分 100)分)(1) C (2) C (3) B (4) A (5) D 一、选择题(35)每小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题 卡相应位置上,答在试卷上不得分。 (1)下面叙述正确的是 A)算法的执行效率与数据的存储结构无关 B)算法的空间复杂度是指算法程序中指令(或语句)的条数 C)算法的有穷性是指算法必须能在执行有限个步骤之后终止 D)以上三种描述都不对 (2)以下数据结构中不属于线性数据结构的是 D)栈 A)队列B)线性表C)二叉树 (3)在一棵二叉

2、树上第5层的结点数最多是 D) A)8B)16C)32 (4)下面描述中,符合结构化程序设计风格的是 A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑 B)模块只有一个入口,可以有多个岀口 C)注重提高程序的执行效率 D)不使用goto语句 (5)下面概念中,不属于面向对象方法的是 C)类D)过程调用 (DFD) 作为描述工具的软件开发阶段是 C)详细设计D)程序编码 A)对象B)继承 (6)在结构化方法中,用数据流程图 A)可行性分析B)需求分析 (7)在软件开发中,下面任务不属于设计阶段的是 B)给岀系统模块结构 D)定义需求并建立系统模型 A)数据结构设计 C)定义模块

3、算法 (8)数据库系统的核心是 C)软件工具 D)数据库 A)数据模型 B)数据库管理系统 (9)下列叙述中正确的是 A)数据库系统是一个独立的系统,不需要操作系统的支持 B)数据库设计是指设计数据库管理系统 C)数据库技术的根本目标是要解决数据共享的问题 D)数据库系统中,数据的物理结构必须与逻辑结构一致 (10)下列模式中,能够给岀数据库物理存储结构与物理存取方法的是 A)内模式 B)外模式 C)概念模式 D)逻辑模式 (11)关于面向对象的程序设计方法,下列说法正确的是 A)封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理 B)“多态性 ”指的是对象的状态会根据运行时要

4、求自动变化 C)基类的私有成员在派生类的对象中不可访问,也不占内存空间 D)在面向对象的程序设计中,结构化程序设计方法仍有着重要作用 (12)判断字符型变量 ch 是否为大写英文字母,应使用表达式 精品文库 欢迎下载91 A ) ch=A switch( n) case 1: B ) ch=Z D ) ch=A C ) (x+y)+; D ) +x=y; case 2: cout 1; case 3: case 4: cout 2; break; default: cout 3; 时,若键盘输入1,则屏幕显示 A)1B)2C)3 (15)下列程序的输岀结果是 #in clude D)12 us

5、ing n ames pace std; int mai n() char a = Hello, World; char *ptr = a; while (*p tr) if (*p tr = a else cout *ptr; ptr+; return 0; A ) HELLO, WORLD C ) hELLO, WORLD B ) Hello, World D ) hello, world (16) 已知:int m=10 ;在下列定义引用的语句中,正确的是 A ) int B )i nt y= C )int D ) int (17) 下列函数原型声明中错误的是 A ) void Fun

6、(i nt x=0, i nt y=0); B ) void Fun (i nt x, i nt y); C ) void Fun (i nt x, i nt y=0); D ) void Fun(int x=0, i nt y); (18) 已知程序中已经定义了函数test,其原型是int test(int, int, int);,则下列重载形式中正确的是 A ) char test( in t,i nt,i nt); A)1,2,1,2,B)1,2,2,3, (20)已知函数f的原型是: 调用语句是 B) f(v1, v2); D) f( A) f(v1, C) f( (21) 有以下类定

7、义 class MyClass public: MyClass()cout1; ; 则执行语句 MyClass a, b2, * p 2;后,程序的输岀结果是 A)11B)111C)1111D)11111 (22) 关于友元,下列说法错误的是 A) 如果类A是类B的友元, B) 如果函数fun()被说明为类 C) 友元关系不能被继承 D) 如果类A是类B的友元, 那么类 B也是类A的友元 A的友元,那么在fun()中可以访问类 A的私有成员 那么类 A的所有成员函数都是类 B的友元 B ) double test(i nt,i nt,double); C ) int test(i nt,i n

8、t,i nt=O); D ) float test(i nt,i nt,float=3.5F); (19)有以下程序 #in clude int i = 0; void fun () static int i = 1; std:couti+,: std:couti,; int mai n() fun ();fun(); return 0; 程序执行后的输岀结果是 C)2,0,3,0,D)1,0,2,0, void f(int *a, long 变量 v1、v2 的定义是:int v1;long v2;,正确的 (23) 关于动态存储分配,下列说法正确的是 A) new和delete是C+语言中

9、专门用于动态内存分配和释放的函数 B) 动态分配的内存空间也可以被初始化 C) 当系统内存不够时,会自动回收不再使用的内存单元,因此程序中不必用delete释放内存空间 new D) 当动态分配内存失败时,系统会立刻崩溃,因此一定要慎用 (24) 有以下程序 #in clude using n ames pace std; class MyClass public: MyClass(i nt n)n umber = n; /拷贝构造函数 MyClass(MyClass MyClass() private: int n umber; ; MyClass fun (MyClass p) MyCla

10、ss tem p(p); return temp; int mai n() MyClass obj1(10), obj2(0); MyClass obj3(obj1); obj2=fu n(obj3); return 0; 程序执行时,MyClass类的拷贝构造函数被调用的次数是 A)5B)4C)3D)2 (25) 在公有派生的情况下,派生类中定义的成员函数只能访问原基类的 A) 公有成员和私有成员B)私有成员和保护成员 C) 公有成员和保护成员D)私有成员、保护成员和公有成员 (26) 在C+中用来实现运行时多态性的是 A) 重载函数B)析构函数 C)构造函数D)虚函数 (27) 一个类可以

11、同时继承多个类,称为多继承。下列关于多继承和虚基类的表述中,错误的是 A) 每个派生类的构造函数都要为虚基类构造函数提供实参 B) 多继承时有可能岀现对基类成员访问的二义性问题 C) 使用虚基类可以解决二义性问题并实现运行时的多态性 D) 建立最派生类对象时,虚基类的构造函数会首先被调用 (28) 在一个类体的下列声明中,正确的纯虚函数声明是 A) virtual void vf()=0;B) void vf(in t)=0; C) virtual in t vf(i nt);D) virtual void vf(i nt) (29) 在下面的运算符重载函数的原型中,错误的是 A) Volum

12、e op erator - (double, double); B) double Volume:。perator- (double); C) Volume Volume: :operator - (V olume); D) Volume operator - (V olume, Volume); (30) 下列是模板声明的开始部分,其中正确的是 A) temp late B) temp late C) temp late D) temp late (31) 执行语句序列 ofstream outfile(DATA.DAT); if()cout OK; else cout 是一个( A)用于输

13、岀操作的非成员函数 C)用于输岀操作的成员函数 (33) 有以下类定义 class Point public: Poin t(i nt x = 0, i nt y = 0) _.x = x; _.y = y; void Move(i nt xOff, i nt yOff) _x += xOff; _.y += yOff; void Prin t() const cout ( _x , _y ) en dl; private: int _x, _y; ; 下列语句中会发生编译错误的是 ) B)用于输入操作的非成员函数 D)用于输入操作的成员函数 A) Poi nt pt; pt.Prin t()

14、; B) const Poi nt pt; pt. Prin t(); C) Poi nt pt; pt.Move(l, 2); D) con st Poi nt pt; pt.Move(l, 2); (34)有以下类定义 class MyClass private: int id; char gen der, char *phone; public: MyClass():id(O),ge nder(#) ,phon e(NULL) MyClass(i nt no, char ge=#, char *ph= NULl.) id=no ;ge nde=ge ;phone=p h; ; 下列类对象

15、定义语句中错误的是 A) MyClass myObj; B) MyClass myObj(11,; C) MyClass myObj(12, m); D) MyClass myObj(12); (35)有以下程序 #in clude using n ames pace std; class Complex public: Comp lex(double r =0, double i =0):re(r), im(i) double real() const retur n re; double imag() const retur n im; Comp lex op e

16、rator +(Co mplex c) const return Compl ex(re+c.re, im+c.im); private: double re, im; ; int mai n() Comp lex a = Compl ex(l, 1) + Compl ex(5); cout a.real() + a.imag() i en dl; return 0; 程序执行后的输岀结果是 A) 6+6i B) 6+1i C) 1+6i 二、填空题(每空2分,共30分) 请将每一个空的正确答案写在答题卡 命令关键字填空的必须拼写完整。 D) 1+1i 1卜15序号的横线上,答在试卷上不得分。

17、注意:以 (1) 算法的复杂度主要包括时间1 (2) 数据的逻辑结构在计算机存储空间中的存放形式称为数据的 理存储结构。 复杂度和空间复杂度。 2存储结构或物理结构或物 (3) 若按功能划分,软件测试的方法通常分为白盒测试方法和 (4) 如果一个工人可管理多个设备,而一个设备只被一个工人管理,则实体 之间存在 4 一对多的联系。 (5) 关系数据库管理系统能实现的专门关系运算包括选择、连接和 (6) 设有定义语句:int a=12 ;,则表达式a*=2+3的运算结果是 (7) 从实现的角度划分,C+所支持的两种多态性分别是 性。 7 3黑盒或黑箱测试方法。 工人”与实体设备” 投影。 5 6

18、编译时的多态性和运行时的多态 60。 friend。 (8) 将一个函数声明为一个类的友元函数必须使用关键字8 (9) 请按下面注释的提示,将类B的构造函数定义补充完整。 class A int a; public: A(i nt aa=0) a=aa; ; class B: p ublic A int b; A c; public: /用aa初始化基类A,用aa+1初始化类对象成员c B(i nt aa): 9 A(aa),c(aa+1) b=aa+2; ; 107。 (10) 下列程序的输岀结果是 #in clude using n ames pace std; int mai n() i

19、nt i = 5; int r = 7; cout i en dl; return 0; 11042。 (11) 下列程序的输岀结果是 #in clude using n ames pace std; class Test public: Test() cn t+; Test() cn t-; static int Coun t() retur n cn t; private: static int ent; ; int Test:c nt = 0; int mai n() cout Test:Cou nt0 ; Test tl, t2; Test* pT3 = new Test; Test*

20、 pT4 = new Test; cout Test:Cou nt0 : delete pT4; delete pT3; cout Test:Cou nt() en dl; return 0; (注:阶乘的定义是 (12) 下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。 n !=n*( n-1)*.*2T) un sig ned fact(u nsig ned n) if ( n= 1) return 1; return 12 n*fact(n-1); (13)下列程序的输岀结果是133,3.14 #in clude using n ames pace std; tempi at

21、e T fun(T a, T b) return (a=b)?:b; int mai n() cout fun (3, 6) , fun (3.14F, 6.28F) name等价的表达式是14 (*p).name 1525。 (15) 下列程序的输岀结果是 #in clude using n ames pace std; class base p ublic: int n; base(i nt x) n = x; virtual void set(i nt m) n = m; cout n ; ; class deriveA:p ublic base public: deriveA(i nt

22、 x):base(x) void set(mt m) n += m; cout n ; ; class deriveB:p ublic base p ublic: deriveB(i nt x):base(x) void set(i nt m) n +=m; cout n set(1); P base = p base-set(2); return 0; 2004年9月 全国计算机等级考试二级笔试试卷 公共基础知识及 C+语言程序设计 答案及评分标准 选择题(1) (35)每小题2分,共70分) 二、填空题 (1)1 2 3 4 (5)5 (每空2分,共30分) 时间 存储结构 黑盒或 一对多

23、 投影 或物理结构 物理存储结构 黑箱 或 1对多或 M 或 I: N(其中M、N大小写均可) 1 C C B A( :5) D B (7) D (8) B (9) C (10)A (11)D (12)D (13)C (14)D (15)A (16)A (17)D (18)B (19)D (20)C (21)B (22)A (23)B (24)B (25)C (26)D (27)C (28)A (29)A (30)C (31)C (32)B (33)D (34)B (35)B (1) 6 60 7编译 (8) 8 frie nd A(aa) (9) 9 A(aa),c(aa+1)或 c(aa+

24、1), (10) 10 7 (11) 11 042 (12) 12n *fact( n-1) (13) 13 3,3.14 (14) 14 (* p).n ame (15) 15 25 2010年3月计算机等级考试二级C+笔试试题 一、选择题(每小题2分,共70分) 下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题 卡相应位置上,答在试卷上不得分。 n的有序链表进行查找,最坏情况下需要的比较次数为 最坏情况下需要的比较次数为 最坏情况下需要的比较次数为 最坏情况下需要的比较次数为 (1) 下列叙述中正确的是 A) 对长度为 n的有序链表进行对分查找, n

25、的有序链表进行对分查找, n的有序链表进行对分查找, (n/2) (Iog2 n) (n Iog2 n) B) 对长度为 C) 对长度为 D) 对长度为 (2) 算法的时间复杂度是指 A) 算法的执行时间 B)算法所处理的数据量 C)算法程序中的语句或指令条数 D)算法在执行过程中所需要的基本运算次数 (或工具软件)。下面属于系统软件 (3)软件按功能可以分为:应用软件、系统软件和支撑软件 的是 A)编辑软件 B)操作系统 C)教务管理系统 D)浏览器 (4)软件(程序)调试的任务是 A)诊断和改正程序中的错误 B)尽可能多地发现程序中的错误 C)发现并改正程序中的所有错误 D)确定程序中错误

26、的性质 (5)数据流程图(DFD图)是 A)软件概要设计的工具 B)软件详细设计的工具 C)结构化方法的需求分析工具 D)面向对象方法的需求分析工具 软件生命周期可分为定义阶段,开发阶段和维护阶段。详细设计属于 A定义阶段 B)开发阶段 C)维护阶段 D)上述三个阶段 (7)数据库管理系统中负责数据模式定义的语言是 A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言 (8)在学生管理的关系数据库中,存取一个学生信息的数据单位是 A)文件 B)数据库 C)字段 D)记录 (9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据 库设计的 A)需求分

27、析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段 (10)有两个关系 R和T如下: 则由关系R得到关系T的操作是 A选择 B) 投影 C) 交 D) 并 (11) 下列关于函数的描述中,错误的是 A) 函数可以没有返回值 B) 函数可以没有参数 C) 函数可以是一个类的成员 D) 函数不能被定义为模板 (12)若MyClass是一个类名,且有如下语句序列 MyClass c1,*c2; MyClass *c3=new MyClass; MyClass 上面的语句序列所定义的类对象的个数是 A) 1 B) 2 C) 3 D) 4 (13) 下列关于继承方式的描述中,错误的是 A) 如

28、果不显式地指定继承方式,缺省的继承方式是私有(P rivate) B) 采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员 C) 采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员 D) 采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员 (14) 将前缀运算符“-”重载为非成员函数,下列原型中,能正确用于类中说明的是 A) Decr B) Decr op erator -( Decr C) frie nd Decr D) frle nd Decr op erator -(Decr (15) 若MyTemp是一个只有一个虚拟类型参数的类模板,且有如下语句序列 My

29、Tem pp2; MyTe mpp 32; MyTemp的实例的个数是 编译系统在处理上面的语句序列时,所生成的模板 A) 1 B) 2 C) 3 D) 0 (16) 在C+中,cin是个 A) 类 B) 对象 C) 模板 D) 函数 (17) 在下列字符中,不允许作为C+标识符的是 A) b B) B C) _ D) 2 (18) 下列叙述中,错误的是 A) false是一个逻辑型常量 B) b是一个字符型常量 C) 365是一个int常量 D) 3.1415926 是一个 double 常量 (19) 若x和y是程序中的两个整型变量,则下列 if语句中正确的是 A) if(x=0) y=1

30、; else y=2; B) if(x=0) then y=1 else y=2; C) if(x=0) y=1 else y=2; D) if x=0 y=1; else y=2; (20) 要定义整型数组 x,使之包括初值为 0的三个元素,下列语句中错误的是 A) i nt x3=0,0,0; B) i nt x=0; C) static int x3=0; 返回类型 ,下列表述中错误的是 中有可能包含关键字int 中有可能包含自定义标识符 中有可能包含字符* 中可能包含 D) i nt x=0,0,0; (21)关于函数中的 A) 返回类型 B) 返回类型 C) 返回类型 D) 返回类型

31、 (22) 要定义一个引用变量P,使之引用类 MyClass的一个对象,正确的定义语句是 A) MyClass p=MyClass; B) MyClass p=new MyClass; C) MyClass D) MyClass a , (23) 有如下两个类定义 class XX private: double x1; P rotected: double x2; public: double x3; ; class YY: protected XX private: double y1; p rotected: double y2; public: double y3; ; 在类丫丫中保护

32、成员变量的个数是 A) 1 B) 2 C) 3 D) 4 (24) 下列关于运算符重载的描述中,错误的是 A) 可以通过运算符重载在C+中创建新的运算符 B) 赋值运算符只能重载为成员函数 C) 运算符函数重载为类的成员函数时,第一操作数是该类对象 D) 重载类型转换运算符时不需要声明返回类型 (25) 下列关于类模板的描述中,错误的是 A) 类模板的成员函数都是模板函数 B) 可以为类模板参数设置默认值 C) 类模板描述了一组类 D) 类模板中只允许有一个类型参数 (26) 下列控制格式输入输岀的操作符中,能够设置浮点数精度的是 A) set precisio n B) setw C) se

33、tfill D) showpoint(27)下列程序段中包含 4个函数,其中具有隐含this指针的是 int fun 1(); class Test public: int fun 2(); frie nd int fun 3(); static int fun 4(); ; A) fu n1 B) fu n2 C) fu n3 D) fu n4 (28)有如下程序 #in clude using n ames pace std; class Test public: Test() Test(co nst Test ; Test fun( Test retur n t; int mai n()

34、Test x,y; x=fu n( y); return 0; 运行这个程序的输岀结果是 A) 无输岀 B) 1 C) 11 D) 111 (29)有如下程序 #in clude using n ames pace std; class A public: A(i nt i=0):r1(i) void print() coutE vvR1 void printO const coutCR1*R1-; void prin t(i nt x) cout v private: int r1; ; int mai n() A a1; const A a2 4); a1. prin t(2); a1.

35、prin t(); return 0; 运行时的输岀结果是 A) P 8-E4 B) P8-C16- C) P 0-E4- D) P0-C16- (30) 下列代码声明了3个类 class Person ; class Stude nt: public P ers on ; class Un dergraduate:Stude nt; 下列关于这些类之间关系的描述中,错误的是 A) 类 Person 是类 Undergraduate 的基类 B) 类 Undergraduate 从类 Student 公有继承 C) 类Student是类Person的派生类 D) 类Undergraduate是

36、类Person的派生类 (31)有如下程序 #in clude using n ames pace std; Class Base public: Base(i nt x=0):valB(x) coutVALB; Base() coutVALB; private: in t valB; ; class Derived:p ublic Base public: Derived(i nt x=0,i nt y=0):Base(x),valD(y)coutVALD; Derived() coutVALD; private: in t valD; ; int mai n() Derived obj12

37、(2,3); retue n 0; 运行时的输岀结果是 A) 2332 B) 2323 C) 3232 D) 3223 (32) 下面是类Shape的定义: class Shape public: virtual void Draw()=0; ; 下列关于Shape类的描述中,正确的是 A) 类Shape是虚基类 B) 类Shape是抽象类 C) 类Shape中的Draw函数声明有误 D) 语句“ Shape s能够建立 Shape的一个对象 s (33) 将运算符“ +重载为非成员函数,下列原型声明中,错误的是 A) MyClock op erator + (MyClock,lo ng);

38、B) MyClock op erator + (MyClock,MyClock); C) MyClock op erator + (lon g,lo ng); D) MyClock op erator + (lon g,MyClock); (34) 打开文件时可单独或组合使用下列文件打开模式 ios_base:app ios_base:binary ios_base:in ios_base:out 若要以二进制读方式打开一个文件,需使用的文件打开模式为 A) B) C) D) (35)有如下程序: #in clude using n ames pace std; Class B public:

39、 B(i nt xx):x(xx) +cout; x+=10; virtual void show() const coutvvCOUNTvv_vvXvvENDL;v p p rotected: static int cou nt; private: int x; ; class D:p ublic B public: D(i nt xx,i nt yy):B(xx),y(yy) +cou nt; y+=100; virtual void show() const coutvvCOUNTvv_vvYvvENDL;v p private: int y; ; int B:cou nt=0; int

40、 mai n() B *ptr=new D(10,20); P tr-show(); delete ptr; return 0; 运行时的输岀结果是 A) 1_120 B) 2_120 C) 1_20 D) 2_20 l】【15】序号的横线上,答在试卷上不得分。 A,B,C,D,E,F,5,4,321依次入队,然后再依次退队, 二、填空题(每空2分,共30分) 请将每一个空的正确答案写在答题卡【 (1) 一个队列的初始状态为空。现将元素 则元素退队的顺序为【1】。 设某循环队列的容量为50,如果头指针front=45(指向队头元素的前一位置),尾指针 rear=10(指向队尾元素 (3)设二叉

41、树如下: ),则该循环队列中共有【2】 个元素。 对该二叉树进行后序遍历的结果为【3】。 (4) 软件是 【4】、数据和文档的集合。 (5) 有一个学生选课的关系,其中学生的关系模式为:学生(学号,姓名,班级,年龄),课程 的关系模式为:课程(课号,课程名,学时),其中两个关系模式的键分别是学号和课号,则关系 模式选课可定义为:选课(学号, 【5】,成绩)。 (6) 若x和y是两个整形变量,在执行了语句序列 x=5; y=6; y+=x-; 后,x+y的值为【6】。 (7) 在执行语句序列 int i=0; do i+; while(i*i10); 时,do后面的循环体语句i+被执行的次数为【

42、7】 (8) 有如下的函数定义: int Xfun(int *a, i nt n) int x=*a; for(i nt *p a=a+1; p a if(*p ax) x=* pa; return x; 若执行了语句 int x5=23,46,78,55,16; 【8】 后,通过表达式 Xfun(x,5)调用该函数,则得到的返回值为 (9) 有如下的函数定义: int Xfun(int x) int y=x; int x=10; y+=x; retur n x+y; 【9】。 “Xcs *abc(); ”则在类外定义时对应 通过表达式Xfun(5)调用该函数,则得到的返回值为 (10) 假定

43、Xcs是一个类,该类中一个成员函数的原型为 的函数头为【10】。 (11) 请将下面的类 Date的定义补充完整,使得由语句 Date FirstDay; 定义的对象 FirstDay的值为2010年1月1日。 class Date public: Date(【11】):year(y),mo nth(m),day(d) private: int year,month,day; / 依次表示年、月、日 ; 飘是张娜的书”。 (12) 请将下面的程序补充完整,使得程序输岀 #in clude using n ames pace std; class Book p ublic: Book(char

44、*str) strc py(title,stij; 【12】void Printin fo() coutTITLEENDL; p rotected: char title50; ; class MyBook:p ublic Book p ublic: MyBook(char *s1,char *s2= 张娜): 【13 】strc py(ow ner,s2); virtual void Printinfo() coutTITLE是OWNER的书ENDL; private: char own er10; ; int mai n() Book *prt=new MyBook(“飘); p rt-

45、Printin fo(); return 0; (13)在有理数类Rational中重载插入运算符 ,以便按a/q形式输岀。请将 运算符函数的 定义补充完整。 class Rati on al public: Rati on al( int aa, int qq):a(aa),q(qq) frie nd【14】 op erator(ostream private: int a,q; ; (14)下面的函数定义是某函数模板能够生成的函数实例 int square(i nt n) retur n n*n; double square(double n) retur n n*n; 由此可知,该函数模

46、板的定义是【15】 2007年4月计算机等级考试 C+考试及答案 一、选择题(每小题 2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项涂写在答题 卡相应位置上,答在试卷上不得分。 (1)下列叙述中正确的是。 A) B) C) D) 算法的效率只与问题的规模有关,而与数据的存储结构无关 算法的时间复杂度是指执行算法所需要的计算工作量 数据的逻辑结构与存储结构是一一对应的. 算法的时间复杂度与空间复杂度一定相关. (2)在结构化程序设计中,模块划分的原则是。 A) B) C) D) 各模块应包括尽量多的功能 各模块的规模应尽量大 各模块之间的联系应尽量

47、紧密 模块内具有高内聚度,模块间具有低耦合度 (3)下列叙述中正确的是 A) B) C) D) (4) 软件测试的主要目的是发现程序中的错误. 软件测试的主要目的是确定程序中错误的位置. 为了提高软件测试的效率,最好由程序编制者自己来完成软件测试的工作 软件测试是证明软件没有错误 F面选项中不属于面向对象程序设计特征的是。 A)继承性 B)多态性 C)类比性 D)封装性 (5) 下列对列的叙述正确的是。 队列属于非线性表 队列按”先进后岀”的原则组织数据 队列在队尾删除数据 队列按先进先岀 A) B) C) ”原则组织数据 (6)对下列二叉树 A) DYBEAFCZXB (7)某二叉树中有 Y

48、DEBFZXCA C) ABDYECFXZ D ) ABCDEFXYZ 个度为2的结点则该二叉树中的叶子结点数为 2n D) n/2 A) n+1 B ) n-1 C) (8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 A)井B)交C)投影D)笛卡儿乘积 (9 )在E-R图中,用来表示实体之间是联系的图形是。 A)矩形B)椭圆形C)菱形D)平行四边形 (10 )下列叙述中错误的是。 在数据库系统中,数据的物理结构必须与逻辑结构一致. 数据库技术的根本目标是要解决数据的共享问题 数据库设计是指在已有数据库管理系统的基础上建立数据库 数据库系统需要操作系统的支持 C) D) (

49、11)为了取代 C中带参数的宏,在 C+中使用 A )重载函数 B)内联函数 C)递归函数 D )友元函数 A) B) C) D) (12 )下列关于类定义的说法中,正确的是 类定义中包括数据成员和函数成员的声明 类成员的缺省访问权限是保护的 数据成员必须被声明为私有的 成员函数只能在类体外进行定义 C) D) 再调用派生类的构造函数 再调用派生类的析构函数 (13 )下列关于派生类构造函数和析构函数的说法中,错误的是 派生类的构造函数会隐含调用基类的构造函数 如果基类中没有缺省构造函数,那么派生类必须定义构造函数 在建立派生类对象时,先调用基类的构造函数, 在销毁派生类对象时,先调用基类的析

50、构函数, (14 )通过运算符重载,可以改变运算符原有的 D)结合性 A) 操作数类型 B)操作数个数 C)优先级 (15 )有如下函数模板: tempi ate T souare 基中T是 (T x)(retumx * x ;) (17 )下列字符串中,不可以用作 A) y_2006 B ) TEST_H C) Retum D ) switch (18 )字面常量42、4.2、42L的数据类型分别是 A )函数形参 B )函数实参 (16 )使用输入输岀操作符 A) 输岀精度 B)输岀宽度 C)模板形参D )模板实参 setw,可以控制 C)对齐方式 D )填充字符 C+标识符的是 A) l

51、ong、double int B ) long、float、int C) int、double、long D) int、float、long (19)执行下列语句段后,输岀字符“ *的个数是 for (int i =50;l1; i ) cout A) 48 B) 49 C) 50 D) 51 (20 )有如下程序段 inti =0, j=1; int / r =j; / int*p= / *p= / 基中会产生编译错误的语句是 ABW C) D) (21 )有如下函数定义: void func ( int a,int b+; 若执行代码段: in tx=0 ,y=1 func (x,y );

52、 则变量x和y值分别是 A) 0 和 1 B ) 1 和 1 C) 0 和 2 D) 1 和 2 (22 )有如下程序: #in clude using n ames pace std; class A public static int a; void in it () a=1; A (int a=2 ) init () ;a+; ; int A:;a=0 A obj; Int main () coutobj.a; retumO; 运行时输岀的结果是 A) 0 B ) 1 C) 2 D) 3 (23 )下列有关继承和派生的叙述中,正确的是 派生类不能访问基类的保护成员 作为虚基类的类不能被实

53、例化 派生类应当向基类的构造函数传递参数 虚函数必须在派生类中重新实现 C) D) (24 )下列运算符中,不能被重载的是 A) temp late class Tabs ( Tx) retumx0 -x;x; temp late Tabs (T x) retum x0 -x;x; temp late T abs (T x) returm xdata;中,cin 是 A) C+的关键字 B)类名 C)对象名D)函数名 (27 )有如下程序: #in clude using n ames pace std; class test private: int a; public: test () c

54、out ” constructor test (int a) coutaendl; test (const test e ndl; cout ” copy constructor” endl; test () cout ” destructor ” endl; ; int main () test A (3) returnO; 运行时输岀的结果是 B) constructor destruclor C) copy constructor D) 3 dstructor destruclor (28 )若有如下类声明 class My Class public: MyClass ()cout1;

55、; 执行下列语句 MyClass a,b2,* P2; 以后,程序的输岀结果是 A) 11 B) 111 C) 1111 D11111 (29 )有如下程序: #in clude using n ames pace std; class point public: static int n umber; public: point () number+; point () number-; ; imt poin t:n umber=0; void ma in () p oi nt* ptr; pri ntA,B; point*ptr_point=new poin t3; ptr=ptr_poi

56、nt; poi ntC; cout poin t:n umbere ndl; delete ptr; 运行时输岀的结果是 A) 3 B ) 4 C) 6 D) 7 但是只能访问从基 (30 )如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象, 类继承的成员,有如下程序,没有使用多态机制。 #in clude using n ames pace std; class Base int a,b; public: Bace (int x ,int y ) a=x; b=y; Void show () couta , bendl; clsaa Derived:p ublic Base in

57、t c ,d; public: Derived (int x,int y,int z,int m ) :Base (x,y ) c=z; d=m; Void show () coutc , (dshow (); Retur n 0; 运行时输岀的结果是 A) 10, 20 B) 30, 40 C) 20, 30 D) 50, 50 (31 )有如下程序: #in clude using n ames pace std; class A public; A (int i ) x= i ; Void sis pa () coutx , ; P rivate: int x ; ; class B;p

58、 ublicA p ublic; B (int i) :A (i +10 ) x =i ; voud dispb ()dispa () ;coutx,endl; P rivate: Int x; ; int main () B b (2); b.dispb () retum 0: 运行时输岀的结果是 A) 10, 2 B) 12, 10 C) 12, 2 D) 2, 2 (32 )虚函数支持多态调用,一个基类的指针可以指向派生类的对象,而且通过这样的指针调用 虚函数时,被调用的是指针所指的实际对象的虚函数,而非虚函数不支持多态调用。有如下程 序: #in clude using n ames

59、pace std; class Base public: ; virtual void f () cout ” f0+ ” void g () cout ” g0+ ” ; ; class Derived:p ublic Base public: f+” ; g+” ; void f () cout ” void g () coutf () ; p-g (); return 0: 运行时输岀的结果是 f+gO+ D ) A) f+g+ B) f0+g+ C ) (33 )下面程序中对一维坐标点类 fO+gO+ Point进行运算符重载 #in clude using n ames pace s

60、td; class point public:point (int vaI ) x=val; point retum*this; print operator+ (int) point old=*this,+ (*this ) ;retum old; int GetX () const retum x; private: int x; ; int main () point a (10); cout (+a) .GetX (); cout using n ames pace std; int main () char str100,* p; cout str; p=str; for (int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论