Java基础
一、奇偶分家
给定N个正整数,请统计奇数和偶数各有多少个?
输入格式:
输入第一行给出一个正整N(≤);第2行给出N个非负整数,以空格分隔。
输出格式:
在一行中先后输出奇数的个数、偶数的个数。中间以1个空格分隔。
输入样例:
9 88 74 101 26 15 0 34 22 77
输出样例:
3 6
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args){ 4 Scanner sc=new Scanner(System.in); 5 int a=sc.nextInt(); 6 int oshu=0; 7 int jishu=0; 8 for(int i=1;i<=a;i++) 9 { 10 int s=sc.nextInt(); 11 if(s%2==0) 12 oshu++; 13 else 14 jishu++; 15 16 } 17 System.out.print(jishu+" "+oshu); 18 sc.close(); 19 } 20 }
二、 装睡
你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们中间有可能在装睡的人,即至少一项指标不在正常范围内的人。
输入格式:
输入在第一行给出一个正整数N(≤)。随后N行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。
输出格式:
按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行。
输入样例:
4 Amy 15 70 Tom 14 60 Joe 18 50 Zoe 21 71
输出样例:
Tom
Zoe
1 import java.util.Scanner; 2 public class Main { 3 4 public static void main(String[] args) { 5 // TODO Auto-generated method stub 6 Scanner sc=new Scanner(System.in); 7 int a=sc.nextInt(); 8 for(int i=0;i<a;i++) 9 { 10 String s=sc.next(); 11 12 int pinlv=sc.nextInt(); 13 int maibo=sc.nextInt(); 14 if(pinlv<15||pinlv>20||maibo<50||maibo>70) 15 { 16 System.out.println(s); 17 18 } 19 } 20 21 sc.close(); 22 23 24 25 } 26 27 }
三、查询水果价格
给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上显示以下菜单:
[1] apple [2] pear [3] orange [4] grape [0] exit
用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。
输入格式:
输入在一行中给出用户连续输入的若干个编号。
输出格式:
首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。
输入样例1:
3 -1 0 2
输入样例2:
1 2 3 3 4 4 5 6 7 8
输出样例2:
[1] apple [2] pear [3] orange [4] grape [0] exit price = 3.00 price = 2.50 price = 4.10 price = 4.10 price = 10.20
1 import java.util.Scanner; 2 public class Main { 3 4 public static void main(String[] args) { 5 // TODO Auto-generated method stub 6 Scanner sc=new Scanner(System.in); 7 System.out.println("[1] apple"); 8 System.out.println("[2] pear"); 9 System.out.println("[3] orange"); 10 System.out.println("[4] grape"); 11 System.out.println("[0] exit"); 12 int i=0; 13 for(i=0;i<5;i++) 14 { 15 int s=sc.nextInt(); 16 switch(s) 17 { 18 case 0: 19 return; 20 case 1: 21 System.out.println("price = 3.00");break; 22 case 2: 23 System.out.println("price = 2.50");break; 24 case 3: 25 System.out.println("price = 4.10");break; 26 case 4: 27 System.out.println("price = 10.20");break; 28 29 30 default: 31 System.out.println("price = 0.00");break; 32 } 33 34 } 35 36 sc.close(); 37 } 38 39 }
四、 统计学生平均成绩与及格人数
本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
输入格式:
输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。
输出格式:
按照以下格式输出:
average = 成绩均值
count = 及格人数
其中平均值精确到小数点后一位。
输入样例:
5 77 54 92 73 60
输出样例:
average = 71.2
count = 4
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String args[]){ 4 Scanner sc = new Scanner(System.in); 5 int t=sc.nextInt(); 6 if(t==0) 7 { 8 9 System.out.println("average = 0.0"); 10 11 System.out.println("count = 0"); 12 } 13 else{ 14 int count=0; 15 int s=0; 16 for(int i=0;i<t;i++) 17 { 18 int a=sc.nextInt(); 19 s=s+a; 20 if(a>=60) 21 count++; 22 23 } 24 double average=s*1.0/t; 25 System.out.println("average = "+String.format("%.lf",average)); 26 System.out.println("count = "+count); 27 } 28 } 29 }
五、作品评分
全国中小学生Scratch作品大赛拉开了序幕。每个参赛选手可以通过网络直接上传作品。本次比赛人人可做评委。每个网络评委可以通过网络对每一件作品进行打分。评分系统也是请程序高手设计的,能自动去掉一个最高分和一个最低分,求出平均分。
输入格式:
输入数据包括两行: 第一行为n,表示n个评委,n>2。 第二行是n个评委的打分,分数之间有一个空格。打分是可以带有小数部分的。
输出格式:
输出平均分,结果保留两位小数。
输入样例:
6 10 9 8 7.9 9 9.5
输出样例:
8.88
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner sc=new Scanner(System.in); 5 int a=sc.nextInt(); 6 double s=0; 7 double max=10; 8 double min=0; 9 for(int i=1;i<=a;i++) 10 { 11 double b=sc.nextDouble(); 12 13 if(b<max) 14 max=b; 15 if(b>min) 16 min=b; 17 s=s+b; 18 } 19 double residue=(s-max-min)/(a-2); 20 21 System.out.printf("%.2f",residue); 22 sc.close(); 23 24 25 } 26 27 28 }
六、逆序输出一个整数的各位数字
本题要求编写程序,对输入的一个非负整数,从低位开始逐位分割并输出它的各位数字。
输入格式:
输入在一行中给出一个长整型范围内的非负整数。
输出格式:
从低位开始逐位输出该整数的各位数字,每个数字后面有一个空格。
输入样例:
1234560
输出样例:
0 6 5 4 3 2 1
1 import java.util.Scanner; 2 3 public class Main { 4 public static void main (String args[]) 5 { 6 Scanner sc=new Scanner(System.in); 7 long a=sc.nextLong(); 8 long c=0; 9 do 10 { 11 c=a%10; 12 System.out.print(c+" "); 13 a=a/10; 14 15 }while(a>0); 16 System.out.println(); 17 18 sc.close(); 19 } 20 }
七、打印九九口诀表
下面是一个完整的下三角九九口诀表:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
本题要求对任意给定的一位正整数N,输出从1*1到N*N的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
输出样例:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16
1 import java.util.Scanner; 2 public class Main{ 3 public static void main(String[] args){ 4 Scanner sc=new Scanner(System.in); 5 int a=sc.nextInt(); 6 for(int i=1;i<=a;i++) 7 { 8 for(int b=1;b<=i;b++) 9 { 10 System.out.print(b+"*"+i+"="+String.format("%-4d",i*b)); 11 } 12 System.out.println(); 13 } 14 15 16 sc.close(); 17 18 } 19 20 21 22 23 }
八、跟奥巴马一起画方块
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3)和组成正方形边的某种字符C,间隔一个空格。
输出格式:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
1 import java.util.Scanner; 2 3 public class Main{ 4 public static void main (String args[]){ 5 Scanner sc=new Scanner(System.in); 6 int l=sc.nextInt(); 7 int s=(l+1)/2; 8 char c=sc.next().charAt(0); 9 for(int i=0;i<s;i++) 10 { 11 for(int a=0;a<l;a++) 12 { 13 System.out.print(c); 14 15 16 } 17 System.out.println(); 18 19 } 20 21 sc.close(); 22 } 23 24 25 26 }

浙公网安备 33010602011771号