首页 - 网校 - 万题库 - 直播 - 雄鹰 - 团购 - 书城 - 模考 - 学习通 - 导航 - 510 -
首页考试吧网校万题库直播雄鹰510团购书城模考论坛实用文档作文大全宝宝起名
2015中考
法律硕士
2015高考
MBA考试
2015考研
MPA考试
在职研
中科院
考研培训
专升本
自学考试 成人高考
四 六 级
GRE考试
攻硕英语
零起点日语
职称英语
口译笔译
申硕英语
零起点韩语
商务英语
日语等级
GMAT考试
公共英语
职称日语
新概念英语
专四专八
博思考试
零起点英语
托福考试
托业考试
零起点法语
雅思考试
成人英语三级
零起点德语
等级考试
华为认证
水平考试
Java认证
职称计算机 微软认证 思科认证 Oracle认证 Linux认证
公 务 员
导游考试
物 流 师
出版资格
单 证 员
报 关 员
外 销 员
价格鉴证
网络编辑
驾 驶 员
报检员
法律顾问
管理咨询
企业培训
社会工作者
银行从业
教师资格
营养师
保险从业
普 通 话
证券从业
跟 单 员
秘书资格
电子商务
期货考试
国际商务
心理咨询
营 销 师
司法考试
国际货运代理人
人力资源管理师
广告师职业水平
卫生资格 执业医师 执业药师 执业护士
会计从业资格
基金从业资格
统计从业资格
经济师
精算师
统计师
会计职称
法律顾问
ACCA考试
初级会计职称
资产评估师
高级经济师
注册会计师
高级会计师
美国注册会计师
审计师考试
国际内审师
注册税务师
理财规划师
一级建造师
安全工程师
设备监理师
公路监理师
公路造价师
二级建造师
招标师考试
物业管理师
电气工程师
建筑师考试
造价工程师
注册测绘师
质量工程师
岩土工程师
注册给排水
造价员考试
注册计量师
环保工程师
化工工程师
暖通工程师
咨询工程师
结构工程师
城市规划师
材料员考试
消防工程师
监理工程师
房地产估价
土地估价师
安全评价师
房地产经纪人
投资项目管理师
环境影响评价师
土地登记代理人
宝宝起名
缤纷校园
实用文档
入党申请
英语学习
思想汇报
作文大全
工作总结
求职招聘 论文下载 直播课堂
您现在的位置: 考试吧 > 计算机等级考试 > 计算机二级考试 > C加加 > 模拟试题 > 正文

2016年计算机二级《C++》基础练习题及答案(2)

