Java程序设计 习题答案 严海明_第1页
Java程序设计 习题答案 严海明_第2页
Java程序设计 习题答案 严海明_第3页
Java程序设计 习题答案 严海明_第4页
Java程序设计 习题答案 严海明_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计-参考答案项目一选择题12345CADABABCAC判断题12345TTTFF编程题参考答案:publicclassTest1{

publicstaticvoidmain(String[]args){

System.out.println("学号236550106姓名张三");

}

}参考答案:publicclassTest2{

publicstaticvoidmain(String[]args){

intn=100;

//根据等差数列求和公式S=n*(a1+an)/2计算总和

intsum=n*(1+100)/2;

System.out.println("1到100的总和是:"+sum);

}

}参考答案:publicclassTest3{

publicstaticvoidmain(String[]args){

System.out.println("*");

System.out.println("***");

System.out.println("*******");

}

}项目二选择题12345678BDCDBDBB9101112ADAA编程题参考答案:importjava.util.Scanner;publicclassTest1{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);//提示用户输入第一个数字System.out.print("请输入第一个数字:");doublenum1=scanner.nextDouble();//提示用户输入第二个数字System.out.print("请输入第二个数字:");doublenum2=scanner.nextDouble();//提示用户选择运算操作System.out.println("请选择要执行的运算:");System.out.println("1.加法");System.out.println("2.减法");System.out.println("3.乘法");System.out.println("4.除法");intchoice=scanner.nextInt();doubleresult=0;switch(choice){case1:result=num1+num2;System.out.println(num1+"+"+num2+"="+result);break;case2:result=num1-num2;System.out.println(num1+"-"+num2+"="+result);break;case3:result=num1*num2;System.out.println(num1+"*"+num2+"="+result);break;case4:if(num2!=0){result=num1/num2;System.out.println(num1+"/"+num2+"="+result);}else{System.out.println("错误:除数不能为零。");}break;default:System.out.println("无效的选择,请输入1-4之间的数字。");}scanner.close();}}参考答案:publicclassTest2{publicstaticvoidmain(String[]args){//创建Scanner对象,用于从控制台读取用户输入Scannerscanner=newScanner(System.in);//提示用户输入第一个数字System.out.print("请输入第一个数字:");doublenum1=scanner.nextDouble();//提示用户输入第二个数字System.out.print("请输入第二个数字:");doublenum2=scanner.nextDouble();//提示用户输入第三个数字System.out.print("请输入第三个数字:");doublenum3=scanner.nextDouble();//使用条件运算符找出最大的数字doublemax=(num1>=num2)?((num1>=num3)?num1:num3):((num2>=num3)?num2:num3);//输出最大的数字System.out.println("这三个数字中最大的是:"+max);//关闭Scanner对象,释放资源scanner.close();}}参考答案:importjava.util.Scanner;

publicclassTest3{

publicstaticvoidmain(String[]args){

//创建Scanner对象用于读取用户输入

Scannerscanner=newScanner(System.in);

//提示用户输入摄氏温度

System.out.print("请输入摄氏温度:");

//读取用户输入的摄氏温度

doublecelsius=scanner.nextDouble();

//根据公式计算华氏温度

doublefahrenheit=celsius*1.8+32;

//输出对应的华氏温度

System.out.println(celsius+"摄氏度对应的华氏温度是:"+fahrenheit+"华氏度");

//关闭Scanner对象,释放资源

scanner.close();

}

}参考答案:publicclassTest4{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

//提示用户输入书籍名称

System.out.print("请输入书籍名称:");

StringbookName=scanner.nextLine();

//提示用户输入库存数量

System.out.print("请输入该书籍的库存数量:");

intstockQuantity=scanner.nextInt();

//提示用户输入请求的数量

System.out.print("请输入用户请求的该书籍数量:");

intrequestedQuantity=scanner.nextInt();

//判断库存是否足够

if(stockQuantity>=requestedQuantity){

System.out.println("库存足够,可以发货");

}elseif(stockQuantity>0){

System.out.println("库存不足,无法完全满足需求");

}else{

System.out.println("库存已空,无法发货");

}

scanner.close();

}

}项目三选择题12345ACCBD判断题123456FFTFTT判断题参考答案:publicclassTest1{

publicstaticvoidmain(String[]args){

//创建Scanner对象以读取用户输入

Scannerscanner=newScanner(System.in);

//提示用户输入一个整数

System.out.print("请输入一个整数:");

//读取用户输入的整数

intnumber=scanner.nextInt();

//判断输入的整数是负数、0还是正数

if(number<0){

System.out.println("这个数是负数。");

}elseif(number==0){

System.out.println("这个数是0。");

}else{

System.out.println("这个数是正数。");

}

//关闭Scanner对象,释放资源

scanner.close();

}

}参考答案:importjava.util.Scanner;

publicclassTest2{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

//提示用户输入年、月、日

System.out.print("请输入年份:");

intyear=scanner.nextInt();

System.out.print("请输入月份:");

intmonth=scanner.nextInt();

System.out.print("请输入日期:");

intday=scanner.nextInt();

//判断是否为元旦

if(month==1&&day==1){

System.out.println(year+"年"+month+"月"+day+"日是元旦。");

}

//判断是否为劳动节

elseif(month==5&&day==1){

System.out.println(year+"年"+month+"月"+day+"日是劳动节。");

}

//判断是否为建军节

elseif(month==8&&day==1){

System.out.println(year+"年"+month+"月"+day+"日是建军节。");

}

//判断是否为国庆节

elseif(month==10&&day==1){

System.out.println(year+"年"+month+"月"+day+"日是国庆节。");

}else{

System.out.println(year+"年"+month+"月"+day+"日不是指定的节日。");

}

scanner.close();

}

}请输入员工姓名请输入员工姓名溪溪请输入员工的时薪(元/小时)100请输入员工上一周的工作小时数:45工资单员工姓名:溪溪时薪:100.0元/小时工作小时数:45.0小时正常工资:4000.0元加班工资:750.0元总工资:4750.0元参考答案:importjava.util.Scanner;

publicclassPaycheck{

privateStringname;

privatedoublehourlyRate;

privatedoublehoursWorded;

privatedoubletotalPay;

publicPaycheck(){

//构造函数初始化对象

}

publicvoidsetName(Stringname){

=name;

}

publicvoidsetHourlyRate(doublehourlyRate){

this.hourlyRate=hourlyRate;

}

publicvoidsetHoursWorded(doublehoursWorded){

this.hoursWorded=hoursWorded;

}

publicdoublecalculatePay(){

doublenormalPay=0;

if(hoursWorded<=40){

normalPay=hourlyRate*hoursWorded;

}

else{

normalPay=hourlyRate*40;

}

doubleoverWorkedHour=0;

if(hoursWorded>40){

overWorkedHour=hoursWorded-40;

}

doubleovertimePay=hourlyRate*1.5*overWorkedHour;

totalPay=normalPay+overtimePay;

returntotalPay;

}

publicvoidprintPayCheck(){

System.out.println("工资单");

System.out.println("员工姓名:"+name);

System.out.println("时薪:"+hourlyRate+"元/小时");

System.out.println("工作小时数:"+hoursWorded+"小时");

System.out.println("正常工资:"+hourlyRate*Math.min(hoursWorded,40)+"元");

System.out.println("加班工资:"+hourlyRate*1.5*Math.max(hoursWorded-40,0)+"元");

calculatePay();

System.out.println("总工资:"+totalPay+"元");

}

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

Paycheckpay1=newPaycheck();

System.out.println("请输入员工姓名");

Stringname=sc.nextLine();

pay1.setName(name);

System.out.println("请输入员工的时薪(元/小时)");

doublehourlyRate=sc.nextDouble();

pay1.setHourlyRate(hourlyRate);

System.out.println("请输入员工上一周的工作小时数:");

doublehoursWorded=sc.nextDouble();

pay1.setHoursWorded(hoursWorded);

pay1.printPayCheck();

sc.close();

}

}参考答案:importjava.util.Scanner;

publicclassTest4{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

//提示用户输入初始投资金额

System.out.print("请输入初始投资金额(元):");

doubleinitialInvestment=scanner.nextDouble();

//提示用户输入年化利率(以百分比形式输入,如5表示5%)

System.out.print("请输入年化利率(%):");

doubleannualInterestRate=scanner.nextDouble();

//将年化利率转换为小数形式

annualInterestRate=annualInterestRate/100;

doublecurrentAmount=initialInvestment;

intyears=0;

//当当前金额小于100万元时,继续计算

while(currentAmount<1000000){

//计算每年的利息并累加到当前金额上

currentAmount+=currentAmount*annualInterestRate;

years++;

}

//输出结果

System.out.println("初始投资金额为"+initialInvestment+"元,年化利率为"+(annualInterestRate*100)+"%,需要"+years+"年达到100万元。");

scanner.close();

}

}参考答案:importjava.util.ArrayList;

importjava.util.HashSet;

importjava.util.List;

importjava.util.Scanner;

importjava.util.Set;

