2006年9月全国计算机等级考试二级C笔试真题及参考答案

2006年9月全国计算机等级考试二级C笔试真题及参考答案

更新于:2007年9月21日 念时

2006年9月全国计算机等级考试二级C笔试试卷及参考答案 

  
二、填空题(每空2 分,共30 分)
请将每一个空的正确答案写在答题卡[1]~[15]序号的横线上,答在试卷上不得分。
(1)下列软件系统结构图

的宽度为 [1] 。
(2) [2] 的任务是诊断和改正程序中的错误。
(3)一个关系表的行为 [3] 。
(4)按“行进后出”原则组织数据的数据结构是 [4] 。
(5)数据结构分为线性结构和非线性结构,带链的队列属于 [5] 。
(6)若有定义语句:int*a,b;,则变量b 的数据类型是 [6] 。
(7)已知数组a 中的元素个数为n,下列语句的作用是将下标为i 的元素移动到下标
为i-1 的单元,其中1≤i<n。例如,当n=4,a 中原有数据为1,2,3,4 时,则移动后a
中元素为2,3,4,4。请将语句补充完整:
For(int i=0;i(8)已知递归函数f 的定义如下:
int f (int n)
{
If(n<=1)return 1;//递归结束情况
else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是 [8] 。
(9)创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给
出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创
建,其输出结果是 [9] 。
#include
using namespace std;
class Foo{
public:
Foo(int X){cout <<’A”}
Foo(){}
};
int main()
Foo f[3],g(3);
return 0;
}
(10)习惯性在下列程序的输出结果是42,请将画线处缺失的部分补充完整。
#include
Using namespace atd;
Class Foo{
int value;
public:
Foo():value(0){}
Void setValue(int value)
{ [10] =value; //给Foo 的数据成员value 赋值}void print(){cout<};
Int main()
{
Foo f;
f.setValue(42);
f.print();
retum0;
}
(11)如果不能使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是
只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是 [11] 。
#include
using namespace std;
class Base{
public:
Void print(){cout<< ‘B’;}};
class Derived: public Base{
public
void print(){cout<< ‘D’;}}
int main()
{
Derived*pd=new Dreived);
Base*pb=pd;
pb->print();
pd->print();
delete pd;
return 0;
}
(12)在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承
private。已知有如下类定义:
class Base{
protected:
void fun(){}
};
Class Derived: Base{};
则Base 类中的成员函数fun(),在Derived 类中的访问权限是 [12] (注意:要求填
写private、protected 或public 中的一项)。
(13)在MyClass 类的定义中,对赋值运算符=进行重载。请将画线处缺失的部分补充完整。
[13] MyClass::operator=(const MyClass rhs)
{
if(this=&rhs)return*this;
value=rhs. value;
return*this;
}
(14)插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列
中的正确位置,InsertSort 类的成员函数sort()实现了插入排序算法,请将画线处缺失的部分
补充完整。
class InsertSort{
public:
InsertSort(int*a0,int n0):a(a0),n(n0){}//参数组首地址,n 是数组元素个数
void sort()
{//此函数假设已排离序列初始化状态只包含a[0],未排序序列初始为a[1]?a[n-1]
for (int i=1;iint j;
for( [14] ;j>0;--j){
if(t>a[j-1])break;
a[j]=a[j-1];}
a[j]=t;}}
protected:
int*a,n;//指针a 用于存放数组首地址,n 用于存放数组元素个数
};
(15)下列程序的输出结果是 [15]
#include
using namespace std;
class A{
int a
public:
A():a(9){}
virtual void print() const {cout<};
class B:public A{
char b;
public:
B(){b= ‘S’;}
void print()const{cout<};
void show(Aa&X){X,print()}
int main()
{ Ad1;*p;
Bd2;
p=&d2;
d1,print();
d2,print();
p->print();
show(d1);
show(d2);
return 0;}


 一、 选择题: 
01—05  DACBD          06—10    CDBBA 
11—15  ADDAD          16—20    CCBBC 
21—25  DACBC          26—30    ABCDC 
31—35  ADBAD          36—40    BBADC 
41—45  CBBCD          46—50    BABDC 
二、 填空题: 
1、3 
2、调试 
3、元组 
4、栈 
5、线性
6、12346.0
7、10  11 
8、1 
9、   7   4 
10、n=n/10 
11、(x+8) 
12、sin(x) 
13、0 
14、i%2==0 
15、s-- 
16、*s++ 
17、18 
18、16  11 
19、->data 
20、”rb”

posted on 2007-09-21 13:47  念时  阅读(3412)  评论(2编辑  收藏  举报

细节决定成败!态度决定一切!