2015.03.14 网易CC笔试总结(TTT计划)

2015-03-14  本文已影响199人  度京

不难,但覆盖面广,目测已跪,总结经验教训以后争取不犯这样的错误,也希望能帮助各位师弟师妹。(不全,而且本人不是计算机专业,此文是按照个人水平总结,请对照他人版本阅读)

1、《c++ Primer》、《Head First设计模式》、《Effective C++》、《windows 核心编程(第5版)》哪本书最薄

答:《Effective C++》

评:好蛋疼的题!我是根据名称选的,如果不写的短一点怎么好意思叫effective嘛,哈哈

2、系统出现死锁的原因是()

答:若干进程因竞争资源而无休止地循环等待着,而且都不释放已占有的资源

评:答案参看http://zhidao.baidu.com/link?url=SoAzqDyTW0YJoiSyyu1DGTiPcWepYJB9lzbPgIITIMZCxWkpjRcNozcNE1qSVzv1_8L9dmgpQMy7qLGFI47YUa

3、数据库查询、选择、删除语句(编程题有一道给出一个学生表一个课程表一个选课表,让你按要求选出信息):参看http://blog.sina.com.cn/s/blog_7f4eec5b01016c27.html

(1)数据记录筛选:

sql="select * from 数据表 where 字段名=字段值 orderby 字段名 [desc] "

sql="select * from 数据表 where 字段名 like '%字段值%' orderby 字段名 [desc]"

sql="select  top10 * from 数据表 where 字段名 orderby 字段名[desc]"

sql="select * from 数据表 where 字段名 in('值1','值2','值3')"

sql="select * from 数据表 where 字段名 between 值1 and 值 2"

(2)更新数据记录:

sql="update 数据表 set 字段名=字段值 where 条件表达式"

sql="update 数据表 set 字段1=值1,字段2=值2……字段n=值n where 条件表达式"

(3)删除数据记录:

sql="delete from 数据表 where 条件表达式"

sql="delete from 数据表 "(将数据表所有记录删除)

(4)添加数据记录:

sql="insert into 数据表(字段1,字段2,字段3…) values(值1,值2,值3…)"

sql="insert into 目标数据表 select * from 源数据表"(把源数据表的记录添加到目标数据表)


4、Linux查看和调度的指令是:参看http://www.jobui.com/mianshiti/it/linux/5033/

进程查看的命令是ps和top。

进程调度的命令有at,crontab,batch,kill。

5、什么是DDoS?

分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。


6、.h头文件中的ifndef/define/endif的作用?

答:防止该头文件被重复引用。

评:参看http://blog.sina.com.cn/s/blog_4bf29be90100wkz5.html

7、说出事务的四个特性:

答:参看http://bbs.csdn.net/topics/320025183

在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态,对数据库的增删改查都是事务操作。

理解了事务的含义。理解应该不难了吧

原子性:组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分

一致性:在事务处理执行之前和之后,数据是一致的。

-- 插入数据A, 写进数据还是A,不会变成B

隔离性:一个事务处理对另一个事务处理没有影响。

-- 事务A 增加数据,事务B删除数据, 互相不影响

持续性:当事务处理成功执行到结束的时候,其效果在数据库中被永久纪录下来。

-- 插入数据库的数据写到了磁盘,就是永久了

8、如何判断CPU是大端还是小端

答:参看http://blog.csdn.net/flickedball/article/details/4096991

#include

int main()

{

union ut{

short s;

char c[2];

}u;

if(sizeof(short) == 2)

{

u.s = 0x0102;

if(u.c[0] == 1 && u.c[1] == 2)

{

printf("big enidan/n");

}else if(u.c[0] == 2 && u.c[1] == 1)

{

printf("little endian./n");

}

return 0;

}

}

9、sizeof函数在什么阶段起作用()

A 编译  B预编译  C 链接  D运行

10、写堆排序代码(伪代码也可)

#include

//array是待调整的堆数组,i是待调整的数组元素的位置,nlength是数组的长度

//本函数功能是:根据数组array构建大根堆

voidHeapAdjust(intarray[],inti,intnLength)

{

intnChild;

intnTemp;

for(;2*i+1

{

//子结点的位置=2*(父结点位置)+1

nChild=2*i+1;

//得到子结点中较大的结点

if(nChildarray[nChild])++nChild;

//如果较大的子结点大于父结点那么把较大的子结点往上移动,替换它的父结点

if(array[i]

{

nTemp=array[i];

array[i]=array[nChild];

array[nChild]=nTemp;

}

elsebreak;//否则退出循环

}

}

//堆排序算法

voidHeapSort(intarray[],intlength)

{

inti;

//调整序列的前半部分元素,调整完之后第一个元素是序列的最大的元素

//length/2-1是最后一个非叶节点,此处"/"为整除

for(i=length/2-1;i>=0;--i)

HeapAdjust(array,i,length);

//从最后一个元素开始对序列进行调整,不断的缩小调整的范围直到第一个元素

for(i=length-1;i>0;--i)

{

//把第一个元素和当前的最后一个元素交换,

//保证当前的最后一个位置的元素都是在现在的这个序列之中最大的

array[i]=array[0]^array[i];

array[0]=array[0]^array[i];

array[i]=array[0]^array[i];

//不断缩小调整heap的范围,每一次调整完毕保证第一个元素是当前序列的最大值

HeapAdjust(array,0,i);

}

}

intmain()

{

inti;

intnum[]={9,8,7,6,5,4,3,2,1,0};

HeapSort(num,sizeof(num)/sizeof(int));

for(i=0;i

{

printf("%d ",num[i]);

}

printf("\nok\n");

return0;

}

参看http://baike.baidu.com/link?url=Ub2UniwKfkB94IhVPqNxPZbQw5ufVOMbFrOTxJ8Th724UsYq0fRf6ryooVKenbTW3eaFmjB_9RcDiS5-tKF-ia#2_1

虽然是基础知识但学渣还是不太懂,有人能用通俗语言介绍一下这个算法吗?

11、参看http://blog.csdn.net/liujinxunhappy08110/article/details/5514358

Michael喜欢滑雪这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子

1  2  3  4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。

Input

输入的第一行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。

Output

输出最长区域的长度。

上一篇下一篇

猜你喜欢

热点阅读