全国计算机等级考试历年真题及答案
(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是
公共基础知识及C++语言程序设计 A)内模式 B)外模式 C)概念模式 D)逻辑模 (考试时间90分钟,满分100)分) 式 (11)关于面向对象的程序设计方法,下列说法正确的是 一、选择题((1)~(35)每小题2分,共70分) A)“封装性”指的是将不同类型的相关数据组合在一 下列各题A)、B)、C)、D)四个选项中,只有一个选起,作为一个整体进行处理 项是正确的,请将正确选项涂写在答题卡相应位置上, B)“多态性”指的是对象的状态会根据运行时要求自动答在试卷上不得分。 变化 (1) 下面叙述正确的是 C)基类的私有成员在派生类的对象中不可访问,也不 A)算法的执行效率与数据的存储结构无关 占内存空间 B)算法的空间复杂度是指算法程序中指令(或语句)的 D)在面向对象的程序设计中,结构化程序设计方法仍条数 有着重要作用 C)算法的有穷性是指算法必须能在执行有限个步骤(12)判断字符型变量ch是否为大写英文字母,应使用表之后终止 达式 D)以上三种描述都不对 A ) ch>='A' & ch<='Z' B ) ch<='A' ||ch>='Z' (2)以下数据结构中不属于线性数据结构的是 C ) 'A'<=ch<='Z' D ) ch>='A' && ch<='Z' A)队列 B)线性表 C)二叉树 D)栈 (13)已知下列语句中的x和y都是int型变量,其中错误(3)在一棵二叉树上第5层的结点数最多是 的语句 A)8 B)16 C)32 D)15 A ) x=y++; B ) x=++y; C ) (x+y)++; D ) ++x=y; (4)下面描述中,符合结构化程序设计风格的是 (14)执行语句序列 A)使用顺序、选择和重复(循环)三种基本控制结构表int n; 示程序的控制逻辑 cin >> n; B)模块只有一个入口,可以有多个出口 switch(n) C)注重提高程序的执行效率 { case 1: D)不使用goto语句 case 2: cout << '1'; (5)下面概念中,不属于面向对象方法的是 case 3: A)对象 B)继承 C)类 D)过 case 4: cout << '2'; break; 程调用 default: cout << '3'; (6)在结构化方法中,用数据流程图(DFD)作为描述工具} 的软件开发阶段是 时,若键盘输入1,则屏幕显示 A)可行性分析 B)需求分析 C)详细设计 D)A)1 B)2 C)3 D)12 程序编码 (15)下列程序的输出结果是 (7)在软件开发中,下面任务不属于设计阶段的是 #include
1 / 30
全国计算机等级考试二级笔试试卷
全国计算机等级考试历年真题及答案
return 0; 则执行语句MyClass a, b[2], *p[2];后,程序的输出结果} 是 A ) HELLO, WORLD B ) Hello, World A)11 B)111 C)1111 D)11111 C ) hELLO, wORLD D ) hello, world (22)关于友元,下列说法错误的是 (16)已知:int m=10;在下列定义引用的语句中,正确的A)如果类A是类B的友元,那么类B也是类A的友元 是 B)如果函数fun()被说明为类A的友元,那么在fun()中A ) int &x=m; B )int y=&m; 可以访问类A的私有成员 C )int &z; D ) int &t=&m; C)友元关系不能被继承 (17)下列函数原型声明中错误的是 D)如果类A是类B的友元,那么类A的所有成员函数A ) void Fun(int x=0, int y=0); 都是类B的友元 B ) void Fun(int x, int y); (23)关于动态存储分配,下列说法正确的是 C ) void Fun(int x, int y=0); A)new和delete是C++语言中专门用于动态内存分配和D ) void Fun(int x=0, int y); 释放的函数 (18)已知程序中已经定义了函数test,其原型是int test(int, B)动态分配的内存空间也可以被初始化 int, int);,则下列重载形式中正确的是 C)当系统内存不够时,会自动回收不再使用的内存单A ) char test(int,int,int); 元,因此程序中不必用delete释放内存空间 B ) double test(int,int,double); D)当动态分配内存失败时,系统会立刻崩溃,因此一定C ) int test(int,int,int=0); 要慎用new D ) float test(int,int,float=3.5F); (24)有以下程序 (19)有以下程序 #include 2 / 30 全国计算机等级考试历年真题及答案 (25)在公有派生的情况下,派生类中定义的成员函数只class Point { 能访问原基类的 public: A)公有成员和私有成员 B)私有成员和保护 Point(int x = 0, int y = 0) { _.x = x; _.y = y; } 成员 void Move(int xOff, int yOff) C)公有成员和保护成员 D)私有成员、保护成 { _x += xOff; _.y += yOff; } 员和公有成员 void Print() const (26)在C++中用来实现运行时多态性的是 { cout << '(' << _x << ',' << _y << ')' << endl; } A)重载函数 B)析构函数 private: C)构造函数 D)虚函数 int _x, _y; (27)一个类可以同时继承多个类,称为多继承。下列关}; 于多继承和虚基类的表述中,错误的是 下列语句中会发生编译错误的是 A)每个派生类的构造函数都要为虚基类构造函数提A) Point pt; pt.Print(); 供实参 B) const Point pt; pt.Print(); B)多继承时有可能出现对基类成员访问的二义性问C) Point pt; pt.Move(l, 2); 题 D) const Point pt; pt.Move(l, 2); C)使用虚基类可以解决二义性问题并实现运行时的(34)有以下类定义 多态性 class MyClass D)建立最派生类对象时,虚基类的构造函数会首先被{ 调用 private: (28)在一个类体的下列声明中,正确的纯虚函数声明是 int id; A) virtual void vf()=0; B) void vf(int)=0; char gender, C) virtual int vf(int); D) virtual void vf(int) { } char *phone; (29)在下面的运算符重载函数的原型中,错误的是 public: A) Volume operator - (double, double); MyClass():id(0),gender('#'),phone(NULL) { } B) double Volume::operator- (double); MyClass(int no, char ge='#', char *ph= NULl.) C) Volume Volume: :operator - (Volume); { id=no;gende=ge;phone=ph; } D) Volume operator - (Volume, Volume); }; (30)下列是模板声明的开始部分,其中正确的是 下列类对象定义语句中错误的是 A) template 3 / 30 全国计算机等级考试历年真题及答案 int main() int main() { { Complex a = Complex(l, 1) + Complex(5); int i = 5; cout << a.real() << '+' << a.imag() <<'i' << endl; int &r = i; r = 7; return 0; cout << i << endl; } return 0; 程序执行后的输出结果是 } A) 6+6i B) 6+1i C) 1+6i D) 1+1i (11)下列程序的输出结果是 [11] 。 二、填空题(每空2分,共30分) #include 工人管理,则实体“工人”与实体“设备”之间存在 [4] int Test::cnt = 0; 的联系。 int main() (5)关系数据库管理系统能实现的专门关系运算包括选{ 择、连接和 [5] 。 cout << Test::Count0 <<' '; (6)设有定义语句:int a=12;,则表达式a*=2+3的运算 Test tl, t2; 结果是 [6] 。 Test* pT3 = new Test; (7)从实现的角度划分,C++所支持的两种多态性分别是 Test* pT4 = new Test; [7] 时的多态性和运行时的多态性。 cout << Test::Count0 <<' '; (8)将—个函数声明为一个类的友元函数必须使用关键 delete pT4; 字 [8] 。 delete pT3; (9)请按下面注释的提示,将类B的构造函数定义补充完 cout << Test::Count() << endl; 整。 return 0; class A } { (12)下面是用来计算n的阶乘的递归函数,请将该函数 int a; 的定义补充完整。(注:阶乘的定义是n!=n*(n-1)*...*2*1) public: unsigned fact(unsigned n) A(int aa=0) { a=aa; } { }; if ( n<= 1) class B: public A { return 1; int b; return [ 12 ] ; A c; } public: (13)下列程序的输出结果是 [13] 。 //用aa初始化基类A,用aa+1初始化类对象成员c #include 4 / 30 全国计算机等级考试历年真题及答案 cout << fun(3, 6) << ',' << fun (3.14F, 6.28F) << (26)D (27)C (28)A (29)A (30)C endl; (31)C (32)B (33)D (34)B (35)B return 0; 二、填空题(每空2分,共30分) } (1)[1] 时间 (14)与成员访问表达式p->name等价的表达式是 (2)[2] 存储结构 或 物理结构 或 物理存储结构 [14] 。 (15)下列程序的输出结果是 [15] 。 #include 5 / 30