回 帖 发 新 帖 刷新版面

主题:参加了学校的程序大赛,找了几道题,大家一起做哈

本人只会java,各位高手最好用java做,不过其他语言一样可以,呵呵,大家本都是一家嘛!
有几题很有趣哦!


07年第4届第1题    

本题5分
编写程序P1,实现以下功能:

从键盘输入8名学生的成绩(整数),然后在屏幕上输出与平均成绩最接近的那个成

绩。如果不止一个成绩满足条件,

只需输出一个。
 

07年第4届第2题  

本题10分 


编写程序P2,实现以下功能: 

 

从键盘输入几十名学生的成绩(整数),以 -1表示结束,然后把这批数据按照与平

均成绩的差距排序,差距小的排在

前面,最后从屏幕依次输出排序后的全部成绩,所有成绩在同一行,两个成绩之间

用一个空格分隔。 

 

说明:比平均成绩高3和比平均成绩低3,“与平均成绩的差距”都是3。 

 

07年第4届第3题   

本题10分

 

 


编写程序P3,实现以下功能:

 

从键盘输入一个大于1的正整数,然后分解它的质因数,并从小到大输出全部质因数

,两个质因数之间用一个空格分隔

,不换行。

 

例如,输入140,输出:

 

2 2 5 7


 

07年第4届第4题   

本题15分


编写程序P4,实现以下功能:


某项比赛采用单淘汰赛制,n位参赛运动员的编号是1到n,运动员按编号从小到大两

两配对进行首轮(round 1)比赛,

每对中的失败者被淘汰,胜者(winner)再按编号从小到大两两配对进行第二轮

(round 2)比赛,淘汰一半后再进入

下一轮,如此逐轮进行,直到产生唯一的冠军(champion)为止。

 

请编写程序,从键盘输入参赛运动员人数n,(n是2的整数次幂,n>1。程序不必检

查n是否符合要求),然后在屏幕上

输出比赛进程示意图。下面是n为8时应有的输出样例,请首先看懂这个输出样例,

判断出输出格式中的规律,你的程序

必须按此规律输出。

 

注意:在程序中一一列举n=2、4、8、16、……时的输出者不能得分。

 

输出样例(各行左边的空格个数无严格限制,但应能明显区分各轮):

 

1

 

winner in round 1

 

2

 

winner in round 2

 

3

 

winner in round 1

 

4

 

champion

 

5

 

winner in round 1

 

6

 

winner in round 2

 

7

 

winner in round 1

 

8
07年第4届第5题 

本题15分


编写程序P5,实现以下功能:

 

下面是一个5行5列的螺旋方阵:

 

1 16 15 14 13

 

2 17 24 23 12

 

3 18 25 22 11

 

4 19 20 21 10

 

5 6 7 8 9

 

编写程序,从键盘输入n(1<n<20),然后从屏幕输出n行n列的螺旋方阵。左右相邻

的数之间用一个空格分隔。


 
07年第4届第6题

本题15分


编写程序P6,实现以下功能:

 

编写程序,从键盘输入任意正整数n,然后计算n! 的尾部有多少个0,最后从屏幕输

出0的个数。

 

例如,键盘输入5,屏幕输出1,因为5!=120,尾部有1个0;输入26,屏幕输出6,因

为26!= 

403291461126605635584000000,尾部有6个0。

 

不要傻乎乎地直接计算 n! 哦,溢出是得不到分的。


07年第4届第7题   

本题15分


编写程序P7,实现以下功能:

 

中国有句俗语“三天打鱼两天晒网”,某人从2003年3月3日起三天打鱼两天晒网。

编写程序实现以下功能:

 

从键盘依次输入年、月、日3个数,计算此人在这一天是打鱼还是晒网,打鱼则屏幕

输出1,晒网则输出0。

 

说明:

 

1、输入的日期在2003年3月3日到2099年12月31日之间,不必检查其正确性。

 

2、必须考虑闰年,即年份能被4整除的年份,2月有29天。


 
04年第4届第8题   

本题35分


编写程序P8,实现以下功能:

 

某班有26名学生(用小写字母a到z表示),身高互不相同,现有一批关于他们两两

比较身高的数据,需要用计算机判断

其中是否有自相矛盾的错误,例如,如果数据中有a比b高,b比e高,e比a高,那么

这批数据就是有矛盾的。

 

两两比较身高的数据是由偶数个小写字母组成的一个字符串,长度不超过100,其中

每一对字母表示一个比较关系,例

如“abftmb”表示a比b高,f比t高,m比b高。

 

编写程序,首先从键盘输入上述字符串,然后进行判断,最后从屏幕输出判断结果

,有矛盾输出字符n,否则输出字符y

,输出后程序终止。

 

例如:

 

键盘输入ab,屏幕输出y 。

 

键盘输入abbeea,屏幕输出n 。

 

键盘输入abcdefghijklmn,屏幕输出y 。



回复列表 (共1个回复)

沙发

这是我做的第二题:有点小错没查出来,望高手指点

public class q2 {
    static void xuanze(int mp[]){
         for(int i=0;i<mp.length-1;i++)               
             for (int j=i;j<mp.length;j++){
                 if(mp[i]>mp[j])
                    {int t=mp[i];mp[i]=mp[j];mp[j]=t;}
             }
    }
    public static void main(String[] args) {
        int a[]=new int[100000],z=0;
        double sum=0;
        for (int i=0;i<100000;i++){
            a[i]=Keyboard.readInt();
            if(a[i]==-1)
                break;
            z++;
        sum=sum+a[i];        
        }
        sum=sum/z;
        System.out.println(sum);
        double c[]=new double[z];
    //    for (int i=0;i<z;i++)
    //    b[i]=a[i];
        for (int i=0;i<z;i++)
            c[i]=Math.abs(sum-a[i]);
            for(int k=0;k<c.length-1;k++)               
                 for (int j=k;j<c.length;j++){
                     if(c[k]>c[j])
                        {double t=c[k];c[k]=c[j];c[j]=t;}
                 
            for (int s=0;s<z;s++){
                for (int d=0;d<z;d++)
                if(Math.abs(sum-a[d])==c[s]){
                    System.out.print(a[d]+" ");
                    break;                                    
            }
    //            System.out.print(a[k]+" ");
        }
    }

    }}


//67 56 78 45 89 34 90 23 12

我来回复

您尚未登录,请登录后再回复。点此登录或注册