试题

计算机二级C++模拟试题及答案五

时间:2025-04-13 17:45:34 试题 我要投稿
  • 相关推荐

2015年计算机二级C++模拟试题及答案(五)

  2015年3月全国计算机等级考试已经结束,9月份的考试现在也可以复习了,下面应届毕业生网小编专门为你准备了计算机等级考试的模拟试题,供你考前练习:

2015年计算机二级C++模拟试题及答案(五)

  一、选择题

  1.算法分析的目的是( )

  A.找出数据结构的合理性

  B.找出算法中输入和输出之间的关系

  C.分析算法的易懂性和可靠性

  D.分析算法的效率以求改进

  【参考答案】D

  2.在单链表中,增加头结点的目的是( )

  A.方便运算的实现

  B.使单链表至少有一个结点

  C.标识表结点中首结点的位置

  D.说明单链表是线性表的链式存储实现

  【参考答案】A

  3.软件开发离不开系统环境资源的支持,其中必要的测试数据属于( )

  A. 硬件资源

  B.通信资源

  C. 支持软件

  D.辅助资源

  【参考答案】D

  4.分布式数据库系统不具有的特点是( )

  A.数据分布性和逻辑整体性

  B.位置透明性和复制透明性

  C.分布性

  D.数据冗余

  【参考答案】D

  5.下列数据模型中,有坚实理论基础的是( )

  A. 层次模型

  B.网状模型

  C. 关系模型

  D.以上3个都是

  【参考答案】C

  6.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是( )

  A.ABCED

  B.DCBEA

  C.DBCEA

  D.CDABE

  【参考答案】B

  7.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的( )

  A. 安全性

  B.一致性

  C. 可理解性

  D.合理性

  【参考答案】C

  8.软件开发的结构化生命周期方法将软件生命周期划分成( )

  A. 定义、开发、运行维护

  B.设计阶段、编程阶段、测试阶段

  C. 总体设计、详细设计、编程调试

  D.需求分析、功能定义、系统设计

  【参考答案】A

  9.数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( )

  A.特定的数据模型

  B.数据无冗余

  C.数据可共享

  D.专门的数据管理软件

  【参考答案】A

  10.实体是信息世界中广泛使用的一个术语,它用于表示( )

  A.有生命的事物

  B.无生命的事物

  C.实际存在的事物

  D.一切事物

  【参考答案】C

  11.下列关于C++语言类的描述错误的是( )

  A.类用于描述事物的属性和对事物的操作

  B.类与类之间通过封装而具有明确的独立性

  C.类与类之间必须是平等的关系,而不能组成层次结构

  D.类与类之间可以通过一些方法进行通信和联络

  【参考答案】C

  12.以下叙述中正确的是( )

  A.构成C++语言程序的基本单位是类

  B.可以在一个函数中定义另一个函数

  C.main()函数必须放在其他函数之前

  D.所有被调用的函数一定要在调用之前进行定义

  【参考答案】A

  13.以下程序的输出结果是( )

  #include

  void reverse(int a[],int n)

  { int i,t;

  for(i=0;i

  { t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

  }

  void main()

  { int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;

  reverse(b,8);

  for(i=6;i<10;i++)s+=b[i];

  cout<

  }

  A.22

  B.10

  C.34

  D.30

  【参考答案】A

  14.设有数组定义:char array[]=″China″;,则数组array所占的空间为( )

  A.4个字节

  B.5个字节

  C.6个字节

  D.7个字节

  【参考答案】C

  15.下面的哪个选项不能作为函数的返回类型?( )

  A.void

  B.int

  C.new

  D.long

  【参考答案】C

  16.下面程序输出的结果是( )

  #include

  void main()

  { int i;

  int a[3][3]={1,2,3,4,5,6,7,8,9};

  for(i=0;i<3;i++)

  cout<

  }

  A.1 5 9

  B.7 5 3

  C.3 5 7

  D.5 9 1

  【参考答案】B

  17.下列描述中哪个是正确的?( )

  A.私有派生的子类无法访问父类的成员

  B.类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的

  C.私有派生类不能作为基类派生子类

  D.私有派生类的所有子孙类将无法继续继承该类的成员

  【参考答案】B

  18.如果友元函数重载一个运算符时,其参数表中没有任何参数是说明该运算符是( )

  A.一元运算符

  B.二元运算符

  C.选项A和选项B都可能  来源:考试大网

  D.重载错误

  【参考答案】D

  19.下列关于模板的说法正确的是( )

  A.模板的实参在任何时候都可以省略

  B.类模板与模板类所指的是同一概念

  C.类模板的参数必须是虚拟类型的

  D.类模板中的成员函数全部都是模板函数

  【参考答案】D

  20.下面程序段的运行结果是( )

  void main()

  {int t,a,b,c;

  a=1;b=2;c=2;

  while(a

  { t=a;a=b;b=t;c--;}

  cout<

  A.1,2,0

  B.2,1,0

  C.1,2,1

  D.2,1,1

  【参考答案】A

  21.若定义int k=7,x=12;,则能使值为3的表达式是( )

  A.x%=(k%=5)

  B.x%=(k-k%5)

  C.x&=k-k%5

  D.(x%=k)-(k%=5)

  【参考答案】D

  22.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是( )

  struct node

  { char data;

  struct node *next;

  } a,b,*p=&a,*q=&b;

  A.a.next=q;

  B.p.next=&b;

  C.p->next=&b;

  D.(*p).next=q;

  【参考答案】B

  23.以下都是C++语言标识符的是( )

  A.dsfa,df4,f$

  B.huhj,a^,k2

  C.3k,h,j_9

  D._ok,jk,k8

  【参考答案】D

  24.设以下变量均为int类型,则值不等于7的表达式是( )

  A.(x=y=6,x+y,x+1)

  B.(x=y=6,x+y,y+1)

  C.(x=6,x+1,y=6,x+y)

  D.(y=6,y+1,x=y,x+1)

  【参考答案】C

  25.while和do-while循环的主要区别是( )

  A.do-while的循环体至少无条件执行一次

  B.while的循环控制条件比do-while的循环控制条件更 严格

  C.do-while允许从外部转到循环体内

  D.do-while的循环体不能是复合语句

  【参考答案】A

  26.若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为(假设a[0][0]位于数组的第一个位置上)( )

  A.i*m+j

  B.j*m+i

  C.i*m+j-1

  D.i*m+j+1

  【参考答案】A

  27.下面叙述不正确的是( )

  A.派生类一般都用公有派生

  B.对基类成员的访问必须是无两义性的

  C.赋值兼容则也适用于多重继承的组合

  D.基类的公有成员在派生类中仍然是公有的

  【参考答案】D

  28.关于友元的概念错误的是( )

  A.友元函数没有this指针

  B.调用友元函数时必须在它的实参中给出要访问的对象

  C.一个类的成员函数也可以作为另一个类的友元函数

  D.只能在类的公有段声明友元

  【参考答案】D


  29.下面程序的结果是( )

  #include

  class test{ private:

  int num;

  public:

  test();

  int getint() {return num;}

  ~test();};

  test::test()

  { num =0;}

  test::~test()

  { cout<<″Destructor is active″<

  void main()

  { test x[3];

  cout<<″Exiting main″<

  A.Exiting is actice

  Destructor is active

  Destructor is active

  Destructor is active

  B.Exiting main

  Destructor is active

  Destructor is active

  C.Exiting main

  Destructor is active

  D.Exiting main

  【参考答案】A

  30.下列语句不能够用于打开C根目录下文件test.txt的语句是( )

  A.ifstream fin;fin.open(″C:\\test.txt″);

  B.ifstream fin(″C:\\test.txt″);

  C.A和B  

  D.ifstream fin;fin(″C:\\test.txt″);

  【参考答案】D

  31.下列关于C++函数的描述中正确的是( )

  A.主函数是程序的入口,它由用户定义的函数调用

  B.函数在调用之前必须先被声明

  C.每个用户定义的函数只能被其他函数调用一次

  D.函数是C++中面向对象程序设计框架的基本组成单元

  【参考答案】B

  32.下列程序的运行结果为( )

  #include

  class Location {

  protected:

  int X,Y;

  public:

  void SetX(int myx) {X=myx;}

  void SetY(int myy) {Y=myy;}

  void showxy() {cout<<″X=″<

  class Rectangle:public Location{

  private:

  int H,W;

  public:

  void SetH(int myh) {H=myh;}

  void SetW(int myw) {W=myw;}

  void show() {cout<<″X=″<

  ?Y<<″ ″<<″H=″<

  void main()

  { Rectangle r1;

  r1.SetX(3);

  r1.SetY(5);

  r1.SetH(4);

  r1.SetW(6);

  r1.showxy();

  r1.show();}

  A.X=3 Y=5 X=3 Y=5 H=4 W=6

  B.X=3 Y=5

  X=3 Y=5 H=3 W=6

  C.X=3 Y=5

  D.X=3 Y=5X=3 Y=4 H=4 W=6

  X=3 Y=3 H=4 W=6

  【参考答案】A

  33.有以下程序

  #include

  void main()

  { int a=5,b=0,c=0;

  if(a=b+c)cout<<″***″<

  else cout<<″$$$″<

  下列选项叙述正确的是( )

  A.有语法错不能通过编译

  B.可以通过编译但不能通过连接

  C.输出***

  D.输出$$$

  【参考答案】D

  34.以下程序中循环体总的执行次数是( )

  int i,j;

  for(i=6;i>1;i--)

  for(j=0;j

  {……}

  A.20

  B.261

  C.15

  D.25

  【参考答案】A

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

  #include

  void main()

  { int a[3],i,j,k=2;

  for(i=0;i<3;i++)a[i]=i;

  for(i=0;i

  for(j=0;j

  a[j]=a[i];

  cout<

  A.2

  B.3

  C.1

  D.0

  【参考答案】A


  二、填空题

  1.将代数式

  ______________ 换成程序设计中的表达式为 【1】。

  ╱ X*X+Y*Y

  Z= ╱ ----------

  ╲╱ a+b

  【参考答案】

  【1】SORT(x^2+y^2)/(a+b)

  2.【2】是数据库设计的核心。

  【参考答案】

  【2】数据模型

  3.测试的目的是暴露错误,评价程序的可靠性;而【3】的目的是发现错误的位置并改正错误。

  【参考答案】

  【3】调试

  4.在面向对象的设计中,用来请求对象执行某一处理或回答某些信息的要求称为【4】。

  【参考答案】

  【4】消息

  5.常用的黑箱测试有等价分类法、【5】、因果图法和错误推测法4种。

  【参考答案】

  【5】边值分析法

  6.【6】是C++语言程序的入口。

  【参考答案】

  【6】main()函数

  7.C++语言的基本控制结构为顺序结构、选择结构和【7】。

  【参考答案】

  【7】循环结构

  8.函数重载要求重载的函数必须有和原函数一样的【8】。

  【参考答案】

  【8】函数名

  9.设置虚基类的目的是【9】,通过【10】表示虚基类。

  【参考答案】

  【9】解决二义性问题

  【10】用关键字virtual

  10. 语句cout<<′\n′还可表示为【11】。

  【参考答案】

  【11】cout<< p>

  11.若已知a=10,b=20,则表达式!a< p>

  【参考答案】

  【12】1

  12.友元类的所有成员函数都是另一个类的【13】。

  【参考答案】

  【13】友元函数

  13.表达式x.operator++()还可写成【14】。

  【参考答案】

  【14】++x

  14.若要在C盘根目录下作为二进制文件打开文件test.dat,则应该用的语句是:

  【参考答案】

  【15】ifstream fin(″C:\test.dat″,ios_binary);或ifstream fin;fin.open(c:\test.dat″,ios_bin

  三、改错题

  使用VC6打开考生文件夹下的工程kt2_1,此工程包含一个源程序文件kt2_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:

  Vehiclemessage

  Carmessage

  Vehiclemessage

  源程序文件kt2_1.cpp清单如下:

  #include

  classvehicle

  {

  intwheels;

  floatweight;

  public:

  voidmessage(void){cout<<"Vehiclemessage\n";}

  };

  classcar:publicvehicle

  {

  intpassenger_load;

  public:

  voidmessage(void){cout>>"Carmessage\n";}

  };

  classtruck:publicvehicle

  {

  intpassenger_load;

  floatpayload;

  public:

  intpassengers(void){returnpassenger_load;}

  };

  voidmain()

  {

  vehicle*unicycle;

  unicycle=newvehicle;

  unicycle.message();

  deleteunicycle;

  unicycle=newcar;

  unicycle->message();

  deleteunicycle;

  unicycle=newtruck;

  unicycle->message();

  deleteunicycle;

  }

  【参考答案】

  (1)将void message(void){ cout<<"Vehicle message\n";}

  改为:virtual void message(void){ cout<<"Vehicle message\n";}

  (2)将void message (void){cout>>"Car message\n";}

  改为:void message (void){cout<<"Car message\n";}

  (3)将unicycle.message();

  改为:unicycle->message();

  【试题解析】

  (1)主要考查对虚函数使用规则的掌握,要实现对函数message的动态联编应该使用虚函数,否则产生的是静态联编,调用的函数输出结果就与要求不符;

  (2)主要考查对流输出操作的掌握,该处错误的使用了流输入操作;

  (3)主要考查对象和对象指针的概念,对象指针使用"->"调用成员函数,而对象使用"."调用成员函数。

  四、简单应用题

  编写类AA的成员函数intCompare(AAb),该函数用于比较*this与b的大小,若两者含有元素的个数n相同,并且数组中前n个元素值对应相同,则认为两者相等返回1,否则返回0。注意:用数组方式及for循环来实现该函数。输出结果如下:

  a=b

  a<>c

  注意:部分源程序已存在文件kt2_2.cpp中。

  请勿修改主函数main和其他函数中的任何内容,仅在函数Compare的花括号中填写若干语句。

  文件kt2_2.cpp的内容如下:

  #include

  #include

  classAA{

  int*a;

  intn;

  intMS;

  public:

  voidInitAA(intaa[],intnn,intms)

  {

  if(nn>ms)

  {\cout<<"Error!"<< p>

  exit(1);}

  MS=ms;

  n=nn;

  a=newint[MS];

  for(inti=0;i< p>

  }

  intCompare(AAb);

  };

  intAA::Compare(AAb)

  {

  }

  voidmain()

  {AAa,b,c;

  intx[]={1,2,3,4,5};

  inty[]={1,2,3,6,7};

  intz[]={1,2,5,7,9};

  a.InitAA(x,3,5);

  b.InitAA(y,3,5);

  c.InitAA(z,3,5);

  if(a.Compare(b))

  cout<<"a=b"<< p>

  else

  cout<<"a<>b"<< p>

  if(a.Compare(c))

  cout<<"a=c"<< p>

  else

  cout<<"a<>c"<< p>

  【参考答案】

  int AA::Compare(AA b)

  {if(n!=b.n) return 0;

  for(int i=0; i<>

  if(a[i]!=b.a[i]) return 0;

  return 1;}

  【试题解析】

  本题考查应用for循环、if条件控制语句等基本控制结构解决实际问题的能力。

  五.综合应用题

  使用VC6打开考生文件夹下的工程test17_3,此工程包含一个源程序文件kt2_3.cpp,其中定义了用于表示点的类Point和表示内容的类Text以及二者的派生类CircleWithText,但它们的定义并不完整。请按要求完成下列操作,将它们的定义补充完整。

  (1)定义类Point的构造函数,请使用参数列表的形式将成员函数x和y分别初始化为参数x1和y1的值。请在注释“//**1**”之后添加适当的语句。

  (2)完成类Text的构造函数Text(char*str)的定义,将char型的str指向的内容赋值给text并且输出str所指向的内容,请在注释“//**2**”之后添加适当的语句。

  (3)定义类CircleWithText的构造函数CircleWithText(intcx,intcy,char*msg),int型的cx和cy用于赋值给x和y,char型的指针*msg用于赋值给text,请在注释“//**3**”之后添加适当的语句。

  输出结果如下:

  Point:34

  hello

  注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。

  源程序如下:

  #include

  #include

  classPoint

  {intx,y;

  public:

  //**1**

  {cout<<"Point:"<<<''<<<'\N';}< p>

  ~Point(){}};

  classText

  {chartext[100];

  public:

  Text(char*str)

  {//**2**}

  ~Text(){}};

  classCircleWithText:publicPoint,publicText

  {public:

  //**3**

  {}

  ~CircleWithText(){}};

  voidmain()

  {CircleWithTextcm(3,4,"hello");}

  【参考答案】

  (1)Point(int x1=0, int y1=0) :x(x1), y(y1)

  (2)strcpy(text,str);

  cout<<<"\N";< p>

  (3)CircleWithText(int cx,int cy, char *msg):Point(cx,cy),Text(msg)

  【试题解析】

  本题主要考查考生对于多继承中类的定义和派生类构造函数的定义的掌握。注意学会使用参数列表的形式定义派生类的构造函数,在列表中的格式是基类名1(向基类传递的参数列表),基类名2(向基类传递的参数列表)。

【计算机二级C++模拟试题及答案五】相关文章:

计算机二级C++模拟试题及答案01-23

2016计算机二级C++上机模拟试题及答案07-16

2016年计算机二级《C++》模拟试题及答案06-11

计算机二级c++试题及答案12-24

2015年计算机二级C++模拟试题及答案(三)07-13

2016年计算机二级考试C++模拟试题及答案07-01

计算机二级《C++》上机试题及答案08-12

计算机二级考试C++试题及答案04-01

计算机二级C++强化试题及答案05-15