历年计算机二级c 真题及答案_第1页
历年计算机二级c 真题及答案_第2页
历年计算机二级c 真题及答案_第3页
历年计算机二级c 真题及答案_第4页
历年计算机二级c 真题及答案_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试二级笔试试卷(10)F列模式中,能够给出数据库物理存储结构与物理

存取方法的是

公共基础知识及C++语言程序设计A)内模式B)外模式C)概念模式D)逻辑模

(考试时间90分钟,满分100)分)式

(11)关于面向对象的程序设计方法,下列说法正确的是

一、选择题((1)〜(35)每小题2分,共70分)A)“封装性”指的是将不同类型的相关数据组合在一

下列各题A)、B)、C)、D)四个选项中,只有一个选起,作为一个整体进行处理

项是正确的,请将正确选项涂写在答题卡相应位置上,B)“多态性”指的是对象的状态会根据运行时要求自动

答在试卷上不得分。变化

(1)下面叙述正确的是C)基类的私有成员在派生类的对象中不可访问,也不

A)算法的执行效率与数据的存储结构无关占内存空间

B)算法的空间复杂度是指算法程序中指令(或语句)的D)在面向对象的程序设计中,结构化程序设计方法仍

条数有着重要作用

C)算法的有穷性是指算法必须能在执行有限个步骤(12)判断字符型变量ch是否为大写英文字母,应使用表

之后终止达式

D)以上三种描述都不对A)ch>='A'&ch<='Z'B)ch<='A'llch>='Z'

(2)以下数据结构中不属于线性数据结构的是C)'A'v=ch<='Z'D)ch>='A'&&ch<='Z'

A)队列B)线性表C)二叉树D)栈(13)已知下列语句中的x和y都是int型变量,其中错误

(3)在一棵二叉树上第5层的结点数最多是的语句

A)8B)16C)32D)15A)x=y++;B)x=++y;C)(x+y)++;D)++x=y;

(4)下面描述中,符合结构化程序设计风格的是(14)执行语句序列

A)使用顺序、选择和重复(循环)三种基本控制结构表intn;

示程序的捽制逻辑cin»n;

B)模块只有一个入口,可以有多个出口switch(n)

C)注重提图程序的执行效率{case1:

D)不使用goto语句case2:coutvvT;

(5)下面概念中,不属于面向对象方法的是case3:

A)对象B)继承C)类D)过case4:cout«2;break;

程调用default:cout«3;

(6)在结构化方法中,用数据流程图(DFD)作为描述工具}

的软件开发阶段是时,若键盘输入1,则屏幕显示

A)可行性分析B)需求分析C)详细设计D)A)1B)2C)3D)12

程序编码(15)下列程序的输出结果是

(7)在软件开发中,下面任务不属于设计阶段的是#include<iostream>

A)数据结构设计B)给出系统模块结构usingnamespacestd;

C)定义模块算法D)定义需求并建立系统模型intmain()

(8)数据库系统的核心是(

A)数据模型C)软件工具chara[]="Hello,World";

B)数据库管理系统D)数据库char*ptr=a;

(9)下列叙述中正确的是while(*ptr)

A)数据库系统是一个独立的系统,不需要操作系统的(

支持if(*ptr>=*a'&&*ptrv=Z)

B)数据库设计是指设计数据库管理系统cout«char(*ptr+'A'-'a');

C)数据库技术的根本目标是要解决数据共享的问题elsecout«*ptr;

D)数据库系统中,数据的物理结构必须与逻辑结构一ptr++;

return0;则执行语句MyClassa,b[2],*p[2];后,程序的输出结果

)是

A)HELLO,WORLDB)Hello,WorldA)llB)lllC)llllD)lllll

C)hELLO,WORLDD)hello,world(22)关于友元,下列说法错误的是

(16)已知:inlm=10;在下列定义引用的语句中,正确的A)如果类A是类B的友元,那么类B也是类A的友元

是B)如果函数fun()被说明为类A的友元,那么在fun()中

A)int&x=m;B)inty=&m;可以访问类A的私有成员

C)int&z;D)int&t=&m;C)友元关系不能被继承

(17)下列函数原型声明中错误的是D)如果类A是类B的友元,那么类A的所有成员函数

