没有合适的资源?快使用搜索试试~ 我知道了~
全国计算机等级考试(二级c++)历年真题与答案.pdf
需积分: 0 14 浏览量
2023-02-07
13:11:39
上传
评论
收藏 1.67MB PDF 举报
。。。
资源推荐
资源详情
资源评论






优质文本
全国计算机等级考试二级笔试 (bǐshì)
试卷
公共基础知识及 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)下列模式中,能够给出数据库物理存储(cún
chǔ)结构与物理存取方法的是
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 <iostream>
using namespace std;
int main()
{
char a[] = "Hello, World";
char *ptr = a;
while (*ptr)
1 / 33

优质文本
{
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)有以下(yǐxià)程序
#include<iostream>
int i = 0;
void fun()
{ {
static int i = 1;
std::cout<<i++<<',';
}
std::cout<<i<<',';
}
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 的私有成员
C)友元关系不能被继承
D)如果类 A 是类 B 的友元,那么类 A 的所有成
员函数都是类 B 的友元
(23)关于动态存储分配,下列说法正确的是
A)new 和 delete 是 C++语言中专门用于动态内
存分配和释放的函数
B)动态分配的内存空间也可以被初始化
C)当系统内存不够时,会自动回收不再使用的
内存单元,因此程序中不必用 delete 释放内存
空间
D)当动态分配内存失败时,系统会立刻崩溃,
因此一定要慎用 new
(24)有以下程序
#include<iostream>
using namespace std;
class MyClass
{
public:
MyClass(int n){number = n;}
//拷贝构造函数
MyClass(MyClass
&other){ number=other.number;}
~MyClass(){}
private:
int number;
2 / 33

优质文本
};
MyClass fun(MyClass p)
{
MyClass temp(p);
return temp;
}
int main()
{
MyClass obj1(10), obj2(0);
MyClass obj3(obj1);
obj2=fun(obj3);
return 0;
}
程序执行时,MyClass 类的拷贝(kǎobèi)构造函
数被调用的次数是
A)5 B)4 C)3 D)2
(25)在公有派生的情况下,派生类中定义的成员
函数只能访问原基类的
A)公有成员和私有成员 B)私有成员和保护
成员
C)公有成员和保护成员 D)私有成员、保护
成员和公有成员
(26)在 C++中用来实现运行时多态性的是
A)重载函数 B)析构函数
C)构造函数 D)虚函数
(27)一个类可以同时继承多个类,称为多继承。
下列关于多继承和虚基类的表述中,错误的是
A)每个派生类的构造函数都要为虚基类构造函
数提供实参
B)多继承时有可能出现对基类成员访问的二义
性问题
C)使用虚基类可以解决二义性问题并实现运行
时的多态性
D)建立最派生类对象时,虚基类的构造函数会
首先被调用
(28)在一个类体的下列声明中,正确的纯虚函数
声明是
A) virtual void vf()=0; B) void vf(int)=0;
C) virtual int vf(int); D) virtual void vf(int) { }
(29)在下面的运算符重载函数的原型中,错误的
是
A) Volume operator - (double, double);
B) double Volume::operator- (double);
C) Volume Volume: :operator - (Volume);
D) Volume operator - (Volume, Volume);
(30)下列是模板声明的开始部分,其中正确的是
A) template<T>
B) template<class T1,T2>
C) template<class T1, class T2>
D) template<class T1;class T2>
(31)执行语句序列
ofstream outfile("DATA.DAT");
if(...) cout << "OK"; else cout << "FAIL";
后,如果文件打开成功显示“OK”,否则就显示
“F 厶 n。”。由此可知,上面 if 语句的...
处的表达式应是
A )out() 或 outfile B )out() 或 !outfile
C )out() 或 outfile D )out() 或 !outfile
(32)C++流中重载的运算符>>是一个( )
A)用于输出操作的非成员函数 B)用于输入操
作的非成员函数
C)用于输出操作(cāozuò)的成员函数 D)用于
输入操作的成员函数
(33)有以下类定义
class Point {
public:
Point(int x = 0, int y = 0) { _.x = x; _.y = y; }
void Move(int xOff, int yOff)
{ _x += xOff; _.y += yOff; }
void Print() const
{ cout << '(' << _x << ',' << _y << ')' << endl; }
private:
int _x, _y;
};
下列语句中会发生编译错误的是
A) Point pt; pt.Print();
B) const Point pt; pt.Print();
C) Point pt; pt.Move(l, 2);
D) const Point pt; pt.Move(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; }
3 / 33

