19、一个队列入列顺序是1,2,3,4,则输出顺序是
a、4321 b、1234 c、1432 d、3241
队列是先进先出的,所以答案是B、1 2 3 4
20、若进栈顺序为1,2,3,4,假定进栈和出栈可以穿插进行,
则可能的出栈顺序为:
a、2413 b、3142 c、3412 d、1234
答案是:D。分析过程如下:
A,第一个为2第二个为4,可以确定栈中是3,1所以应该是2431
B,第一个为3,则栈中2,1。第二个可能是24,但肯定不是1
C,第一个为3,第二个为4,则栈中是2,1,所以应该是3421
D,由于进栈和出栈可以穿插进行,所以1进,1出,2进, 2出,3进,3出,4进,4出。
21、算法的空间复杂度指
a、算法程序的长度
b、算法程序的指令条数
c、算法程序占的存储空间
d、算法执行过程中所需的存储空间
答案是D,因为,空间复杂度指的就是:程序执行过程中由于需要,所申请的内存空间。
22、某数列有1000个各不相同的单元,有低到高排列,要对该数进行二分法检索
,最坏的情况下,需要检查多少个单元
a、1000 b、10 c、100 d、500
答案是B,
因为,因为2^9=512,不够检索完1000个,
那么:2^10=1024,就够检索完1000个了。
二分查找次数以2为基数,2的10次方为1024,
完全可以查找到,所以最多只需要10次即可。
23、已知数组A中,每个元素A[I][J]在存储时要占3个字节,设I从0变到4,
J从0到9,分配内存从地址SA开始连续按行存储分配的。问:A[4][7]的起始地址为:
a、SA+84 b、SA+99 c、SA+120 d、SA+141
答案是D,
因为,数组的首个元素也就是数组的首地址是A[0][0],
那么A[4][7]就是第5行的第8列,一个元素3个字节,
那么一行(J最大为9,就是10列)10*3=30个字节,
前4行4*30=120,再加上7个7*3,
结果就是:4*10*3+7*3=141。
24、使用双向链表存放数据的优点是
a、提高检索速度 b、方便的插入和删除数据
c、节约存储空间 d、很快回收存储空间
答案是B,因为,
链表优点:
1)插入和删除元素不需要移动其余元素,效率高;
2)不要求连续空间,空间利用效率高
链表缺点:
1)不提高随机访问元素的机制
2)查找元素和搜索元素的效率低
25、若某链表最常用的操作是在最后一个结点之后插入一个结点并删除最后一个
结点,则采用____存储方式最省时间
a、单链表
b、双链表
c、带头节点的双循环链表
d、单循环链表
答案是C,因为,
双循环链表能够通过头结点的前驱就是尾结点,能够迅速找到尾结点,然后进行插入和删除操作
26、在理想情况下,散列表中查找元素所需比较次数为:
a、n b、0 c、n/2 d、1
答案是D,因为,
散列方法不同于顺序查找、二分查找、二叉排序树及B-树上的查找。
它不以关键字的比较为基本操作,采用直接寻址技术。
在理想情况下,无须任何比较就可以找到待查关键字,查找的期望时间为O(1)。
27、Ethernet属于数据链路层协议
答案是正确的。因为:
数据链路层的主要协议有:
(1)Point-to-Point Protocal; PPP点到点
(2) Ethernet; 以太网
(3) High-Level Data Link Control Protocal;HDLC高级链路控制协议
(4) Frame Relay; 帧中继
(5) Asynchronous Transfer Mode;ATM
28、普通交换机和路由器工作在
a、数据链路层和传输层
b、链路层和网络层
c、都是网络层
d、网络层和传输层
答案是B,因为,
交换机主要工作在数据链路层(第二层)
路由器工作在网络层(第三层)。
29、以太网的MTU值为
a、500 b、1492 c、1500 d、1982
答案是C,因为
最大传输单元MTU=1500是国际规定的默认值,
是一个经过实验得到的可以最大效率传输数据的值。
倘若大于1500,数据传输速度就会变慢;
若小于1500,链路又得不到充分利用,减小了效率。
30、在一个Windows SDK 的基本应用程序框架中,有如下消息循环:
while(GetMessage(&Msg,NULL,0,0) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
下面哪个消息使得该消息循环退出运行,从而终止整个应用程序的运行
a、WM_DESTROY b、WM_QUIT c、WM_CLOSR d、WM_CREATE
答案是B,因为
WM_CLOSE:关闭应用程序窗口
WM_DESTROY:关闭应用程序
WM_QUIT:关闭消息循环
只有关闭了消息循环,应用程序的进程才真正退出(在任务管理器里消失)。
31、进程和线程最主要的区别:
a、CPU调度方式不同 b、优先级不同
c、程序入口不同 d、进程有独立的地址空间,线程共享地址空间
答案是D,
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。
进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,
而线程只是一个进程中的不同执行路径。
线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,
一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,
但在进程切换时,耗费资源较大,效率要差一些。
32、以下哪项不适合用于进程间通讯
a、socket b、Pipe c、共享内存 d、全局变量
答案是D,
Windows中进程间通信方式有:
File, 管道(Pipe),命名管道(named pipe),信号(Signal),消息队列(Message queue),
共享内存(shared memory),内存映射(memory –mapped file),信号量(semaphore),
套接口(Socket),命名事件。临界区事实上应该算是由信号量来保证的。
全局变量不能用于进程间通讯。
19-20 bd
21-25 dbdbd
26-30 d对bcc
31-32 dd
主要是了解各种数据存储的性质,队列先进先出;栈先进后出;
上面只是我按自己的想法做的答案;25不是很肯定;26散列按地址取模计算至少要比较一次吧。
19.b
20.d
21.d
22.b
23.d
24.b
25.c
26.b
27.错
28.b
29.c
30.b
31.d
32.d
19.b
20.d
21.d
22.b
23.d
24.b
25.c
26.b
27.不确定
28.b
29.c
30.b
31.d
32.d
19. b
20. d
21. d
22. b
23. d
24. b
25. c
26. b
27. 正确
28. b
29. c
30. b(蒙的)
31. d
32. d
PS.分多少不要紧,分享精神重要