A)voidFun(intx=0,inty=0);都是类B的友元

B)voidFun(intx,inty);(23)关于动态存储分配,下列说法正确的是

C)voidFun(intx,inty=0);A)new和delete是C++语言中专门用于动态内存分配和

D)voidFun(intx=0,inty);释放的函数

(18)已知程序中已经定义了函数test,其原型是inttest(int,B)动态分配的内存空间也可以被初始化

int,int);,则下列重载形式中正确的是C)当系统内存不够时,会自动回收不再使用的内存单

A)chartest(int,int,int);元,因此程序中不必用delete释放内存空间

B)doubletest(int,int,double);D)当动态分配内存失败时,系统会立刻崩溃,因此一定

C)inttest(int,int,int=O);要慎用new

D)floattest(int,int,float=3.5F);(24)有以下程序

(19)有以下程序#include<iostream>

#include<iostream>usingnamespacestd;

inti=0;classMyClass

voidfun()(

{{public:

staticinti=1;MyClass(intn){number=n;}

std::cout«i++«',';〃拷贝构造函数

)MyClass(MyClass&other){number=other.number;}

std::cout«i«',';~MyClass(){}

)private:

intmain()intnumber;

();

fun();fun();MyClassfun(MyClassp)

return0;(

)MyClasstemp(p);

程序执行后的输出结果是returntemp;

A)1,2,1,2,B)1,2,2,3,C)2,0,3,0,D)1,0,2,0,)

(20)已知函数f的原型是:voidf(int*a,long&b);变量intmain()

vl、v2的定义是:intvl;longv2;,正确的调用语句是(

A)f(vl,&v2);B)f(vl,v2);MyClassobjl(10),obj2(0);

C)f(&vl,v2);D)f(&vl,&v2);MyClassobj3(objl);

(21)有以下类定义obj2=fun(obj3);

classMyClassreturn0;

()

public:程序执行时,MyClass类的拷贝构造函数被调用的次数

MyClass(){cout«1;}是

);A)5B)4C)3D)2

(25)在公有派生的情况下,派生类中定义的成员函数只的成员函数

能访问原基类的(33)有以下类定义

A)公有成员和私有成员B)私有成员和保护classPoint{

成员public:

C)公有成员和保护成员D)私有成员、保护成Point(intx=0,inty=0){_.x=x;_.y=y;}

员和公有成员voidMove(intxOff,intyOff)

(26)在C++中用来实现运行时多态性的是{_x+=xOff;_.y+=yOff;}

A)重载函数B)析构函数voidPrint()const

C)构造函数D)虚函数{cout«*(*«_x«7«_y«')'«endl;}

(27)一个类可以同时继承多个类,称为多继承。下列关private:

于多继承和虚基类的表述中,错误的是int_x,_y;

A)每个派生类的构造函数都要为虚基类构造函数提);

供实参下列语句中会发生编译错误的是

B)多继承时有可能出现对基类成员访问的二义性问A)Pointpt;pt.Print();

题B)constPointpt;pt.Print();

C)使用虚基类可以解决二义性问题并实现运行时的C)Pointpt;pt.Move(l,2);

多态性D)constPointpt;pt.Move(l,2);

D)建立最派生类对象时,虚基类的构造函数会首先被(34)有以下类定义

调用classMyClass

(28)在一个类体的下列声明中,正确的纯虚函数声明是(

A)virtualvoidvf()=0;B)voidvf(int)=0;private:

C)virtualintvf(int);D)virtualvoidvf(int){}intid;

(29)在下面的运算符重载函数的原型中,错误的是chargender,

A)Volumeoperator-(double,double);char*phone;

B)doubleVolume::operator-(double);public:

C)VolumeVolume::operator-(Volume);MyClass():id(0),gender('#'),phone(NULL){}

D)Volumeoperator-(Volume,Volume);MyClass(intno,charge=r#',char*ph=NULL)

(30)下列是模板声明的开始部分,其中正确的是{id=no;gende=ge;phone=ph;}

A)temp!ate<T>);

B)template<classT1,T2>下列类对象定义语句中错误的是

C)template<classTl,classT2>A)MyClassmyObj;

D)template<classTl;classT2>B)MyClassmyObj(ll,);

