1. 现在计算机中整数采用的编码方式:
A. 原码 B. 反码 C. Unicode 码 D. 补码
2. 下面程序的运行结果:
#include
void test(char c, char *d) {
++c; ++*d;
cout << c << *d; }
int main() {
char a='A', b = 'a'; test(b, &a); cout << a << b;
return 0; }
A. ... B. ... C. bBBa D. ...
3. 下面的说法那个正确:
#define NUMA 10000000 #define NUMB 1000 int a[NUMA], b[NUMB];
void pa() {
int i, j;
for(i = 0; i < NUMB; ++i)
for(j = 0; j < NUMA; ++j) ++a[j]; }
void pb() {
int i, j;
for(i = 0; i < NUMA; ++i) for(j = 0; j < NUMB; ++j)
++b[j]; }
A. pa 和 pb 运行的一样快 B. pa 比 pb 快 C. pb 比 pa 快 D. 无法判断
4. 10 个小球中只有一个红球,现在有放回地抽取一个小球,问至到第 n 次才取到 k 个红球 (k ≤ n) 的概率是多少 ?
A. B. C. D.
5. 某指令流水线由 5 段组成,各段所需要的时间分别是:t、3t、t、2t 和 t 。问如果连续执行 10 条指令,则吞吐率是多少 ?
A. 0.1428/t B. 0.2041/t C. 0.2857/t D. 0.3333/t
6. 现有两道四个选项的火星文单选题,你已经至少答对一题了,那么你两题都对的概率是多少 ?
A. 1/3 B. 1/4 C. 1/7 D. 1/8
7. 以下是一个 tree 的遍历算法,queue 是一个 FIFO 队列。参考下面的 tree ,程序输出结果是神马。
queue.push(tree.root); while(true){
node = queue.pop();
output(node.value); // 输出结点对应的数字 if(null = node) break;
for(child_node in node.children){ queue.push(child_node); } }
1
______|______ | | 2 3 ___|___ ___|___ | | | | 4 5 6 7
A. 1234567 B. 1245367 C. 1376254 D. 1327654
8. 堆排序的时间复杂度是多少 ? 堆排序建堆的时间复杂度是多少 ?
A. O(n2) O(n logn) B. O(n) O(nlogn) C. O(nlogn) O(n) D. O(nlogn) O(nlogn)
9. 字符串 \的二进制哈夫曼编码有多少位 ?
A. 11 B.12 C. 13 D. 14
10. 结点按中序遍历为 xyz 的二叉树有多少种可能 ?
A. 1 B.2 C.3 D.4 E. 5
11. 500 张纸牌整齐排成一排,按顺序编号 1、2、3、4、...、499、500,第一次拿走所有奇数位置上的纸牌,第二次再拿走剩下纸牌中的所有奇数位置上的纸牌,以此类推操作下去,问最后剩下的纸牌的编号是多少 ?
A. 128 B. 250 C. 256 D. 500
12. 一直矩阵 Ak = (aij)rk × rk+1,k = 1, 2, 3, 4, 5, 6 ;r1 = 5,r2 = 10,r3 = 3,r4 = 8,r5 = 5,r6 = 20,r7 = 6,问矩阵链乘 A1 × A2 × A3 × A4 × A5 × A6 的最佳求积次数是多少 ?
A. 2010 B. 2100 C. 2500 D. 2525
13. 有多少个 2012 位的数,这些数的任意两个相邻数位依序构成的两位数均能被 17 或 23 整除 ?
A. 3 B. 5. C. 7 D. 9
14. 关于 linux 的进程,下面说法不正确的是:
A. 僵尸进程会被 init 进程接管,不会造成资源浪费;
B. 孤儿进程的父进程在它之前退出,会被 init 进程接管,不会造成资源浪费;
C. 进程是资源管理的最小单位,而线程是程序执行的最小单位。Linux 下的线程本质上用进程实现;
D. 子进程如果对资源只是进行读操作,那么完全和父进程共享物理地址空间。
15. 一个数据表有 10000 个元素,如果仅要求求出其中最大的 10 个元素,采用什么算法比较节省时间 ?
A. 堆排序 B. 希尔排序 C. 快速排序 D. 直接选择排序
16. 一棵二叉树具有 8 个度为 2 的结点,5 个度为 1 的结点,则度为 0 的结点个数有多少个 ?
A. ... B. 9 C. 11. D. 不确定
17. 被除数是二进制数 110110,除数是二进制数 111,则余数是多少 ?
A. ... B. 101 C. 110 D. ...
18. 对于下面的问题,不能使用栈 stack 来解决的是 ?
A. 数学表达式转换为后缀形式
B. 实现递归算法
C. 编程语言的递归调用
D. 操作系统分配资源(如 CPU)
19. 甲盒中有 200 个螺杆,其中有 160 个 A 型螺杆;乙盒中有 240 个螺母,其中有 180 个 A 型的。现从甲乙两盒中各任取一个,则能配成 A 型螺栓的概率为多少?
A. 1/20 B. 15/16 C. 3/5 D. 19/20
20. 有 A 和 B 两路公交车,平均发车时间间隔为 5 分钟和 10 分钟。某乘客在站点 S 可以任意选择两者之一乘坐,假定 A 和 B 到达 S 的时刻无法确定,那么该乘客的平均等待时间是多少 ?
A 1 分钟 20 秒 B. 1 分钟 40 秒 C. 2 分钟 30 秒 D. 3 分钟 20 秒
21. 下面不是引起进程调度原因的是 ?
A. 进程执行完毕 B. 进程 I/O 请求队列 C. 进程死循环 D. 进程调用阻塞原语进入睡眠状态
22. 用于解决 CPU 指令乱序、编译器重排、多 CPU 内存同步等带来的问题的机制是 ?
A. 内存屏障 B. 信号量 C. 自旋锁 D. volatile 关键字
23. 下面使用贪心算法的是:
A. 单元最短路径 Dijkstra 算法
B. 最小生成树 Prim 算法
C. 最小生成树 Kruskal 算法
D. 计算每对顶点最短路径的 Floyd-Warshall 算法
E. 字符串匹配中的 KMP 算法
24. 关于 ACID 说法正确的是:
A. A 可用性。....
B. C 一致性。在食物开始之前和结束后,数据库的约束保持不变。
C. I 隔离性。两个同时运行的事务的执行是互不影响,中间结果不可交叉访问。
D. D 持久性。在事务提交之后,该事务所作的更改持久保存在存储介质之中,不会被回滚。
25. 现有一个循环队列,其队头指针为 front,队尾指针为 rear,循环队列的总长度为 N,问队内有效长度是多少 ?
26. 一个数组 X,其中存有 N 个数字。现只允许遍历一遍,1) 有没有可能计算这些数字的方差 ? 2) 如果可以,请描述方案,如果不可以,说明原因。
27. 不使用临时变量交换 int a 和 int b 的值;请使用三行代码。
28. 下面的代码有一些问题,找出来:
#include
class Test{ public: int *p;
Test(int v){
p = new int(v); }
~Test(){
delete p; }
void PrintValue(){
cout << \ } };
void Func(Test t) {
cout << \}
int main() {
Test t1 = 33; Func(t1);
t1.PrintValue(); }