publicclassTest5{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

System.out.println("请输入整数序列,以空格分隔,输入非数字结束输入:");

List<Integer>numbers=newArrayList<>();

while(scanner.hasNextInt()){

numbers.add(scanner.nextInt());

}

if(numbers.isEmpty()){

System.out.println("未输入有效整数。");

scanner.close();

return;

}

//(1)计算最小值和最大值

intmin=Integer.MAX_VALUE;

intmax=Integer.MIN_VALUE;

for(intnum:numbers){

if(num<min){

min=num;

}

if(num>max){

max=num;

}

}

System.out.println("最小值:"+min+",最大值:"+max);

//(2)统计偶数和奇数的个数

intevenCount=0;

intoddCount=0;

for(intnum:numbers){

if(num%2==0){

evenCount++;

}else{

oddCount++;

}

}

System.out.println("偶数个数:"+evenCount+",奇数个数:"+oddCount);

//(3)计算累计求和

List<Integer>cumulativeSums=newArrayList<>();

intsum=0;

for(intnum:numbers){

sum+=num;

cumulativeSums.add(sum);

}

System.out.print("累计求和:");

for(inti=0;i<cumulativeSums.size();i++){

if(i>0){

System.out.print("");

}

System.out.print(cumulativeSums.get(i));

}

System.out.println();

//(4)找出所有相邻的重复值

Set<Integer>repeatedValues=newHashSet<>();

for(inti=1;i<numbers.size();i++){

if(numbers.get(i).equals(numbers.get(i-1))){

repeatedValues.add(numbers.get(i));

}

}

System.out.print("相邻的重复值:");

booleanfirst=true;

for(intvalue:repeatedValues){

if(!first){

System.out.print("");

}

System.out.print(value);

first=false;

}

System.out.println();

scanner.close();

}

}参考答案:importjava.util.ArrayList;

importjava.util.List;

importjava.util.Scanner;

publicclassTest6{

publicstaticvoidmain(String[]args){

//创建Scanner对象以从控制台读取输入

Scannerscanner=newScanner(System.in);

System.out.print("请输入一个字符串:");

//读取用户输入的字符串

Stringinput=scanner.nextLine();

//(1)打印字符串中的大写字母

System.out.print("字符串中的大写字母:");

for(inti=0;i<input.length();i++){

charc=input.charAt(i);

if(Character.isUpperCase(c)){

System.out.print(c);

}

}

System.out.println();

//(2)打印字符串中每隔一个字母

System.out.print("字符串中每隔一个字母:");

for(inti=0;i<input.length();i+=2){

System.out.print(input.charAt(i));

}

System.out.println();

//(3)将字符串中的所有元音字符替换为一个下划线

Stringvowels="aeiouAEIOU";

StringBuilderresult=newStringBuilder();

for(inti=0;i<input.length();i++){

charc=input.charAt(i);

if(vowels.indexOf(c)!=-1){

result.append('_');

}else{

result.append(c);

}

}

System.out.println("替换元音后的字符串:"+result.toString());

//(4)统计字符串中元音的个数

intvowelCount=0;

for(inti=0;i<input.length();i++){

charc=input.charAt(i);

if(vowels.indexOf(c)!=-1){

vowelCount++;

}

}

System.out.println("字符串中元音的个数:"+vowelCount);

//(5)找出字符串中所有元音的位置

List<Integer>vowelPositions=newArrayList<>();

for(inti=0;i<input.length();i++){

charc=input.charAt(i);

if(vowels.indexOf(c)!=-1){

vowelPositions.add(i);

}

}

System.out.print("字符串中所有元音的位置:");

for(intpos:vowelPositions){

System.out.print(pos+"");

}

System.out.println();

//关闭Scanner对象

scanner.close();

}

}参考答案:importjava.util.ArrayList;

importjava.util.Collections;

importjava.util.Comparator;

importjava.util.List;

importjava.util.Scanner;

publicclassTest7{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

System.out.print("请输入一个单词:");

Stringword=scanner.nextLine();

scanner.close();

//存储所有子串的列表

List<String>substrings=newArrayList<>();

//生成所有子串

for(inti=0;i<word.length();i++){

for(intj=i+1;j<=word.length();j++){

substrings.add(word.substring(i,j));

}

}

//按子串长度排序

Collections.sort(substrings,CparingInt(String::length));

//打印排序后的子串

for(Stringsubstring:substrings){

System.out.println(substring);

}

}

}参考答案:importjava.util.Scanner;

publicclassTest8{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

System.out.print("请输入一个整数n:");

intn=scanner.nextInt();

scanner.close();

intresult=fibonacci(n);

System.out.println("第"+n+"个斐波那契数是:"+result);

}

