[计算机类试卷]2008年9月国家二级(C++)笔试真题试卷及答案与解析.doc
《[计算机类试卷]2008年9月国家二级(C++)笔试真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2008年9月国家二级(C++)笔试真题试卷及答案与解析.doc(25页珍藏版)》请在麦多课文档分享上搜索。
1、2008 年 9月国家二级( C+)笔试真题试卷及答案与解析 1 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是 ( )。 ( A) 123456ABCDE ( B) EDCBA54321 ( C) ABCDEl2345 ( D) 54321EDCBA 2 下列叙述中正确的是 ( )。 ( A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 ( B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 ( C)在循环队列中,只需要 队尾指针就能反映队列中元素的动态变化情况 ( D)循环队列中
2、元素的个数是由队头指针和队尾指针共同决定 3 在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。 ( A) O(n) ( B) O(n2) ( C) O(log2n) ( D) O(nlog2n) 4 下列叙述中正确的是 ( )。 ( A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序表,链式存储结构不能存 储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 5 数据流图中带有箭头的线段表示的是 ( )。 ( A)控制流 ( B)事件驱动 ( C
3、)模块调用 ( D)数据流 6 在软件开发中,需求分析阶段可以使用的工具是 ( )。 ( A) N-S图 ( B) DFD图 ( C) PAD图 ( D)程序流程图 7 在面向对象方法中,不属于 “对象 ”基本特点的是 ( )。 ( A)一致性 ( B)分类性 ( C)多态性 ( D)标识唯一性 8 一间宿舍可住多个学生,则实体宿舍和学生之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 9 在数据管理技术发展的 3个阶段中,数据共享最好的是 ( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D)三个阶段相同 10 有 3个关
4、系 R、 S和 T如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)笛卡尔积 ( B)交 ( C)并 ( D)自然连接 11 在下列原型所示的 C+函数中,按 “传值 ”方式传递参数的是 ( )。 ( A) void f1(int x); ( B) void f2(int*x); ( C) void f3(const int*x); ( D) void f4(int”,但无法通过编译。这说明 ( )。 ( A) f()是基类的私有成员 ( B) f()是基类 的保护成员 ( C)派生类的继承方式为私有 ( D)派生类的继承方式为保护 14 下列关于运算符重载的叙述
5、中,错误的是 ( )。 ( A)有的运算符可以作为非成员函数重载 ( B)所有的运算符都可以通过重载而被赋予新的含义 ( C)不得为重载的运算符函数的参数设置默认值 ( D)有的运算符只能作为成员函数重载 15 下列关于模板的叙述中,错误的是 ( )。 ( A)调用模板函数时,在一定条件下可以省略模板实参 ( B)可以用 int、 double这样的类型修饰符来声明模板参数 ( C)模板声明中的关键 字 class都可以用关键字 typename替代 ( D)模板的形参表中可以有多个参数 16 要利用 C+流进行文件操作,必须在程序中包含的头文件是 ( )。 ( A) iostream ( B
6、) fstream ( C) strstream ( D) iomanip 17 下列字符串中不能作为 C+标识符使用的是 ( )。 ( A) WHILE ( B) user ( C) _lvar ( D) 9stars 18 下列语句中错误的是 ( )。 ( A) const int a; ( B) const int a=10; ( C) const int*point=0; ( D) const int*point=new int(10); 19 有如下程序: #include iostream using namespace std; int main() int sum; for(i
7、nt i=0; i6; i+=3) sum=i; for(int j=i; j 6; j+)sum+=j; cout sum end1; return 0; 运行时的输出结果是 ( )。 ( A) 3 ( B) 10 ( C) 12 ( D) 15 20 下列语句中,正确的是 ( )。 ( A) char*myString=“Hello-World!“; ( B) char myString=“Hello-World!“; ( C) char myString11=“Hello-World!“; ( D) char myString12=“Hello-World!“; 21 若已经声明了函数原
8、型 “void fun(int a, double b=0.0);”,则下列重载函数声明中正确的是 ( )。 ( A) void fun(int a=90, double b=0.0); ( B) int fun(int a, double ); ( C) void fun(double a, int ); ( D) bool fun(int a, double b=0.0); 22 有如下程序: #include iostream using namespace std; class Sample public: Sample() ) Sample()cout *; ; int main()
9、 Sample temp2, *pTemp2; return 0; 执行这个程序输出星号 (*)的个数为 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 23 下列选项中,与实现运行时多态性无关的是 ( )。 ( A)重载函数 ( B)虚函数 ( C)指 针 ( D)引用 24 下列运算符函数中,肯定不属于类 Value的成员函数的是 ( )。 ( A) Value operator+(Value); ( B) Value operator-(Value, Value); ( C) Value operator*(int); ( D) Value operator/(Valu
10、e); 25 下列模板声明中,有语法错误的是 ( )。 ( A) template typename T T fun(T x)return x; ( B) template typename T T fun(T x, int n)return x*n; ( C) template class T T fun(T*p)return *p; ( D) template class T T ClassAT n; 26 在语句 “cout A;”中, cout是 ( )。 ( A)类名 ( B)对象名 ( C)函数名 ( D) C+的关键字 27 有如下程序: #nclude iostream usi
11、ng namespace Std; Class MyClass public: MyClass(int i=0)cout1; MyClass(constMyClass MyClass()cout 4; ; int main() MyClass obj1(1), obj2(2), obj3(obj1); return 0: 运行时的输出结果是 ( )。 ( A) 112444 ( B) 11114444 ( C) 121444 ( D) 11314444 28 有如下程序: #nclude iostream using namespace std; class MyClass public: M
12、yClass(int x):val(x) void Set(int x)Val=x; void Print()constcout “val=“ Val t; private: intval; ; int main() const MyClass obj1(10); MyClass obj2(20); obj1.Print(); /语句 1 obj2.Print(); /语句 2 obj1.Set(20); /语句 3 obi2.Set(30); /语句 4 return 0; 其主函数中错误的语句是 ( )。 ( A)语句 1 ( B)语句 2 ( C)语句 3 ( D)语句 4 29 在类声
13、明中,紧跟在 “public:”后声明的成员的访问权限是 ( )。 ( A)私有 ( B)公有 ( C)保护 ( D)默认 30 对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是 ( )。 ( A)公有或私有 ( B)私有 ( C)保护或私有 ( D)公有或保护 31 定义派生类时,若不使用关键字显式地规定采用何种继承方式,则默 认方式为( )。 ( A)私有继承 ( B)非私有继承 ( C)保护继承 ( D)公有继承 32 建立一个有成员对象的派生类对象时,各构造函数体的执行次序为 ( )。 ( A)派生类、成员对象类、基类 ( B)成员对象类
14、、基类、派生类 ( C)基类、成员对象类、派生类 ( D)基类、派生类、成员对象类 33 如果表达式 a =b 中的 “ =”是作为非成员函数重载的运算符,则可以等效地表示为 ( )。 ( A) a.operator =(b) ( B) b.operatotr =(a) ( C) operator =(a,b) ( D) operator =(b,a) 34 当使用 ofstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为 ( )。 ( A) ios base:in ( B) ios_base:binary ( C) ios base:in|ios base:out ( D
15、) ios base:out 35 在一个抽象类中,一定包含有 ( )。 ( A)虚函数 ( B)纯虚函数 ( C)模板函数 ( D)重载函数 36 对下列二叉树进行中序遍历的结果 _。 37 按照软件测试的一般步骤,集成测试应在 _测试之后进行。 38 软件工程 3要素包括方法、工具和过程,其中, _支持软件开发的各个环节的控制和管理。 39 数据库设计包括概念设计、 _和物理设计。 40 在二维表中,元组的 _不能再分成更小的数据项。 41 当使用关键字 _作为函数返回类型时,该函数不返回任何值。 42 已知数组 a中有 n个元素,下列语句将数组 a中从下标 x1开始的 k个元素移动到从下
16、标 x2开始的 k个元素中,其中 O =xl x2 n, x2+k n,请将下列语句补充完整。 For(int i=x1+k-1; i =x1; i-) a_=ai; 43 有如下程序: #include iostream using namespace std; int fun1(int x) return+x; int fun2(int int main() int x=1, y=2; y=fun 1(fun2(x); cout X , y; return 0: 程序的输出结果是 _。 44 有如下程序: #include iostream using namespace std; cla
17、ss pumpkin public: pumpkin()+count; pumpkin()-count; static void total_count() cout count “pumpkin(s)“ end1; private: static int count; ; int pumpkin:count=0; int main() pumpkin p110; pumpkin:total_count(); return 0; 这个程序的输出结果是 _。 45 有如下递归函数: int Fun(int n) if(n =1) return 1; _ 请补充完整,使得函数 Fun能够正确计算形
18、参 n的阶乘。 46 请在下列程序中的横线处填写正确的语句: class Sample public: Sample()() Sample() void SetData(int data)/将 Sample类成员变量 data设置成形参的值 _ private: int data; ; 47 有如下类定义,请将 Sample类的拷贝构造函数补充完整。 class Sample public: Sample() Sample()if(p)delete p;) Sample(const Sample private: int*p; ; 48 重载加法运算符 “+”,其函数名是 _。 49 有如下程
19、序: #include iostream using namespace std; class Wages /“工资 ”类 double base; /基本工资 double bonus; /奖金 double tax; /税金 public: Wages(double CBase, double CBonus, double CTax): base(CBase), bonus(CBonus), tax(CTax) double getPay()const; /返回应付工资额 Wages operator+(Wages w)const; /重载加法 ; double Wages:getPay(
20、)constreturn base+bonus-tax; Wages Wages:operator+(Wages W)const return Wages(base+w.base, bonus+w.bonus, tax+w.tax); int main() Wages w1(2000,500,100),w2(5000,1000,300); cout (w1+w2).getPay0 end1; return 0; 程序的输出结果是 50 有如下程序: #include iostream using namespace std; class Pet char name10; public: Pet
21、(char*name)strcpy(this- name, name); const char*getName()const return name; virtual void call()const=0; ; class Dog:public Pet public: Dog(char*name):Pet(name) void call()constcout “汪汪叫 “: ; class Cat:public Pet public: Cat(char*name):Pet(name) void call()constcout “喵喵叫 “; ; int main() Pet*pet1=new
22、Dog(“哈克 “), *pet2=new Cat(“吉米 “); cout pet1- getName(); pet1- call(); cout end1; cout pet2- getName(); pet2- call(); cout end1; return 0; 程序的 输出结果是 _。 2008 年 9月国家二级( C+)笔试真题试卷答案与解析 1 【正确答案】 B 【试题解析】 栈是按照 “先进后出 ”或 “后进先出 ”的原则组织数据的。所以出栈顺序是 EDCBA54321。 2 【正确答案】 D 【试题解析】 循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2008 国家 二级 笔试 答案 解析 DOC
