您的当前位置:首页正文

国家计算机等级考试二级C笔试真题

2023-02-10 来源:好走旅游网
2011年3月计算机等级考试二级 一、选择题

(1)下列关于栈叙述正确的是 A)栈顶元素最先能被删除 B)栈顶元素最后才能被删除 C)栈底元素永远不能被删除 D)以上三种说法都不对 (2)下列叙述中正确的是

A)有一个以上根结点的数据结构不一定是非线性结构 B)只有一个根结点的数据结构不一定是线性结构 C)循环链表是非线性结构 D)双向链表是非线性结构

C++笔试真题

(3)某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层) A)3 B)4 C)6 D)7

(4)在软件开发中,需求分析阶段产生的主要文档是 A)软件集成测试计划 B)软件详细设计说明书 C)用户手册

D)软件需求规格说明书

(5)结构化程序所要求的基本结构不包括 A)顺序结构 B)GOTO跳转 C)选择(分支)结构 D)重复(循环)结构 (6)下面描述中错误的是

A)系统总体结构图支持软件系统的详细设计 B)软件设计是将软件需求转换为软件表示的过程 C)数据结构与数据库设计是软件设计的任务之一 D)PAD图是软件详细设计的表示工具 (7)负责数据库中查询操作的数据库语言是 A)数据定义语言 B)数据管理语言 C)数据操纵语言 D)数据控制语言

(8)一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是

A)1:1联系 B)1:m联系 C)m:1联系 D)m:n联系

(9)有三个关系R、S和T如下: 则由关系R和S得到关系T的操作是 A)自然连接 B)交 C)除 D)并

(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是 A)-369 B)369 C)

D)整数集合{1,2,3,4,5}

(11)为了提高函数调用的实际运行速度,可以将较简单的函数定义为 A)内联函数 B)重载函数 C)递归函数 D)函数模板

(12)若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为 A)a B) C)a() D)AA::a()

(13)当派生类从一个基类保护继承时,基类中的一些成员在派生类中成为保护成员,这些成员在基类中原有的访问属性是 A)任何 B)公有或保护 C)保护或私有 D)私有

(14)若要对Data类中重载的加法运算符成员函数进行声明,下列选项中正确的是 A)Data+(Data); B)Dataoperator+(Data); C)Data+operator(Data);

D)operator+(Data,Data);

(15)下列关于函数模板的描述中,正确的是 A)函数模板是一个实例函数

B)使用函数模板定义的函数没有返回类型 C)函数模板的类型参数与函数的参数相同

D)通过使用不同的类型参数,可以从函数模板得到不同的实例函数

(16)C++系统预定义了4个用于标准数据流的对象,下列选项中不属于此类对象的是 A)cout B)cin C)cerr D)cset

(17)Windows环境下,由C++源程序文件编译而成的目标文件的扩展名是 A)cpp B)exe C)obj D)lik

(18)字符串“a+b=12\\n\”的长度为 A)12 B)10 C)8 D)6

(19)有如下程序:

#include usingnamespacestd; intmain(){ intf,f1=0,f2=1; for(inti=3;i<=6;i++){ f=f1+f2; f1=f2;f2=f; }

cout< return0; }

运行时的输出结果是 A)2 B)3 C)5 D)8

(20)有如下程序:

#include usingnamespacestd; intmain(){

inta[6]={23,15,64,33,40,58}; ints1,s2; s1=s2=a[0]; for(int*p=a+1;p if(s1>*p)s1=*p; if(s2<*p)s2=*p; }

cout<<运行时的输出结果是 A)23 B)58 C)64 D)79

(21)有如下程序:

#include usingnamespacestd; voidf1(int&x,int&y){intz=x;x=y;y=z;} voidf2(intx;inty){intz=x;x=y;y=z;} intmain(){ intx=10,y=26; f1(x,y); f2(x,y);

cout< return0; }

运行时的输出结果是 A)10 B)16 C)26 D)36

(22)有如下程序:

#include usingnamespacestd; classXA{ inta; public: staticintb;

XA(intaa):a(aa){b++;} ~XA(){}

intget(){returna;}

};

intXA::b=0; intmain(){ XAd1(2),d2(3); cout< return0; }

运行时的输出结果是 A)5 B)6 C)7 D)8

(23)有如下程序:

#include usingnamespacestd; classPoint{ intx,y; public:

Point(intx1=0,inty1=0):x(x1),y(y1){} intget(){returnx+y;} };

classCircle{ Pointcenter; intradius; public:

Circle(intcx,intcy,intr):center(cx,cy),raaius(r){} intget(){()+radius;} }; intmain(){ Circlec(3,4,5); cout<<运行时的输出结果是 A)5 B)7 C)9 D)12

(24)若要对类BigNumber中重载的类型转换运算符long进行声明,下列选项中正确的是 A)operatorlong()const;

B)operatorlong(BigNumber); C)longoperatorlong()const; D)longoperatorlong(BigNumber); (25)有如下函数模板定义: template T1FUN(T2n){returnn*;}

若要求以int型数据9作为函数实参调用该模板,并返回一个double型数据,则该调用应表示为

A)FUN(9) B)FUN<9> C)FUN(9)

D)FUN<9>(double)

