2012 HIT计算机研究生机试真题
2017-01-30 16:13
316 查看
注:2. 3. 两题均要求多组输入
1. 百万富翁问题
时间限制:1 秒
内存限制:128 兆
特殊判题:否
题目描述:
一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你10万元,你第一天给我1 分钱,第二天2 分钱,
第三天4 分钱……
这样交换 30 天后,百万富翁交出了多少钱?陌生人交出了多少钱?(注意一个是万元,一个是分)
输入:
该题没有输入
输出:
输出两个整数,分别代表百万富翁交出的钱和陌生人交出的钱,富翁交出的钱以万元作单位,陌生人交出的钱以分作单位。
样例输入:无
样例输出:两个整数,中间用一个空格隔开
【分析】基本循环结构
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
【分析】字符串基本操作。
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; }
相关文章推荐
- 2011 HIT计算机研究生机试真题
- 2009 HIT计算机研究生机试真题
- 蓝桥杯——2015 HIT计算机研究生机试真题(2017.1.29)
- 2010 HIT计算机研究生机试真题
- 蓝桥杯——2014 HIT计算机研究生机试真题(2017.2.2)
- 2008--2009年北京航空航天大学计算机研究生机试真题
- 简单的素数问题(2008年北京航空航天大学计算机研究生机试真题)
- 2012年北京大学计算机研究生机试真题 -Is It A Tree?
- 题目1003:A+B 2010年浙江大学计算机及软件工程研究生机试真题
- 2007年北京大学计算机研究生机试真题 二叉树
- 题目1009:二叉搜索树(2010年浙江大学计算机及软件工程研究生机试真题)
- 2011年浙江大学计算机及软件工程研究生机试真题(3)
- 2009年北京航空航天大学计算机研究生机试真题,迭代求立方根
- 九度题目1024:畅通工程 2007年浙江大学计算机及软件工程研究生机试真题
- 蓝桥杯——2011 吉大计算机研究生机试真题(节选,2017.2.6)
- 题目1163:素数 2008年北京航空航天大学计算机研究生机试真题
- 蓝桥杯——计算机研究生机试真题(2017.2.14)
- 蓝桥杯——计算机研究生机试真题(2017.2.17)
- 2005年浙江大学计算机及软件工程研究生机试真题并查集UnionFindjava实现
- 2011年清华大学计算机研究生机试真题