优质文本
};
下列类对象定义语句中错误的是
A) MyClass myObj;
B) MyClass myObj(11, "");
C) MyClass myObj(12, 'm');
D) MyClass myObj(12);
(35)有以下程序
#include <iostream>
using namespace std;
class Complex
{
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+c.re, im+c.im); }
private:
double re, im;
};
int main()
{
Complex a = Complex(l, 1) + Complex(5);
cout << a.real() << '+' << a.imag() <<'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)关系数据库管理系统能实现的专门关系运算
(yùn suàn)包括选择、连接和 [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:
//用 aa 初始化基类 A,用 aa+1 初始化类对象成
员 c
B(int aa): [ 9 ] { b=aa+2; }
};
(10)下列程序的输出结果是 [10] 。
#include <iostream>
using namespace std;
int main()
{
int i = 5;
int &r = i; r = 7;
cout << i << endl;
return 0;
}
(11)下列程序的输出结果是 [11] 。
#include <iostream>
using namespace std;
class Test {
public:
Test() { cnt++; }
~Test() {cnt--; }
static int Count() { return cnt;}
private:
static int cnt;
};
int Test::cnt = 0;
int main()
4 / 33

优质文本
{
cout << Test::Count0 <<' ';
Test tl, t2;
Test* pT3 = new Test;
Test* pT4 = new Test;
cout << Test::Count0 <<' ';
delete pT4;
delete pT3;
cout << Test::Count() << endl;
return 0;
}
(12)下面是用来计算 n 的阶乘的递归函数,请将
该函数的定义补充完整。(注:阶乘的定义是
n!=n*(n-1)*...*2*1)
unsigned fact(unsigned n)
{
if ( n<= 1)
return 1;
return [ 12 ] ;
}
(13)下列程序的输出结果是 [13]。
#include <iostream>
using namespace std;
template<tytename T>
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)与成员访问(fǎngwèn)表达式 p->name 等价
的表达式是 [14]。
(15)下列程序的输出结果是 [15]。
#include <iostream>
using namespace std;
class base {
public:
int n;
base(int x) { n = x;}
virtual void set(int m) { n = m; cout << n <<' ';}
};
class deriveA:public base {
public:
deriveA(int x):base(x) { }
void set(mt m) { n += m; cout << n <<' ';}
};
class deriveB:public base [
public:
deriveB(int x):base(x) { }
void set(int m) { n +=m; cout <<n << ' ';}
};
int main()
{
deriveA dl(1);
deriveB d2(3);
base *pbase;
pbase = &dl;
pbase->aet(1);
pbase = &d2;
pbase->set(2);
return 0;
}
2004 年 9 月
全国计算机等级考试二级笔试试卷
公共基础知识及 C++ 语言程序设计
答案及评分标准
选择题((1)—(35)每小题 2 分,共 70 分)
(1) C (2) C (3) B (4) A (5) D
(6) 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
二、填空题(每空 2 分,共 30 分)
(1)[1]时间
(2)[2]存储结构 或 物理结构 或 物理存储结
构
(3)[3]黑盒 或 黑箱
(4)[4]一对多 或 1对多 或 I:M 或 I:N(其
中 M 、N 大小写均可)
(5)[5]投影
(6)[6] 60
(7)[7]编译
(8)[8] friend
(9)[9] A(aa),c(aa+1)或 c(aa+1),A(aa)
(10)[10] 7
(11)[11] 042
(12)[12] n*fact(n-1)
5 / 33
剩余32页未读,继续阅读
资源评论

美丽的格桑花888
- 粉丝: 1889
- 资源: 2425

上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制
