综合练习题(java)

单元一公式计算

课题一 三角形面积

按公式s=1/2ah求三角形面积.

public static void Text1(){
        Scanner in = new Scanner(System.in);
        System.out.print("请输入三角形的底边长a:");
        double a = in.nextDouble();
        System.out.print("请输入三角形的高h:");
        double h = in.nextDouble();
        double s = 0.5*a*h;
        System.out.print("三角形的面积为:"+s);
    }

课题二 平行四边形周长

    按公式c=2(a+b)求平行四边形周长.

public static void Text2(){
        Scanner in = new Scanner(System.in);
        System.out.print("请输入平行四边形a:");
        double a = in.nextDouble();
        System.out.print("请输入平行四边形b:");
        double b = in.nextDouble();
        double c = 2*(a+b);
        System.out.print("平行四边形的周长为:"+c);
    }

课题三 长方体体积

    按公式v=abh求长方体体积.

public static void Text3(){
        Scanner in = new Scanner(System.in);
        System.out.print("请输入长方体的a:");
        double a = in.nextDouble();
        System.out.print("请输入长方体的b:");
        double b = in.nextDouble();
        System.out.print("请输入长方体的h:");
        double h = in.nextDouble();
        double v = a*b*h;
        System.out.print("长方体的体积为:"+v);
    }

课题四 圆柱体体积

    按公式v=Πr^2h求圆柱体体积.

public static void Text4(){
        Scanner in = new Scanner(System.in);
        System.out.print("圆柱体的r:");
        double r = in.nextDouble();
        System.out.print("圆柱体的h:");
        double h = in.nextDouble();
        double v = 3.14*r*r*2*h;
        System.out.print("圆柱体体积为:"+String.format("%.2f",v));//保留小数点后两位
    }

课题五 圆锥体体积

    按公式v=1/3∏r^2h求圆锥体体积.

public static void Text5(){
        Scanner in = new Scanner(System.in);
        System.out.print("圆锥体vvv的r:");
        double r = in.nextDouble();
        System.out.print("圆锥体的h:");
        double h = in.nextDouble();
        double v = (3.14*r*r*2*h)/3;
        System.out.print("圆锥体体积为:"+String.format("%.2f",v));//保留小数点后两位
    }

课题六 电路功率

    按公式W=U^2/R求电路功率.

public static void Text6(){
        Scanner in = new Scanner(System.in);
        System.out.print("电路U:");
        double U = in.nextDouble();
        System.out.print("电路R:");
        double R = in.nextDouble();
        double W = U*U/R;
        System.out.print("电路功率为:"+String.format("%.2f",W));//保留小数点后两位
    }

课题七 电路功率

按公式W=I^2R求电路功率.

public static void Text7(){
        Scanner in = new Scanner(System.in);
        System.out.print("电路I:");
        double I = in.nextDouble();
        System.out.print("电路R:");
        double R = in.nextDouble();
        double W = I*I*R;
        System.out.print("电路功率为:"+String.format("%.2f",W));//保留小数点后两位
    }

单元二多路分支

课题一 利润提成

    企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

public static void Text1(){
        Scanner in = new Scanner(System.in);
        System.out.println("请输入当月利润I:");
        double I = in.nextDouble();
        if(I > 0){
            if(I <= 100000){
                double money = I + I * 0.1;
                System.out.println("应发奖金数为:"+money);
            }else if(I > 100000 && I <= 200000){
                double money = I + (I-100000) * 0.075 + 10000;
                System.out.println("应发奖金数为:"+money);
            }else if(I > 200000 && I <= 400000){
                double money = I + (I-200000) * 0.05 + 17500;
                System.out.println("应发奖金数为:"+money);
            }else if(I > 400000 && I <= 600000){
                double money = I + (I-400000) * 0.03 + 27500;
                System.out.println("应发奖金数为:"+money);
            }else if(I > 600000 && I <= 1000000){
                double money = I + (I-600000) * 0.015 + 33500;
                System.out.println("应发奖金数为:"+money);
            }else if(I > 1000000){
                double money = I + (I-1000000) * 0.01 + 39500;
                System.out.println("应发奖金数为:"+money);
            }
        }

    }

课题二 电费收取

