浙江大学计算机系硕士研究生复试题目解答(1)

 
题目要求:
读入两个小于100的正整数AB,计算A+B。需要注意的是:AB的每一位数字由对应的英文
单词给出。
具体的输入输出格式规定如下:
输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两
字符串有一个空格间隔。当AB同时为0时输入结束,相应的结果不要输出。
输出格式:对每个测试用例输出1行,即A+B的值。

输入样例:

one + two
three four + five six
zero seven + eight nine
zero + zero

输出样例:

The result is 3
The result is 90
The result is 96
附加要求:
(1)不能用string.h及其相关库函数
(2)出错检测机制

 

源代码如下:

#include "stdio.h"
#define maxnum 32
#define error -1
int strcompare(char *);
int numcompare(char *);
int compare(char *m,char *c);
int Done();
int main()
{
int i;
do
{
i=Done();
}
while(i);
return 1;
}
int Done()
{
char str1[maxnum/2]={'/0'},str2[maxnum/2]={'/0'},temp;
int i,front=0,low=0,status=0,x,y;
printf("Please enter your formula,end with command 'zero+zero'/n");
for(i=0;i<maxnum;i++)
{
scanf("%c",&temp);
if(temp=='/n')
break;
if(temp=='+')
{
status=1;
continue;
}
if(status==0)/* number 0 or 1 stands for the front part of the formula */
{
str1[front]=temp;
front++;
}
else
if(status==1)
{
str2[low]=temp;
low++;
}
}
if((x=strcompare(str1))!=error&&(y=strcompare(str2))!=error)
{
if((x+y)!=0)
printf("The result is:%d/n",x+y);
return x+y;
}
else
printf("Invalid input!/n");
}
int strcompare(char *c)
{
char str1[maxnum/4]={'/0'},str2[maxnum/4]={'/0'};
int i,temp,tmp,status=1,front=0,low=0,mid=0;/*the number & status of the input*/
for(i=0;i<maxnum/2;i++)/*abstract the string */
{
if(*c=='/0')
break;
if(*c==' ')
{
mid=1;
c++;
}
if(mid==0)
{
str1[front]=*c;
front++;
c++;
}
else
if(mid==1)
{
status=2;
str2[low]=*c;
low++;
c++;
}
}
if(status==1)
{
if((temp=numcompare(str1))!=error)
return temp;
else
return error;
}
else
if(status==2)
{
if((temp=numcompare(str1))!=error&&(tmp=numcompare(str2))!=error)
return temp*10+tmp;
else
return error;
}
}
int numcompare(char *c)
{
char zero[]="zero";
char one[]="one";
char two[]="two";
char three[]="three";
char four[]="four";
char five[]="five";
char six[]="six";
char seven[]="seven";
char eight[]="eight";
char nine[]="nine";
int i;
if(*c=='z')
{
if(compare(c,zero))
return 0;
else
return error;
}
else
if(*c=='o')
{
if(compare(c,one))
return 1;
else
return error;
}
else
if(*c=='t'&&*(c+1)=='w')
{
if(compare(c,two))
return 2;
else
return error;
}
else
if(*c=='t'&&*(c+1)=='h')
{
if(compare(c,three))
return 3;
else
return error;
}
else
if(*c=='f'&&*(c+1)=='o')
{
if(compare(c,four))
return 4;
else
return error;
}
else
if(*c=='f'&&*(c+1)=='i')
{
if(compare(c,five))
return 5;
else
return error;
}
else
if(*c=='s'&&*(c+1)=='i')
{
if(compare(c,six))
return 6;
else
return error;
}
else
if(*c=='s'&&*(c+1)=='e')
{
if(compare(c,seven))
return 7;
else
return error;
}
else
if(*c=='e')
{
if(compare(c,eight))
return 8;
else
return error;
}
else
if(*c=='n')
{
if(compare(c,nine))
return 9;
else
return error;
}
else
return error;
}
int compare(char *c,char *t)
{
for(;*c!=0;c++,t++)
if(*c!=*t)
break;
if(*c=='/0'&&*t=='/0')
return 1;
else
return 0;

原文地址:http://blog.csdn.net/ctu_85/archive/2006/10/15/1334936.aspx

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
同济大学计算机复试题目一般包含以下几个方面: 1. 专业基础知识:复试会针对计算机相关的基本知识进行提问,如数据结构、算法设计与分析、操作系统、数据库等。面试官可能会问一些基于具体场景的问题,以考察学生对知识的掌握与应用能力。 2. 项目经验与实践能力:面试官可能会询问学生曾经参与的项目情况,以及具体负责的工作内容和项目成果等。同时也会关注学生的实践能力,例如是否曾参加过相关比赛、开发过个人作品、拥有自己的技术博客等。 3. 学术研究潜力:同济大学计算机复试也会关注学生的学术研究潜力。面试官可能会问学生是否对某个领域的研究感兴趣,是否有过科研经历或发表过论文等,以考察学生在科研方面的积极性和潜力。 4. 英语能力:同济大学计算机复试过程中也会进行一些英语面试,以考察学生的英语听说能力。面试官可能会要求学生用英文介绍自己、谈论技术话题或回答一些英文问题。 5. 综合素质与个人特长:面试官可能会问学生一些与个人综合素质相关的问题,如对学校的期望、未来的规划、个人特长等。这些问题旨在考察学生对自身发展的认识和规划,以及学生是否有适应同济大学学习环境的能力。 对于这些问题,我建议准备好相关的专业知识,复习一下基本的数据结构与算法,找到自己参与过的项目,并准备好能够详细介绍的材料,同时对自己感兴趣的研究领域也有一定的了解。此外,也要保持积极的学习态度和良好的沟通表达能力,在面试时展现出自己的个性和特长。最后,不要忘记提前准备一些英语口语练习,以确保能够顺利应对英语面试环节。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值