计算机二级c真题及复习资料.docx

上传人:b****6 文档编号:6288346 上传时间:2023-01-05 格式:DOCX 页数:87 大小:130.96KB
下载 相关 举报
计算机二级c真题及复习资料.docx_第1页
第1页 / 共87页
计算机二级c真题及复习资料.docx_第2页
第2页 / 共87页
计算机二级c真题及复习资料.docx_第3页
第3页 / 共87页
计算机二级c真题及复习资料.docx_第4页
第4页 / 共87页
计算机二级c真题及复习资料.docx_第5页
第5页 / 共87页
点击查看更多>>
下载资源
资源描述

计算机二级c真题及复习资料.docx

《计算机二级c真题及复习资料.docx》由会员分享,可在线阅读,更多相关《计算机二级c真题及复习资料.docx(87页珍藏版)》请在冰豆网上搜索。

计算机二级c真题及复习资料.docx

计算机二级c真题及复习资料

全国计算机等级考试二级笔试试卷

公共基础知识及C++语言程序设计

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

一、选择题(

(1)~(35)每小题2分,共70分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下面叙述正确的是

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

B)算法的空间复杂度是指算法程序中指令(或语句)的条数

C)算法的有穷性是指算法必须能在执行有限个步骤之后终止

D)以上三种描述都不对

(2)以下数据结构中不属于线性数据结构的是

A)队列B)线性表C)二叉树D)栈

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

A)8B)16C)32D)15

(4)下面描述中,符合结构化程序设计风格的是

A)使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑

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

C)注重提高程序的执行效率

D)不使用goto语句

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

A)对象B)继承C)类D)过程调用

(6)在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是

A)可行性分析B)需求分析C)详细设计D)程序编码

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

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

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

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

A)数据模型C)软件工具

B)数据库管理系统D)数据库

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

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

B)数据库设计是指设计数据库管理系统

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

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

(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是

A)内模式B)外模式C)概念模式D)逻辑模式

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

A)“封装性”指的是将不同类型的相关数据组合在一起,作为一个整体进行处理

B)“多态性”指的是对象的状态会根据运行时要求自动变化

C)基类的私有成员在派生类的对象中不可访问,也不占内存空间

D)在面向对象的程序设计中,结构化程序设计方法仍有着重要作用

(12)判断字符型变量ch是否为大写英文字母,应使用表达式

A)ch>='A'&ch<='Z'B)ch<='A'||ch>='Z'

C)'A'<=ch<='Z'D)ch>='A'&&ch<='Z'

(13)已知下列语句中的x和y都是int型变量,其中错误的语句

A)x=y++;B)x=++y;C)(x+y)++;D)++x=y;

(14)执行语句序列

intn;

cin>>n;

switch(n)

{case1:

case2:

cout<<'1';

case3:

case4:

cout<<'2';break;

default:

cout<<'3';

}

时,若键盘输入1,则屏幕显示

A)1B)2C)3D)12

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

#include

usingnamespacestd;

intmain()

{

chara[]="Hello,World";

char*ptr=a;

while(*ptr)

{

if(*ptr>='a'&&*ptr<='z')

cout<

elsecout<<*ptr;

ptr++;

}

return0;

}

A)HELLO,WORLDB)Hello,World

C)hELLO,wORLDD)hello,world

(16)已知:

intm=10;在下列定义引用的语句中,正确的是

A)int&x=m;B)inty=&m;

C)int&z;D)int&t=&m;

(17)下列函数原型声明中错误的是

A)voidFun(intx=0,inty=0);

B)voidFun(intx,inty);

C)voidFun(intx,inty=0);

D)voidFun(intx=0,inty);

(18)已知程序中已经定义了函数test,其原型是inttest(int,int,int);,则下列重载形式中正确的是

A)chartest(int,int,int);

B)doubletest(int,int,double);

C)inttest(int,int,int=0);

D)floattest(int,int,float=3.5F);

(19)有以下程序

#include

inti=0;

voidfun()

{{

staticinti=1;

std:

:

cout<

}

std:

:

cout<

}

intmain()

{

fun();fun();

return0;

}

程序执行后的输出结果是

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);变量v1、v2的定义是:

intv1;longv2;,正确的调用语句是

A)f(v1,&v2);B)f(v1,v2);

C)f(&v1,v2);D)f(&v1,&v2);

(21)有以下类定义

classMyClass

{

public:

MyClass(){cout<<1;}

};

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

A)11B)111C)1111D)11111

(22)关于友元,下列说法错误的是

A)如果类A是类B的友元,那么类B也是类A的友元

B)如果函数fun()被说明为类A的友元,那么在fun()中可以访问类A的私有成员

C)友元关系不能被继承

D)如果类A是类B的友元,那么类A

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

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

C)公有成员和保护成员D)私有成员、保护成员和公有成员

(26)在C++中用来实现运行时多态性的是

A)重载函数B)析构函数

C)构造函数D)虚函数

(27)一个类可以同时继承多个类,称为多继承。

下列关于多继承和虚基类的表述中,错误的是

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

B)多继承时有可能出现对基类成员访问的二义性问题

C)使用虚基类可以解决二义性问题并实现运行时的多态性

D)建立最派生类对象时,虚基类的构造函数会首先被调用

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

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

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

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

A)Volumeoperator-(double,double);

B)doubleVolume:

:

operator-(double);

C)VolumeVolume:

:

operator-(Volume);

D)Volumeoperator-(Volume,Volume);

(30)下列是模板声明的开始部分,其中正确的是

A)template

B)template

C)template

D)template

(31)执行语句序列

ofstreamoutfile("DATA.DAT");

if(...)cout<<"OK";elsecout<<"FAIL";

后,如果文件打开成功显示“OK”,否则就显示“F厶n。

”。

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

处的表达式应是

A)out()或outfileB)out()或!

outfile

C)out()或outfileD)out()或!

outfile

(32)C++流中重载的运算符>>是一个()

A)用于输出操作的非成员函数B)用于输入操作的非成员函数

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

(33)有以下类定义

classPoint{

public:

Point(intx=0,inty=0){_.x=x;_.y=y;}

voidMove(intxOff,intyOff)

{_x+=xOff;_.y+=yOff;}

voidPrint()const

{cout<<'('<<_x<<','<<_y<<')'<

private:

int_x,_y;

};

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

A)Pointpt;pt.Print();

B)constPointpt;pt.Print();

C)Pointpt;pt.Move(l,2);

D)constPointpt;pt.Move(l,2);

(34)有以下类定义

classMyClass

{

private:

intid;

chargender,

char*phone;

public:

MyClass():

id(0),gender('#'),phone(NULL){}

MyClass(intno,charge='#',char*ph=NULl.)

{id=no;gende=ge;phone=ph;}

};

下列类对象定义语句中错误的是

A)MyClassmyObj;

B)MyClassmyObj(11,"");

C)MyClassmyObj(12,'m');

D)MyClassmyObj(12);

(35)有以下程序

#include

usingnamespacestd;

classComplex

{

public:

Complex(doubler=0,doublei=0):

re(r),im(i){}

doublereal()const{returnre;}

doubleimag()const{returnim;}

Complexoperator+(Complexc)const

{returnComplex(re+c.re,im+c.im);}

private:

doublere,im;

};

intmain()

{

Complexa=Complex(l,1)+Complex(5);

cout<

return0;

}

程序执行后的输出结果是

A)6+6iB)6+1iC)1+6iD)1+1i

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

请将每一个空的正确答案写在答题卡[1]-[15]序号的横线上,答在试卷上不得分。

注意:

以命令关键字填空的必须拼写完整。

(1)算法的复杂度主要包括[1]复杂度和空间复杂度。

(2)数据的逻辑结构在计算机存储空间中的存放形式称为数据的[2]。

(3)若

classA

{

inta;

public:

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

};

classB:

publicA{

intb;

Ac;

public:

//用aa初始化基类A,用aa+1初始化类对象成员c

B(intaa):

[9]{b=aa+2;}

};

(10)下列程序的输出结果是[10]。

#include

usingnamespacestd;

intmain()

{

inti=5;

int&r=i;r=7;

cout<

return0;

}

(11)下列程序的输出结果是[11]。

#include

usingnamespacestd;

classTest{

public:

Test(){cnt++;}

~Test(){cnt--;}

staticintCount(){returncnt;}

private:

staticintcnt;

};

intTest:

:

cnt=0;

intmain()

{

cout<

:

Count0<<'';

Testtl,t2;

Test*pT3=newTest;

Test*pT4=newTest;

cout<

:

Count0<<'';

deletepT4;

deletepT3;

cout<

:

Count()<

return0;

}

(12)下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。

(注:

阶乘的定义是n!

=n*(n-1)*...*2*1)

unsignedfact(unsignedn)

{

if(n<=1)

return1;

return[12];

}

(13)下列程序的输出结果是[13]。

#include

usingnamespacestd;

template

Tfun(Ta,Tb){return(a<=b)?

:

b;}

intmain()

{

cout<

return0;

}

(14)与成员访问表达式p->name等价的表达式是[14]。

(15)下列程序的输出结果是[15]。

#include

usingnamespacestd;

classbase{

public:

intn;

base(intx){n=x;}

virtualvoidset(intm){n=m;cout<

};

pbase=&dl;

pbase->aet

(1);

pbase=&d2;

pbase->set

(2);

return0;

}

2004年9月

全国计算机等级考试二级笔试试卷

