2017年计算机等级考试二级C语言考试试题

进修社 人气:2.71W

C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。下面是小编整理的关于计算机等级考试二级C语言考试试题,欢迎大家参考!

2017年计算机等级考试二级C语言考试试题

(一)单选题(每题1分,共20分)

1. 第二代电子计算机所采用的逻辑元件是()。

A.小规模集成电路

B.大规模、超大规模集成电路

C.晶体管

D.电子管

2. 运算器和控制器总称为()。

A.主机

C.外部设备

D.硬件系统

3. 计算机能直接识别和处理的语言是()。

A.汇编语言

B.自然语言

C.机器语言

D.高级语言

4. I/O接口位于()。

A.总线和I/0设备之间

B.总线和主机之间

和主存储器之间

和外存储器之间

5. 显示器的()越高,显示的图象越清晰。

A.对比度

B.亮度

C.对比度和亮度

D.分辨率

6. 计算机的存储容量常用KB为单位,其中1KB表示的是()。

A.1024个字节

B.1024个二进制位

C.1000个字节

D.1000个二进制位

7. 把 Windows 的窗口和对话框作比较窗口可以移动和改变大小,而对话框()。

A.既不能移动,也不能改变大小

B.仅可以移动,不能改变大小

C.不能移动,仅可以改变大小

D.既能移动,也能改变大小

8. Windows 中的“剪切板”是()。

A.硬盘中的一块区域

B.软盘中的`一块区域

C.高速缓存中的一块区域

D.内存中的一块区域

9. 资源管理器窗口分左、右窗格,右窗格是用来()。

A.显示活动文件夹中包含的文件夹或文件

B.显示被删除文件夹中包含的文件夹或文件

C.显示被复制文件夹中包含的文件夹或文件

D.显示新建文件夹中包含的文件夹或文件

10. 在Windows 中,呈浅灰色显示的菜单意味着()。

A. 该菜单当前不能选用

B. 选中该菜单后将弹出对话框

C. 该菜单正在使用

D. 选中该菜单后将弹出下级子菜单

11.在中文Windows文件或文件夹窗口中,若要选定一组非连续文件或文件夹,在单击选定的第一个文件或文件夹名(或图标)后,按下()键不放,单击欲选定的文件或文件夹名(或图标),则这些非连续文件或文件夹被选中。

t

二、填空题(每空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

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;

alue(42);

t();

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;}