ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:19.57KB ,
资源ID:5798047      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5798047.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(历年考研机试答案哈尔滨工业大学.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

历年考研机试答案哈尔滨工业大学.docx

1、历年考研机试答案哈尔滨工业大学哈工大计算机院研究生入学考试机试编程题(09-12)哈工大计算机专业机试编程题(2009)题目描述: 用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。输入: 测试数据有多组,输入n。输出: 对于每组输入,请输出x,y,z所有可行解,按照x,y,z依次增大的顺序输出。样例输入:40样例输出:x=0,y=0,z=100x=0,y=1,z=99x=0,y=2,z=98x=1,y=0,z=99参考答案:#includeint main()int x, y, z;float n;w

2、hile(scanf(%f,&n)!=EOF)for(x=0;5*x=n;x+)for(y=0;3*y=n;y+)z=100-x-y;if(5*x+3*y+(float)z/3)=n)printf(x=%d,y=%d,z=%dn,x,y,z);return 0;题目描述:输入10个数,要求输出其中的最大值。输入:测试数据有多组,每组10个数。输出:对于每组输入,请输出其最大值(有回车)。样例输入:10 22 23 152 65 79 85 96 32 1样例输出:max=152参考答案:#includeint main()int i, a10, maxn;while(scanf(%d,&a0)

3、!=EOF)maxn=a0;for(i=1;i10;i+)scanf(%d,&ai);if(maxnai)maxn=ai;printf(max=%dn,maxn);return 0;题目描述:给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。输入:测试数据有多组,每组输入一个数n。输出:对于每组输入,若是素数则输出yes,否则输入no。样例输入:13样例输出:yes参考答案:#include#includeint judge(int n) int i; if(n=1) return 0; else for(i=2;i=sqrt(n);i+) if(n%i=0) return 0;

