1.
int x=50,y=33;
printf("%d",(x,y));
结果:33
2.对1000w的数据做索引,哪种数据结构适合做存储索引?
A。hashtable
B。AVL-tree
C。list
D。B-tree
答案:D。
AVL-Tree 检索速度是很快的,这是因为二分检索是树结构的一个本质特性。但是最大的缺点是他的存储利用率太低。每个树节点仅仅有一个数据项,有2个指针和每个数据项的控制信息。1000W数据量根大,AVL-Tree存储利用率太低,也很难找到一个完美的hash函数。list就不用说了,每次插入删除操作可能移动几百万数据。Hash Table当溢出发生时可以分裂成2个节点。目录以2的指数倍增长,只要一个节点溢出而且目录已经达到了指定的最大目录深度,他就会加倍。一个问题就是任何一个节点都能引起目录分裂,因此如果Hash函数不是很随机的话,目录可能增长的很大。List优点是存取方便,但不便于动态维护,进行插入删除等操作时需要移动大量的数据。B-tree是比较合适用于磁盘的数据结构,由于他是一个宽而浅的树,查找一个数需要访问很少的节点。内存利用率是比较好的,所以他用于内存数据库比较合适;搜索速度比较快(用二分查找时,只访问很少一部分节点);而且更新速度也比较快(数据移动通常只涉及到一个节点)
3.SQL中局部变量需要声明,全局变量是系统提供的,不需要声明。
例子:
局部变量:
declare @count int
set @count 123
print @count
全局变量:
@@ERROR 最后一个T-SQL错误的错误号
4.数组定义语句char cname[256]={1};这个数组的实际初始值是:
第一个为1后面为0
5.进程调度从就绪队列选择一个进程投入运行。
6.
以下不属于linux交换分区作用的是: a存放临时文件b完成虚拟内存 c用磁盘空间模拟硬盘空间d允许应用程序使用多于实际内存的存储容量
选c.磁盘空间模拟硬盘空间,笑话。可能争议会来自a选项,其实这恰恰是Linux的交换分区不同于windows虚拟内存的地方,linux交换分区不仅仅是存放内存里不常用的页,充当虚拟内存,还能够存放linux运行时要用的临时文件,一旦关机就会清空,不会像windows那样在磁盘里留下碎片,这是linux的纯净之处。