考试吧整理“2016年计算机二级《C++》基础练习题及答案(2)”供考生参考。更多计算机等级考试相关信息请关注考试吧计算机等级考试网。

  点击查看:2016年计算机二级《C++》基础练习题及答案汇总

  1[单选题]下列关于面向对象概念的描述中,错误的是(  )。

  A.面向对象方法比面向过程方法更加先进

  B.面向对象方法中使用了一些面向过程方法中没有的概念

  C.面向对象方法替代了结构化程序设计方法

  D.面向对象程序设计方法要使用面向对象的程序设计语言

  参考答案:C

  2[简答题] 有以下两个程序,分析它们的执行结果有什么不同。

  程序1:

  #include

  class Point

  {

  int x,y;

  public:

  Point(){x=y=0;}

  Point(int i,int j){x=i;y=j;}

  Point operator+(Point);

  void disp() ( cout<<”(”<

  }

  Point Point::operator+(Point P)

  {

  this->x+=P.x; this->y+=p.y;

  return *this;

  }

  void main()

  {

  Point pl(2,3),p2(3,4),p3;

  cout<<”p1:”;p1.disp();

  cout<<”p2:”;p2.disp();

  p3=pl+p2;

  cout<<”执行p3=p1+p2后”<

  cout<<”p1:”,p1.disp();

  cout<<”p2:”;p2.disp();

  cout<<”p3:”;p3.disp();

  }

  程序2:

  #include

  class Point{

  int x,Y;

  public:

  Point(){x=y=O;}

  Point(int i,int j){x=i,y=j;}

  Point operator+(Point);

  void disp f){cout<< ”(”<

  }

  Point Point::operator+(Point P)

  {

  Point s;

  s.x=x+p.x; s.y=y+p.y;

  return s;

  }

  void main()

  {

  Point pl(2,3),p2(3,4),p3;

  cout<<”p1:”;p1.disp();

  cout<<”p2:”;p2.disp();

  p3=pl+p2;

  cout<<”执行p3=p1+p2后”<

  cout<<”p1:”;p1.disp();

  cout<<”p2:”;p2.disp();

  cout<<”p3:”;p3.disp();

  }

  参考解析:这两个程序中的main函数完全相同,类Point中的运算符重载均采用成员函数方式实现,只是程序1的运算符重载函数使用this指针,而程序2的运算符重载函数使用局部对象。

  p3=p1+p2 等价于p3=p1.operator+(p2)。对于程序1,this指针指向p1对象,执行this->x+=p.x;this->y十一 p.y;语句,修改p l对象的x和y成员值,执行return*this;语句,将pl对象赋给p3。所以p1和p3两个对象的x、Y值相同,即p3=pl+p2等价于 p1=p1+p2,p3:p1,其运行结果如下:

  p1:(2,3)

  p2:(3,4)

  执行p3=pl+p2后

  P1:(5,7)

  p2:(3,4)

  P3:(5,7)

  对于程序2,执行运算符重载函数,Point s;语句定义一个对象,s.x=x+p.x;s.y=y+p.y;语句用于修改s对象的x、Y值,ret%il~l s;语句返回该对象,赋给p3,而p1和p2对象不改变。其运行结果如下:

  p1:(2,3)

  p2:(3,4)

  执行p3=pl+p2后

  p1:(2,3)

  p2:(3,4)

  p3:(5,7)第

  3[单选题]C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是

  A.增加了一些新的运算符

  B.允许函数重载,并允许设置缺省参数

  C.规定函数说明符必须用原型

  D.引进了类和对象的概念

  参考答案:D

  4[单选题] 若x和y是程序中的两个整型变量,则下列if语句中正确的是(  )。

  A.if(x==O)y=1;elsey=2;

  B.if(x==0)theny=1elsey=2

  C.if(x==O)y=1elsey=2;

  D.ifx==0y=1elsey=2;

  参考答案:A

  参考解析:if…else语句的格式“if(<条件>)<语句1>else<语句2>”注意语句结束要以分号结尾,对照题中选项可知A正确。

  5[单选题]

  A.3B.4C.5D.6

  参考答案:C

  参考解析:

  

  6[单选题]友元函数的作用是(  )。

  A.提高程序的效率

  B.加强类的封装性

  C.实现数据的隐蔽性

  D.增加成员函数的种类

  参考答案:A

  参考解析:友元函数的引入是为了提高程序的效率,减少通过接口访问的限制,但却破坏了类的封装性。

  7[单选题]下列描述中,错误的是(  )。

  A.公有继承时基类中的公有成员在派生类中仍是公有成员

  B.公有继承时基类中的保护成员在派生类中仍是保护成员

  C.保护继承时基类中的公有成员在派生类中仍是公有成员

  D.保护继承时基类中的保护成员在派生类中仍是保护成员

  参考答案:C

  参考解析:保护继承时基类中的公有成员在派生类中是保护成员。

  8[单选题] 下列关于C++函数的说明中,正确的是(  )。

  A.内联函数就是定义在另一个函数体内部的函数

  B.函数体的最后一条语句必须是return语句

  C.标准C++要求在调用一个函数之前,必须先声明其原型

  D.编译器会根据函数的返回值数型和参数表来区分函数的不同重载形式

  参考答案:C

  参考解析:内联函数不是定义在另一个函数体内部的函数,而是将inline放在函数定义中函数类型之前;函数体的最后一条语句可以是任意的语句;编译器不会根据函数返回值的类型来区分重载形式,选项D错误。标准C++要求在调用一个函数之前,必须先声明其原型。

  9[简答题]使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,即使程序在屏幕输出以下类似内容:

  0012FF6810012FF3C5

  0012FF6C20012FF444

  0012FF7030012FF4C3

  0023FF7440012FF542

  0012FF7850012FF5C1

  006AFDCC~006AFDEF数据可能因为机器的不同,程序输出的内容会有差异。只要相差为4的连续地址即可。

  注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。

  试题程序:

  #include

  usingnamespacestd;

  intmain()

  {

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

  double*q,b[5]={5.0,4.0,3.0,2.0,1.0);

  intx;

  P=a;

  q=b;

  //********error********

  for(x=0;x<=5;X++)

  //********error********

  cout<

  (q+x)<

  return0;

  }

  参考解析:

  (1)应改为“for(x=0;x<5;x++)”。

  (2)应改为“cout<

  【解析】本题中根据数组a、b的定义。它们都有5个元素,而第1处的“for(x=0;x<=5;x++)”循环了6次,应该是5次,所以在第1处将其修改为“for(x=0;x<5;x++)”;第2处的P变量为指针型变量,p+x为糯向数组中第X个元素的地址,这里要输出的是存储单元的内容,所以使用“*”指针元素符,即修改为“cout<

  10[填空题]类中包含了一个静态成员函数,则main函数中和P.f1(P);语句具有同样功能的语句为_______。

  

  参考解析:

  【答案】M::f1(P);

  【解析】由于f1是类M的静态成员函数,即说明类M的任何对象都共享一份f1,因此,不仅可以从对象那里访问f1,还可以用域操作符::通过类名来访问。

1 2 3 下一页

  相关推荐:

  各地2016年全国计算机等级考试报名时间汇总

  各地2016年全国计算机等级考试费用汇总

  2016年计算机二级考试《C++》复习资料汇总

  2016年计算机等级考试各级别报考适合专业类别

文章搜索
版权声明:如果计算机等级考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本计算机等级考试网内容,请注明出处。
Copyright © 2004- 考试吧计算机等级考试网 All Rights Reserved 
中国科学院研究生院权威支持(北京) 电 话:010-62168566 传 真:010-62192699