考试吧

计算机等级

考试吧>等级考试>计算机二级考试>C加加>模拟试题>正文
2016年计算机二级《C++》基础练习题及答案(5)
考试吧 2016-01-13 12:01:10 评论(0)条

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

  1[单选题]设有基类定义:

  

  派生类采用何种继承方式可以使成员变量b成为自己的私有成员(  )。

  A.私有继承

  B.保护继承

  C.公有继承

  D.私有、保护、公有

  参考答案:A

  参考解析:类的继承中有三种继承方式,他们和类的访问级别相结合在派生类中可以产生多种 访问级别。基类中成员为保护的,在派生类中要为私有的,可以采用私有继承。基类中的保护成员 在派生类中不是私有就是保护,即级别只能降低而不能升高。基类中的公有成员则可能为私有、保 护和私有。

  2[单选题] 有下列程序:

  #include

  intfun(intx,inyy)

  {if(x==y)return(x);

  elsereturn((x+y)/2);

  }

  voidmain(  )

  {inta=4,b=5,c=6;

  printf("%d\n",fun(2*a,fun(b,c)));

  }

  程序运行后的输出结果是(  )。

  A.3B.6C.8D.12

  参考答案:B

  参考解析:在程序中子函数fun(intX,inty)的功能是如果X的值等于y的值,则返回X的值,否则返回这两个数的算术平均值,在主函数中首先计算fun(5,6),其值等于5,然后再计算fun(8,5),其值等于6。所以正确答案为选项B。

  3[单选题]下列选项中,作为是数据库系统的核心的是(  )。

  A.数据库B.数据模型C.软件工具D.数据库管理系统

  参考答案:D

  参考解析:数据库管理系统DBMS是数据库系统的核心。DBMS是负责数据库的建立、使用和维护的软件。DBMS建立在操作系统之上,实施对数据库的统一管理和控制。

  4[单选题] 下列程序的输出结果是(  )。#include

  voidmain()

  (char*str="12123434";

  intx1=0,x2=0,x3=0,x4=0,i;

  for(i=0;str[i]!='\0';i++)

  switch(str[i])

  {case'1':x4++;

  case'2':x3++;

  case'3':x2++;

  case'4':x1++;

  }

  cout<

  <","<

  }

  A.8,6,4,1B.8,6,3,2C.8,8,4,1D.8,6.4,2

  参考答案:D

  参考解析:本题考查循环的嵌套、for和switch语句的应用、C++中各种条件判断,循环语句的用法。只要注意在C++语言中,系统在字符指针的最后位置会增加一个字符串结束符'\0',执行8次for循环,再根据switch语句中的条件易知答案。

  5[单选题]

  

  A.

  

  B.

  

  C.

  

  D.

  

  参考答案:B

  参考解析:

  

  6[单选题]请阅读以下程序:

  

  上面程序的输出结果是(  )。

  A.a=2,b=1 B.a=1,b=1 C.a=1,b=0D.a=2,b=2

  参考答案:A

  参考解析:本题考察switch语句的嵌套,以及break语句的使用规则,即break中断当前的执行流,不再执行下面的case语句,如果没有break语句,则会顺序执行随后语句。据此,读程序可知,内层switch执行case 0分支,故a增1,调出内层switch后,由于没有break语句,随后执行外层switch的case 2分支,a又增1,b增1。故答案为A。

  7[单选题]对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是( )。

  A.快速排序B.冒泡排序C.直接插入排序D.堆排序

  参考答案:D

  8[单选题] 下列运算符函数中肯定不属于类FunNumber的成员函数的是(  )。

  A.int operator一(FunNumber);

  B.FunNumber operator一();

  C.FunNumber operator一(int);

  D.int operator一(FunNumber,FunNumber);

  参考答案:D

  参考解析:本题考查运算符重载的一些规则:①一般情况下,单目运算符最好重载为类的成员函数,双目运算符则最好重载为类的友元函数;②双目运算符=、()、[]、->不能重载为类的友元函数;③类型转换函数只能定义为一个类的成员函数,而不能定义为类的友元函数;④若一个运算符的操作需要修改对象的状态,选择重载为成员函数较好;⑤若运算符所需的操作数(尤其是第一个操作数)希望有隐式类型转换,则只能选用友元函数;⑥当运算符函数是一个成员函数时,最左边的操作数(或者只有最左边的操作数)必须是运算符类的一个类对象(或者是对该类对象的引用);如果左边的操作数必须是一个不同类的对象,或者是一个内部类型的对象,该运算符函数必须作为一个友元函数来实现。所以答案为D。

  9[单选题]下列数据结构中,插入时不需要移动其他元素的是(  )。

  A.有序线性链表B.无序线性链表C.栈和队列D.以上三种都是

  参考答案:D

  参考解析:在线性链表中插入或删除元素都不需要移动其他元素,只需改变指针即可;栈只能在一端插入或删除元素,也不需要移动其他元素;队列只能在一端插人元素.在另一端删除元素,也不需 要移动其他元素。

  10[单选题]有如下程序:

  #include

  #include

  using namespace std;

  int main(){

  cout << setfill('*')<

  return 0;

  }

  运行输出结果是( )。

  A.***123***456B.***123456***C.***123456D.123456

  参考答案:C

  参考解析:在主函数中第一次输出时调用函数setfill('*')设置填充字符为‘*’,调用函数 setw(6)设置每次输出的宽度为6,所以第一次输出123时,多余的三个空位用‘*’填充,即结果为***123,第二次从输出流中输出456。

展开全文
评论(0条) 发表
Copyright © 2004-
考试吧(m.566.com)北京美满明天科技有限公司
社会统一信用代码:91110108MA01WU311X
帮助中心