1.某单位要求在大型服务器上安装一种多用户、多任务GPL操作系统,最适合的操作系统是?
A Linux
B Windows Server
C Windows XP
D OS/2
答:看到GPL,果断选了Linux。
对于B、C选项,Windows的这两个系统不开源,不支持GPL协议。
而D选项的OS/2系统是单用户多任务操作系统。
2.若系统在运行过程中,由于某种硬件故障使存储在外存上的数据部分损失或全部损失, 这种情况称为( )
A 介质故障
B 运行故障
C 系统故障
D 事务故障
答:介质故障,硬件就是介质
(1)事务内部的故障:事务内部故障可分为预期的和非预期的,其中大部分的故障都是非预期的。预期的事务内部故障是指可以通过事务程序本身发现的事务内部故障;非预期的事务内部故障是不能由事务程序处理的,如运算溢出故障、并发事务死锁故障、违反了某些完整性限制而导致的故障等。
(2)系统故障:系统故障也称为软故障,是指数据库在运行过程中,由于硬件故障、数据库软件及操作系统的漏洞、突然停电灯情况,导致系统停止运转,所有正在运行的事务以非正常方式终止,需要系统重新启动的一类故障。这类事务不破坏数据库,但是影响正在运行的所有事务。
(3)介质故障:介质故障也称为硬故障,主要指数据库在运行过程中,由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸等情况,使得数据库中的数据部分或全部丢失的一类故障。
(4)计算机病毒故障:计算机病毒故障是一种恶意的计算机程序,它可以像病毒一样繁殖和传播,在对计算机系统造成破坏的同时也可能对数据库系统造成破坏(破坏方式以数据库文件为主)。
3.下列运算符中,( )运算符在 C++ 中不能被重载
A &&
B []
C ::
D New
答:是::
. 、 :: ?= sizeof 这五个不可以重载
4.对于任意一个图,从它的某个顶点进行一次先深或先广搜索可以访问到该图的每个顶点?
答:错误,因为若图不连通,一次深搜或广搜是不够的,需要循环几次。
5.
若有以下程序
#include <stdio.h>
int f(int a[ ],int n)
{
if(n > 1)
{
int t;
t=f(a, n-1);
return t > a[ n -1 ] ? t:a[n-1];
}
else
return a[0];
}
main()
{
int a[ ]= {8,2,9,1,3,6,4,7,5};
printf("%d\n", f(a, 9));
}
则程序的输出结果是?
答:9.这道题我也是比较懵逼的,后来想一想,可以倒着来想,既然是递归调用,就可以找到最初的出发点,即f(a,1),此时返回a[0];然后f(a,2),调用一次f(a,1),返回a[0]和a[1]中较大的数;再f(a,3),调用f(a,2)并把该返回值赋值给t,最后返回a[0],a[1],a[2]中较大的数。到这里,不难看出f(a,n)可返回数组a[n]中最大的数。
6.将一棵树t转换为孩子兄弟链表表示的二叉树h,则t的后序遍历是h的()
A 前序遍历
B 中序遍历
C 后序遍历
答:中序遍历,容易看出,树的先根遍历即森林的先序遍历可对应到二叉树的先序遍历,树的后根遍历即森林的中序遍历可对应到二叉树的中序遍历。换句话说,若以孩子-兄弟链表作树(或森林)的存储结构,则树的先根遍历(或森林的先序遍历)的算法和二叉树的先序遍历算法类似,而树的后根遍历(或森林的中序遍历)的算法和二叉树的中序遍历算法类似。
7.OS的不确定性是指
A程序的运行结果不确定
B程序的运行次序不确定
C程序多次运行的时间不确定
D其他三项
答:选最后一个
8.用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为
答案:5个
数字和运算符都用结点表示,边表示相应的运算。
9.设主存容量为1MB,辅存容量为400MB,计算机系统的地址寄存器有24位,那么虚存的最大容量是
答案是2^24B。虚拟存储器的最大容量是由计算机的地址结构确定的,其虚拟地址空间=2^24B
10.广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表,正确吗
答案错误,非空的广义表中的元素或者是一个不可分割的原子,或者是一个非空的广义表,注意理解题目,广义表的元素也可以为空
11.若要重载+、=、<<、=和[]运算符,则必须作为类成员重载的运算符是
+和=
=和<<
==和<<
=和[]
答:选d
(1)只能使用成员函数重载的运算符有:=、()、[]、->、new、delete。
(2)单目运算符最好重载为成员函数。
(3) 对于复合的赋值运算符如+=、-=、*=、/=、&=、!=、~=、%=、>>=、<<=建议重 载为成员函数。
(4) 对于其它运算符,建议重载为友元函数。
运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下:
函数类型 operator 运算符名称 (形参表列)
{
对运算符的重载处理
}
重载为类成员函数时参数个数=原操作数个数-1(后置++、–除外)
重载为友元函数时 参数个数=原操作数个数,且至少应该有一个自定义类型的形参