C语言实验指导书

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
参考输出:
1172.50average salary
1173round off tointeger
7number ofdigit
0 2 5the last three digit (separateby space)
第三
内容一:介绍linux下的grep,并给出相应的实例。重点介绍下面要用到的四个符号。
子实验三内容:(3分)
1)实验三中的功能封装成一个函数,intregsearch(char reg[ ], char target[ ]),命中的时候返回1,没有命中的时候返回0。链表查找功能的时候要调用这个函数。
2)完成LookUp(WORDNODE * head, char re[]);因为支持正则表达式,所以每次查找都需要遍历整个链表结构。列出所有匹配的单词。
lostresult,output
ab.$ababcregular express and target string (separateby space), input
ababcmatchsuccessfully, print the target string, output
$$$ $$$结束整个程序
say
hello
world
to
you
参考输出:
hello
say
to
world
you
zhaoyan
第六次实验
内容一:
1)把实验四和实验五的的函数分别写成tool.c tool.h.Sort.c sort.h四个文件,以便方便别人调用。
2)定义单词的结构体。
Typedef structword{
Char[30] Eword;保存英语单词
输出:利用Iterate写到一个文件dict-list中,内容如下:
abandon︺v.抛弃,放弃
abandonment︺n.放弃
abasement︺n.滥用
子实验二内容:(3分)
1)利用gets函数来完成字符串的读入工作
2)插入,删除功能中,要调用int IsNumIn(char word[])和Trim(char oldWord[], char newWord[])两个函数对输入的单词进行必要的效验,如果输入的单词含有数字,插入失败,提示用户”error”。用Seg(char words[], char wArray[][100])分割输入的字符串
3)词典界面中增加“r”代表单词复习选项。
4)提取出7天前背诵的单词,同时提取出14天前背诵的单词,最后,提取出21天前背诵的单词(如果以这些日期为名字的文件确实存在的话),以便复习,强化自己的记忆。以上功能封装到int Review()函数中。
提示:需要利用到的知识包括,随机函数和时间处理函数等。(参考课件第4讲-控制结构),先生成7个随机数后,需要对7个随机数进行排序,然后遍历整个链表。
编码提示:
1)分为4种情况
2)没有开始符号和结束符号的regular express需要双层循环
第四
内容一:登陆project.software.hit.edu.cn
1)介绍这个网站,同时介绍git软件。鼓励同学们利用git跟踪和参与别人的源代码
2)介绍Git书籍
内容二:学习函数和字符串处理的函数
编写以下函数
内容二:
1)编写循环读入每一个单词,直到读入$$$后终止;
2)把读入的单词输入到字符串数组中,分别调用两个排序功能对其进行排序。
3)提交两个不同的文件,quick.c,bubble.c分别进行测试。分别占5分,加起来的和为10分。
程序:
输入:20个单词
输出:排好序的20个单词
参考输入:
zhaoyan

每次实验(
第一次实验
内容一:熟悉编译环境和工具
在VS中键入以下的这段程序
1)关键字变色,自动缩近,智能提醒
2)代码风格和注释
3)编译出错,连接出错。修改错误
4)调试,断点,监控变量,进入函数,跳出函数。监控内存,监控堆栈
在linux中键入以下这段程序
1)熟悉VIM程序,gcc编译程序(开两个终端窗口)
函数一:单词内是否包含数字int IsNumIn(charword[])
函数二:单词内是否包含空格int IsSpcIn(char word[])
函数三:去掉单词的前后空格,tab键Trim(char oldWord[], charnewWord[])
函数四:单词内部有空格,分解成多个单词Seg(char words[],char wArray[][100])假设单词内部只有一个空格,没有两个连续空格的情况发生。
6)输出排完序的结构体数组。
程序:
输入:20行字符串
输出:排好序的20个WORD结构
参考输入:
abasement︺n.滥用
︺︺abandon︺v.抛弃,放弃︺︺
abandonment︺n.放弃
……………………..
参考输出:
abandon︺v.抛弃,放弃
abandonment︺n.放弃
abasement︺n.滥用
3)插入时,考虑这个单词已经存在的情况,删除时,考虑这个单词不存在的情况
输入:两行文本,第一行为要插入的单词,第二行为需要删除的单词。
google︺n.公司
︺rose︺︺
输出:链表内容写到一个文件dict-list中。同时,单词中含有数字,输出“error”插入时如果单词存在,在标准输出中输出“exist”,删除时如果单词存在,在标准输出中输出“no exist”,
12 33
参考输出:
45
参考输入:
12 abc
参考输出:
error input
思考和扩展(无标准答案)
如果用户输入12 12abc如何判断并终止程序,输出“error input”的提示
第二
内容一:登陆ACM,演示OJ系统
1)介绍这个网站,有兴趣的同学可以去尝试一下()
内容二:计算工资/小时程序
1)强制类型转换
︺︺helloworld︺
参考输出:
hello
world

