关闭

EMC 2016笔试题

516人阅读 评论(3) 收藏 举报
分类:

1.快速排序最好的时间复杂度是多少?

解答:最好和平均时间复杂度都是O(nlogn),最坏时间复杂度为O(n^2)。

快速排序的最好时间复杂度是 O(nlgn) 。快速排序的思路是:使用一个值 v 将原有序列分成小于 v 的左半部分、大于 v 的右半部分,然后对左右递归处理。理想的情况是,左右划分比较均匀,所以有递推式:T(n) = 2T(n/2) + n,这个递推式的通项公式 T(n) ∝ nlgn。当然递推式退化成 T(n) = T(n-1) + n 的话,你懂的,时间复杂度就是 O(n2) 了。

2.进程间通信的机制都有哪些?

解答:管道( pipe ),命名管道 (named pipe) ,信号量( semophore ),消息队列( message queue ),信号 ( sinal ), 共享内存( shared memory),套接字( socket ) 。

3.


解答:答案为15次,仔细分析即可。

4.

.

解答:答案为D。也就是运行时,会抛出异常。原因在于char *p =str中的str会保存在常量区,而常量区是不可改变的。所以会报 内存访问异常的错误。

5.


答案为D,这道题考察了两点。一点是16进制的输出。一点是map的下标操作。如果使用了std::hex的话,后面的数字会以16进制的方式输出。

6.


解答:答案为C。主要考察了两个知识点。一点是sizeof(s)在64位机器上为8。另外一点是strncpy的使用方法。

7.


解答:输出为abddcccd。主要考察了两个知识点。一点是C类型字符串会默认加'\0'。另外一点是程序运行的流程。

8.


解答:

答案应该是C 
条件可以简单分析为数学不等式  x>=y>=z,那么x>z不一定为true
当x>z为true,后面的条件忽略,结果为真;
当x==z,x>z为fslae,继续判断后一个条件
    如果z==0,则y=z为false,结果为假;
    如果z!=0,则y=z为true,结果为真;
所以,最后的结果是不确定的
9.


10.


解答:答案为C。

11.



解答:答案为AD。栈上的变量,在函数结束时候,会由编译器自动释放


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:204563次
    • 积分:5378
    • 等级:
    • 排名:第5259名
    • 原创:312篇
    • 转载:238篇
    • 译文:2篇
    • 评论:12条
    最新评论