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