全国计算机等级考试二级C语言笔试试题及答案

  • 格式:doc
  • 大小:67.50 KB
  • 文档页数:14

全国计算机等级考试二级C语言笔试试题及答案

一、选择题(每小题2分,共70分)

(1)下列叙述中正确的是

A)栈是“先进先出”的线性表

B)队列是“先进后出”的线性表

C)循环队列是非线性结构

D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

(2)支持子程序调用的数据结构是

A)栈

B)树

C)队列

D)二叉树

(3)某二叉树有5个度为z的结点,则该二叉树中的叶子结点数是

A)10

B)8

C)6

D)4

(4)下列排序方法中,最坏情况下比较次数最少的是

A)冒泡排序

B)简单选择排序

C)直接插入排序

D)堆排序

(5)软件按功能可以分为: 应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是

A)编译程序

B)操作系统

C)教务管理系统

D)汇编程序

(6)下面叙述中错误的是

A)软件测试的目的是发现错误并改正错误

B)对被调试的程序进行“错误定位”是程序调试的必要步骤

C)程序调试通常也称为Debug

D)软件测试应严格执行测试计划,排除测试的随意性

(7)耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是

A)提高耦合性降低内聚性有利他哦高模块的独立性

B)降低耦合性提高内聚性有利于提高模块的独立性

C)耦合性是指一个模块内部各个元索间彼此结合的紧密程度

D)内聚性是指模块间互相连接的紧密程度

(8)数据库应用系统中的核心问题是

A)数据库设计

B)数据库系统设计

C)数据库维护

D)数据库管理员培训

(9)有两个关系R, S如下:

由关系R通过运算得到关系S,则所使用的运算为

A)选择

B)投影 C)插入

D)连接

(10)将E-R图转换为关系模式时,实体和联系都可以表示为

A)属性

B)键

C)关系

D)域

(11)对C++编译器区分重载函数无任何意义的信息是

A)参数类型

B)参数个数

C)返回值类型

D)常成员函数关键字coast

(12)有如下类定义和变量定义:

class A{

publie:

A(){data=0;}

~A(){}

int GetData ( ) coast { return data;}

void SetData(int n) {data=n;}

private:

int data;

};

ccnst A a;

A b;

下列函数调用中错误的是

A)a .GetData();

B)a .SetData(10);

C)b .GetData();

D)b .SetData(10);

(13)有如下类定义和变量定义:

class Parents{

public:

int publicuata;

private:

int privateData;

};

class ChildA:public Parents{/*类体略*/};

class ChildB:private Parents{/*类体略*/);

ChildA a;

ChildBb;

下列语句中正确的是

A)cout<

B)cout<

C)cout<

D)cout<

(14)运算符重载时不需要保持的性质是

A)操作数个数

B)操作数类型

C)优先级

D)结合性

(15)下列关于函数模板的描述中,错误的是

A)从模板实参表和从模板函数实参表获得信息矛盾时,以模板实参的信息为准

B)对于常规参数所对应的模板实参,任何情况下都不能省略 C)虚拟类型参数没有出现在模板函数的形参表中时,不能省略模板实参

D)模板参数表不能为空

(16)要建立文件流并打开当前目录下的文件file.dat用于输入,下列语句中错误的是

A)ifstream fin=ifstream.open(“file.dat”);

B)ifstream*fir.=new ifstream(“file.dat”);

C)ifstream fin; fin.open(“file.dat”);

D)ifstream *fin=new ifstream( );fin一>open(“file.dat”);

(17)下列描述中,不属于面向对象思想主要特征的是

A)封装性

B)跨平台性

C)继承性

D)多态性

(18)有如下程序段:

Tnt i=4;int j=l;

int main(){

int i=8,j=i;

cout<

}

运行时的输出结果是

A)44

B)41

C)88

D)81

(19)有如下程序段:

int i=5;

while(int i=0){cout《'*';i--;}

运行时输出“*”的个数是

A)0

B)1

C)5

D)无穷

(20)己知有数组定义

char a[3][4];

下列表达式中错误的是

A)a[2]=“WIN”

B)strcpy(a[2],“WIN”)

C)a [2][3]='W'

D)a[0][1]=a[0][1]

(21)已知函数fun的原型为

int fun(int,int,int);

下列重载函数原型中错误的是

A)char fun(int,int);

B)double fun(int,int,double);

C)int fun(int,char*);

D)float fun (int, int, int);

(22)建立一个类对象时,系统自动调用

A)析构函数

B)构造函数

C)静态函数

D)友元函数

(23)通过派生类的对象可直接访问其

A)公有继承基类的公有成员

B)公有继承基类的私有成员 C)私有继承基类的公有成员

D)私有继承基类的私有成员

(24)己知表达式++a中的“++”是作为成员函数重载的运算符,则与十+a等效的运算符函数调用形式为

A)a .orerator++(1)

B)operator++(a)

C)operator++(a,l)

D)a.operator++( )

(25)在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是

A)( )

B)[ ]

C)< >

D){ }

(26)当使用ifstream流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为

A)ios_base::in

B)ios_base::in|ios_base::out

C)ios_base::out

D)ios_base::in&ios_base::out

(27)有如下程序:

#include

#include

using namespace std;

class XCD{

char* a;

int b;

public:

XCD(char* aa, int bb){

a=new char[strlen(aa)+1];

strcpty(a,aa);

b=bb;

}

Char* Geta (){return a;)

int Getb(){ return b;}

};

int main(){

char *pl=“abcd”,*p2=“weirong”;

int dl=6, d2=8;

XCD x(pl,dl),Y(p2,d2);

cout<

return 0;

}

运行时的输出结果是

A)12

B)16

C)14

D)11

(28)有如下程序:

#include

#include

using namespace std;

class XCF{

int a;

public: XCF(int aa=0):a (aa){cout<<“1”;}

XCF(XCF& x){a=x .a; cout<<“2”;)

~XCF(){cout<

int Geta(){return a;}

};

int main(){

XCF dl(5),d7 (dl);

XCF *pd=new XCF(8);

cout

delete pd;

return 0;

}

运行时的输出结果是

A)121SS88

B)12188SS

C)12185

D)128512

(29)已知类MyClass声明如下:

class MyClass{

int n;

public;

MyClass(int k):n(k){}

int getValue()const{return n;}

};

在下列数组定义中正确的是

A)MyClass x1[2];

B)MyClass x2[2]={new MyClass(1),new MyClass(2)};

C)MyClass *x3[2];

D)MyClass *x4[2]={MyClass(1),MyClass(2)};

(30)有如下程序:

#include

using namespace std;

class AA{

lilt k;

protected: