转载自:http://javaroad.blog.51cto.com/661972/646073
三十个java练习题:
1】将1 到1000 之间的奇数打印出来。
【2】 判断一个数能否同时被3和5 整除。
【3】 输入10个数,找出最大一个数,并打印出来。
【4】 给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。90 分以上为’A’,80~89 分为’B’,70~79 分为’C’,60~69 分为’D’,60分以下为’E’。
【5】 把一个正整数分解质因数。
【6】打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
package com.JavaJiChuTest30; public class Test6 { public static void main(String[] args) { for (int i = 1; i <=5; i++) { for (int j = 1; j <=i; j++) { System.out.print("*"); } System.out.println(); } for (int i = 1; i <5; i++) { for (int j = 1; j < 5-i; j++) { System.out.print("*"); } System.out.println(); } } }
【7】请编写一个方法实现如下功能:将1至7 的数字转换为星期日到星期六的字符串。
【8】请编写一个方法实现如下功能:有任意三个整数a,b,c,请输出其中最大的
【9】请编写一个方法实现如下功能:将任意三个整数a,b,c按从小到大的顺序输出。
我做的是从大到小,跟从小到大思路差不多。。
package com.JavaJiChuTest30; import java.util.Scanner; public class Test8 { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("请输入第一个数:"); int num1 = in.nextInt(); System.out.println("请输入第二个数:"); int num2 = in.nextInt(); System.out.println("请输入第三个数:"); int num3 = in.nextInt(); if (num1 <num2) { int temp = num1; num1 = num2; num2 = temp; } if (num1<num3) { int temp = num1; num1 = num3; num3 = temp; } if (num2 < num3) { int temp = num3; num3 = num2; num2 = temp; } System.out.println(num1+">"+num2+">"+num3);//第九题的答案 System.out.println("最大的数是:"+num1);//第八题的答案 } }
【10】请编写一个方法实现如下功能:用程序找出每位数的立方和等于该数本身值的所有的3 位数。(水仙花数)
public class ShuiXainHuaNum { public static void main(String[] args) { int i;//定义百位数 int j;//定义十位数 int k;//定义各位数 int num;//根据上面上面百十个位数,生成的三位数 //使用三层循环,生成百位数 for (i = 1; i>=1&&i <=9 ; i++) { for (j = 0; j>=0&&j <=9; j++) { for (k = 0;k>=0&&k<=9; k++) { num=i*100+j*10+k; if (i*i*i+j*j*j+k*k*k==num) {//百十个位数的立方和等于他本身,就输出这个三位数 System.out.println(num); } } } } } }
【11】请编写一个方法实现如下功能:计算1 加到n ( n>=2的整数)的总和。
【12】请编写一个方法实现如下功能:得到一个整数的绝对值。
【13】定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”
【14】生成一百个随机数,放到数组中,然后排序输出。
【15】统计字符串中英文字母、空格、数字和其它字符的个数。
【16】写一个方法,功能:定义一个一维的int 数组,长度为3,把任意三个整数a,b,c赋值给数组,然后将它们按从小到大的顺序输出(使用冒泡排序)
【17】有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 (不使用数学公式,要求用递归)
【18】两个乒乓球队进行比赛,各出三人。甲队为a,b,c 三人,乙队为x,y,z 三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a 说他不和x 比,c 说他不和x,z 比,请编程序找出三队赛手的名单。
【19】编写一个截取字符串的方法,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6, 应该输出为"我ABC"而不是"我ABC+汉的半个"。
【20】企业发放的奖金根据利润提成。利润低于或等于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%提成,请编写程序,输入当月利润,求应发放奖金总数?
【21】老伯伯要带鱼、狗、猫过河到对岸.,有一条船,只能坐一个人,老伯每次只能带一样动物过河,当老伯不在的时侯狗会咬猫,猫会吃鱼.,请问怎么顺序过河呢?要求:编写程序,由程序来推出过河的顺序
【22】参加会议:有人邀请A,B,C,D,E,F6个人参加一项会议,这6个人有些奇怪,因为他们有很多要求,已知:
(1).A,B两人至少有1人参加会议。
(2).A,E,F3人中有2人参加会议。
(3).B和C两人一致决定,要么两人都去,要么两人都不去。
(4).A,D两人中只1人参加会议。
(5).C,D两人中也只要1人参加会议。
(6).如果D不去,那么E也决定不去。
那么最后究竟有哪几个人参加了会议呢?
【23】有一位厨师要从盛12斤油(a桶)的桶中倒出6斤油来,可是手边只有盛8斤油(b桶)和盛5斤油(c桶)的两个桶,问如何操作才能将6斤取出来呢?
【24】写一个方法实现:把一个十进制的数转换成为16进制的数。
【25】有一根27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂蚁。木杆很细,不能同时通过一只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以走一厘米的距离。编写程序,求所有蚂蚁都离开木杆的最小时间和最大时间。
【26】一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
【27】输入某年某月某日,判断这一天是这一年的第几天?
【28】一个数如果恰好等于它的所有可能因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数
【29】程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
【30】用程序求解:
请回答下面10个问题:
1、第一个答案是b的问题是哪一个?
(a)2;(b) 3;(c)4;(d)5;(e)6
2、唯一的连续两个具有相同答案的问题是:
(a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7;
3、本问题答案和哪一个问题的答案相同?
(a)1;(b)2;(c)4;(d)7;(e)6
4、答案是a的问题的个数是:
(a)0;(b)1;(c)2;(d)3;(e)4
5、本问题答案和哪一个问题的答案相同?
(a)10;(b)9;(c)8;(d)7;(e)6
6、答案是a的问题的个数和答案是什么的问题的个数相同?
(a)b;(b)c;(c)d;(d)e;(e)以上都不是
7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母?
(a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母)
8、答案是元音字母的问题的个数是:
(a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母)
9、答案是辅音字母的问题的个数是:
(a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数
10、本问题的答案是:
(a)a;(b)b;(c)c;(d)d;(e)e。