无忧首页企业系统我的无忧
无忧服务:
兼职活动培训
娱乐交友:
交友社区资讯
全职实习:
实习暑假寒假
微信号:school51
扫一下,立即关注
加关注
在线支付,立省10元
下载新版APP
===大学生成长生活平台===

2010年全国计算机等级考试二级C++模拟试题及答案(12)

2013-12-20来源/作者:管理员点击次数:280

  编辑推荐:

  2010年全国计算机二级考试各科模拟试题冲刺专题

  全国计算机等级考试二级C++语言程序设计标准预测试卷汇总

  全国计算机二级考试C++笔试练习四十套

  笔试部分

  一、选择题

  1.算法的空间复杂度是指

  A)算法程序的长度

  B)算法程序中的指令条数

  C)算法程序所占的存储空间

  D)执行过程中所需要的存储空间

  【参考答案】 D

  2.用链表表示线性表的优点是

  A)便于随机存取 B)花费的存储空间较顺序存储少

  C)便于插入和删除操作 D)数据元素的物理顺序与逻辑顺序相同

  【参考答案】 C

  3.数据结构中,与所使用的计算机无关的是数据的

  A)存储结构 B)物理结构 C)逻辑结构 D)物理和存储结构

  【参考答案】 C

  4.结构化程序设计主要强调的是

  A)程序的规模 B)程序的效率 C)程序设计语言的先进性 D)程序易读性

  【参考答案】 D

  5.软件设计包括软件的结构、数据接口和过程设计,其中软件的过程设计是指

  A)模块间的关系

  B)系统结构部件转换成软件的过程描述

  C)软件层次结构

  D)软件开发过程

  【参考答案】 B

  6.检查软件产品是否符合需求定义的过程称为

  A)确认测试 B)集成测试 C)验证测试 D)验收测试

  【参考答案】 A

  7.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是

  A)控制流 B)加工 C)数据存储 D)源和潭

  【参考答案】 A

  8.应用数据库的主要目的是

  A)解决数据保密问题 B)解决数据完整性问题

  C)解决数据共享问题 D)解决数据量大的问题

  【参考答案】 C

  9.在数据库设计中,将E-R图转换成关系数据模型的过程属于

  A)需求分析阶段 B)逻辑设计阶段 C)概念设计阶段 D)物理设计阶段

  【参考答案】 B

  10.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是

  A)数据库系统 B)文件系统

  C)人工管理 D)数据项管理

  【参考答案】 A

  11.下面关于C++语言的描述错误的是

  A)C++语言支持数据封装

  B)C++语言中引入友元没有破坏封装性

  C)C++语言允许函数名和运算符重载

  D)C++语言支持动态联编

  【参考答案】 B

  12.设有定义int a=1;float f=12;char c=′a′;,则下列表示错误的是

  A)++a; B)f--; C)c++; D)8++;

  【参考答案】 D

  13.下列程序的运行结果为

  #include

  void main()

  { int a=2;

  int b=a+1;

  cout<

  A)0.66667 B)0 C)0.7 D)0.66666666

  【参考答案】 B

  14.设int a=1,b=2;,则(a++)+b和a+++b这两个表达式的值分别为

  A)3,3 B)3,4 C)4,3 D)4,4

  【参考答案】 A

  15.下面程序的运行结果为

  #include

  void main()

  { char a=′3′;

  switch(a)

  { case ′3′: cout<<"3";

  case ′2′: cout<<"2"; break;

  default:cout<<"1"; } }

  A)3 B)321 C)31 D)32

  【参考答案】 D

  16.有如下数组声明:int num[10];,下标值引用错误的是

  A)num[10] B)num[5] C)num[3] D)num[0]

  【参考答案】 A

  17.存在定义int a[10],x,*pa;,若pa=&a[0],下列的哪个选项和其他3个选项不是等价的?

  A)x=*pa; B)x=*(a+1); C)x=*(pa+1); D)x=a[1];

  【参考答案】 A

  18.下面程序的运行结果为

  #include

  void swap(int &a,int b)

  { int temp;

  temp=a++;

  a=b;

  b=temp; }

  void main()

  { int a=2,b=3;

  swap(a,b);

  cout<

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

  【参考答案】 D

  19.一个函数功能不太复杂但要求被频繁调用,应选用

  A)内联函数 B)重载函数 C)递归函数 D)嵌套函数

  【参考答案】 A

  20.下面关于C++语言变量的叙述错误的是

  A)C++语言中变量分为auto,static,extern和register四种存储类型

  B)自动变量和外部变量的作用域为整个程序

  C)内部静态变量的作用域是定义它的函数

  D)外部静态变量的作用域是定义它的文件

  【参考答案】 B

  21.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为

  A)public B)protected C)private D)static

  【参考答案】 A

  22.在C++语言程序中,对象之间的相互通信通过

  A)继承实现 B)调用成员函数实现 C)封装实现 D)函数重载实现

  【参考答案】 B

  23.类的析构函数是在什么时候调用的?

  A)类创建时 B)创建对象时 C)删除对象时 D)不自动调用

  【参考答案】 C

  24.通常拷贝构造函数的参数是

  A)某个对象名 B)某个对象的成员名 C)某个对象的引用名 D)某个对象的指针名

  【参考答案】 C

  25.下面程序的运行结果为

  #include

  class A

  { static int n;

  public:

  A(){n=1;}

  A(int num){n=num;}

  void print(){cout<

  int A::n=2;

  void main()

  { A a,b (3);

  a.print();

  b.print();

  cout<

  A)11 B)13 C)23 D)33

  【参考答案】 D

  26.下列不是描述类的成员函数的是

  A)构造函数 B)析构函数 C)友元函数 D)拷贝构造函数

  【参考答案】 C

  27.继承机制的作用是

  A)信息隐藏 B)数据封装

  C)定义新类 D)数据抽象

  【参考答案】 C

  28.C++语言类体系中,不能被派生类继承的有

  A)转换函数 B)构造函数

  C)虚函数 D)静态成员函数

  【参考答案】 B

  29.下面程序的运行结果是

  #include

  class base{

  protected:

  int a;

  public:

  base(){cout<<"0";} };

  class base1:virtual base{

  public:

  base1(){cout<<"1";} };

  class base2:virtual base{

  public:

  base2(){cout<<"2";} };

  class derived:public base1,public base2{

  public:

  derived(){cout<<"3";} };

  void main()

  { derived obj;

  cout<

  A)0123 B)3120 C)0312 D)3012

  【参考答案】 A

  30.对于类定义

  class A{

  public:

  virtual void func1(){}

  void func2(){} };

  class B:public A{

  public:

  void func1(){cout<<″class B func 1″<

  virtual void func2(){cout<<″class B func 2″<

  下面正确的叙述是

  A) A::func2()和B::func1()都是虚函数

  B) A::func2()和B::func1()都不是虚函数

  C) B::func1()是虚函数,而A::func2()不是虚函数

  D) B::func1()不是虚函数,而A::func2()是虚函数

  【参考答案】 C

  31.下面关于运算符重载的描述错误的是

  A)运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构

  B)不是所有的运算符都可以进行重载

  C)运算符函数的调用必须使用关键字operator

  D)在C++语言中不可通过运算符重载创造出新的运算符

  【参考答案】 C

  32.与语句cout<

  A)cout<<′n′; B)cout<<′12′;

  C)cout<<′xA′; D)cout<<′′;

  【参考答案】 D

  33.下面程序的运行结果是

  #include

  int fun(int a[],int n)

  { int result=1;

  for(int i=1;i

  result=result*a[i];

  return result; }

  void main()

  { int a[3]={3,4,5};

  cout<

  A)12 B)15 C)20 D)60

  【参考答案】 C

  34.下面程序的运行结果是

  #include

  void main()

  { int i=1;

  while(i<=8)

  if (++i%3!=2)continue;

  else cout<

  A)25 B)36 C)258 D)369

  【参考答案】 C

  35.下列程序的运行结果为

  #include

  template

  class FF

  { TT a1, a2, a3;

  public:

  FF(TT b1, TT b2, TT b3){a1=b1; a2=b2; a3=b3;}

  TT Sum(){return a1+a2+a3;} };

  void main()

  { FF x(int(1.1),2,3),y(int(4.2),5,6);

  cout<

  A)6.1 15.2 B)6 15 C)6 15.2 D)6.1 15

  【参考答案】 B

  二、填空题

  (1)数据的逻辑结构有线性结构和 【1】 两大类。

  【参考答案】

  【1】非线性结构

  (2)顺序存储方法是把逻辑上相邻的结点存储在物理位置 【2】 的存储单元中。

  【参考答案】

  【2】相邻

  (3)一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【3】 。

  【参考答案】

  【3】可重用性

  (4)软件工程研究的内容主要包括: 【4】 技术和软件工程管理。

  【参考答案】

  【4】软件开发

  (5)关系操作的特点是 【5】 操作。

  【参考答案】

  【5】集合

  (6)C++中封装性、继承性和 【6】 是面向对象思想的主要特征。

  【参考答案】

  【6】多态性

  (7)下面程序的结果为【7】。

  #include

  void main()

  { int a=1,b=2;

  bool c=1;

  if((a>b)||c)cout<<"true"<

  else

  cout<<"false"<

  【参考答案】

  【7】true

  (8)下列for语句的循环次数为 【8】 。

  for(int a=0,b=1;b&&a<5;a++);

  【参考答案】

  【8】5

  (9)下面程序的输出结果是 【9】 。

  #include

  void main()

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

  for(int i=0;i<5;i++)

  cout<

  【参考答案】

  【15】*****hello

  上机部分

  一、改错题

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

  5

  5

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

  #include

  classA{

  public:

  /*****************found*****************/

  staticintn=1;

  A(){n++;};

  ~A(){n--;}; };

  /*****************found*****************/

  intn=0;

  intmain(){

  Aa;

  Ab[3];

  A*c=newA;

  c=&a;

  /*****************found*****************/

  cout<

  cout<

  return0; }

  【参考答案】

  (1)将static int n=1;改为:static int n;

  (2)将int n=0;改为:int A::n=0;

  (3)将cout<n<

  【试题解析】

  (1)在类的声明中只能对静态数据成员进行引用性声明,不能进行静态数据成员初始化;

  (2)由于静态数据成员是类的成员,所以在初始化时必须限定它所属的类;

  (3)c为类的对象指针,访问类成员函数时使用符号“->”,而不能用“.”。

  二、简单应用题

  请编写一个函数sortnum(intnum),参数num是一个三位的整数,该函数将num的百位、十位和个位的数字进行重排,并返回由上述的三个数字组成的最大的三位数。

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

  如输入456后,输出结果如下:

  654

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

  文件kt13_2.cpp的内容如下:

  #include

  intsortnum(intnum)

  {

  }

  voidmain()

  { intnum;

  intresult=0;

  cout<<"请输入一个三位数";

  cin>>num;

  cout<

  【参考答案】

  int number[3],i,j,temp;

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

  { number[i]=num%10;

  num=num/10; }

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

  { for (j=i+1;j<3;j++)

  if (number[j]<=number[i])

  { temp=number[j];

  number[j]=number[i];

  number[i]=temp; } }

  num=number[2]*100+number[1]*10+number[0];

  return num;

  【试题解析】

  本题主要考查对基本控制结构和数组的访问,以及根据实际需要建立模型,对数字进行排序的能力,答案中采用的是冒泡排序法。请注意程序中数组下标的范围和两层for循环嵌套中循环变量的取值情况。

  三、综合应用题

  使用VC6打开考生文件夹下的工程kt13_3。此工程包含一个kt13_3.cpp,其中定义了类Person,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。

  (1)定义类Person的私有数据成员forename、surname和money,forename和surname都是char型的指针数据,money是double型的数据。请在注释“//**1**”之后添加适当的语句。

  (2)完成类Person的带三个参数的构造函数Person(char*f,char*s,doublem),分别为forename和surname申请新的空间来存储参数f和s指针指向的内容,注意空间的大小,最后把参数m的值赋给money,请在注释“//**2**”之后添加适当的语句。

  (3)完成类Person的析构函数的定义,把forename和surname指向的空间释放,请在注释“//**3**”之后添加适当的语句。

  (4)完成类Person的成员函数display的定义,使其以格式"fornamesurnamehasmoney"的形式输出内容,请在注释“//**4**”之后添加适当的语句。

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

  输出结果如下:

  RichardBerkhas1000.56

  Pressanykeytocontinue

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

  #include

  #include

  classPerson

  { private:

  //**1**

  doublemoney;

  public:

  Person(char*f,char*s,doublem);

  ~Person();

  voiddisplay(); };

  Person::Person(char*f,char*s,doublem)

  { //**2**

  strcpy(forename,f);

  surname=newchar[strlen(s)+1];

  strcpy(surname,s);

  money=m; }

  Person::~Person()

  { //**3** }

  voidPerson::display()

  { //**4** }

  voidmain()

  { Personp("Richard","Berk",1000.56);

  p.display(); }

  【参考答案】

  (1)char *forename;

  char *surname;

  (2)forename = new char[strlen(f)+1];

  (3)delete []forename;

  delete []surname;

  (4)cout<





相关阅读



关于我们 | 联系我们 | 用户指南 | 网站地图 | 意见建议 | 会员注册 | 用户协议 | 隐私政策