1、 可执行文件1 可执行文件2 . 最后将该批处理文件属性该位可执行。调试:在编译时使用-g参数,就可以使用gdb进行调试。2、写出内存分配和释放的函数,并指出区别。C语言的标准内存分配函数:malloc,calloc,realloc,free等。malloc与calloc的区别为1块与n块的区别:malloc调用形式为(类型*)malloc(size):在内存的动态存储区中分配一块长度为“size”字节的连续区域,返回该区域的首地址。calloc调用形式为(类型*)calloc(n,size):在内存的动态存储区中分配n块长度为“size”字节的连续区域,返回首地址。realloc调用形式为(
2、类型*)realloc(*ptr,size):将ptr内存大小增大到size。free的调用形式为free(void*ptr):释放ptr所指向的一块内存空间。C+中为new/delete函数。3、写出socket函数,并指出其功能。socket():建立socket通信描述符;bind():将套接字和机器上的一定的端口关联;connect():连接到远程主机;listen():使套接字做好连接的准备,规定等待服务请求队列的长度;accept():接受连接,一旦有客户端发出连接,accept返回客户地址信息和一个新的sock;有了这个新的sock,双方就可以开始收发数据:send()和recv
3、():用于流式套接字或者数据套接字的通讯;sendto()和recvfrom():用于无连接的数据报套接字;close():关闭套接字;shutdown():选择性的关闭套接字,可以只允许某一方向的通讯关闭;getpeername():返回流式套接字时对端peer信息;gethostname():返回程序所运行的机器的主机名字;gethostbyname():返回本机IP;第三部分编程题:1、从文件中读取字符串数据,反序显示并大小写转换。2、给定26字母表以及对应的密码表,编程实现加密及解密功能。第四部分思考题(正是传说中的字典纠错题):用户在输入英文单词时经常出错,现对其进行就错。给定一个正
4、确的英文词典,考虑纠错实现。1)指出思路。2)流程、算法难易程度及可能的改进策略。一道算法题目答案 int Replace(Stringtype &S,Stringtype T,Stringtype V);/将串S中所有子串T替换为V,并返回置换次数 for(n=0,i=1;i=Strlen(S)-Strlen(T)+1;i+) /注意i的取值范围 if(!StrCompare(SubString(S,i,Strlen(T),T) /找到了与T匹配的子串 /分别把T的前面和后面部分保存为head和tail StrAssign(head,SubString(S,1,i-1);StrAssign(
5、tail,SubString(S,i+Strlen(T),Strlen(S)-i-Strlen(T)+1);StrAssign(S,Concat(head,V);StrAssign(S,Concat(S,tail); /把head,V,tail连接为新串 i+=Strlen(V); /当前指针跳到插入串以后 n+;/if return n;/Replace 分析:这一句是必需的,也是容易忽略的.如省掉这一句,则在某些情况下,会引起不希望的后果,虽然在大多数情况下没有影响.请思考:设S=place, T=ace, V=face,则省掉i+=Strlen(V);运行时会出现什么结果? (无限递归f
6、ace) XX2005年的笔试题 1.实现 void delete_char(char * str, char ch);把str中所有的ch删掉 2.把字符串S中所有A子串换成B,这个没给函数原型 3.搜索引擎的日志要记录所有查询串,有一千万条查询,不重复的不超过三百万要统计最热门的10条查询串. 内存= A & *piterator Z) piterator += 32;2.(5分)对给定的上亿条无序的url,请按照domain、site以及path分别排序,并请指出排序过程中可能会遇到的哪些问题?如何提高效率?例如:Domain:Site:Path: 3.(10分)某型CPU的一级数据缓存
7、大小为16K字节,cache块大小为64字节;二级缓存大小为256K字节,cache块大小为4K字节,采用二路组相联。经测试,下面两段代码运行时效率差别很大,请分析哪段代码更好,以及可能的原因。为了进一步提高效率,你还可以采取什么办法?A段代码 int matrix102315;const char *str = this is a str;int i, j, tmp, sum = 0;tmp = strlen(str);for(i = 0; i 1023; i+) for(j = 0; j 15; j+) sum += matrixj + tmp;B段代码 int matrix102517;
8、int i, j, sum = 0; 17; 1025;sum += matrixj + strlen(str);三、编程题:30分 共1题 注意:要求尽可能提供完整代码,如果可以编译运行酌情加分。1.内存中有一个长数组,条目数为10万,数组单元为结构体struct array,sizeof(struct array)为512字节。结构有一int型成员变量weight。现需要取得按weight值从大到小排序的前500个数组单元,请实现算法,要求效率尽可能高。四、设计题:35分 共1题 请尽可能详细描述你的数据结构、系统架构、设计思路等,建议多写一些伪代码或者流程说明。1.请设计一个字典。以字符串为索引,存储用户定义的定长结构。要求有增、删、查、改的功能。已经给定一个函数,可以由字符串映射到一个签名,每个签名由两个unsigned int类型组成。假设每一个字符串能够对应唯一的一个签名,完全没有重复(或者重复的概率可以
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1