publicstaticintfibonacci(intn){

if(n==0){

return0;

}

if(n==1){

return1;

}

inta=0,b=1,c=0;

for(inti=2;i<=n;i++){

c=a+b;

a=b;

b=c;

}

returnc;

}

}项目四选择题12345678DDCBB判断题123456FFTTFT编程题参考答案:importjava.util.ArrayList;

importjava.util.Collections;

importjava.util.List;

importjava.util.Scanner;

publicclassTest1{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

List<Double>numbers=newArrayList<>();

System.out.println("请输入数据,输入Q结束输入:");

while(true){

Stringinput=scanner.nextLine();

if("Q".equalsIgnoreCase(input)){

break;

}

try{

doublenumber=Double.parseDouble(input);

numbers.add(number);

}catch(NumberFormatExceptione){

System.out.println("输入无效,请输入有效的数字或Q结束输入。");

}

}

if(numbers.size()<=2){

System.out.println("输入的数据数量过少,无法去掉最大值和最小值计算平均值。");

}else{

doublesum=0;

//对列表进行排序

Collections.sort(numbers);

//去掉最大值和最小值

for(inti=1;i<numbers.size()-1;i++){

sum+=numbers.get(i);

}

doubleaverage=sum/(numbers.size()-2);

System.out.println("去掉一个最大值和一个最小值后的平均值是:"+average);

}

scanner.close();

}

}

}参考答案:importjava.util.Random;