供电公司对每月电费在100度以下的普通客户每度电收0.5元;超过100度低于300度超过部分每度收0.8元;超过300度低于1000度超过部分每度收1.2元;超过1000度超过部分每度收2元.输入客户的用电度数,求应收电费的金额.

public static void Text2(){
        Scanner in = new Scanner(System.in);
        System.out.println("请输入客户用电度数:");
        double KWH = in.nextDouble();
        if(KWH > 0){
            if(KWH <= 100){
                double money = KWH * 0.5;
                System.out.println("应收电费为:"+money);
            }else if(KWH <= 300 && KWH > 100){
                double money = (KWH-100) * 0.8 + 50;
                System.out.println("应收电费为:"+money);
            }else if(KWH <= 1000 && KWH > 300){
                double money = (KWH-300) * 1.2 + 210;
                System.out.println("应收电费为:"+money);
            }else if(KWH > 1000){
                double money = (KWH-1000) * 2 + 1050;
                System.out.println("应收电费为:"+money);
            }
        }
    }

课题三 星期输出

    输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

public static void Text3(){
        Scanner in = new Scanner(System.in);
        System.out.println("请输入第一个字母:");
        char c = in.next().charAt(0);
        switch (c){
            case 'm':
                System.out.println("星期一:monday");
                break;
            case 't':
                System.out.println("第一个字母一样请输入第二个字母:");
                char c2 = in.next().charAt(0);
                if(c2 == 'u'){
                    System.out.println("星期二:tuesday");
                }else{
                    System.out.println("星期四:thursday");
                }
                break;
            case 'w':
                System.out.println("星期三:wednesday");
                break;
            case 'f':
                System.out.println("星期五:friday");
                break;
            case 's':
                System.out.println("第一个字母一样请输入第二个字母:");
                char c3 = in.next().charAt(0);
                if(c3 == 'a'){
                    System.out.println("星期六:saturday");
                }else{
                    System.out.println("星期日:sunday");
                }
                break;
            default:
                System.out.println("没有这个星期");
        }
    }

课题四 个税征收

    假设个人所得税的征收办法是:月收入低于2000元者,不计税;高于2000元低于3500元者,高出部分征收5%;高于3500元低于5000元者,高出部分征收10%;高于5000元低于10000元者,高出部分征收15%;高于10000元者,高出部分征收20%。输入一个月的收入,求出其应征收的个人所得税。

public static void Text4(){
        Scanner in = new Scanner(System.in);
        System.out.println("请输入一个月的收入:");
        double sal = in.nextDouble();

        if(sal > 0){
            if(sal <= 2000){
                System.out.println("征收的所得税为: 0");
            }else if(sal > 2000 && sal <= 3500){
                double sal2 = (sal-2000)*0.05;
                System.out.println("征收的所得税为: "+sal2);
            }else if(sal > 3500 && sal <= 5000){
                double sal2 = (sal-3500) * 0.1 + 75;
                System.out.println("征收的所得税为: "+sal2);
            }else if(sal > 5000 && sal <= 10000){
                double sal2 = (sal-5000) * 0.15 + 225;
                System.out.println("征收的所得税为: "+sal2);
            }else if(sal > 10000){
                double sal2 = (sal-10000) * 0.15 + 975;
                System.out.println("征收的所得税为: "+sal2);
            }
        }else{
            System.out.println("一个月收入不能为负数");
        }
    }

课题五 幼儿园编班

    对幼儿园小朋友编班,1~2岁的编入小班,3~4岁的编入中班,5~6岁的编入大班.输入小朋友的年龄,输出应上哪个班.

public static void Text5(){
        Scanner in = new Scanner(System.in);
        System.out.println("请输入小朋友的年龄:");
        int age = in.nextInt();
        if(age > 0){
            if(age >= 1 && age <= 2){
                System.out.println("编入小班");
            }else if(age >= 3 && age <= 4){
                System.out.println("编入中班");
            }else if(age >= 5 && age <= 6){
                System.out.println("编入大班");
            }else{
                System.out.println("年龄不符合");
            }
        }
    }

课题六 快递收费

快递公司对重量在1公斤以下的快递收费10元;超过1公斤低于10公斤的快递超过部分每公斤加收0.5元;超过10公斤低于50公斤的快递超过部分每公斤加收0.3元;超过50公斤的快递超过部分每公斤加收0.1元.输入某位客户快递的重量w,求收费f

