2. 下面程序的运行结果:
#include
using namespace std;
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;
}
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];
}
原因:假设一个四段流水线,取指段的时间为t,译码段的时间为t,取数段的时间为3t,执行段的时间为t。流水线示意图如下:
为了便于计算假设取指和译码段总是连续执行的。流水线执行n条指令时其执行过程的时空图如下图所示:
从图中不难看出,第一条指令的执行时间是6t;第二条指令在执行时停顿了两个周期,第二条指令的完成时间比第一条指令的完成时间晚3t;第三条、第四条......第n条与此相同。
因此,该流水线执行n条指令的时间就是:6t+(n-1)3t
流水线的实际吞吐率就是:n/6t+(n-1)3t
流水线时间计算公式:一条指令所需时间+(指令条数-1)*时间最长的指令的一段 // 6t+(n-1)3t
吞吐率公式:指令条数 除以 流水线时间 // n/(6t+(n-1)3t)
6. 现有两道四个选项的火星文单选题,你已经至少答对一题了,那么你两题都对的概率是多少 ?
A. 1/3 B. 1/4 C. 1/7 D. 1/8
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);
}
}
8. 堆排序的时间复杂度是多少 ? 堆排序建堆的时间复杂度是多少 ?
9. 字符串 "alibaba" 的二进制哈夫曼编码有多少位 ?
10. 结点按中序遍历为 xyz 的二叉树有多少种可能 ?
11. 500 张纸牌整齐排成一排,按顺序编号 1、2、3、4、...、499、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 的最佳求积次数是多少 ?
#include
using namespace std;
int matrixProtity ( int * a, const int niSize)
{
int ** m = new int *[ niSize];
for ( int i=0; i< niSize;++ i ){
m [i ]= new int [ niSize];
}
for ( int i=0; i< niSize; ++ i ){
m [i ][ i]=0;
}
int max=0;
for ( int step=1; step
13. 有多少个 2012 位的数,这些数的任意两个相邻数位依序构成的两位数均能被 17 或 23 整除 ?
14. 关于 linux 的进程,下面说法不正确的是:
A. 僵尸进程会被 init 进程接管,不会造成资源浪费;
B. 孤儿进程的父进程在它之前退出,会被 init 进程接管,不会造成资源浪费;
C. 进程是资源管理的最小单位,而线程是程序执行的最小单位。Linux 下的线程本质上用进程实现;
15. 一个数据表有 10000 个元素,如果仅要求求出其中最大的 10 个元素,采用什么算法比较节省时间 ?
16. 一棵二叉树具有 8 个度为 2 的结点,5 个度为 1 的结点,则度为 0 的结点个数有多少个 ?
17. 被除数是二进制数 110110,除数是二进制数 111,则余数是多少 ?
18. 对于下面的问题,不能使用栈 stack 来解决的是 ?
A. 数学表达式转换为后缀形式
B. 实现递归算法
C. 编程语言的递归调用
19. 甲盒中有 200 个螺杆,其中有 160 个 A 型螺杆;乙盒中有 240 个螺母,其中有 180 个 A 型的。现从甲乙两盒中各任取一个,则能配成 A 型螺栓的概率为多少?
20. 有 A 和 B 两路公交车,平均发车时间间隔为 5 分钟和 10 分钟。某乘客在站点 S 可以任意选择两者之一乘坐,假定 A 和 B 到达 S 的时刻无法确定,那么该乘客的平均等待时间是多少 ?