(31)执行语句序列C)MyClassmyObj(12,W);

ofstreamoutfile("DATA.DAT");D)MyClassmyObj(12);

if(...)cout«"OK";elsecout«"FAIL";(35)有以下程序

后,如果文件打开成功显示“OK”,否则就显示“FAnJ。#include<iostream>

由此可知,上面if语句的...usingnamespacestd;

处的表达式应是classComplex

A)outfile.fail()或outfileB)outfile.good()(

或!outfilepublic:

C)outfile.good()或outfileD)outfile.fail()Complex(doubler=0,doublei=0):re(r),im(i){}

或Joutfiledoublereal()const{returnre;}

(32)C++流中重载的运算符>>是一个()doubleimag()const{returnim;}

A)用于输出操作的非成员函数B)用于输入操作Complexoperator+(Complexc)const

的非成员函数{returnComplex(re+c.re,im+c.im);}

C)用于输出操作的成员函数D)用于输入操作private:

doublere,im;#include<iostream>

);usingnamespacestd;

intmain()intmain()

((

Complexa=Complex。,1)+Complex(5);inti=5;

cout«a.real()««a.imagO«'i'«endl;int&r=i;r=7;

return0;cout«i«endl;

)return0;

程序执行后的输出结果是)

A)6+6iB)6+liC)l+6iD)1+li(11)下列程序的输出结果是[11]。

二、填空题(每空2分,共30分)#include<iostream>

请将每一个空的正确答案写在答题卡[1H15]序号usingnamespacestd;

的横线上,答在试卷上不得分。注意:以命令关键字填classTest{

空的必须拼写完整。public:

(1)算法的复杂度主要包括[1]复杂度和空间复杂度。Test(){cnt++;}

(2)数据的逻辑结构在计算机存储空间中的存放形式称-Test(){ent—;}

为数据的[2]。staticintCount(){returnent;}

(3)若按功能划分,软件测试的方法通常分为白盒测试方private:

法利[3]测试方法。staticintent;

(4)如果一个工人可管理多个设备,而一个设备只被一个);

工人管理,则实体“工人”与实体“设备”之间存在[4]intTest::cnt=0;

的联系。intmain()

(5)关系数据库管理系统能实现的专门关系运算包括选(

择、连接和[5]。cout«Test::CountO«'

(6)设有定义语句:inta=12;,则表达式a*=2+3的运算Testtl,t2;

结果是[6]。Test*pT3=newTest;

(7)从实现的角度划分,C++所支持的两种多态性分别是Test*pT4=newTest;

[7]时的多态性和运行时的多态性。cout«Test::CountO«'

(8)将一个函数声明为一个类的友元函数必须使用关键deletepT4;

字⑻。deletepT3;

(9)请按下面注释的提示,将类B的构造函数定义补充完cout«Test::Count()«endl;

整。return0;

classA)

((12)下面是用来计算n的阶乘的递归函数,请将该函数

inta;的定义补充完整。(注:阶乘的定义是n!=n*(n-l)*...*2*l)

public:unsignedfact(unsignedn)

A(intaa=0){a=aa;}(

);if(n<=1)

classB:publicA{return1;

intb;return[12];

Ac;)

public:(13)下列程序的输出结果是[131o

〃用aa初始化基类A,用aa+1初始化类对象成员c#include<iostream>

B(intaa):[9]{b=aa+2;}usingnamespacestd;

);template<tytenameT>

(10)下列程序的输出结果是[10]。Tfun(Ta,Tb){return(a<=b)?:b;J

intmain()(16)A(⑺D(18)B(19)D(20)C

((21)B(22)A(23)B(24汨(25)C

cout«fun(3,6)«V«fun(3.14F,6.28F)«(26)D(27)C(28)A(29)A(30)C

endl;⑶)c(32)B(33)D(34)B(35)B

return0;二、填空题(每空2分,共30分)

)(1)[1]时间

(14)与成员访问表达式p->name等价的表达式是(2)[2]存储结构或物理结构或物理存储结构

[14]。⑶[3]黑盒或黑箱

(15)下列程序的输出结果是[15]o(4)[4]一对多或1对多或I:M或I:N(其

#include<iostream>中M、N大小写均可)

usingnamespacestd;(5)[5]投影

classbase{(6)[6]60

public:⑺[7]编译

intn;(8)[8]friend

base(intx){n=x;}(9)[9]A(aa),c(aa+1)或c(aa+l),A(aa)

virtualvoidset(intm){n=m;cout«n«*}(10)[10]7

);(11)111]042

classderiveA:publicbase{(12)[12]n*fact(n-l)

public:(13)[13]3,3.14

deriveA(intx):base(x){}(14)[14](*p).name

voidset(mtm){n+=m;cout«n«*';}(15)[15]25

);2010年3月计算机等级考试二级C++笔试试题

classderiveB:publicbase[一、选择题(每小题2分,共70分)

public:下列各题A)、B)、C)、D)四个选项中,只有一个选

deriveB(intx):base(x){}项是正确的。请将正确选项填涂在答题卡相应位置上,

voidset(intm){n+=m;cout«n«1,;}答在试卷上不得分。

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

intmain()A)对长度为n的有序链表进行查找,最坏情况下需

