1、以下程序的输出结果是:
#include
using namespace std;
void func(char **m){
++m;
cout<<*m<
}
int main(){
static char *a[]={"morning", "afternoon", "evening"};
char **p;
p=a;
func(p);
return 0;
}
A.afternoon
B.字符o的起始地址
C.字符o
D.字符a的起始地址
参考答案:A
2、下列关于网络编程错误的是()
A.TCP建立和关闭连接都只需要三次握手
B.主动关闭的一端会出现TIME_WAIT状态
C.服务端编程会调用listen(),客户端也可以调用bind()
D.UDP是可靠服务
参考答案:AD
3、将一棵树t 转换为孩子—兄弟链表表示的二叉树h,则t的后根序遍历是h 的()
A.前序遍历
B.中序遍历
C.按层次遍历
D.后序遍历
参考答案:B
4、以下JSP代码定义了一个变量,如何输出这个变量的值?
<bean:define id="stringBean" value="helloWorld"/>
A.
B.<%=stringBean%>
C.
D.<%String myBean=(String)pageContext.getAttribute("stringBean",PageContext.PAGE_SCOPE);%><%=myBean%>
参考答案:BCD
5、系统中的"颠簸"是由()引起的
A.内存容量不足
B.交换信息量大
C.缺页率反馈模型不正确
D.缺页率高
参考答案:D
6、将光盘/dev/hdc卸载的命令是?
A.umount /mnt/cdrom /dev/hdc
B.unmount /dev/hdc
C.umount /dev/hdc
D.unmount /mnt/cdrom /dev/hdc
参考答案:AC
7、假设你只有一台内存2G的笔记本,I5的四核CPU以及4T的硬盘,请设计一个程序,实现对1T英文数据进行词频分析,完成以下两个小题:
(1)求所有词的词频,把相应的值存入文件;
(2)找出这些词里卖弄出现频次高的100个词,并用代码实现
名词解释:1T=1024G,为硬盘空间单位,词频,每个单词出现的次数
参考答案
(1)将1T的数据使用哈希函数映射到10000个文件当中去,这样做可以将所有一样的数据映射到同一个文件当中。依次将10000个文本文件读入内存,使用hashmap对每一个文本中每一个单词进行词频统计,将单词作为key,单词出现次数作为value,每读入一个单词,都查看其在hashmap中是否存在,存在则将value值加1,不存在就将其加入hashmap,并将value值置为1,然后将结果写入一个文件即可。文件的每一行只存储一个单词以及这个单词出现的次数,并且二者之间用空格隔开。
(2)要求出现次数高的100个单词。可以建立只有100个元素的小根堆来实现目的。首先取出100个元素建立小根堆,继续从文件中取出元素与小根堆的堆顶元素进行比较,如果比堆顶元素大,就替换掉堆顶元素,并且重建为小根堆,依次做下去,后堆中保留的100个元素就是top100. 使用hashmap进行词频统计的时候,先用小根堆统计出每个文件中Top100,然后10000个文件的top100汇总到一起后在使用上述同样的方法得到终的top100。