(26)下列语句都是程序运行时的第1条输出语句,其中一条语句的输出效果与其他三条语句不同,该语句是 A)cout<<12345; B)cout<<12345; C)cout<<12345;

D)cout< (27)下列关于析构函数的描述中,错误的是 A)析构函数可以重载 B)析构函数由系统自动调用 C)每个对象的析构函数只被调用一次 D)每个类都有析构函数

(28)下列关于构造函数的描述中,错误的是 A)构造函数名与类名相同 B)构造函数可以有返回值 C)构造函数可以重载 D)每个类都有构造函数

(29)若PAT是一个类,则程序运行时,语句“PAT(*ad)[3];”调用PAT的构造函数的次数是 A)0 B)1 C)2 D)3

(30)下列描述中,错误的是

A)公有继承时基类中的公有成员在派生类中仍是公有成员 B)公有继承时基类中的保护成员在派生类中仍是保护成员 C)保护继承时基类中的公有成员在派生类中仍是公有成员 D)保护继承时基类中的保护成员在派生类中仍是保护成员

(31)生成派生类对象时,派生类构造函数调用基类构造函数的条件是 A)无需任何条件

B)基类中显式定义了构造函数 C)派生类中显式定义了构造函数

D)派生类构造函数明确调用了基类构造函数 (32)下列关于派生类和基类的描述中,正确的是 A)派生类成员函数只能访问基类的公有成员 B)派生类成员函数只能访问基类的公有和保护成员 C)派生类成员函数可以访问基类的所有成员 D)派生类对基类的默认继承方式是公有继承 (33)有如下类模板定义: template classBigNumber{ longn; public:

BigNumber(Ti):n(i){}

BigNumberoperator+(BigNumberb){ returnBigNumber(n+; } };

己知b1、b2是BigNumber的两个对象,则下列表达式中错误的是 A)bl+b2 B)b1+3 C)3+b1 D)3+3

(34)下列关于文件流的描述中,正确的是 A)文件流只能完成针对磁盘文件的输入输出 B)建立一个文件流对象时,必须同时打开一个文件 C)若输入流要打开的文件不存在,将建立一个新文件 D)若输出流要打开的文件不存在,将建立一个新文件 (35)有如下程序:

#include usingnamespacestd; classPair{ intm,n; public:

Pair(intj,intk):m(j),n(k){} intget(){returnm;} intget()const{returnm+n;} }; intmain(){ Paira(3,5); constPairb(3,5);

cout+()< return0; }

运行时的输出结果是 A)33 B)38 C)83 D)88 二、填空题

(1)有序线性表能进行二分查找的前提是该线性表必须是【1】存储的。

(2)一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF。则后序遍历结果为【2】。 (3)对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3】测试。 (4)实体完整性约束要求关系数据库中元组的【4】属性值不能为空。

(5)在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称【5】是关系A的外码。

(6)若有定义语句“intx=10,y=20,z=20;”,则表达式x>z&&y==z的值为【6】。 (7)有如下语句序列: intx=-10;while(++x){}

运行时while循环体的执行次数为【7】。 (8)有如下语句序列: intarr[2][2]={{9,8},{7,6}};

int*p=arr[0]+1;cout<<*p< 运行时的输出结果是【8】。

(9)函数fun的功能是将一个数字字符串转换为一个整数,请将函数补充完整。 intfun(char*str){ intnum=0; while(*str){ num*=10; num+=【9】; str++; }

returnnum; }

(10)若要将函数“voidFriFun();”声明为类MyClass的友元函数,则应在类MyClass的定义中加入语句【10】。

(11)下列程序的输出结果为012,请根据注释将横线处的缺失部分补充完整。 #include usingnamespacestd; classTest{ public:

Test(inta){data=a;} ~Test(){}

voidprint(){cout< private: intdata; }; intmain(){

Testt[3]={【11】};rint(); for(inti=0;i<3;i++) return0; }

(12)请在横线处填写派生类Derived的继承方式,使得程序的输出结果为Base。 #include usingnamespacestd; classBase{ public:

voidprint(){cout<<\"Base\";} };

classDerived:【12】Base{}; intmain(){ Derivedd; (); return0; }

(13)下列程序的输出结果为,请将横线处的缺失部分补充完整。 #include usingnamespacestd; classBase{ public:

Base(inta):idata(a){} voidprint(){cout<<'';} private: intidata; };

classDerived:publicBase{ public:

Derived(inta;doubleb):【13】,ddata(b){} voidprint(){Base::print();cout<<'';} private: doubleddata; }; intmain(){

Deriveddl(1,,d2(2,;

(); (); return0; }

(14)下列程序的输出结果为-5/8-3/4,请将横线处的缺失部分补充完整。 #include usingnamespacestd; classFraction{rint();(-f2).print(); return0; }

(15)函数Min的功能是返回具有n个元素的数组array中的最小值。请将横线处的缺失部分补充完整,使得程序的输出结果为。 #include usingnamespacestd; template TMin(T*array,intn){ Tmin=array[0];

for(inti=1;i if(array[i] returnmin; }

intmain(){

doublearr[8]={,,,42,,,,42}; cout<<【15】; return0;

}

因篇幅问题不能全部显示,请点此查看更多更全内容