4、return 1; int main() int n; while(scanf(%d,&n)!=EOF) if(judge(n) printf(yesn); else printf(non); return 0;题目描述:给定三角形的三条边,a,b,c。判断该三角形类型。输入:测试数据有多组,每组输入三角形的三条边。输出:对于每组输入,输出直角三角形、锐角三角形、或是钝角三角形。样例输入:3 4 5样例输出:直角三角形参考答案:/判断直角、锐角、钝角三角形#include#includevoid exchange(int *a,int *b) int temp=*a; *a = *b; *b

5、= temp;int main() int a, b, c; int x; while(scanf(%d%d%d,&a,&b,&c)!=EOF) if(ab) exchange(&a,&b); if(ac) exchange(&a,&c); x = a*a - b*b -c*c; if(x=0) printf(直角三角形n); if(x0) printf(钝角三角形n); return 0;题目描述:输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。输入:测试数据有多组,每组输入字符串s和字符c。输出:对于每组输入,输出去除c字符后的结果。样例输入:healloa样例输出:hello

6、参考答案:#include#includeint main() char a100, b; int i, j, l; while(scanf(%s %c,a,&b)!=EOF) j=0; l = strlen(a); for(i=0;il;i+) if(ai!=b) aj+=ai; aj=al; printf(%sn,a); return 0;哈工大计算机专业机试编程题(2010)题目描述: 求1-n内的完数,所谓的完数是这样的数,它的所有因子相加等于它自身,比如6有3个因子1,2,3,1+2+3=6,那么6是完数。即完数是等于其所有因子相加和的数。输入: 测试数据有多组,输入n,n数据范围不

7、大。输出: 对于每组输入,请输出1-n内所有的完数。如有案例输出有多个数字,用空格隔开,输出最后不要有多余的空格。样例输入:6样例输出:6参考答案:#includeint main() int n, i, j, k, a, b20=0; /b20存放小于n的完全数 while(scanf(%d,&n)!=EOF) /输入一个n k = 0; /bk表示第k+1个完全数,每次输入n后,k清零 for(i=2;i=n;i+) /2n,寻找完全数 a = 0; /a存放所有约数的和 for(j=1;ji;j+) if(i%j=0) a+=j; /判断是否为约数 if(a=i) /判断约数和与原数是否

8、相等 bk+ = a; for(i=0;i(k-1);i+) /输出前k-1个完全数 printf(%d ,bi); printf(%dn,bi); /输出第k个 return 0;题目描述:给定a和n,计算a+aa+aaa+a.a(n个a)的和。输入:测试数据有多组,输入a,n(1=a=9,1=n=100)。输出:对于每组输入,请输出结果。样例输入:1 10样例输出:1234567900参考答案:/*-1.本题是一大数求和问题,无法用已知类型表示,故采用数组进行存储。2.可用数组表示成为一个栈,结果取值从低位到高位依次入栈,然后依次出栈。即s0表示为结果中的个位数,s1为十位数,依次类推。3

9、.si的值可由(n - i)*a + temp)%10获得,其中temp为后一位向前的进位,temp 可由 (n - i)*a + temp)/10表示。temp初始值为0.4.注意结果如果为0时的情况,例输入 0 2 输出应为0 而不应是00;-*/#includeint main() int i, a, n, b50, temp=0, counter; while(scanf(%d%d,&a,&n)!=EOF) counter = 0; temp = 0; for(i=0;i=0;i-) if(bi=0) counter+; if(counter=(n+1) /结果全零,不能输出n个零 p

10、rintf(%d,b0); else /如果不全零,只能是n位或n+1位 if(bn!=0) printf(%d,bn); for(i=n-1;i=0;i-) printf(%d,bi); printf(n); return 0;题目描述:输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。输入:测试数据有多组,输入n(1=n=200),接着输入n个数,然后输入x。输出:对于每组输入,请输出结果。样例输入:21 30样例输出:-1/*-1.顺序查找问题;2.初始化下标为j=-1,顺序查找数组,若找到某个下标为i的数等于x,则

11、j=i, 查找完毕输出j,若查找过程中j未改变,输出结果就为-1;-*/#includeint main() int i, n, b200, j, x; while(scanf(%d,&n)!=EOF) j = -1; for(i=0;in;i+) scanf(%d,&bi); scanf(%d,&x); for(i=0;in;i+) if(x=bi) j = i; printf(%dn,j); return 0;题目描述:输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。输入:测试数据有多组,输入n(1=n=20),接着输入n个数。输出:对于每组输入,输出交换后

12、的结果。样例输入:21 3样例输出:3 1参考答案:/*-1.顺序查找问题;2.初始化mini=maxi=1,maxn=minn=a0,顺序查找数组, 若找到某个下标为i的数大于maxn,则maxi=i,maxn=ai, 若找到某个下标为i的数小于minn,则mini=i,minn=ai, 查找完毕交换amaxi,amini,顺序输出数组。-*/#includeint main() int i ,n ,a50 ,maxi ,mini, temp; while(scanf(%d,&n)!=EOF) maxi=mini=0; scanf(%d,&a0); for(i=1;iamaxi) maxi=

13、i; if(aiamini) mini=i; temp=amaxi; amaxi=amini; amini=temp; for(i=0;in-1;i+) printf(%d ,ai); printf(%dn,ai); return 0;题目描述:输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。输入:测试数据有多组,输入字符串。输出:对于每组输入,输出处理后的结果。样例输入:bacd样例输出:abcd参考答案:/*-1.统计az个数,存入c26中;2.根据ci,打印ci个ASCII码为97+i的字符;-*/#include#includeint main() int

14、i, j, k, c26=0; char a202; while(scanf(%s,a)!=EOF) j=strlen(a); for(i=0;ij;i+) k=ai; ck-97+; for(i=0;i26;i+) for(j=0;jci;j+) k=97+i; printf(%c,k); for(i=0;i26;i+) ci=0; printf(n); return 0;哈尔滨工业大学复试编程试题(2011)题目描述:输入一个字符串,长度小于等于200,然后将数组逆置输出。输入:测试数据有多组,每组输入一个字符串。输出:对于每组输入,请输出逆置后的结果。样例输入:hdssg样例输出:Gss

15、dh参考答案:#include #include int main() int i,j,l; char a200,b200; while(scanf(%s,a)!=EOF) l = strlen(a); for(i=0,j=l-1;il;i+,j-) bi=aj; bi=0; puts(b); return 0;题目描述:输入两个正整数,求其最大公约数。输入:测试数据有多组,每组输入两个正整数。输出:对于每组输入,请输出其最大公约数。样例输入:49 14样例输出:7参考答案:#includeint main() unsigned int a,b; while(scanf(%d%d,&a,&b)

16、!=EOF) while(a!=b) if(ab) a=a-b; else b=b-a; printf(%dn,a); return 0;题目描述:输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个)。输入:测试数据有多组,每组输入20个1-10之间的数。输出:对于每组输入,请输出1-10中的众数。样例输入:5 1 5 10 3 5 3 4 8 6 8 3 6 5 10 7 10 2 6 2 样例输出:5参考答案:#includeint main() int a20,b11; int i,c; while(sca

