电子科技大学优研计划夏令营机试题.doc
2014年电子科大“优研计划”夏令营机试回忆版(原创)程序可能存在许多不完美之处,敬请批评指正!感谢。1、 编写一个程序,读入一组整数,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。输入格式:第一行是一个整数N,N <= 20;接下来有N行,每一行表示一个整数输出格式:输出只有一行,即出现次数最多的那个元素值。输入样本:610 12 13 2 12 10输出样本:10答案:#include <stdio.h>#define M 20void main() int n,aM,countM,index =0; scanf("%d",&n); for(int r=0; r<n; r+) countr=1; for(int i=0; i<n; i+) scanf("%d",&ai); for(int j=0; j<n; j+) for(int k=j+1; k<n; k+) if(ak=aj) countj+; / for(int m=0; m<n; m+) /printf("%2d",countm); for(int m=1; m<n; m+) if(countindex<countm|(countindex=countm && am<aindex) index = m; printf("%d",aindex);运行结果:4、 世界杯小组赛(胜得3分,平得1分,负不得分),计算每个队的积分并按排名先后输出,若积分相同,则按净球数排序(保证积分相等时输入的净球数不相等)。输入个队,出线队个,输出排序后的个对,并输出出线的队伍。名称 胜 平 负 进球数 负球数 输入样本:4 2德国 1 1 0 9 3 俄罗斯 1 0 0 2 1 威尔士 1 1 1 10 2芬兰 0 1 0 3 3 输出样本:1 威尔士 4 82 德国 4 6 答案:#include <stdio.h>#include <stdlib.h>#include <string.h>#define M 100/世界杯小组赛struct WorldCup char country10; int score10; int grade; int win;void main() struct WorldCup wM,temp; int m,n,i,j,k,number=1; scanf("%d %d",&m,&n); for(i=0;i<m;i+) scanf("%s",wi.country); for(j=0;j<5;j+) scanf("%d",&wi.scorej); wi.grade= 3*wi.score0+wi.score1; wi.win = wi.score3-wi.score4; /printf("%s %d %dn",wi.country,wi.grade,wi.win); /检验一下输入是否有效 for(i=0;i<m-1;i+) k = i; for(j=i+1;j<m;j+) if(wj.grade>wk.grade) k = j; else if(wj.grade=wk.grade&&wj.win>wk.win) k = j; if(k!=i) temp = wk; wk = wi; wi = temp; for(i=0;i<n;i+) printf("%d %s %d %dn",number+,wi.country,wi.grade,wi.win); system("pause");运行结果: