[求助]微软的面试题
微软的一道面视题明天下午老师要答案...急啊....大哥大姐帮帮我吧....
建立一个通讯录单链表,包括姓名、地址、邮编、电话、成绩。编写以下函数:
1. 链表的建立函数:链表按人员姓名的字典顺序排列,并存入磁盘文件;
2. 插入函数:链表中插入一成员,依然保证按姓名的字典顺序排列;
3. 删除函数:链表中删除指定成员;
4. 修改函数:查找指定成员,并能进行修改;
5. 统计函数:统计各分数段的人数;
6. 输出函数:画出二维直方图,使用不同的颜色区分不同的分数段人数。
要求:根据操作菜单,选择各功能的执行。
二、加密技术编程
1.机密文件的有效销毁程序
按照美国国防部DOD
2. 文件加密技术
采用文件逐字节与密码异或方式对文件进行加密,当解密时,只需再运行一遍加密程序即可.密码要求用户输入,限8位以内.
3.程序加锁
建立修改口令子函数,建立或修改用户输入口令,系统只认默认口令88888888,本程序可加到用户的源程序之前,起到加锁的作用,三次无效口令推出。程序涉及到C语言函数getpass(char *),该函数从键盘读取8位字符并返回,且不在屏幕上显示。
三、排序和查找
写一个通用排序函数,按任何需要的方式排序任意类型的数组。排序方式有冒泡排序、选择排序、插入排序、希尔排序。
四、文件操作
1.编写了一个可以同时显示文件名和文件的属性,又可以显示文件的部分内容的程序。
程序的主要函数list()的基本设计思路是:
⑴用findfirst()函数查找第一个有效的文件;
⑵分析文件的属性字节,判断它是否为子目录、二进制文件或其它文件;
⑶如果不是子目录和二进制文件,那么打开这个文件,从文件头读指定个数的字符,然后关闭文件;
⑷显示文件名称、属性和特征字符串;
⑸用findnext()查找下一个有效的文件,转⑵,重复执行,直到没有有效文件为止。
2.成批地修改文件的建立时间
TURBO C 2.0提供了findfirst()和findnext()的库函数,可以用来搜索当前目录下指定类型的文件,getdate()和gettime()可以用来获得系统的当前时间,setftime()可以用来修改文件的建立时间。
程序设计思路是:
第1步:用getdate()和gettime()获取系统的当前日期和当前时间;
第2步:用当前日期和当前时间给文件时间变量myftime(为struct ftime类型)赋值;
第3步:用findfirst()查找第一个有效的指定类型的文件;
第4步:用open()打开它,并用setftime()修改文件的建立时间和日期,关闭文件;
第5步:用findnext()查找下一个文件,重复第4~5步,直到没有有效的文件为止。
3.查找并替换程序
用TURBO C2.0编写对一批文本文件完成一个字符串查找并替换程序。其步骤如下:
⑴用fgets()函数从文件中读一行内容;
⑵用strcmp()判断是否含有指定的字符串;
⑶对该行内容进行重复查找,每查到一个searchstr,替换为一个replacestr,直到将行上所有的searchstr均替换为replacestr为止;
⑷将替换好的该行内容写入一个临时文件;
⑸判断是否是文件尾,若不是,则转⑴,重复上述过程,直至文件结尾;
⑹关闭原文件和临时文件;
⑺将原文件改名为BAK文件,将临时文件改名为原文件名。
[此贴子已经被作者于2006-6-19 18:21:52编辑过]