publicclassTest2{

publicstaticvoidmain(String[]args){

//创建一个长度为10的数组

int[]array=newint[10];

//创建Random对象用于生成随机数

Randomrandom=newRandom();

//使用随机数初始化数组

for(inti=0;i<array.length;i++){

array[i]=random.nextInt();

}

//第一行:输出下标为偶数的所有元素

System.out.print("下标为偶数的元素:");

for(inti=0;i<array.length;i+=2){

System.out.print(array[i]+"");

}

System.out.println();

//第二行:输出数组中的所有偶数

System.out.print("数组中的偶数:");

for(intnum:array){

if(num%2==0){

System.out.print(num+"");

}

}

System.out.println();

//第三行:逆序输出所有元素

System.out.print("逆序输出的元素:");

for(inti=array.length-1;i>=0;i--){

System.out.print(array[i]+"");

}

System.out.println();

//第四行:只输出第一个元素和最后一个元素

System.out.println("第一个元素和最后一个元素:"+array[0]+""+array[array.length-1]);

}

}参考答案:publicclassTest1{

publicstaticvoidmain(String[]args){

System.out.println("学号236550106姓名张三");

}

}参考答案:publicclassTest1{

publicstaticvoidmain(String[]args){

System.out.println("学号236550106姓名张三");

}

}参考答案:publicclassTest1{

publicstaticvoidmain(String[]args){

System.out.println("学号236550106姓名张三");

}

}项目五选择题12345CCADB判断题12345FTTFF编程题参考答案://矩形类publicclassRectangle{//1.私有成员属性:长度、宽度privatedoublelength;privatedoublewidth;//无参构造方法publicRectangle(){}//有参构造方法,初始化长和宽publicRectangle(doublelength,doublewidth){this.length=length;this.width=width;}//2.Getter&Setter访问、修改属性publicdoublegetLength(){returnlength;}publicvoidsetLength(doublelength){this.length=length;}publicdoublegetWidth(){returnwidth;}publicvoidsetWidth(doublewidth){this.width=width;}//3.计算面积方法publicdoublegetArea(){returnlength*width;}//4.计算周长方法publicdoublegetPerimeter(){return2*(length+width);}}参考答案:publicclassBankAccount{//私有属性privateStringaccountName;//账户名privateStringaccountId;//账号privatedoublebalance;//余额//构造方法:创建账户时初始化姓名、账号、初始余额publicBankAccount(StringaccountName,StringaccountId,doublebalance){this.accountName=accountName;this.accountId=accountId;//初始余额不能为负数if(balance>0){this.balance=balance;}else{this.balance=0;System.out.println("初始余额不能为负,已自动置为0");}}//存款方法publicvoiddeposit(doublemoney){if(money<=0){System.out.println("存款金额必须大于0,存款失败");return;}balance+=money;System.out.println("存款成功!本次存入:"+money+",当前余额:"+balance);}//取款方法publicvoidwithdraw(doublemoney){if(money<=0){System.out.println("取款金额必须大于0,取款失败");return;}if(money>balance){System.out.println("余额不足,取款失败!当前余额:"+balance);return;}balance-=money;System.out.println("取款成功!本次取出:"+money+",当前余额:"+balance);}//Getter方法获取账户信息publicStringgetAccountName(){returnaccountName;}publicStringgetAccountId(){returnaccountId;}publicdoublegetBalance(){returnbalance;}}参考答案://学生类StudentpublicclassStudent{//属性:学号、姓名、年龄privateStringid;privateStringname;privateintage;//构造方法publicStudent(Stringid,Stringname,intage){this.id=id;=name;this.age=age;}//Getter&SetterpublicStringgetId(){returnid;}publicvoidsetId(Stringid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){=name;}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}//打印单个学生信息publicvoidshowInfo(){System.out.println("学号:"+id+",姓名:"+name+",年龄:"+age);}} //测试主类,完成数组操作与三个功能publicclassTestStudentArray{publicstaticvoidmain(String[]args){//1.数组初始化方式直接赋值学生数据Student[]students={newStudent("2026001","小明",19),newStudent("2026002","小红",21),newStudent("2026003","小刚",22),newStudent("2026004","小丽",18),newStudent("2026005","小华",20)};System.out.println("=====①所有学生年龄增加一岁=====");//①遍历数组,每个学生年龄+1for(inti=0;i<students.length;i++){Students=students[i];s.setAge(s.getAge()+1);}System.out.println("\n=====②按顺序显示所有学生信息=====");//②按数组顺序输出全部学生for(Studentstu:students){stu.showInfo();}System.out.println("\n=====③输出年龄大于20岁的学生名单=====");//③筛选年龄>20的学生并打印for(Studentstu:students){if(stu.getAge()>20){stu.showInfo();}}}}参考答案:publicclassCar{//燃油效能:百公里油耗(L/100km)privatedoublefuelEfficiency;//油箱当前剩余油量privatedoublegasLevel;//构造方法:传入百公里油耗,初始油量默认0publicCar(doublefuelEfficiency){this.fuelEfficiency=fuelEfficiency;this.gasLevel=0;}/***加油方法*@paramgas加入的燃油升数*/publicvoidaddGas(doublegas){if(gas>0){gasLevel+=gas;}else{System.out.println("加油量不能为负数,操作无效");}}/***驾驶行驶,消耗燃油*@paramdistance行驶公里数*/publicvoiddrive(doubledistance){if(distance<0){System.out.println("行驶距离不能为负数");return;}//计算本次行驶需要消耗的油量doubleconsume=distance/100*fuelEfficiency;if(consume>gasLevel){System.out.println("油量不足,无法行驶"+distance+"公里");return;}gasLevel-=consume; }//获取当前剩余油量publicdoublegetGasLevel(){returngasLevel;}}publicclassTestCar{publicstaticvoidmain(String[]args){//(1)创建汽车,百公里油耗6.6升CarmyHybrid=newCar(6.6);//(2)加20升油myHybrid.addGas(20);//(3)行驶100公里myHybrid.drive(100);//(4)打印剩余油量System.out.println(myHybrid.getGasLevel());}}项目六选择题12345678DDADCBCB判断题123456FTTFTT编程题编写程序接收用户输入分数信息,如果分数在0—100之间,输出成绩。如果成绩不在该范围内,抛出异常信息,提示分数必须在0—100之间。参考答案:publicclassTest1{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

try{

System.out.print("请输入分数:");

//读取用户输入的分数

doublescore=scanner.nextDouble();

//调用validateScore方法验证分数

validateScore(score);

System.out.println("输入的成绩是:"+score);

}catch(IllegalArgumentExceptione){

//捕获异常并输出异常信息

System.out.println(e.getMessage());

}catch(InputMismatchExceptione){

//处理输入非数字的情况

System.out.println("输入无效,请输入一个有效的数字。");

}finally{

//关闭Scanner对象,释放资源

scanner.close();

}

}

/**

*验证分数是否在0到100之间

*@paramscore要验证的分数

*@throwsIllegalArgumentException如果分数不在0到100之间,抛出此异常

*/

publicstaticvoidvalidateScore(doublescore)throwsIllegalArgumentException{

if(score<0||score>100){

//分数不在有效范围内,抛出异常

thrownewIllegalArgumentException("分数必须在0-100之间。");

}

}

}参考答案:publicclassTest2{

publicstaticvoidmain(String[]args){

Scannerscanner=newScanner(System.in);

System.out.print("请输入一个字符串,程序将尝试把它转换为整数:");

Stringinput=scanner.nextLine();

try{

intnumber=Integer.parseInt(input)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论