Java基础编程机试题
七道比较基础的java编程题目,附有答案,对于初学者,要先自己思考后,有疑问再看看答案。
第一题(10分)
(1)110元,洗剪吹31元,可以多少次洗剪吹?最后还剩多少?
(2)一次剪头发15元和一次洗头20元,平均每次消费多少钱?
第二题(15分)
打印九九乘法表
第三题(15分)
编写万用表程序
1 电压挡
2 电流挡
3 电阻档
4 其他档位
5 退出
第四题(15分)
编写三个方法,分别得出一个数组的最大值,最小值,平均值。
第五题(15分)
接收用户输入的5门功课并且,计算平均分。
给用户评级60-80良,81-90好,91-100优秀。
第六题(15分)
创建宠物类(属性:名字 ,体重 方法: 奔跑,捕食)在DEMO类实例化宠物,设置名字,调用奔跑,捕食方法
第七题(15分)
创建一个面积类,可以计算长方形,圆形的面积。并在DEMO类测试,计算长方形面积,圆的面积。
答案解析
第一题:
packagecom.xykj.Test1;
public class Test1{
/****
* 第一题(1)110元,洗剪吹31元,可以多少次洗剪吹?最后剩下多少钱?
* (2)一次剪头15元一次洗头20元,平均每次消费多少钱?
* */
public static voidmain(String[] args) {
double AllMoney =110;
double costOne = 31;
int costTimes = (int) (AllMoney / costOne);// 可以洗剪吹的次数
double costAtlast = AllMoney % costOne;// 剩下的钱数
System.out.println("110元,洗剪吹31元,可以" + costTimes + "次洗剪吹,最后剩下"
+ costAtlast + "钱");
double costAvg =(15d + 20d) / 2d;// 平均每次消费钱数
System.out.println("一次剪头15元一次洗头20元,平均每次消费" + costAvg);
}
}
第二题:
packagecom.xykj.Test2;
public class Test2{
/****
* 第二题打印9*9乘法表
* */
public static voidmain(String[] args) {
for (int i = 1; i <=9; i++) {
for (int j = 1; j <=i; j++) {
System.out.print(j + "*" + i + "=" + j * i + "\t");
}
System.out.println();
}
}
}
第三题:
packagecom.xykj.Test3;
import java.util.Scanner;
public class Test3{
/****
* 第三题 编写万用表程序1电压档 2电流档 3电阻档 4其他档位 5退出
* */
public static voidmain(String[] args) {
System.out.println("\t欢迎使用文志万能表\t");
Scanner scanner = newScanner(System.in);
System.out.println("请选择档位:1电压档 2电流档 3电阻档 4其他档位 5退出 ");
String input = scanner.next();// 获取用户输入的选择
// 过滤无效的选择
while (!input.equals("1")&& !input.equals("2") && !input.equals("3")
&& !input.equals("4")&& !input.equals("5")) {
System.out.println("请输入有效的选择:");
input = scanner.next();// 获取用户输入的选择
}
// 判断选择
switch (input) {
case "1":
System.out.println("你选择了电压档");
break;
case "2":
System.out.println("你选择了电流档");
break;
case "3":
System.out.println("你选择了电阻档");
break;
case "4":
System.out.println("你选择了其他档");
break;
case "5":
System.out.println("谢谢您的使用!");
break;
}
scanner.close();
}
}
第四题:
packagecom.xykj.Test4;
public class Test4{
/****
* 第四题 编写三个方法分别求出数组的最大值、最小值、平均值
* */
public static voidmain(String[] args) {
int[] arr = {88, 4, 2, 6, 99, 5 };
// 求最大值的方法,返回数组的最大值
int max = maxNum(arr);
// 求最小值的方法,返回数组的最小值
int min = minNum(arr);
// 求平均值的方法,返回数组的最平均值(double类型)
double avg = avgNum(arr);
System.out.println("最大的数是:" + max);
System.out.println("最小的数是:" + min);
System.out.println("最大的数是:" + avg);
}
// 求最大值的实现方法
private static intmaxNum(int[] arr) {
int maxNum = 0;// 定义一个最大值
for (int i = 0; i < arr.length; i++) {
if (maxNum < arr[i]) {// 遇到比maxNum大的数马上赋值给maxNum,不改变原来的数组
maxNum = arr[i];
}
}
return maxNum;
}
// 求最小值的实现方法
private static intminNum(int[] arr) {
int minNum = arr[0];// 定义一个最小值
for (int i = 0; i < arr.length; i++) {
if (minNum > arr[i]) {// 遇到比minNum小的数马上赋值给minNum,不改变原来的数组
minNum = arr[i];
}
}
return minNum;
}
// 求平均值的实现方法
private static doubleavgNum(int[] arr) {
double sum = 0;// 定义一个数组的总和
double avgNum = 0;// 定义一个平均值值
for (int i = 0; i < arr.length; i++) {
sum += arr[i];// 数组的值累加
}
avgNum = sum / arr.length;
return avgNum;
}
}
第五题:
package com.xykj.Test5;
import java.util.Scanner;
public class Test5{
/****第五题
* (1)接收用户输入的5门功课并计算平均分(2)给用户评级 60-80良 81-90好 91-100优秀
* */
public static voidmain(String[] args) {
Scanner scanner = newScanner(System.in);
double arr[] = new double[5];// 定义一个数组存放成绩
double sum = 0;// 定义分数总和值
double avg = 0;// 定义平均分值
System.out.println("请输入5门功课的成绩");
for (int i = 0; i <5; i++) {
System.out.print("请输入" + (i + 1)+ "第门成绩:");
arr[i] = scanner.nextDouble();
sum += arr[i];// 累加分数
}
avg = sum / arr.length;// 求得平均分值
String rank = avg >=91 ? "优秀" : (avg >=81 ? "好" : (avg >=60) ? "良"
: "");
System.out.println("五门科目的平均分是:" + avg + "\t评级为:" + rank);
scanner.close();
}
}
第六题:(这题有两个java文件)
第一个:封装属性和方法
packagecom.xykj.Test6;
public classTest6_Pet {
/****第六题
* 创建宠物类(属性:名字,体重方法:奔跑,捕食)
* 在Demo类实例化宠物,设置名字,调用奔跑,捕食方法
* */
privateString name = "";// 名字
private double weight = 0;// 体重
// 奔跑的方法:
void run(){
System.out.println("我在奔跑,速度七十迈~~");
}
// 捕食的方法
voidcatchFood() {
System.out.println("我在捕食!");
}
// name 和 weight 的get和set方法
publicString getName() {
return name;
}
public voidsetName(String name) {
this.name = name;
}
public doublegetWeight() {
return weight;
}
public voidsetWeight(double weight) {
this.weight = weight;
}
}
第二个:调用者
packagecom.xykj.Test6;
public classTest6_Demo {
/****第六题
* 创建宠物类(属性:名字,体重方法:奔跑,捕食)
* 在Demo类实例化宠物,设置名字,调用奔跑,捕食方法
* */
public static voidmain(String[] args) {
Test6_Pet pet = newTest6_Pet();
pet.setName("马麒麟");
pet.setWeight(1000);
System.out.println("我的宠物:" + pet.getName()+ ",体重:" + pet.getWeight());
pet.run();// 调用奔跑方法
pet.catchFood();// 调用捕食方法
}
}
第七题:(这题有3个java文件)
第一个:圆形的属性和方法的封装
packagecom.xykj.Test7;
public classTest7_Circle {
/****第七题
* 创建一个面积类,可以计算长方形,圆形的面积
* 并在Demo类测试,计算长方形的面积,圆形的面积
* */
// 圆形面积的计算
private double radius = 0;// 圆的半径
publicTest7_Circle(double radius) {// 通过构造方法,获得半径
this.radius = radius;
}
// 获得圆形面积
doublegetArea() {
return Math.PI * radius * radius;
}
}
第二个:长方形的属性和方法的封装
packagecom.xykj.Test7;
public classTest7_Rectangle {
/****第七题
* 创建一个面积类,可以计算长方形,圆形的面积
* 并在Demo类测试,计算长方形的面积,圆形的面积
* */
//长方形面积的计算
private double height=0;//高
private double weight=0;//宽
public Test7_Rectangle(double height,double weight) {//通过构造方法获得宽和高
this.height=height;
this.weight=weight;
}
//获得长方形的面积
doublegetArea() {
return height*weight;
}
}
第三个:调用者
packagecom.xykj.Test7;
public classTest7_Demo {
/****第七题
* 创建一个面积类,可以计算长方形,圆形的面积
* 并在Demo类测试,计算长方形的面积,圆形的面积
* */
public static voidmain(String[] args) {
Test7_Circle circle = newTest7_Circle(10);// 实例化圆,并传递半径10
System.out.println("圆的面积是:" + circle.getArea());
Test7_Rectangle rectangle = newTest7_Rectangle(10, 10);// 实例化长方形,并传递宽10和高10
System.out.println("长方形的面积是:" + rectangle.getArea());
}
}
这是我个人的做法,大致是没什么问题的了,
第七题的话,可能很多人会有不同的想法,比如有些会建一个面积类,用圆形和长方形这两个类分别去继承它,
又或者会有人把圆形和长方形的属性写在一个类里面,个人想法而已,仅供参考。