public static void Text6(){
        Scanner in = new Scanner(System.in);
        System.out.println("输入快递的重量公斤w:");
        double w = in.nextDouble();
        if(w > 0){
            if(w <= 1){
                System.out.println("收费f:"+10);
            }else if(w > 1 && w <= 10){
                double f = (w-1)*0.5+10;
                System.out.println("收费f:"+f);
            }else if(w > 10 && w <= 50){
                double f = (w-10)*0.3+14.5;
                System.out.println("收费f:"+f);
            }else if(w > 50){
                double f = (w-50)*0.1+26.5;
                System.out.println("收费f:"+f);
            }
        }else{
            System.out.println("输入无效重量");
        }

    }

课题七 成绩评定

输入一个分数x(0--100)按下列情况输出其属于那个级别.

      x≥90       优秀

      80≤x<90    良好

      70≤x<80    中等

      60≤x<70    及格

      x<60        不及格

public static void Text7(){
        Scanner in = new Scanner(System.in);
        System.out.println("输入一个分数(0--100):");
        float score = in.nextFloat();
        if(score >= 0 && score <= 100){
            if(score >= 90 && score <= 100){
                System.out.println("优秀");
            }else if(score >= 80 && score < 90){
                System.out.println("良好");
            }else if(score >= 70 && score < 80){
                System.out.println("中等");
            }else if(score >= 60 && score < 70){
                System.out.println("及格");
            }else{
                System.out.println("不及格");
            }
        }else{
            System.out.println("输入成绩无效");
        }
    }

单元三基本循环(要求用while语句设计)

课题一 统计及格不及格人数

输入一个班某门课的成绩,统计及格不及格的人数.

/**统计及格不及格人数**/
    public static void Text1(){
        Scanner in = new Scanner(System.in);
        int i = 1;
        int S_true = 0;
        int S_false = 0;
        while(true){
            System.out.println("请输入第"+i+"个同学的成绩(0--100) 大于100退出");
            double score = in.nextDouble();
            if(score >= 0 && score <= 100){
                if(score >= 60){
                    S_true++;
                }else{
                    S_false++;
                }
                System.out.println("及格的有"+S_true+"" +
                        "个  不及格的有"+S_false+"个"+"\n");

            }else{
                System.out.println("输入错误");
                return;
            }
            i++;
        }
    }

课题二 最高分和最低分

输入一个班某门课的成绩,输出最高分和最低分.

/**最高分和最低分**/
    public static void Text2(){
        double Min = 101;
        double Max = 0;
        int i = 1;
        Scanner in = new Scanner(System.in);
        while(true){
            System.out.println("请输入第"+(i++)+"个同学的成绩(0--100) 大于100退出");
            double score = in.nextDouble();
            if(score >= 0 && score <= 100){
                if(Max < score){
                    Max = score;
                }
                if(Min > score){
                    Min = score;
                }
            }else{
                break;
            }
            System.out.println("班级最大分数="+Max+"  班级最小分数="+Min+"\n");
        }
    }

课题三统计字母和非字母个数

输入一句英文,统计字母和非字母的个数.

/**统计字母和非字母个数**/
    public static void Text3(){
        Scanner in = new Scanner(System.in);
        System.out.println("输入一句英文,统计字母和非字母的个数");
        String  str = in.next();
        int i = 0;
        int num1 = 0;
        int num2 = 0;
        while (true){
            if((str.charAt(i) >= 65 && str.charAt(i) <= 90) || (str.charAt(i) >= 97 && str.charAt(i) <= 122)){
                num1++;
            }else{
                num2++;
            }
            if(++i >= str.length()){
                break;
            }
        }
        System.out.println("字母个数="+num1+"非字母个数="+num2);
    }

课题四 选票统计

张同学和王同学竞选班长,编写统计选票的程序.

/**选票统计**/
    public static void Text4(){
        Scanner in = new Scanner(System.in);
        int Zhang = 0;
        int Wang = 0;
        while(true){
            System.out.println("张同学和王同学竞选班长(输入1选张同学," +
                    "2选王同学,否者退出):)");
            int i = in.nextInt();
            if (i == 1){
                Zhang++;
            }else if(i == 2){
                Wang++;
            }else{
                break;
            }
            System.out.println();
        }

        System.out.println("张同学票数为:"+Zhang+"  王同学票数为:"+Wang);
    }

课题五 评委打分

歌手大奖赛有10位评委打分,10位评委分数的平均分就是每个歌手的最后得分,编写计算歌手最后得分的程序.

/**评委打分**/
    public static void Text5(){
        Scanner in = new Scanner(System.in);
        int i = 1;
        double sum = 0;
        while(i <= 3){
            System.out.println("第"+i+"个评委打分:");
            double score = in.nextDouble();
            sum += score;
            i++;
        }
        System.out.println("歌手最后得分为:"+sum/(i-1));
    }

课题六 统计个数

编写程序统计100以内能被3整除的偶数有多少个.

/**统计个数**/
    public static void Text6(){
        int i = 0;
        int num = 0;
        while(i <= 100){
            i++;
            if(i%3 == 0 && i%2 == 0){
                System.out.print(i+"  ");
                num++;
            }
        }
        System.out.println("\n100以内能被3整除的偶数有"+num+"个");
    }

课题七 闰年个数

编写程序统计2000年--3000年有多少个闰年.

/**闰年个数**/
    public static void Text7(){
        int year = 2000;
        int i = 0;
        while (year <= 3000){
            if(year%4 == 0 || year%400 == 0 ){
                i++;
            }
            year++;
        }
        System.out.print("闰年个数为"+i);
    }

单元四循环累和

课题一 累和

    求s=a+aa+aaa+aaaa+…的值,其中a是一个数字。例如2+22+222+2222+22222 (此时a=2,共有5个数相加,几个数相加和a的值由键盘输入控制)

/**累和**/
    public void Text01(int ge,int num){
        int sum = 0;
        for(int i = 1;i <= ge;i++){
            for(int j = 0;j < i;j++){
                sum += (int) (num*Math.pow(10,j));
            }
        }
        System.out.println(sum);
    }

课题二 阶乘累和

    求1!+2!+3!+...+20!的和

/**阶乘累和**/
    public void Text02(int num){
        long sum = 0;
        long sum2;
        for(int i = 1;i <= num;i++){
            sum2 = 1;
            for(int j = 1;j <= num;j++){
                sum2 *= j;
                System.out.print(sum2+" ");
            }
            sum += sum2;
        }
        System.out.println("阶乘和为"+sum);
    }

课题三 计算问题

    计算 1-1/2+1/3-1/4+…+1/19-1/20。

/**计算问题**/
    public void Text03(int num){
        double sum = 0;
        for(int i = 1;i <= num;i++){
            if(i%2 != 0){
                sum += (double)(1.0/i);
            }else{
                sum -= (double)(1.0/i);
            }
        }
        System.out.println(sum);
    }

课题四 计算问题

    计算12-22+32-42+…+192-202。

/**计算问题**/
    public void Text04(int num){
        int sum = 0;
        for(int i = 1;i <= num;i++){
            if(i%2 != 0){
                sum += 2+(10*i);
            }else{
                sum -= 2+(10*i);
            }

        }
        System.out.println(sum);
    }

课题五 分式累和

    有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

/**分式累和**/
    public void Text05(int num){
        double sum = 0;
        int x = 2;
        int y = 1;
        int j = 0;
        for(int i = 1;i <= num;i++){
            sum += (double) x/y;
            j = x;
            x = x+y;
            y = j;
        }
        System.out.println(sum);
    }

课题六 分式累和

    当输入n为偶数时,求1/2+1/4+1/6+...+1/n;当输入n为奇数时,求1/1+1/3+1/5+...+1/n。

/**分式累和**/
    public void Text06(int num){
        double sum = 0;
        int j = 0;
        int x = 0;
        int y = 0;
        int temp = 0;
        if(num%2 != 0){//奇数
            x = 1;
            y = 1;
            for(int i = 1;i <= num;i++){
                sum += (double) x/y;
                y += 2;
            }
        }else{
            x = 1;
            y = 2;
            for(int i = 1;i <= num;i++){
                sum += (double) x/y;
                y += 2;
            }
        }
        System.out.println(sum);
    }

课题七 第几天

输入某年某月某日,判断这一天是这一年的第几天?

