一 、某电信公司的市内通话费计算标准如下:三分钟内0.2元,三分钟后每增加一分钟增加0.1元,不足一分钟的按一分钟计算。要求编写程序,给定一个通话时间(单位:秒),计算出应收费金额。
import java.util.Scanner;
public class TwOnly {
public static void main(String [] args) {
Scanner sc=new Scanner(System.in);
boolean flag=true;
System.out.println("请输入一个通话时间");
double time=sc.nextInt();
if(time==0) {
System.out.println("输入的时间有误");
}else if(time>0.0&&time<=180.0) {
System.out.println("收费金额为:0.2元");
}else{
double otherTime=time-180.0;
System.out.println(otherTime);
double otherMoney =(Math.ceil(otherTime/60))*0.1;//用到了Math.ceil向上取整函数但是使用完该函数是double类型的数据
System.out.println(otherMoney);
double allMoney=0.2+otherMoney;
System.out.println("收费金额为:"+allMoney);
}
}
}
二、某市的出租车计费标准为:3公里以内10元,3公里以后每加0.5公里加收1元;每等待2.5分钟加收元;超过15公里的加收原价的50%为空驶费。要求编写程序,对于任意给定的里程数(单位:公里)和等待时间(单位:秒)计算出应付车费,车费直接截去小数位,只取整数。
import java.util.Scanner;
public class Fare {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入里程数");
int kilometers=sc.nextInt();
System.out.println("请输入等待时间");
int time=sc.nextInt();
if(kilometers==0) {
System.out.println("输入的公里数有误");
}else if(kilometers<=3) {
int money=(time/150)*1;
int totalMoney=10+money;
System.out.println("车费为:"+totalMoney);
}else if(3<kilometers&&kilometers<=15) {
int otherKilometersmoney=(int)((kilometers-3)/0.5)*1;
int money=(time/150)*1;
int totalMoney=otherKilometersmoney+10+money;
System.out.println("车费为:"+totalMoney);
}else if(kilometers>15) {
int otherKilometersmoney=(int)((kilometers-3)/0.5)*1;
int money=(time/150)*1;
int totalMoney=otherKilometersmoney+10+money;
int otherMoney=(int) (totalMoney*0.5);
System.out.println(otherMoney);
int allMoney=otherMoney+otherKilometersmoney+money+10;
System.out.println("车费为:"+allMoney);
}
}
}
三、编写程序,判断给定的某个年份是否是闰年。闰年的判断规则如下:(1)若某个年份能被4整除但不能被100整除,则是闰年。(2)若某个年份能被400整除,则也是闰年。
import java.util.Scanner;
public class Judge {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份");
int year=sc.nextInt();
if(year%4==0&&year%100!=0||year%400==0) {
System.out.println("输入的年份为闰年");
}
}
}
四、给定一个百分制的分数,输出相应的等级。90分以上A级80~89 B级70~79 C级60~69 D级60分以下E级
import java.util.Scanner;
public class Q1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入分数");
int score=sc.nextInt();
if(score>90) {
System.out.println("等级为A级");
}else if(score>=80&&score<90) {
System.out.println("等级为B级");
}else if(score>=70&&score<79) {
System.out.println("等级为C级");
}else if(score>=60&&score<69) {
System.out.println("等级为D级");
}else if(score<60) {
System.out.println("等级为E级");
}
}
}
五、编写程序求1+3+5+7+......+99的和值。
public class Sum {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=100;i++){
if(i%2!=0) {
sum=sum+i;
}
}
System.out.println(sum);
}
}
六、编写程序输出1-100之间所有能被7整除的偶数。
public class our {
public static void main(String[] args) {
for(int i=1;i<=100;i++) {
if(i%7==0&&i%2==0) {
System.out.println(i);
}
}
}
}
七、请编写程序输出九九乘法表。
public class TimesTable {
public static void main(String[] args) {
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
八、给定一个整数,把它的各位数字倒排过来形成一个新的整数例如:给定12345输出54321; 给定 9870 输出 789
import java.util.Scanner;
public class Fan {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一串数字");
int number=sc.nextInt();
while(number!=0) {
int b=number%10;
if(b!=0) {
System.out.print(b);
}
number=number/10;
}
}
}
数组练习题
一、定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
public class Array {
public static void main(String[] args) {
int [] array=new int [] {9,5,6,8,2,3,6,4,45,20};
int max=array[0];
int min=array[0];
int total=array[0];
int avary = 0;
for(int i=0;i<array.length;i++) {
if(max<array[i]) {
max=array[i];
}
if(min>array[i]){
min=array[i];
}
}
for(int i=1;i<array.length;i++) {
total=array[i]+total;
avary=total/array.length;
}
System.out.println("数组中的最大值"+max);
System.out.println("数组中的最小值"+min);
System.out.println("数组中元素的和"+total);
System.out.println("数组中元素的平均值"+avary);
}
}
二、定义一个int型的一维数组,包含10个元素,分别赋值为1~10,然后将数组中的元素都向前移一个位置,即,a[0]=a[1],a[1]=a[2],...最后一个元素的值是原来第一个元素的值,然后输出这个数组。
import java.util.Arrays;
public class Move {
public static void main(String[] args) {
int array[]=new int [] {1,2,3,4,5,6,7,8,9,10};
int m=array[0];
for(int i=0;i<array.length-1;i++) {
array[i]=array[i+1];
}
array[array.length-1]=m;
System.out.println(Arrays.toString(array));
}
}
三、定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数,将它们存储到一维数组中,然后统计成绩低于平均分的学员的人数,并输出出来。
import java.util.Arrays;
public class Score {
public static void main(String[] args) {
int total=0;
int flag=0;
int [] array=new int [40];
for(int i=0;i<array.length;i++) {
array[i]=(int) (Math.random()*100);
total=total+array[i];
}
System.out.println(Arrays.toString(array));
int average=total/array.length;
System.out.println(average);
for(int i=0;i<array.length;i++) {
if(array[i]<average) {
flag=flag+1;
}
}
System.out.println("成绩低于平均成绩的学生人数:"+flag);
}
}
四、承上题,将这40个成绩按照从高到低的顺序输出出来。(运用冒泡排序解决问题)
import java.util.Arrays;
public class Score {
public static void main(String[] args) {
int total=0;
int flag=0;
int [] array=new int [40];
for(int i=0;i<array.length;i++) {
array[i]=(int) (Math.random()*100);
total=total+array[i];
}
for(int i=0;i<array.length-1;i++) {
for(int j=0;j<array.length-1-i;j++) {
if(array[j]<array[j+1]) {
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
System.out.println(Arrays.toString(array)) ;
}
}
五、编写程序,将一个数组中的元素倒排过来。例如原数组为1,2,3,4,5;则倒排后数组中的5,4,3,2,1。
import java.util.Arrays;
public class Score {
public static void main(String[] args) {
int total=0;
int flag=0;
int [] array=new int [40];
for(int i=0;i<array.length;i++) {
array[i]=(int) (Math.random()*100);
total=total+array[i];
}
System.out.println(Arrays.toString(array)) ;
for(int j=0;j<(array.length)/2;j++) {
int temp=array[j];
array[j]=array[array.length-1-j];
array[array.length-1-j]=temp;
}
System.out.println(Arrays.toString(array));
}
}
方法练习题
1、写一个方法,求1+3+5+7...的前n项的和,n通过方法参数给定,和值通过方法返回值返回。
import java.util.Scanner;
public class new1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入n的值:");
int n=sc.nextInt();
System.out.println("和的值为:"+sum(n));
}
public static int sum(int n) {
int total=0;
int count=(n+1)/2;
for(int i=0;i<count;i++) {
total=2*i+1+total;
}
return total;
}
}
2、写一个方法判断给定的年份是否是闰年。
import java.util.Scanner;
public class new2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
System.out.println("请输入年份");
int year=sc.nextInt();
panDuan(year);
}
public static void panDuan(int year) {
if(year%4==0&&year%100!=0||year%400==0) {
System.out.println("年份为闰年");
}else {
System.out.println("年份不是闰年");
}
}
}
3、写一个方法,用来求一个整形数组中的最大元素,方法需要一个int[]类型的参数,返回一个整形值。
public class new3 {
public static void main(String[] args) {
int [] array=new int [] {1,5,6,7,2,100,4,9,8};
System.out.println(Max(array));
}
public static int Max(int [] a ) {
int max=a[0];
for(int i=1;i<a.length;i++) {
if(a[i]>max) {
max=a[i];
}
}
return max;
}
}
4、写一个方法用来判断一个整数是否是素数,如果是则返回true,否则返回false,在主方法中调用这个方法,验证其是否正确。
import java.util.Scanner;
public class new4 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入数字");
int number=sc.nextInt();
suShu(number);
}
public static void suShu(int a) {
boolean flag;
int i=0;
int j=0;
flag=true;
for(j=2;j<=a/2;j++){
if(a%j==0){
flag=false;
break;
}
}
if(j>a/2){
System.out.println("是素数");
}else{
System.out.println("不是素数");
}
}
}
5、写一个方法用来生成一个整形数组,该方法返回一个int[]类型,需要一个int型参数,数组的大小由传进来的参数决定
import java.util.Arrays;
import java.util.Scanner;
public class new5 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入需要生成的数组大小");
int number=sc.nextInt();
array(number);
}
public static int [] array(int n) {
int [] a=new int[n];
for(int i=0;i <a.length;i++) {
a[i]=(int)(Math.random()*10)+1;
}
System.out.println(Arrays.toString(a));
return a;
}
}