应届毕业生网>考试网考试网 > 计算机类 > 计算机二级 > 时间 >

2015下半年全国计算机二级C++全真模拟试题答案及解析(2)

发布时间:2017-08-04

  (21)B

  解析: 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。逻辑与运算符"&&"需要两边的结果都为1时,其结果才为1。

  (22)D

  解析: C++的this指针是系统默认产生的一个指针,它是const的,所以是不能够被改变,不能够被赋值的。

  (23)B

  解析: 类D继承了类C和类B,所以在构造的时候分别构造类B和类C。

  (24)D

  解析: 虚函数一定不能定义为静态的。虚函数可以声明为友元,子类也不是必须重定义父类的虚函数,若在重定义虚函数时使用了virtual,则该重定义函数不一定还是虚函数。

  (25)A

  解析: C++中用成员函数重载++x为:x. operator++(),用友元函数重载++x为:operator++(x),用成员函数重载x/y为:x. operator/(y),用友元函数重载x/y为:operator/(x,y)。

  (26)C

  解析: C++语言中默认小数的输出位一共是6位,fixed的意义是在小数点后保留6位。

  (27)D

  解析: 选项D)第一层括号中为数组a中第i项元素的值,外面再加指针运算符没有意义。

  (28)B

  解析: 本题的运算过程是fun((int)fun(a+c,b),a-c),fun((int)fun(10,5),2-8),fun((int)15.000000,-6),fun(15,-6)=9。

  (29)A

  解析: 本题中有成员函数和它的重载函数,要注意它们的不同,在本题中先调用了init函数,初始化了X,Y,都为0,valueX(5);又将X变为5,所以输出5和0,然后初始化init(6,2),接着又valueY(4);将X,Y设为6和4,所以输出6和4。

  (30)B

  解析: C++基本的性质就是它的封装性,而封装性主要是靠类来实现的。

  (31)A

  解析: 左移运算符"<<"是双目运算符。其功能把"<<"左边的运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。左移1位,相当于该数乘以2。

  (32)B

  解析: 这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1进行宏替换时,要将宏名M原样替换,得到NUM的形式为2*N+1+1(千万不要随意把给N+1加上小括号,使NUM变为2*(N+1)+1,这就是宏名和变量名之间的区别)。

  (33)B

  解析: 在函数体语句中的b+=*a;的*是指针运算符(也称间接访问运算符),*a就是main函数中a的值。

  (34)B

  解析: C++语言函数中定义的变量都是属于这个函数的局部变量。

  (35)B

  解析: fib(3)=fib(2)+ fib(1),而fib(2)的返回值为2,fib(1)的返回值也为2,故输出的fib(3)的值为4。

  二、填空题

  (1)0

  解析: 根据冒泡排序算法思想可知,若待排序的初始序列为"正序"序列,则只需进行一趟排序,在排序过程中进行n-1次关键字间的比较,且不移动和交换记录,这种情况是冒泡排序的最好情况,故冒泡排序算法在最好的情况下的元素交换次数为0。

  (2)O(nlog2n)

  解析: 在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(n15);堆排序所需要的比较次数为O(nlog2n)。

  (3)46

  解析: 串s中共有9个字符,由于串中字符各不相同,则其子串中有0个字符的1个(空串),1个字符的9个,2个字符的8个,3个字符的7个,4个字符的6个,5个字符的5个,6个字符的4个,7个字符的3个,8个字符的2个,9个字符的1个,共有1+2+3+4+5+6+7+8+9+1=46。

  (4)软件工具

  (5)谓词演算

  解析: 关系数据库中的关系演算包括元组关系演算和域关系演算。二者都是由原子公式组成的公式。而这些关系演算都是以数理逻辑中的谓词演算为基础的。

  (6)sizeof

  解析: C++语言中关键字运算符有3个分别new,delete和sizeof。new 是申请内存,delete是释放内存,sizeof是求字节数。

  (7)max=(a>b)?a:b;

  解析: 条件运算符要求有三个操作对象,称三目(元)运算符,它是C++语言中惟一的一个三目运算符。条件表达式的一般形式为:表达式1?表达式2:表达式3。所以我们可以写成(a>b)?a:b,它是一个"条件表达式"。执行顺序是如果(a>b)条件为真,则条件表达式取值a作为整个表达式的值,否则取值b作为整个表达式的值。

  (8)defg

  解析: 本题中,给数组s中的第5个元素s[4]赋以′\0′,则s数组中只有前4个元素有效,输出结果为defg。

  (9)j+=2~a[i]>=a[j]`a[i]>a[j]

  解析: strlen函数是测试字符串长度的函数,函数的值为字符串中的实际长度,不包括′\0′在内。

  (10)静态~非静态

  解析: 静态成员函数可以直接访问该类中的静态数据成员,而不能访问该类中的非静态数据成员。

  (11)virtual int A()= 0;

  解析: C++语言中的纯虚函数是一种特殊的函数,它没有自己的定义,只有声明,纯虚函数与虚函数声明的不同就在于在函数后面加上了"=0"。

  (12)x+y++`x+(y++)

  解析: 因为y.operator++(0)是对成员y重载运算符,所以是成员重载,在参数表中又有一个参数,是重载后缀++,即是x+(y++)。

  (13)fin

  解析: 如果程序没有用close()主动关闭文件,则在文件流对象退出作用域时,被调用的析构函数会关闭对象所联系的文件。但应及时关闭,以便尽早释放占用的系统资源并将文件置于更安全的状态。

推荐阅读
热点排行

关于应届毕业生网|致应届毕业生|会员协议|法律声明|手机触屏版|求职防骗中心|联系我们|问题反馈