17、nf(%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d,&a0,&a1,&a2,&a3,&a4,&a5 ,&a6,&a7,&a8,&a9,&a10,&a11,&a12,&a13,&a14,&a15,&a16,&a17 ,&a18,&a19)!=EOF) c=1; for(i=1;i11;i+) /数组bi记录i的出现次数,初始化为0,b0未用 bi=0; for(i=0;i20;i+) /统计各个数(110)的个数 bai+=1; for(i=1;i11;i+) /求出现次数最多且最小的那个数 if(bcbi) c=i; printf(%dn,c); retur

18、n 0;哈尔滨工业大学复试编程试题(2012)题目描述:一个百万富翁遇到一个陌生人,陌生人找他谈了一个换钱的计划。该计划如下:我每天给你10 万元,你第一天给我1 分钱,第二天2 分钱,第三天4 分钱这样交换 30 天后,百万富翁交出了多少钱?陌生人交出了多少钱?(注意一个是万元,一个是分)输入:该题没有输入输出:输出两个整数,分别代表百万富翁交出的钱和陌生人交出的钱,富翁交出的钱以万元作单位,陌生人交出的钱以分作单位。参考答案:#include#includevoid main()int sum_a=0, per_day_1=10; /富人总共得到的moneylong sum_b=0, pe

19、r_day_2=1;int i ;for(i=0; i30; i+) sum_a+=per_day_1; sum_b+=per_day_2; per_day_2 *= 2;printf(%d %ldn,sum_a,sum_b);题目描述:不用strcat 函数,自己编写一个字符串链接函数MyStrcat(char dstStr,charsrcStr)输入:两个字符串,字符串由小写字母组成。输出:链接后的字符串样例输入:hello worldgood morning样例输出:helloworldgoodmorning参考答案:#include#includevoid MyStrCat(char

20、dstStr, char srcStr) int i,j; for(i=0; dstStri!=0; i+); for(j=0; srcStrj!=0; j+) dstStri+ = srcStrj; dstStri = 0;int main() char a25,b25; while(scanf(%s,a)!=EOF&scanf(%s,b)!=EOF) MyStrCat(a,b); printf(%sn,a); return 0;题目描述:计算两个矩阵的乘积,第一个是2*3,第二个是3*2输入:输入为两个矩阵,其中一个为2*3的矩阵,另一个为3*2的矩阵输出:一个2*2的矩阵(每一个数字后都

21、跟一个空格)样例输入:1 2 33 4 56 78 910 11样例输出:52 58100 112参考答案: #include int main() int a1, b1, c1; int d1, e1, f1; int a2, b2; int c2, d2; int e2, f2; int a, b; int c, d; while(scanf(%d%d%d%d%d%d,&a1,&b1,&c1,&d1,&e1,&f1)!=EOF& scanf(%d%d%d%d%d%d,&a2,&b2,&c2,&d2,&e2,&f2)!=EOF) 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; printf(%d %d n%d %d n,a ,b ,c ,d); return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1