内容一:
1)分别编写冒泡排序和快速排序两个算法。最后要变成两个函数,完成字符数组排序功能
QuickSort(charwordList[30][30], int low, int high); high代表数组最后一个元素的下标
BubbleSort(char wordList[30][30], int n);n代表数组中有多少个字符串需要排序
内容二:登陆cms.hit.edu.cn网站,在线提交。
1)熟悉基本的提交方法和规则
2)现场演示反作弊程序的效果
程序:
输入:两个整数,用空格分隔,
输出:两个整数的和,计算两个整数的和的功能,要求用函数实现,同时如果输入有错误,例Hale Waihona Puke Baidu(12 abc)程序能够给出“error input”的提示。
参考输入:
实验内容一:
1)把实验中的bubble.c中的函数BubbleSort(char wordList[30][30], int n);改成BubbleSort(int nums[], int n);使之能够对整数数组进行排序。
实验内容二:
1)词典界面中增加“w”代表词典学习选项。
2)每次随机从链表中选出7个单词,以当前的日期为文件名保存到一个文件中,以上功能封装到intMemWord(WORDNODE * head,intnum)函数中。参数num代表词典中有多少个词。
2)熟悉GDB调试程序的基本技巧。(list,backstrac; break, watch,delete; next, continue, run; print,set,help)其中,help命令是一个非常的参考,如果忘记了某条具体的命令,可以随时去参考help命令来得到相关的细节。
3)介绍《鸟歌的私房菜》这本书
2)一共有多少位的算法
3)整形数的溢出,以及针对特定问题,如何解决溢出问题
注意:linux编译下应该加上–lm开关。
程序:
输入:工资数,小时数(整数,空格分隔)。
输出:工资/小时数(精确到小数点后2位),并根据四舍五入取整,然后将取整的数平方后计算一共有几位,后三位分别是什么?
参考输入:
2345 2input(separateby space)
3)然后遍历这个链表,输出到另外一个文件dict-list中。将这一部分功能封装到函数Iterate(WORDNODE * head)函数中。
输入:读入一个dict的文本文件,内容如下。利用Create构建链表。
abandon︺v.抛弃,放弃
abandonment︺n.放弃
abasement︺n.滥用
Char[100] Chinese;保存词性和汉语意义
}WORD
3)构造一个WORD结构体数组,利用gets读入每一行,利用Trim去掉前后空格,利用Seg分割出两个字符串。
4)用两个字符串对结构体数组中每一个WORD结构中的Eword, Chinese进行填充。
5)然后修改排序算法,使得他能够对结构体数组进行排序。
第八次实验
构建词典系统界面(命令行界面,把3~7部分合并成最后的IDict系统)
实验内容:
1)综合利用以前生成的tool.h, tool.c,list.h, list.c。
2)基本的界面功能列表如下:
a增加一个单词
d删除一个单词
s查询一个单词(支持正则表达式)
q退出电子词典
h打印帮助文件
第九次实验
基于记忆曲线的词汇复习(在已有IDict上进行二次开发)。单词学习功能,每次随机的选择7个单词学习,并把一定时间以前学习过的单词提取出来进行复习。
内容二:正则表达式
^代表字符串开始
.代表任意字符
$代表字符串末尾
程序:
输入:正则表达式字符串待匹配字符串,如果输入”$$$$$$”程序终止。
输出:如匹配成功,输出整个字符串,如果匹配不成功,输出lost,然后等待下一次用户的输入。
参考输入输出:
^a.$abcregular express and target string (separateby space),input
扩展思考:对不同的数据类型进行排序,就需要修改sort函数,有没有一种方法,编写出一个sort函数,能处理所有的数据类型呢?
第十次实验
自由选定一个feature(两个星期)
1)利用Map充当核心数据结构。
2)如果在windows下,移植到Linux中
3)利用VC或QT编写一个界面
4)其它任何自由的功能扩展
………………………………….
第七次实验
链表的建立,遍历,插入,删除,查找(主要练习指针的知识),链表的内容来源于我提供的一个词典文本文件dict。
子实验一内容:(4分)
1)以实验六中的单词的结构体为基础,建立一个链表结构。
2)从一个文本文件读入,然后保存到一个链表中,将这一部分功能封装到函数intCreate(WORDNODE** head)函数中,返回一共有多少个单词,以及整个链表的头节点(为什么这里要用指向指针的指针WORDNODE** head)。
3)查找功能中调用regsearch函数,进行正则表达式的查找。
4)把链表的功能集成到文件list.c,list.h中。以备下一个实验使用
参考输入:
^b.d$
参考输出:
bad adj.坏的,低劣的
bed n.床,河床,苗圃
bid n.v.报价,投标
bud n.芽,蓓蕾
提示:把以上三部分的内容最好写到一个main函数中,提交子实验二时,把子实验一,三部分的代码注释掉即可。提交的最后报告中要包含所有三部分功能的代码。
要求用利用gets来获得用户输入的字符串,不能用scanf来获得用户输入的字符串
内容三:
运用以前的几个函数,在main中完成下面的流程图的功能。
程序:
输入:字符串
输出:根据流程图处理后的字符串
参考输入:
Ros1e
参考输出:
error
参考输入:
︺代表一个空格
︺︺hello︺
参考输出:
hello
参考输入:
相关文档
最新文档