选择题
1. 针对下面表达式,说法正确的是() signed char a = 0xe0; unsigned int b = a; unsigned char c = a;
A:(a>0) &&(b>0)为真 B:(c==a) 为真 C:b 的 16 进制为 0xffffffe0 D:以上说法都不对
2. 如下定义: int i; char a[10]; string f(); string g(string &str); 不会产生编译错误的是()
A:if(!!i) {f();} B:g(f()) C:a=a+1 D:g(“abc”)
3. char*p = “Hello”,p 和他指向的字符串分别存放在:()
A:堆和静态区 B:栈和常量区 C:栈和堆 D:堆和栈
4. 在 32 位操作系统下,CPU 为小端模式,所有参数采用栈传递,则执行下面的程序,结果为()
#include <stdio.h>
int main()
{
long long a = 1;
long long b = 2;
long long c = 3;
printf("%d,%d,%d\n",a,b,c);
}
A:1,2,3 B:1,0,2 C:3,2,1 D:3,2,0
5. 下列哪些函数需要进入内核态才能完成()
A:fopen B:exit C:memcpy D:strlen
6. 操作系统内存管理中,有一种常用的算法叫 LRU 算法,该算法主要用于解决什么问题()
A:虚拟内存分配 B:虚拟内存回收 C:物理内存的分配 D:物理内存的回收
7. 关于 DMA,下面说法错误的是()
A:DMA,直接内存存取,他允许不同速度的硬件装置进行沟通,而不需要依于 CPU 的大量中 断。
B:在实现 DMA 传输时,DMA 控制器直接掌管总线,因此,DMA 传输前,CPU 要把总线 控制权交给 DMA 控制器, 而在结束 DMA 传输后, DMA 控制器把总线控制权再交回 CPU。
C:DMA 的特点是速度快
D:DMA 控制器不必包含中断部件,因为 DMA 在运行时不需要 CPU 干预。
8. 产生死锁的必要条件是()
A 互斥条件 B 请求与保持条件 C 不剥夺条件 D:循环与等待条
9. 假设程序中有全局变量定义为 int n=0; 程序有两个线程,分别执行如下的代码:
线程 1:
n++;
n++;
线程 2:
n+=2;
请问全局变量 n 的最终结果可能是()
A:1 B:2 C:3 D:4
10. 下列关于数据结构的描述正确的是()
A:数组和链表都可以随机存取 B:数组的插入和删除元素的时间复杂度为 O(1)
C:哈希表不支持范围查询 D:队列的特点是后进先出,栈的特点是先进先出
11. 基于比较的排序算法时间复杂度的下界是()
A:O(n) B:O(n^2) C:O(log2 n) D:O(n*log2 n)
12. 如图所示的有向图,下面()序列是该图的拓扑序列()
A:abcdefg B:abdcefg C:aefbdcg D:abdecgf
13. 在有 n 个整数的序列中找出最大值和最小值,最少需要比较次数为()
A:2n-2 B:3n/2 C:n-1 D:4n/3
14. 二叉树的先序序列为:f b a c d e g h 中序序列为:abdcefgh, 该而叉树的后序序列为()
A:adecbhgf B: C: D:
15. 在 OSI 七层网络结构模型中:网卡,交换机,路由器,UDP 分别工作在()
A:数据链路层,物理层,传输层,应用层 B:物理层,数据链路层,网络层,传输层
C:物理层,数据链路层,传输层,网络层 D:数据链路层,物理层,传输层,网络层
16. 使用子网掩码 255.255.255.224 将 C 类地址 203.67.12.0 可以分成()个子网
A:1 B:8 C:16 D:32
17. 以下定时器有哪些属于 TCP 协议栈定时器
A:重传定时器 B:time_wait 定时器 C:syn-ack 定时器 D:零窗口探测定时器
18. 软件模块结构设计应尽量遵循高内聚低耦合的设计原则,下面模块设计哪个耦合度最高 ()
A:一个模块访问另一个模块,彼此之间通过简单数据参数访问获取
B:一个模块直接访问另一个模块的内部数据
C:一组模块都访问同一个公共数据环境(如全局数据结构,共享内存等)
D:一个模块通过传送开关,标志,名字等控制信息选择控制另一模块的功能。
19. 理论上后台不会发生()
A:local DNS 查询缓存是否有 im-img.qq.com 指向记录
B:向 COM 授权的 DNS 查询 im-img.qq.com 指向
C:浏览器向 im-img.qq.com 指向服务器 ip 发出 http get 请求
D:im-img.qq.com httpserver 后台读取 banner_1.jpg 图片数据返回给用户
填空题
1. 有下面 C 代码片段 unsigned int n = 0x1234; unsigned char b = *(unsigned char*)&a; 请问在 32 位大端处理器上,变量 b=()
2. 一个具有 800 个节点的完全二叉树,其叶子节点个数为()
3. 下面的 get 函数式一个用指针实现二维数组的读取函数,请完成该函数:
#define M 3
#define N 4
int get(int *p, int i, int j)
{
if(NULL == p || i < 0 || i>=M || j < 0 || j >= N)
return 0;
return (?);
}
int main()
{
int a[M][N] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
printf("a[2][3] = %d\n", get(&a[0][0], 2, 3);
}
4. 请完成“直接插入排序”从小到大排序函数,
insert_sort()
void insert_sort(int *p, int count)
{
if(NULL == p || count < 0) return;
int i;
for(int i = 1; i < count; ++i)
{ int tmp = p[i]; int j = i - 1;
while()
{ p[j+1] = p[j]; --j; } (