好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

浙大计算机学院考研复试上机试题与参考答案.doc

66页
  • 卖家[上传人]:汽***
  • 文档编号:382756816
  • 上传时间:2023-01-06
  • 文档格式:DOC
  • 文档大小:83KB
  • / 66 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 大学计算机复试上机2005-2007(由林子整理 :170479150)· 2005年大学计算机学院考研复试上机试题与参考答案(1/5) 第一题:A+B(10分)[结题]题目要求:读入两个小于100的正整数A和B,计算A+B需要注意的是:A和B的每一位数字由对应的英文单词给出输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为"A+ B =",相邻两字符串有一个空格间隔当A和B同时为0时输入结束,相应的结果不要输出输出格式:对每个测试用例输出1行,即A+B的值输入样例:one + two =three four + five six =zero seven + eight nine =zero + zero =输出样例:39096#include #include #include #include int main(void){ const char data[12][6] = {"zero", "one", "two",   "three", "four",  "five", "six", "seven", "eight", "nine",  "+", "="}; unsigned a, b; /* 转换后的表达式参数,如a+b(123+456) */ unsigned i, j, k; /* 临时变量,作为下标    */ char str[100]; /* 输入字符串,足够大容量   */ char temp[6];  /* 临时字符串,用于检索数字,如"one"->'1' */ char result[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));  gets(str); /* 获取输入字符串,不能使用scanf,因为有空格 */  for(i=0, k=0; i

      现有一堆杂乱的机房签到、签离记录,请根据记录找出当天开门和关门的人输入格式:测试输入的第一行给出记录的总天数N ( > 0 )下面列出了N天的记录每天的记录在第一行给出记录的条目数M ( > 0 ),下面是M行,每行的格式为 证件 签到时间签离时间其中时间按“小时:分钟:秒钟”(各占2位)给出,证件是长度不超过15的字符串输出格式:对每一天的记录输出1行,即当天开门和关门人的证件,中间用1空格分隔注意:在裁判的标准测试输入中,所有记录保证完整,每个人的签到时间在签离时间之前,且没有多人同时签到或者签离的情况输入样例:31ME21 00:00:00 23:59:592EE301218 08:05:35 20:56:35MA301134 12:35:45 21:40:423CS301111 15:30:28 17:00:10SC3021234 08:00:00 11:25:25CS301133 21:45:00 21:58:40输出样例:ME21 ME21EE301218 MA301134SC3021234 CS301133#include #include #include typedef struct{ char id[16]; /* 证件长度不超过15位 */ char cometime[9]; /* 时间格式00:00:00 */ char leavetime[9]; /* 时间格式00:00:00 */}Record;int main(){ int N, M, i; /* 记录的总天数N,每天记录的条目数M */ Record *pTimeList;/* 记录该天出入人员的证件、进入时间、离开时间 */ int first, last; /* 记录每天开门的人和关门的人 */ scanf("%d",& N); /* 读入记录的总天数 */ while(N--) {  scanf("%d", & M);  /* 读入该天的进出人员数 */  pTimeList = (Record *)malloc(M*sizeof(Record));  for(i=0,first=0,last=0; i 0 )     first = i;    if( strcmp( pTimeList[last].leavetime, pTimeList[i].leavetime) < 0)     last = i;   }  } /* for i */  printf("%s %s\n", pTimeList[first].id, pTimeList[last].id);  free(pTimeList); } /* for N */}· 2005年大学计算机学院考研复试上机试题与参考答案(3/5) 第三题:分数统计(12分)题目要求:今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。

      给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印输入格式:测试输入包含若干场考试的信息每场考试信息的第1行给出考生人数N ( 0 < N < 1000 )、考题数M ( 0 < M < = 10)、分数线(正整数)G;第2行排序给出第1题至第M题的正整数分值;以下N行,每行给出一名考生的号(长度不超过20的字符串)、该生解决的题目总数m、以与这m道题的题号(题目号由1到M)当读入的考生人数为0时,输入结束,该场考试不予处理输出格式:对每场考试,首先在第1行输出不低于分数线的考生人数n,随后n行按分数从高到低输出上线考生的考号与分数,其间用1空格分隔若有多名考生分数相同,则按他们考号的升序输出输入样例:4 5 2510 10 12 13 15CS004 3 5 1 3CS003 5 2 4 1 3 5CS002 2 1 2CS001 3 2 3 51 2 4010 30CS001 1 22 3 2010 10 10CS1 0CS2 2 1 20输出样例:3CS003 60CS001 37CS004 3701CS2 20#include #include #include typedef struct{    char id[21]; /* 号(<=20字符) */    int  score; /* 该考生总分 */}StuInfo;int main(){    int N, M, G, n;  /* 考生人数,题目数,分数线,上线考生数量 */    int *pMarkList;  /* 第1题至第M题的正整数分值 */    StuInfo *pStuinfo; /* 考生信息 */    int i,j,k,a,b,c,m;  /* 临时变量 */    StuInfo tmp;  /* 用于排序 */    while( scanf("%d", &N ) && N!=0 ) /* 读入考生人数N */    {        scanf("%d%d", &M, &G);   /* 读入题目数量和分数线 */        pMarkList = (int *)malloc(M*sizeof(int));  /* M道题目的分数 */        pStuinfo = (StuInfo *)malloc(N*sizeof(StuInfo)); /* N个考生 */        for(i=0; i= G) /* 如果考生上线则记录。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.