您的位置:首页 > 理论基础

2012 HIT计算机研究生机试真题

2017-01-30 16:13 316 查看
注:2. 3. 两题均要求多组输入
1. 百万富翁问题

时间限制:1 秒

内存限制:128 兆

特殊判题:

 
题目描述:
一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你10万元,你第一天给我1 分钱,第二天2 分钱,

第三天4 分钱……
这样交换 30 天后,百万富翁交出了多少钱?陌生人交出了多少钱?(注意一个是万元,一个是分)
输入:
该题没有输入
输出:
输出两个整数,分别代表百万富翁交出的钱和陌生人交出的钱,富翁交出的钱以万元作单位,陌生人交出的钱以分作单位。
样例输入:无
样例输出:两个整数,中间用一个空格隔开
【分析】基本循环结构

#include <stdio.h>
int main()
{
int day;
int money1=0,money2=0,t=1;
for(day=1;day<=30;day++)
{
money1+=10;
money2+=t;
t*=2;
}
printf("%d %d\n",money1,money2);
return 0;
}


2. 计算两个矩阵的乘积

时间限制:1 秒

内存限制:128 兆

特殊判题:

 
题目描述:
计算两个矩阵的乘积,第一个是2*3,第二个是3*2
输入:
输入为两个矩阵,其中一个为2*3的矩阵,另一个为3*2的矩阵
输出:
一个2*2的矩阵(每一个数字后都跟一个空格)
样例输入:
1 2 3
3 4 5
6 7
8 9
10 11
样例输出:
52 58
100 112
【分析】结合线性代数矩阵相乘操作,可使用三重循环实现计算。

#include <stdio.h>
#include <string.h>
void Input(int a[][3],int b[][2])
{
int i,j;
for(i=0;i<2;i++)
{
if(i==0)
scanf("%d %d",&a[0][1],&a[0][2]);
else
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
}
for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&b[i][j]);
}
void Multiple(int a[][3],int b[][2],int ret[][2])
{
int i,j,k;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<2;k++)
ret[i][k]+=(a[i][j]*b[j][k]);
}
}
}
void Output(int ret[][2])
{
int i,j;
for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("%d ",ret[i][j]);
printf("\n");
}
}
int main()
{
int i,j;
int a[2][3],b[3][2],ret[2][2];
while(scanf("%d",&a[0][0])!=EOF)
{
Input(a,b);
memset(ret,0,sizeof(ret));
Multiple(a,b,ret);
Output(ret);
}
return 0;
}

3. 字符串链接

时间限制:1 秒

内存限制:128 兆

特殊判题:

 
题目描述:
不用strcat 函数,自己编写一个字符串链接函数MyStrcat(char dstStr[],charsrcStr[])
输入:
两个字符串,字符串由小写字母组成。
输出:
链接后的字符串
样例输入:
hello world
good morning
样例输出:
helloworld
goodmorning
【分析】字符串基本操作。

#include <stdio.h>
#include <string.h>
#define maxlen 1000
void MyStrcat(char dstStr[],char srcStr[])
{
int i,j,len;
len=strlen(dstStr);
i=0;
while(srcStr[i]!='\0')
dstStr[len++]=srcStr[i++];
dstStr[len]='\0';
for(i=0;i<len;i++)
printf("%c",dstStr[i]);
printf("\n");
}
int main()
{
char str1[maxlen],str2[maxlen];
while(scanf("%s %s",str1,str2)!=EOF)
MyStrcat(str1,str2);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: