C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。下面是小编整理的关于计算机等级考试二级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;}