(要的比较次数为n

deriveAdl(l);B)对长度为n的有序链表进行对分查找,最坏情况

deriveBd2(3);下需要的比较次数为(n/2)

base*pbase;C)对长度为n的有序链表进行对分查找,最坏情况

phase=&dl;下需要的比较次数为(log2n)

pbase->aet(l);D)对长度为n的有序链表进行对分查找,最坏情况

pbase=&d2;下需要的比较次数为(nlog2n)

pbase->set(2);(2)算法的时间复杂度是指

return0;A)算法的执行时间

)B)算法所处理的数据量

2004年9月C)算法程序中的语句或指令条数

全国计算机等级考试二级笔试试卷D)算法在执行过程中所需要的基本运算次数

公共基础知识及C++语言程序设计(3)软件按功能可以分为:应用软件、系统软件和支

答案及评分标准撑软件(或工具软件)。下面属于系统软件的是

选择题((1135)每小题2分,共70分)A)编辑软件

(DC(2)C(3)B(4)A(5)DB)操作系统

(6)B(7)D(8)B(9)C(10)AC)教务管理系统

(11)D(12)D(13)C(14)D(15)AD)浏览器

(4)软件(程序)调试的任务是D)并

A)诊断和改正程序中的错误(11)下列关于函数的描述中,错误的是

B)尽可能多地发现程序中的错误A)函数可以没有返回值

C)发现并改正程序中的所有错误B)函数可以没有参数

D)确定程序中错误的性质C)函数可以是一个类的成员

(5)数据流程图(DFD图)是D)函数不能被定义为模板

A)软件概要设计的工具(12)若MyClass是一个类名,且有如下语句序列

B)软件详细设计的工具MyClasscl,*c2;

C)结构化方法的需求分析工具MyClass*c3=newMyClass;

D)面向对象方法的需求分析工具MyClass&c4=c1;

(6)软件生命周期可分为定义阶段,开发阶段和维护上面的语句序列所定义的类对象的个数是

阶段。详细设计属于A)1

A)定义阶段B)2

B)开发阶段C)3

C)维护阶段D)4

D)上述三个阶段(13)下列关于继承方式的描述中,错误的是

(7)数据库管理系统中负责数据模式定义的语言是A)如果不显式地指定继承方式,缺省的继承方式是

A)数据定义语言私有(private)

B)数据管理语言B)采用公有继承方式时,基类中的公有成员在派生

C)数据操纵语言类中仍然是公有成员

D)数据控制语言C)采用保护继承方式时,基类中的保护成员在派生

(8)在学生管理的关系数据库中,存取•个学生信息类中仍然是保护成员

的数据单位是D)采用私有继承方式时,基类中的私有成员在派生

A)文件类中仍然是私有成员

B)数据库(14)将前缀运算符“-”重载为非成员函数,下列原型

C)字段中,能正确用于类中说明的是

D)记录A)Decr&operator-(int);

(9)数据库设计中,用E-R图来描述信息结构但不涉B)Decroperator—(Decr&,int);

及信息在计算机中的表示,它属于数据库设计的C)friendDecr&operator—(Decr&);

A)需求分析阶段D)frlendDeeroperator—(Decr&,int);