公共基础知识及C++语言程序设计

答案及评分标准

选择题(

(1)—(35)每小题2分,共70分)

(1)C

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

(6)B(7)D(8)B(9)C(10)A

(11)D(12)D(13)C(14)D(15)A

(16)A(17)D(18)B(19)D(20)C

(11)[11]042

(12)[12]n*fact(n-1)

(13)[13]3,3.14

(14)[14](*p).name

(15)[15]25

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

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

  下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。

请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

  

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

  A)对长度为n的有序链表进行查找,最坏情况下需要的比较次数为n

  B)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)

  C)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)

  D)对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)

  

(2)算法的时间复杂度是指

  A)算法的执行时间

  B)算法所处理的数据量

  C)算法程序中的语句或指令条数

  D)算法在执行过程中所需要的基本运算次数

  (3)软件按功能可以分为:

应用软件、系统软件和支撑软件(或工具软件)。

下面属于系统软件的是

  A)编辑软件

  B)操作系统

  C)教务管理系统

  D)浏览器

  A)定义阶段

  B)开发阶段

  C)维护阶段

  D)上述三个阶段

  (7)数据库管理系统中负责数据模式定义的语言是

  A)数据定义语言

  B)数据管理语言

  C)数据操纵语言

  D)数据控制语言

  (8)在学生管理的关系数据库中,存取一个学生信息的数据单位是

  A)文件

  B)数据库

  C)字段

  D)记录

  (9)数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的

  A)需求分析阶段

  B)逻辑设计阶段

  C)概念设计阶段

  D)物理设计阶段

  (10)有两个关系R和T如下:

  则由关系R得到关系T的操作是

  A)选择

  B)投影

  C)交

  D)并

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

  A)函数可以没有返回值

  B)函数可以没有参数

  C)函数可以是一个类的成员

  D)函数不能被定义为模板

  (12)若MyClass是一个类名,且有如下语句序列

  MyClassc1,*c2;

  MyClass*c3=newMyClass;

  MyClass&c4=c1;

  上面的语句序列所定义的类对象的个数是

  A)1

  B)2

  C)3

  D)4

  (13)下列关于继承方式的描述中,错误的是

  A)如果不显式地指定继承方式,缺省的继承方式是私有(private)

  B)采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员

  C)采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员

  D)采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员

 pp3[2];

  编译系统在处理上面的语句序列时,所生成的模板MyTemp的实例的个数是

  A)1

  B)2

  C)3

  D)0

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

  A)类

  B)对象

  C)模板

  D)函数

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

  A)b

  B)B

  C)_

  D)2

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

  

  C)setfill

  D)showpoint(27)下列程序段中包含4个函数,其中具有隐含this指针的是

  intfun1();

  classTest{

  public:

  intfun2();

  friendintfun3();

  staticintfun4();

  };

  A)fun1

  B)fun2

  C)fun3

  D)fun4

  (28)有如下程序

  #include

  usingnamespacestd;

  classTest{

  public:

  Test(){}

  Test(constTest&t){cout<<1;}

  };

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

  intmain(){Testx,y;x=fun(y);return0;}

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

  A)无输出

  B)1

  C)11

  D)111

  (29)有如下程序

  #include

  usingnamespacestd;

  classA{

  public:

  A(inti=0):

r1(i){}

  voidprint(){cout<<'E’<  voidprint()const{cout<<'C'<  voidprint(intx){cout<<'P'<  private:

  intr1;

  };

  intmain(){

  Aa1;

  constAa2(4);

  a1.print

(2);

  a1.print();

  return0;

  }

  运行时的输出结果是

  A)P8-E4

  B)P8-C16-

  C)P0-E4-

  D)P0-C16-

  (30)下列代码声明了3个类

  classPerson{};

  classStudent:

publicPerson{};

  classUndergraduate:

Student{};

  Derived(intx=0,inty=0):

Base(x),valD(y){cout<  ~Derived(){cout<  private:

  intvalD;

  };

  intmain(){

  Derivedobj12(2,3);

  retuen0;

  }

  运行时的输出结果是

  A)2332

  B)2323

  C)3232

  D)3223

  (32)下面是类Shape的定义:

  classShape{

  public:

  virtualvoidDraw()=0;

  };

  下列关于Shape类的描述中,正确的是

  A)类Shape是虚基类

  B)类Shape是抽象类

  C)类Shape中的Draw函数声明有误

  D)语句“Shapes;”能够建立Shape的一个对象s

  (33)将运算符“+”重载为非成员函数,下列原型声明中,错误的是

  A)MyClockoperator+(MyClock,long);

  B)MyClockoperator+(MyClock,MyClock);

  C)MyClockoperator+(long,long);

  D)MyClockoperator+(long,MyClock);

  (34)打

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1