9全国计算机等级考试真题.docx

上传人:b****7 文档编号:24041378 上传时间:2023-05-23 格式:DOCX 页数:19 大小:21.39KB
下载 相关 举报
9全国计算机等级考试真题.docx_第1页
第1页 / 共19页
9全国计算机等级考试真题.docx_第2页
第2页 / 共19页
9全国计算机等级考试真题.docx_第3页
第3页 / 共19页
9全国计算机等级考试真题.docx_第4页
第4页 / 共19页
9全国计算机等级考试真题.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

9全国计算机等级考试真题.docx

《9全国计算机等级考试真题.docx》由会员分享,可在线阅读,更多相关《9全国计算机等级考试真题.docx(19页珍藏版)》请在冰豆网上搜索。

9全国计算机等级考试真题.docx

9全国计算机等级考试真题

2006年9月全国计算机等级考试二级C语言笔试试题(含答案)关键字:

计算机等级考试二级C语言试题答案【加入收藏】【我要举报】作者:

来源:

本站录入:

zhang2008责编:

zhang2008添加日期:

08年04月15日浏览人数:

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

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

  

(1)下列选项中不符合良好程序设计风格的是______。

  A)、源程序要文档化

  B)、数据说明的次序要规范化

  C)、避免滥用goto语句

  D)、模块设计要保证高耦合,高内聚

  

(2)从工程管理角度,软件设计一般分为两步完成,它们是______。

  A)、概要设计与详细设计

  B)、数据设计与接口设计

  C)、软件结构设计与数据设计

  D)、过程设计与数据设计

  (3)下列选项中不属于软件生命周期开发阶段任务的是______。

  A)、软件测试

  B)、概要设计

  C)、软件维护

  D)、详细设计

  (4)在数据库系统中,用户所见的数据模式为______。

  A)、概念模式

  B)、外模式

  C)、内模式

  D)、物理模式

  (5)数据库设计的四个阶段是:

需求分析、概念设计、逻辑设计和______。

  A)、编码设计

  B)、测试阶段

  C)、运行阶段

  D)、物理设计

  (6)设有如下三个关系表下列操作中正确的是

  A)、T=R∩S

  B)、T=R∪S

  C)、T=R×S

  D)、T=R/S

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

  A)、一个算法的空间复杂度大,则其时间复杂度也必定大

  B)、一个算法的空间复杂度大,则其时间复杂度必定小

  C)、一个算法的时间复杂度大,则其空间复杂度必定小

  D)、上述三种说法都不对

  (8)在长为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为______。

  A)、63

  B)、64

  C)、6

  D)、7

  (9)数据库技术的根本目标是要解决数据的______。

  A)、存储问题

  B)、共享问题

  C)、安全问题

  D)、保护问题

  (10)对下列二叉树:

进行中序遍历的结果是______。

  A)、ACBDFEG

  B)、ACBDFGE

  C)、ABDCGEF

  D)、FCADBEG

  (11)下列有关内联函数的叙述中,正确的是______。

  A)、内联函数在调用时发生控制转移

  B)、内联函数必须通过关键字inline来定义

  C)、内联函数是通过编译器来实现的

  D)、内联函数体的最后一条语句必须是rennin语句

  (12)下列情况中,不会调用拷贝构造函数的是______。

  A)、用一个对象去初始化同一类的另一个新对象时

  B)、将类的一个对象赋予该类的另一个对象时

  C)、函数的形参是类的对象,调用函数进行形参和实参结合时

  D)、函数的返回值是类的对象,函数执行返回调用时

  (13)下列有关继承和派生的叙述中,正确的是______。

  A)、如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员

  B)、派生类的成员函数可以访问基类的所有成员

  C)、基类对象可以赋值给派生类对象

  D)、如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类

  (14)下列运算不能重载为友元函数的是______。

  A)、=()[]->

  B)、+-++--

  C)、><>=<=

  D)、+=-=*=/=

  (15)关于在调用模板函数时模板实参的使用,下列表述正确的是______。

  A)、对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略

  B)、对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,FCEADBG则都可以省略

  C)、对于虚拟型参数所对应的模板实参,若能够省略则必须省略

  D)、对于常规参数所对应的模板实参,任何情况下都不能省略

  (16)下列关于输入流类成员函数getline()的描述中,错误的是______。

  A)、该函数是用来读取键盘输入的字符串的

  B)、该函数读取的字符串长度是受限制的

  C)、该函数读取字符串时,遇到终止符便停止

  D)、该函数读取字符串时,可以包含空格

  (17)下列符号中,正确的C++标识符是______。

  A)、enum

  B)、2b

  C)、foo-9

  D)_32

  (18)下列语句中,错误的是______。

  A)、constintbuffer=256;

  B)、constdouble*point;

  C)、intconstbuffer=256;

  D)、double*constpoint;

  (19)if语句的语法格式可描述为

  格式1:

if(<条件>)<语句>

  或

  格式2:

