欢迎来到天天文库
浏览记录
ID:35927909
大小:108.00 KB
页数:67页
时间:2019-04-25
《浙大计算机学院考研复试上机试题及参考答案(免费)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浙江大学计算机复试上机2005-2007(由林子整理QQ:170479150)·2005年浙江大学计算机学院考研复试上机试题及参考答案(1/5)第一题:A+B(10分)[结题]题目要求:读入两个小于100的正整数A和B,计算A+B。需要注意的是:A和B的每一位数字由对应的英文单词给出。输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为"A+B=",相邻两字符串有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。输出格式:对每个测试用例输出1行,即A+B的值。输入样例:one+two=threefour+fivesix=
2、zeroseven+eightnine=zero+zero=输出样例:39096#include#include#include#includeintmain(void){ constchardata[12][6]={"zero","one","two", "three","four", "five","six","seven","eight","nine", "+","="}; unsigneda,b; /*转换后的表达式参数,如a+b(123+456) */
3、unsignedi,j,k; /*临时变量,作为下标 */ charstr[100]; /*输入字符串,足够大容量 */ chartemp[6]; /*临时字符串,用于检索数字,如"one"->'1' */ charresult[30]; /*转换后的表达式参数,如"123+456=" */ do{ a=b=i=j=k=0; /*初始化变量*/ memset(str,0,sizeof(str)); memset(temp,0,sizeof(temp)); memset(result,0,sizeof(result));
4、 gets(str); /*获取输入字符串,不能使用scanf,因为有空格*/ for(i=0,k=0;i5、]=j+'0'; if(j==10) result[k++]='+'; if(j==11) result[k++]='='; break; /*找到匹配数字就不必再搜索了*/ } } result[k]=0;/*字符串结束标记,result形式"123+456="*/ sscanf(result,"%d+%d=",&a,&b); /*用sscanf来获得a,b的值*/ if(a==0&&b==0)break; /*A,B同时为零则退出程序*/ elseprintf("%d",a+b); /*打印6、输出A+B的数值*/ }while(1); return0;}·2005年浙江大学计算机学院考研复试上机试题及参考答案(2/5)第二题:谁是开门关门的人?(10分)题目要求:每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签到、签离记录,请根据记录找出当天开门和关门的人。输入格式:测试输入的第一行给出记录的总天数N(>0)。下面列出了N天的记录。每天的记录在第一行给出记录的条目数M(>0),下面是M行,每行的格式为 证件号码签到时间签离时间其中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的7、字符串。输出格式:对每一天的记录输出1行,即当天开门和关门人的证件号码,中间用1空格分隔。注意:在裁判的标准测试输入中,所有记录保证完整,每个人的签到时间在签离时间之前,且没有多人同时签到或者签离的情况。输入样例:31ME302111222532100:00:0023:59:592EE30121808:05:3520:56:35MA30113412:35:4521:40:423CS30111115:30:2817:00:10SC302123408:00:0011:25:25CS30113321:45:0021:58:40输出样例:ME30218、112225321ME3021112225321EE301218MA301134SC3021234CS301133#include#include
5、]=j+'0'; if(j==10) result[k++]='+'; if(j==11) result[k++]='='; break; /*找到匹配数字就不必再搜索了*/ } } result[k]=0;/*字符串结束标记,result形式"123+456="*/ sscanf(result,"%d+%d=",&a,&b); /*用sscanf来获得a,b的值*/ if(a==0&&b==0)break; /*A,B同时为零则退出程序*/ elseprintf("%d",a+b); /*打印
6、输出A+B的数值*/ }while(1); return0;}·2005年浙江大学计算机学院考研复试上机试题及参考答案(2/5)第二题:谁是开门关门的人?(10分)题目要求:每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签到、签离记录,请根据记录找出当天开门和关门的人。输入格式:测试输入的第一行给出记录的总天数N(>0)。下面列出了N天的记录。每天的记录在第一行给出记录的条目数M(>0),下面是M行,每行的格式为 证件号码签到时间签离时间其中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的
7、字符串。输出格式:对每一天的记录输出1行,即当天开门和关门人的证件号码,中间用1空格分隔。注意:在裁判的标准测试输入中,所有记录保证完整,每个人的签到时间在签离时间之前,且没有多人同时签到或者签离的情况。输入样例:31ME302111222532100:00:0023:59:592EE30121808:05:3520:56:35MA30113412:35:4521:40:423CS30111115:30:2817:00:10SC302123408:00:0011:25:25CS30113321:45:0021:58:40输出样例:ME3021
8、112225321ME3021112225321EE301218MA301134SC3021234CS301133#include#include
此文档下载收益归作者所有