资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
实验二(数组,指针,字符串,文件)实验二(数组,指针,字符串,文件)本次实验要求 5 人一组在 3 个小时内完成若干个 Problem。 每次错误检查的罚分为 1 分。 注意实验二的难度比实验一略高,实验部分的满分为 40 分,所有题目的分值为 50 分,所以 你们不必完成所有的题目(但报告中需要) ,注意人员和时间的安排。 Problem F 由键盘输入,Problem G,H,I,J 从文件输入,输入文件从 ftp 上下载。 Problem F:自动做题机(本题满分 9 分) 问题描述: 物理考卷上,题目一般是这样的:有一个电阻,电阻两端的电压 U=5V,流过电阻的电 流为 I=1A,请问电阻消耗的电功率 P 为多少 W?其实问题可以简化为 U=5V,I=1A,P=? W,输入保证只有在数据区域出现=号,且数据区域不包含空格,并且题目中一定会出现 U、 I 和 P 中的两个参数(UIPVAW 均大写) ,参数均大于 0,请你编写程序求出另外一个参数,在单位之前还包含前缀 k 小写(310),m(310)和 M(610)。样例输入中的第一行表示题目的数量。输出中不能包含前缀,结果保留 2 位小数。 样例输入:3 If the voltage is U=200V and the current is I=4.5A, which power is generated? Alight-bulb yields P=100W and the voltage is U=220V. Compute the current, please. bla bla bla lightning strike I=2A bla bla bla P=2.5MW bla bla voltage?样例输出:Problem #1 P=900.00W Problem #2 I=0.45A Problem #3 U=1250000.00VProblem G:寻找字符串 (本题满分 9 分) 问题描述: 你们的任务是需要从字符方块中寻找单词。 abcDEFGhigg hEbkWalDork FtyAwaldORm FtsimrLqsrc byoArBeDeyv Klcbqwikomk strEBGadhrb yUiqlxcnBjf例如图中高亮部分显示的是单词 betty,不考虑大小写,首字符 b 的坐标为 1 2。单词可 以横着、竖着甚至对角斜线出现在字符方块中。如果单词 word 多次出现在字符方块中,输 出行数最小的那个,如果行数也相同,输出列数最小的那个。 输入的第一行是样例数,随后的两个数字 m 和 n 是字符方块的行数和列数,随后的 m 行是字符方块, 字符方块后的数字 k 表示需要寻找的单词的个数。 后面的 k 行就是需要寻找 的单词。输出单词首字符所在的行数和列数,之间插入一个空格。输入样例:1 8 11 abcDEFGhigg hEbkWalDork FtyAwaldORm FtsimrLqsrc byoArBeDeyv Klcbqwikomk strEBGadhrb yUiqlxcnBjf4 Waldorf Bambi Betty Dagbert输出样例:2 5 2 3 1 2 7 8Problem H:迷宫(本题满分 12 分) 问题描述: Edison 是一个机器人,没有右手和眼睛,作为一个勇敢的机器人,无论他前进还是转无论他前进还是转 弯,他总是将左手放在墙上弯,他总是将左手放在墙上,从不后退。 假定 Edison 处在 N*N 的迷宫中,迷宫的四周都是墙壁。在迷宫中,一些单元格同样也 是墙壁。Edison 只能在空地间朝东、南、西、北四个方向运动。为了走出迷宫,他起草了一 份计划,他始终将左手靠在墙上沿着墙前进。 现在问题来了, Edison 是否可以在 10000 步内走出迷宫?如果他能做到, 指出他行走的 路径。 他走出迷宫的含义是到达出口单元格, 如果入口单元格和出口单元格是同一个单元格, Edison 不必移动就能走出迷宫。 输入说明: 输入文件的第一行给出了测试实例的个数 T, 后面紧跟的就是 T 个测试实例。 每个测试 实例的开头有一个整数 N, N 是迷宫的大小。 后面共有 N 行, 每行包括 N 个字符, 其中. 表示空地,#表示墙。后面跟着一行有 4 个整数sx,sy,ex,ey。),(sysx为 Edison 所处的位置,也就是迷宫的入口,),(eyex为迷宫的出口。入口一定在迷宫的一个角上,迷宫的任意单元格都可能是出口,值得注意的是迷宫的左上角的坐标为(1,1) 。 输出说明: 每行的输出为“Case #x: y“,x 是实例序列号(从 1 到 T) 。注意:Case 和:后均有一个 空格 如果 Edison 可以在 10000 步中走出迷宫,输出总的步数,换行输出他的前进路线,E 代表东,S 代表南,W 代表西,N 代表北。否则 y 为 Edison ran out of energy. (注意最后的.) 。具体的输出格式可以参见样例,每行输出的最后不包含多余的空格。 文件命名为组员学号(以_分隔)+ _maze+N.txt,其中 N 是第 N 次尝试。提交到课程邮 箱 is_oop163.com 测试集的限制:301T,Neyexsysx,1,2 N 10入口单元格和出口单元格不同且都不是墙。 输入样例:3 2 .# #. 1 1 2 2 5 .#.# . .#. .#. .#. 1 1 5 3 3 . .#. . 1 1 3 3输出样例:Case #1: Edison ran out of energy. Case #2: 22 SEEENSESSSNNNWWSWWSSEE Case #3: 4 EESS该题由特殊的程序来判断结果是 Accepted 还是 Wrong Answer,任何细节的错误都会被 判为 WrongAnswer。 Problem I:去除注释(本题满分 10 分) 问题描述: /*.*/是 C 语言的注释, 你们的任务是将输入文件中的注释全部去除, 下面我们来约 定一些细节。 为了方便你们的操作,我们不区分/*.*/出现的位置,“/*.*/“、12/*.*/34 甚至是/*.*/n 中出现的/*.*/都应该被去除。 嵌套的/*.*/也应该被删除,例如下面:printf(“Hello /* a comment /* a comment inside comment */ inside /* another comment inside comment */ string */ world“);去除注释后:printf(“Helloworld“);当原有注释被删除后导致原来不相连的/和*连接后产生的/*.*/不应该被删除,例如:/*no recursion*/* file header */去掉注释后为:/* file header */*/中的*不能被复用,这不算做注释。 输入的文件大小不超过 100K。 输入样例:/*no recursion*/* file header */* * Sample input program * */* */输出样例: 该题由特殊的程序来判断结果是 Accepted 还是 Wrong Answer,任何细节的错误都会被 判为 Wrong Answer。Case 后面有一个空格,冒号后面没有。在输出结果前加上 Case #1:, 文件命名为组员学号(以_分隔)+ _comment+N.txt,其中 N 是第 N 次尝试。提交到课程邮 箱 is_oop163.comCase #1: /* file header * */Problem J:还原文本(本题满分 10 分) 问题描述: fi yuo cna raed tihs, yuo hvae a sgtrane mnid too Cna yuo raed tihs? Olny 55 plepoe out of 100 can. 你们会获得一个字典文件 dict.txt 和一篇原始文章 text.txt,任务是根据字典将文章还原 成普通文章。如果单词在词典中一次也没有出现,则原样输出。如果出现多次,例如 prat 可能匹配字典中的 part 和 trap, 此时你们应该选择那个首字符和末字符与原来单词一致的那 个(输入和字典保证一定会有),prat 应该变换成 part,如果还有多个单词满足这个要求,随 意输出一个即可,首字符的大写应该保留,其余非字母的字符原样输出。字典的规模不超过 15000 个单词,每个单词的长度不超过 50,文本的大小不超过 2K。 样例输入:fi yuo cna raed tihs, yuo hvae a sgtrane mnid too Cna yuo raed tihs? Olny 55 plepoe out of 100 can.样例输出:if you can read this, you have a strange mind too Can you read this? Only 55 people out of 100 can.Problem FProblem GProblem HProblem IProblem J得分用时
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号