public void Text07(int year,int mth,int d){
        int day = 0;
        int [] month = {0,31,28,31,30,31,30,31,31,30,31,30,31};
        if((year%4 != 0 && year%100 != 0) || year % 400 != 0){//平年28
            for(int i = 0;i < mth;i++){
                day += month[i];
            }
            day += d;
        }else{//闰年29
            month[2] +=1;
            for(int i = 0;i < mth;i++){
                day += month[i];
            }
            day += d;
        }
        System.out.println(day);
    }

单元五循环递推

课题一 猴子吃桃

    猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

课题二 古典兔子问题

    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问二十个月中每个月的兔子总数为多少?

课题三 年龄问题

    有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大?

课题四 猴子分桃

    海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

课题五 反弹高度

    一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

课题六 递增的牛群

若一头小母牛,从第四年开始每年生一头母牛,按此规律,第二十年时,有多少头母牛?

课题七求正弦值

有公式sin(x)=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!-x^11/11!+...(注:x^n表示x的n次方),从键盘输入x,输出相应正弦值,精确到0.000001.

单元六循环穷举

课题一 排列组合

    有1—4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

课题二 算式推导

下列乘法算式中:每个汉字代表1个数字(0~9)。相同的汉字代表相同的数字,不同的汉字代表不同的数字。

   赛软件 *比赛=软件比拼

试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。参考结果: 465 *14=6510

课题三 最小五位数

找出由1,2,3,4,5五个数字组成的能被7整除的最小五位数.

课题四 比赛名单

    两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

课题五 钞票兑换

要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,要求换成30张小钞票,每种面值的至少一张,编程输出所有可能的换法。

课题六 搬砖问题

    36块砖,36人搬,男搬4,女搬3,两个小孩抬一砖,要求一次搬完,问需要男、女、小孩各多少?

课题七 水仙花数

    打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

单元七循环综合

课题一 打印年历

    任意输入某一年,象挂历一样在屏幕上输出该年十二个月份的年历.

课题二 分解质因数

    将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

课题三 误差计算

    某次测量得到10个测量数据,计算这次测量的平均误差.计算方法是先求出10个测量数据的平均值也就是这次测量的准确值,每个测量数据与准确值的差的绝对值就是这个数据的误差,10个测量数据误差的平均值就是这次测量的平均误差.

课题四 评委打分

    在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。请编写一个计算选手最后得分的程序.

课题五 打印菱形

    打印出以下菱形图案

          *         1

         ***        3

        *****       5

       *******      7

      *********     9

     ***********    11

      *********     9

       *******      7

        *****       5

         ***        3

          *         1

#include <stdio.h>

int main() 
{
	int i, j, k;//i是行数,j是空白,k是*
	for (i = 1; i <= 6; i++) {
		for (j = 1; j <= 6 - i; j++) {
			printf(" ");
		}
		for (k = 1; k <= i * 2 - 1; k++) {
			printf("*");
		}
		printf("\n");		
	}
	for (i = 1; i <= 5; i++) {
		for (j = 1; j <= i; j++) {
			printf(" ");
		}
		for (k = 1; k <= 11 - i*2; k++) {
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

课题六 数制转换

    输入一个十六进制数,输出相应十进制数.

课题七 提取奇位数

    任意输入一个长整数,此数的个位、十位、百位、千位、…分别为第1位、2位、3位、4位、…,将所有奇位数字提取出来合成一个新的数并输出.例如:输入98765432,输出8642.

单元八数组基本应用

课题一 最高分和最低分

输入一个班级某门课程的成绩存入数组,求最高分和最低分.

课题二 统计人数

输入一个班级某门课程的成绩存入数组,统计优、良、中、及、不及的人数.

课题三 分数处理

输入一个班级某门课程的成绩存入数组,将不及格的同学改为及格,其它同学每人加10分后输出全班成绩.

课题四 高于平均分人数

输入一个班级某门课程的成绩存入数组,统计高于平均分的人数.

课题五 对应数组

输入一个班级某门课程的成绩存入数组a,建立另一个字符型数组b,如果数组a中元素分数及格则b数组中对应元素赋值为't',否则赋值为'f',最后将a和b二个数组对应输出.

课题六 字符个数

输入一句英文,统计字母、数字、其它符号的个数.

课题七 变换大写

输入一句英文,将所有字母变成大写后输出.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值