B)逻辑设计阶段(15)若MyTemp是一个只有一个虚拟类型参数的类

C)概念设计阶段模板,且有如下语句序列

D)物理设计阶段MyTempp2;

(10)有两个关系R和T如下:MyTempp3[2];

编译系统在处理上面的语句序列时,所生成的模板

MyTemp的实例的个数是

A)1

B)2

C)3

D)0

(16)在C++中,cin是个

A)类

则由关系R得到关系T的操作是B)对象

A)选择C)模板

B)投影D涵数

C)交(17)在下列字符中,不允许作为C++标识符的是

A)bpublic:

B)Bdoubley3;

C),):

D)2在类YY中保护成员变量的个数是

(18)下列叙述中,错误的是A)1

A)false是一个逻辑型常量B)2

B)"b"是一个字符型常量C)3

C)365是一个int常量D)4

D)3.1415926是一个double常量(24)下列关于运算符重载的描述中,错误的是

(19)若x和y是程序中的两个整型变量,则下列ifA)可以通过运算符重载在C++中创建新的运算符

语句中正确的是B)赋值运算符只能重载为成员函数

A)if(x==0)y=l;elsey=2;C)运算符函数重载为类的成员函数时,第一操作数

B)if(x==0)theny=lelsey=2;是该类对象

C)if(x==0)y=lelsey=2;D)茶载类型转换运算符时不需要声明返回类型

D)ifx=0y=1;elsey=2;(25)下列关于类模板的描述中,错误的是

(20)要定义整型数组x,使之包括初值为O的三个A)类模板的成员函数都是模板函数

元素,下列语句中错误的是B)可以为类模板参数设置默认值

A)intx[3]={0,0,0};C)类模板描述了一组类

B)intx[]={0};D)类模板中只允许有一个类型参数

C)staticintx[3]={0};(26)下列控制格式输入输出的操作符中,能够设置

D)intx[]={0,0,0);浮点数精度的是

(21)关于函数中的〈返回类型〉,下列表述中错误的是A)setprecision

A)<返回类型》中有可能包含关键字intB)setw

B)〈返回类型〉中有可能包含自定义标识符C)setfill

C)〈返回类型〉中有可能包含字符*D)showpoint(27)下列程序段中包含4个函数,其中

D)〈返回类型〉中可能包含口具有隐含this指针的是

(22)要定义一个引用变量p,使之引用类MyClassintfun1();

的一个对象,正确的定义语句是classTest{

A)MyClassp=MyClass;public:

B)MyClassp=newMyClass;intfun2();

C)MyClass&p=newMyClass;friendintfun3();

D)MyClassa,&p=a;staticintfun4();

(23)有如下两个类定义);

classXX{A)funl

private:B)fun2

doublex1;C)fun3

protected:D)fun4

doublex2;(28)有如下程序

public:#include

doublex3;usingnamespacestd;

);classTest{

classYY:protectedXX{public:

private:Test(){}

doubleyl;Test(constTest&t){cout«l;}

protected:);

doubley2;Testfun(Test&u){Testt=u;returnt;)

intmain(){Testx,y;x=fun(y);return0;}-Base(){cout«VALB;}<p>

运行这个程序的输出结果是private:

A)无输出intvalB;

B)1);

C)llclassDerived:publicBase{

D)lllpublic:

(29)有如下程序Derived(intx=0,int

#includey=0):Base(x),valD(y){cout«VALD;}<p>

usingnamespacestd;-Derived(){cout«VALD;}<p>

classA{private:

public:intvalD;

A(inti=0):rl(i){});

voidprint(){cout«,E,«R!«-';}<p>intmain(){

voidprint()const{cout«rC'«R1*R1«!-\}<p>Derivedobj12(2,3);

voidprint(intx){cout«,P,«R1*R1*RIp>retuen0;

private:)

intrl;运行时的输出结果是

);A)2332

intmain(){B)2323

Aal;C)3232

constAa2(4);D)3223

al.print(2);(32)下面是类Shape的定义:

al.print();classShape{

return0;public:

)virtualvoidDraw()=0;

运行时的输出结果是};

A)P8-E4下列关于Shape类的描述中,正确的是

B)P8-C16-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论