历年考研机试答案哈尔滨工业大学文档格式.docx
- 文档编号:18785109
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:21
- 大小:19.57KB
历年考研机试答案哈尔滨工业大学文档格式.docx
《历年考研机试答案哈尔滨工业大学文档格式.docx》由会员分享,可在线阅读,更多相关《历年考研机试答案哈尔滨工业大学文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
,x,y,z);
}
return0;
输入10个数,要求输出其中的最大值。
测试数据有多组,每组10个数。
对于每组输入,请输出其最大值(有回车)。
10222315265798596321
max=152
inti,a[10],maxn;
%d"
a[0])!
maxn=a[0];
for(i=1;
i<
10;
i++)
scanf("
a[i]);
if(maxn<
a[i])
maxn=a[i];
max=%d\n"
maxn);
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。
测试数据有多组,每组输入一个数n。
对于每组输入,若是素数则输出yes,否则输入no。
13
yes
math.h>
intjudge(intn)
inti;
if(n<
=1)
return0;
else
{
for(i=2;
=sqrt(n);
if(n%i==0)
}
return1;
intn;
while(scanf("
if(judge(n))
printf("
yes\n"
);
no\n"
给定三角形的三条边,a,b,c。
判断该三角形类型。
测试数据有多组,每组输入三角形的三条边。
对于每组输入,输出直角三角形、锐角三角形、或是钝角三角形。
345
直角三角形
参考答案:
//判断直角、锐角、钝角三角形
voidexchange(int*a,int*b)
inttemp=*a;
*a=*b;
*b=temp;
inta,b,c;
intx;
%d%d%d"
a,&
b,&
c)!
if(a<
b)
exchange(&
b);
c)
c);
x=a*a-b*b-c*c;
if(x==0)
直角三角形\n"
if(x<
0)
锐角三角形\n"
if(x>
钝角三角形\n"
输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。
测试数据有多组,每组输入字符串s和字符c。
对于每组输入,输出去除c字符后的结果。
heallo
a
hello
string.h>
chara[100],b;
inti,j,l;
%s%c"
a,&
b)!
j=0;
l=strlen(a);
for(i=0;
l;
if(a[i]!
=b)
a[j++]=a[i];
a[j]=a[l];
%s\n"
a);
哈工大计算机专业机试编程题(2010)
求1-n内的完数,所谓的完数是这样的数,它的所有因子相加等于它自身,比如6有3个因子1,2,3,1+2+3=6,那么6是完数。
即完数是等于其所有因子相加和的数。
测试数据有多组,输入n,n数据范围不大。
对于每组输入,请输出1-n内所有的完数。
如有案例输出有多个数字,用空格隔开,输出最后不要有多余的空格。
6
intn,i,j,k,a,b[20]={0};
//b[20]存放小于n的完全数
=EOF)//输入一个n
k=0;
//b[k]表示第k+1个完全数,每次输入n后,k清零
i++)//2~n,寻找完全数
a=0;
//a存放所有约数的和
for(j=1;
j<
i;
j++)
if(i%j==0)
a+=j;
//判断是否为约数
if(a==i)//判断约数和与原数是否相等
b[k++]=a;
(k-1);
i++)//输出前k-1个完全数
%d"
b[i]);
%d\n"
//输出第k个
给定a和n,计算a+aa+aaa+a...a(n个a)的和。
测试数据有多组,输入a,n(1<
=a<
=9,1<
=n<
=100)。
对于每组输入,请输出结果。
110
1234567900
/*----------------------------------------------------------------------
1.本题是一大数求和问题,无法用已知类型表示,故采用数组进行存储。
2.可用数组表示成为一个栈,结果取值从低位到高位依次入栈,然后依次出栈。
即s[0]表示为结果中的个位数,s[1]为十位数,依次类推。
3.s[i]的值可由((n-i)*a+temp)%10获得,其中temp为后一位向前的进位,temp可由((n-i)*a+temp)/10表示。
temp初始值为0.
4.注意结果如果为0时的情况,例输入02输出应为0而不应是00;
-----------------------------------------------------------------------*/
inti,a,n,b[50],temp=0,counter;
%d%d"
counter=0;
temp=0;
n;
b[i]=((n-i)*a+temp)%10;
temp=((n-i)*a+temp)/10;
b[i]=temp;
for(i=n;
i>
=0;
i--)
if(b[i]==0)
counter++;
if(counter==(n+1))//结果全零,不能输出n个零
b[0]);
else//如果不全零,只能是n位或n+1位
if(b[n]!
=0)
b[n]);
for(i=n-1;
\n"
输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。
测试数据有多组,输入n(1<
=200),接着输入n个数,然后输入x。
2
13
-1
1.顺序查找问题;
2.初始化下标为j=-1,顺序查找数组,若找到某个下标为i的数等于x,则j=i,
查找完毕输出j,若查找过程中j未改变,输出结果就为-1;
inti,n,b[200],j,x;
j=-1;
scanf("
b[i]);
x);
if(x==b[i])
j=i;
j);
输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。
=20),接着输入n个数。
对于每组输入,输出交换后的结果。
31
2.初始化mini=maxi=1,maxn=minn=a[0],顺序查找数组,
若找到某个下标为i的数大于maxn,则maxi=i,maxn=a[i],
若找到某个下标为i的数小于minn,则mini=i,minn=a[i],
查找完毕交换a[maxi],a[mini],顺序输出数组。
inti,n,a[50],maxi,mini,temp;
maxi=mini=0;
a[0]);
for(i=1;
if(a[i]>
a[maxi])
maxi=i;
if(a[i]<
a[mini])
mini=i;
temp=a[maxi];
a[maxi]=a[mini];
a[mini]=temp;
n-1;
a[i]);
输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。
测试数据有多组,输入字符串。
对于每组输入,输出处理后的结果。
bacd
abcd
1.统计a~z个数,存入c[26]中;
2.根据c[i],打印c[i]个ASCII码为97+i的字符;
inti,j,k,c[26]={0};
chara[202];
%s"
a)!
j=strlen(a);
j;
k=a[i];
c[k-97]++;
26;
for(j=0;
c[i];
k=97+i;
%c"
k);
c[i]=0;
哈尔滨工业大学复试编程试题(2011)
输入一个字符串,长度小于等于200,然后将数组逆置输出。
测试数据有多组,每组输入一个字符串。
对于每组输入,请输出逆置后的结果。
hdssg
Gssdh
#include<
inti,j,l;
chara[200],b[200];
for(i=0,j=l-1;
i++,j--)
b[i]=a[j];
b[i]=0;
puts(b);
输入两个正整数,求其最大公约数。
测试数据有多组,每组输入两个正整数。
对于每组输入,请输出其最大公约数。
4914
7
unsignedinta,b;
while(a!
if(a>
a=a-b;
b=b-a;
输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个)。
测试数据有多组,每组输入20个1-10之间的数。
对于每组输入,请输出1-10中的众数。
51510353486836510710262
5
inta[20],b[11];
inti,c;
%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d"
a[0],&
a[1],&
a[2],&
a[3],&
a[4],&
a[5]
&
a[6],&
a[7],&
a[8],&
a[9],&
a[10],&
a[11],&
a[12],&
a[13],&
a[14],&
a[15],&
a[16],&
a[17]
a[18],&
a[19])!
c=1;
11;
i++)//数组b[i]记录i的出现次数,初始化为0,b[0]未用
20;
i++)//统计各个数(1~10)的个数
b[a[i]]+=1;
i++)//求出现次数最多且最小的那个数
if(b[c]<
b[i])
c=i;
c);
哈尔滨工业大学复试编程试题(2012)
一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。
该计划如下:
我每天给你10万元,你第一天给我1分钱,第二天2分钱,
第三天4分钱……
这样交换30天后,百万富翁交出了多少钱?
陌生人交出了多少钱?
(注意一个是万元,一个是分)
该题没有输入
输出两个整数,分别代表百万富翁交出的钱和陌生人交出的钱,富翁交出的钱以万元作单位,陌生人交出的钱以分作单位。
voidmain()
intsum_a=0,per_day_1=10;
//富人总共得到的money
longsum_b=0,per_day_2=1;
inti;
for(i=0;
i<
30;
i++)
sum_a+=per_day_1;
sum_b+=per_day_2;
per_day_2*=2;
%d%ld\n"
sum_a,sum_b);
不用strcat函数,自己编写一个字符串链接函数MyStrcat(chardstStr[],charsrcStr[])
两个字符串,字符串由小写字母组成。
链接后的字符串
helloworld
goodmorning
helloworld
goodmorning
voidMyStrCat(chardstStr[],charsrcStr[])
inti,j;
dstStr[i]!
i++);
srcStr[j]!
j++)
dstStr[i++]=srcStr[j];
dstStr[i]=0;
chara[25],b[25];
=EOF&
&
b)!
MyStrCat(a,b);
计算两个矩阵的乘积,第一个是2*3,第二个是3*2
输入为两个矩阵,其中一个为2*3的矩阵,另一个为3*2的矩阵
一个2*2的矩阵(每一个数字后都跟一个空格)
123
67
89
1011
5258
100112
#include<
intmain()
inta1,b1,c1;
intd1,e1,f1;
inta2,b2;
intc2,d2;
inte2,f2;
inta,b;
intc,d;
%d%d%d%d%d%d"
a1,&
b1,&
c1,&
d1,&
e1,&
f1)!
a2,&
b2,&
c2,&
d2,&
e2,&
f2)!
a=a1*a2+b1*c2+c1*e2;
b=a1*b2+b1*d2+c1*f2;
c=d1*a2+e1*c2+f1*e2;
d=d1*b2+e1*d2+f1*f2;
%d%d\n%d%d\n"
a,b,c,d);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 历年 考研 答案 哈尔滨工业大学