if(<条件>)<语句1>else<语句2>

  关于上面的语法格式,下列表述中错误的是

  A)、<条件>部分可以是一个if语句,例如if(if(a=0)?

)?

  B)、<条件>部分可以是一个if语句,例如if(?

)if(?

)?

  C)、如果在<条件>前加上逻辑非运算符!

并交换<语句1>和<语句2>的位置,语句功能不变

  D)、<语句>部分可以是一个循环语句,例如if(?

)while(?

)?

  (20)有如下说明

  inta[10]={1,2,3,4,5,,6,7,8,9,10},*p=a;

  则数值为9的表达式是______。

  A)、*p+9`

  B)、*(p+8)

  C)、*p+=9

  D)、p+7

  (21)或下面的函数调用

  fun(a+b,3,max(n-1)b)

  则fun的实参个数是______。

  A)、3

  B)、4

  C)、5

  D)、6

  (22)以下关键字不能用来声明类的访问权限的是______。

  A)、public

  B)、static

  C)、protected

  D)、private

  (23)在公有继承的情况下,允许派生类直接访问的基类成员包括______。

  A)、公有成员

  B)、公有成员和保护成员

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

  D)、保护成员

  (24)关于运算符重载,下列表述中正确的是______。

  A)、C++已有的任何运算符都可以重载

  B)、运算符函数的返回类型不能声明为基本数据类型

  C)、在类型转换符函数的定义中不需要声明返回类型

  D)、可以通过运算符重载来创建C++中原来没有的运算符

  (25)关于关键字class和typename,下列表述中正确的是______。

  A)、程序中的typename都可以替换为class

  B)、程序中的class都可以替换为typename

  C)、在模板形参表中只能用typename来声明参数的类型

  D)、在模板形参表中只能用class或typename来声明参数的类型

  (26)有如下程序

  #include

  #include

  usingnamespacestd;

  intmain(){

  count 

 return0;

  }

  若程序的输出是:

  **12.345**34.567

  则程序中下划线处遗漏的操作符是______。

  A)、setprecision(3)

  B)、fixed

  C)、setfill(*)

  D)、stew(8)

  (27)有如下程序

  #include

  #include

  usingnamespacestd;

  classMyClass{

  public:

  MyClass(){cout<<’A”;}

  MyClass(charc{cout<~MyClass(){sout<<’B”;}

  };

  Intmain(){

  MyClassp1,*p2

  p2=newMyClass(‘X’);

  deletep2;

  return0;

  }

  执行这个程序幕上将显示输出______。

  A)、ABX

  B)、ABXB

  C)、AXB

  D)、AXBB(28)有如下程序

  #include

  usingnamespacestd;

  inti=1;

  classFun{

  public;

  staticinti;

  intvalue(){returni-1}

  intvalue()const{returni+1;}

  };

  intFun;;i=2;

  intmain(){

  inti=3;

  FunFun1

  constFunfun2;

  return0;

  }

  若程序的输出结果是:

  123

  则程序中下划线处遗漏的语句是______。

  A)、cout<

  B)、cout<

  C)、cout<

  D)、cout<

  (29)有如下程序

  #include

  usingnamespacestd;

  classObj{

  staticinti;

  public:

  Obj(){i++;}

  ~Obj(){i--;}

  staticintgetVal(){teturni;}

  };

  intObj:

:

i=0;

  voidf(){Objob2;cout

  Objobl;

  F();

  Obj*ob3=newObj;cout

  Deleteob3;cout

  }

  程序的输出结果是______。

  A)、232

  B)、231

  C)、222

  D)、221

  (30)有如下程序

  #include

  usingnamespacestd;

  classBase{

  protected;

  Base(){cout<<’A’;}

  Base(charc){cout<};

  classDerived;publicBase{

  public:

  Derived(charc){cout<};

  intmain(){

  Derivedd1(‘B’);

  return0;

  }

  执行这个程序屏幕上将显示输出______。

  A)、B

  B)、BA

  C)、AB

  D)、BB

  (31)有如下类定义:

  classMyBase{

  intk;

  public;

  MyBase(intn=0):

k(n){}

  intvalue()const{returnk;}

  };

  classMyDerived;MyBase{

  intj;

  public;

  MyDerived(inti):

j(i){}

  intgetK()const{returnk;}

  intgutj()const{returnj;}

  };

  编译时发现有一处语法错误,对这个错误最佳准确的描述是

  A)、函数getK试图访问基类的私有成员变量K

  B)、在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private

  C)、类MyDerived缺少一个无参的构造函数

  D)、类MyDerived的构造的数没有对基数数据成员K进行初始化

  (32)在一个派生类对象结束其生命周期时

  A)、先调用派生类的析构函数后调用基类的析构函数

  B)、先调用基类的析构函数后调用派生类的析构函数

  C)、如果基数没有定义析构函数,则只调用派生类的析构函数

  D)、如果派生类没有定义析构函数,则只调用基类的析构函数

  (33)有如下的运算重载函数定义:

  Doubleoperator+(inti,intk){returndouble(i+k);}

  但定义有错误,对这个错误的最准确的描述是______。

  A)、+只能作为成员函数重载,而这里的+是作为非成员函数重载的

  B)、两个int型参数的和应该是int型,而这里将+的返回类型声明为double

  C)、没有将运算符重载函数声明为某个类的友元

  D)、C++已经提供了求两个int型数据之和运算符+,不能再定义同样的运算符

  (34)语句ofstreamf(“SALARY.DAT”,ios_base:

:

app)的功能是建立流对象f,并试图打开文件SALARY.DAT与f关联,而且______。

  A)、若文件存在,将其置为空文件;若文件不存在,打开失败

  B)、若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件

  C)、若文件存在,将文件指针定位于文件首;若文件不存在,打开失败

  D)、若文件存在,打开失败;若文件不存在,建立一个新文件

  (35)有如下程序

  #include

  usingnamespacestd;

  classA{

  public:

  virtualVoidfuncl(){cout<<“A1”;}

  voidfune2(){cout<<“A2”;}

  };

  classB:

publicA{

  public:

  voidfunc1(){cout<<“B1”;}

  voidfunc2(){cout<<“B2”;}

  };

  Intmain(){

  A*p=newB;

  p->funcl();

  p->func2();

  retum0;

  }

  运行程序,屏幕上将显示输出______。

  A)、B1B2

  B)、A1A2

  C)、B1A2

  D)、A1B2

  二、填空题(每空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(inti=0;i(8)已知递归函数f的定义如下:

  intf(intn)

  {

  If(n<=1)return1;//递归结束情况

  elsereturnn*f(n-2);//递归}则函数调用语句f(5)的返回值是[8]。

  (9)创建对象数组时,对数组的每一个元素都将调用一次构造函数,如果没有显式给出数组元素的初值,则调用缺省构造函数,下列程序涉及到对象数组的创建和单个对象的创建,其输出结果是[9]。

  #include

  usingnamespacestd;

  classFoo{

  public:

  Foo(intX){cout<<’A”}

  Foo(){}

  };

  intmain()

  Foof[3],g(3);

  return0;

  }

  (10)习惯性在下列程序的输出结果是42,请将画线处缺失的部分补充完整。

  #include

  Usingnamespaceatd;

  ClassFoo{

  intvalue;

  public:

  Foo():

value(0){}

  Voidsetvalue(intvalue)

  {[10]=value;//给Foo的数据成员value赋值}voidprint(){cout<};

  Intmain()

  {

  Foof;

  f.setvalue(42);

  f.print();

  retum0;

  }

  (11)如果不能使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基数继承的成员,下列程序没有使用多态机制,其输出结果是[11]。

  #include

  usingnamespacestd;

  classBase{

  public:

  Voidprint(){cout<<‘B’;}};

  classDerived:

publicBase{

  public

  voidprint(){cout<<‘D’;}}

  intmain()

  {

  Derived*pd=newDreived);

  Base*pb=pd;

  pb->print();

  pd->print();

  deletepd;

  return0;

  }

  (12)在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承

  private。

已知有如下类定义:

  classBase{

  protected:

  voidfun(){}

  };

  ClassDerived:

Base{};

  则Base类中的成员函数fun(),在Derived类中的访问权限是[12](注意:

要求填写private、protected或public中的一项)。

  (13)在MyClass类的定义中,对赋值运算符=进行重载。

请将画线处缺失的部分补充完整。

  [13]MyClass:

:

operator=(constMyClassrhs)

  {

  if(this=&rhs)return*this;

  value=rhs.value;

  return*this;

  }

  (14)插入排序算法的主要思想是:

每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置,InsertSort类的成员函数sort()实现了插入排序算法,请将画线处缺失的部分补充完整。

  classInsertSort{

  public:

  InsertSort(int*a0,intn0):

a(a0),n(n0){}//参数组首地址,n是数组元素个数

  voidsort()

  {//此函数假设已排离序列初始化状态只包含a[0],未排序序列初始为a[1]?

a[n-1]

  for(inti=1;iintj;

  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

  usingnamespacestd;

  classA{

  inta

  public:

  A():

a(9){}

  virtualvoidprint()const{cout<};

  classB:

publicA{

  charb;

  public:

  B(){b=‘S’;}

  voidprint()const{cout<};

  voidshow(Aa&X){X,print()}

  intmain()

  {Ad1;*p;

  Bd2;

  p=&d2;

  d1,print();

  d2,print();

  p->print();

  show(d1);

  show(d2);

  return0;}

人通天下培训915版权所有,未经许可,严禁转载。

参考答案:

  参考答案

一、选择题:

  01—05DACBD06—10CDBBA

  11—15ADDAD16—20CCBBC

  21—25DACBC26—30ABCDC

  31—35ADBAD36—40BBADC

  41—45CBBCD46—50BABDC

  二、填空题:

  1、3

  2、调试

  3、元组

  4、栈

  5、线性

  6、12346.0

  7、1011

  8、1

  9、74

  10、n=n/10

  11、(x+8)

  12、sin(x)

  13、0

  14、i%2==0

  15、s--

  16、*s++

  17、18

  18、1611

  19、->data

  20、”rb”

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

当前位置:首页 > 农林牧渔 > 农学

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

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