JAVA技术支持课--第一次java语言技术支持授课思路(答案解析)
1. 使用八种基本数据类型定义八个变量,然后在控制台输出各个变量的值。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:使用八种基本数据类型定义八个变量,然后在控制台输出各个变量的值。* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_01 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubboolean flag = true;char yeschar = 'y';byte finbyte = 30;int intvalue = -70000;long lonngvalue = 200;short shortvalue = 20000;float floatvalue = 9.997f;double doublevalue = 1.117;System.out.println("The values are:");System.out.println("布尔类型变量flag="+flag);System.out.println("字符类型变量yeschar="+yeschar);System.out.println("字节类型变量finbyte="+finbyte);System.out.println("整型变量intvalue="+intvalue);System.out.println("长整型变量lonngvalue="+lonngvalue);System.out.println("短整型变量shortvalue="+shortvalue);System.out.println("浮点型变量floatvalue="+floatvalue);System.out.println("双精度浮点型变量doublevalue"+doublevalue);}}
2. 已知学生有学号,姓名,性别,年龄,身高,体重六项基本信息,依次从键盘录入该学生信息,完成后输出该生详细信息。2. 已知学生有学号,姓名,性别,年龄,身高,体重六项基本信息,依次从键盘录入该学生信息,完成后输出该生详细信息。
/* * @Copyright:2011 Shandong Strong software co,ltd. * All right reserved. * @author:zy * @date:2012-9-14 * @version:1.0 *//* *comment:一句话概括类完成的功能 *description:详细描述类的功能 *//* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 已知学生有学号,姓名,性别,年龄,身高,体重六项基本信息,依次从键盘录入该学生信息,完成后输出该生详细信息。* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_02{ /* *@function: *@param: *@return: *@exception */ public static void main(String[] args) { System.out.println("请输入学生的学号:"); int stuNo=Console.readInt(); System.out.println("请输入学生的姓名:"); String name=Console.readLine(); System.out.println("请输入学生的性别:"); String sex = Console.readLine(); System.out.println("请输入学生的年龄:"); int age=Console.readInt(); System.out.println("请输入学生的身高:"); int heigh=Console.readInt(); System.out.println("请输入学生的体重:"); int weight=Console.readInt(); System.out.println("学生的基本信息为:"); System.out.println("学号姓名性别年龄身高体重"); System.out.println(stuNo+""+name+""+sex+""+age+""+heigh+""+weight); }}
3. 张三要购买T恤,T恤单价及数量由用户输入,李四要购买网球,网球单价及数量由用户输入; 计算张三及李四各自消费总额并输出.
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 张三要购买T恤,T恤单价及数量由用户输入,李四要购买网球,网球单价及数量由用户输入; 计算张三及李四各自消费总额并输出.* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_03 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("请输入张山购买T恤的数量:");int number01 = Console.readInt();System.out.println("请输入张山购买T恤的单价:");int number02 = Console.readInt();System.out.println("请输入李四购买网球的数量:");int number03 = Console.readInt();System.out.println("请输入李四购买网球的单价:");int number04 = Console.readInt();int cost01 = number01 * number02;int cost02 = number03 * number04;System.out.println("客户消费金额");System.out.println("张山"+""+cost01);System.out.println("李四"+""+cost02);}}
4. 从键盘上输入一个整数,计算各个位数之和
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:从键盘上输入一个整数,计算各个位数之和* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_03 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("请输入张山购买T恤的数量:");int number01 = Console.readInt();System.out.println("请输入张山购买T恤的单价:");int number02 = Console.readInt();System.out.println("请输入李四购买网球的数量:");int number03 = Console.readInt();System.out.println("请输入李四购买网球的单价:");int number04 = Console.readInt();int cost01 = number01 * number02;int cost02 = number03 * number04;System.out.println("客户消费金额");System.out.println("张山"+""+cost01);System.out.println("李四"+""+cost02);}}
5. 输入一个数字,使用if语句判断匹配的数字。
如果输入的是:
1>. 打印:您输入的数字是1
2>. 打印:您输入的数字是2
3>. 打印:您输入的数字式3
其他数字 打印:输入了不符合规范的数字
注:使用if-else及switch 两种方式分别实现。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:输入一个数字,使用if语句判断匹配的数字。 如果输入的是: 1>. 打印:您输入的数字是1 2>. 打印:您输入的数字是2 3>. 打印:您输入的数字式3 其他数字 打印:输入了不符合规范的数字 注:使用if-else及switch 两种方式分别实现。* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_05 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("请输入一个整数:");int number = Console.readInt();System.out.println("用if-else语句实现");if (number == 1) {System.out.println("您输入的数字是:" + number);} else if (number == 2) {System.out.println("您输入的数字是:" + number);} else if (number == 3) {System.out.println("您输入的数字是:" + number);} else {System.out.println("您输入了不符合规范的数字!");}System.out.println("用switch语句实现");switch (number) {case 1:System.out.println("您输入的数字是:" + number);break;case 2:System.out.println("您输入的数字是:" + number);break;case 3:System.out.println("您输入的数字是:" + number);break;default:System.out.println("您输入了不符合规范的数字!");}}}
6. 从键盘上输入一个年份,判断该年是平年还是闰年。6. 从键盘上输入一个年份,判断该年是平年还是闰年。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:从键盘上输入一个年份,判断该年是平年还是闰年。* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_06 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.print("请输入一个您想判断的年份:");int i = Console.readInt();if (i % 4 == 0 && i % 100 != 0) {System.out.println(i + "年是闰年");} else {System.out.println(i + "年是平年");}}}
7. 从键盘上输入一个年份,并输入一个月份(数字),输出该月份有多少天。7. 从键盘上输入一个年份,并输入一个月份(数字),输出该月份有多少天。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:从键盘上输入一个年份,并输入一个月份(数字),输出该月份有多少天。* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_07 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("您需要输入年份:");int year = Console.readInt();System.out.println("您需要输入月份:");int month = Console.readInt();if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){System.out.println(year+"年"+month+"月一共"+31+"天");}else if(month==4||month==6||month==9||month==11){System.out.println(year+"年"+month+"月一共"+30+"天");}else{if(year % 4 == 0 && year % 100 != 0){System.out.println(year+"年"+month+"月一共"+28+"天");}else{System.out.println(year+"年"+month+"月一共29天");}} }}
8. 从键盘上输入一个年份,并输入一个月份,计算从当前年份1月1号只当前第month个月共有多少天(如输入年份为2011,月份为3月,则计算,从1月1号到3月1号共多少天。输入年份为2004,月份为10月,则计算,从1月1号到10月1号共多少天即计算从1月n-1月共有多少天)
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:8. 从键盘上输入一个年份,并输入一个月份, 计算从当前年份1月1号只当前第month个月共有多少天 (如输入年份为2011,月份为3月,则计算,从1月1号到3月1号共多少天。输入年份为2004,月份为10月, 则计算,从1月1号到10月1号共多少天即计算从1月n-1月共有多少天)* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_08 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("您需要输入年份:");int year = Console.readInt();System.out.println("您需要输入月份:");int month = Console.readInt(); boolean b = Leap_Common_year(year);//判断平年还是闰年 System.out.print(year+"年1月1日到"+year+"年"+month+"月1日一共"); switch(month) //判断月份 { case 1:month_1(1);break;//根据日期计算出是哪一天 case 2:month_2(1);break; case 3:month_3(1,b);break; case 4:month_4(1,b);break; case 5:month_5(1,b);break; case 6:month_6(1,b);break; case 7:month_7(1,b);break; case 8:month_8(1,b);break; case 9:month_9(1,b);break; case 10:month_10(1,b);break; case 11:month_11(1,b);break; case 12:month_12(1,b);break; default: System.out.println("您输入的月份有误..."); break; }} static boolean Leap_Common_year(int year)//判断平年还是闰年 { boolean b; if (year % 4 == 0 && year % 100 != 0) { b = false; } else { b = true; } return b; } static void month_1(int date) { System.out.println(1+"天"); } static void month_2(int date) { int d; d = 31 + date; System.out.println(d+"天"); } static void month_3(int date, boolean b) { int d; if (b) { d = 31 + 28 + date; } else { d = 31 + 29 + date; } System.out.println(d+"天"); } static void month_4(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + date; } else { d = 31 + 29 + 31 + date; } System.out.println(d+"天"); } static void month_5(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + date; } else { d = 31 + 29 + 31 + 30 + date; } System.out.println(d+"天"); } static void month_6(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + date; } else { d = 31 + 29 + 31 + 30 + 31 + date; } System.out.println(d+"天"); } static void month_7(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + date; } System.out.println(d+"天"); } static void month_8(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + date; } System.out.println(d+"天"); } static void month_9(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + date; } System.out.println(d+"天"); } static void month_10(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + date; } System.out.println(d+"天"); } static void month_11(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + date; } System.out.println(d+"天"); } static void month_12(int date, boolean b) { int d; if (b) { d = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + date; } else { d = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + date; } System.out.println(d+"天"); }}
9. 设有int n,设计一个Java程序,打印出1+3+5+…n之和,变量n的初始值在程序中指定。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:设有int n,设计一个Java程序,打印出1+3+5+…n之和,变量n的初始值在程序中指定。* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_09 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint n = 5,sum =0;for(int i = 1;i<=n;i=i+2){sum = sum + i;}System.out.println("和为"+sum);}}10. 实现如下程序:
1>.写一个程序:输出一个直角三角形(上三角),行数由用户输入,如图1所示:
2>.写一个程序:输出一个直角三角形(下三角),行数由用户输入,入图2所示:
3>.写一个程序:输出一个直角三角形(下三角),行数由用户输入,入图3所示:
10. 实现如下程序:
1>.写一个程序:输出一个直角三角形(上三角),行数由用户输入,如图1所示:

2>.写一个程序:输出一个直角三角形(下三角),行数由用户输入,入图2所示:

3>.写一个程序:输出一个直角三角形(下三角),行数由用户输入,入图3所示:

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:10. 实现如下程序: 1>.写一个程序:输出一个直角三角形(上三角),行数由用户输入: 2>.写一个程序:输出一个直角三角形(下三角),行数由用户输入: 3>.写一个程序:输出一个直角三角形(下三角),行数由用户输入: * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_10 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("打印正三角:");System.out.print("请您输入打印三角形的行数:");int i = Console.readInt(), k = 1, l = i;for (int j = 1; j <= l; ++j) {int m = 1;while (m <= i - 1) {System.out.print(' ');++m;}m = 1;while (m <= 2 * j - 1) {System.out.print('*');++m;}System.out.println();--i;}System.out.println("打印倒三角:");System.out.print("请您输入打印三角形的行数:");i = Console.readInt();k = 1;l = i;for (int j = 1; j <= l; ++j) {int m = 1;while (m < j) {System.out.print(' ');++m;}m = 1;while (m <= 2 * i - 1) {System.out.print('*');++m;}System.out.println();--i;}System.out.println("打印菱形:");System.out.print("请您输入打印菱形的行数:");i = (Console.readInt()+1)/2;k = 1;l = i;for (int j = 1; j <= l; ++j) {int m = 1;while (m <= i - 1) {System.out.print(' ');++m;}m = 1;while (m <= 2 * j - 1) {System.out.print('*');++m;}System.out.println();--i;}i = l;k = 1;--i;for (int j = 2; j <= l; ++j) {int m = 1;while (m < j) {System.out.print(' ');++m;}m = 1;while (m <= 2 * i - 1) {System.out.print('*');++m;}System.out.println();--i;}}}
11. 求1000之内的所有水仙花数
本程序是Application程序.所谓水仙花数,是指一个三位整数,
它的各位数字的立方和等于这个数本身.
例如:371就是一个水仙花数,因为371=3*3*3+7*7*7+1*1*1.
(int i
bw = i/100;
shw = i%100/10或i/10%10;
gw = i%10
12. 求1000之内的所有完全数
本程序是一个Application程序.所谓完全数,就是一个数恰好等于它的因子之和.
例如:
6的因子为1,2,3,而6=1+2+3,因此6就是完全数.
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:求1000之内的所有完全数* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_11 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint bw,shw ,gw,sum ;System.out.println("1000之内的所有水仙花数为:");for (int i=100;i<1000;++i){ bw = i/100;shw = i%100/10; gw = i%10; sum = bw*bw*bw+shw*shw*shw+gw*gw*gw; if(sum==i) { System.out.println(i); } }}}
12. 求1000之内的所有完全数
本程序是一个Application程序.所谓完全数,就是一个数恰好等于它的因子之和.
例如:
6的因子为1,2,3,而6=1+2+3,因此6就是完全数.
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:求1000之内的所有完全数 本程序是一个Application程序.所谓完全数,就是一个数恰好等于它的因子之和.例如: 6的因子为1,2,3,而6=1+2+3,因此6就是完全数.* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_12 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint i=1,j=1,m=1,k=0;System.out.println("1000之内的所有完全数为:");for (i=1;i<1000;++i){for(j = 1,k =0;i>j;++j){if (i%j==0) k=k+j;}if (i==k) System.out.println(i);}}}
13. 求1~5的阶乘之和
本程序是一个Application程序,求1~20的阶乘之和,
也就是求表达式1+2!+...+5!的值
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:求1~5的阶乘之和 本程序是一个Application程序,求1~20的阶乘之和,也就是求表达式1+2!+...+5!的值* 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_13 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint sum = 0,i = 1,factorial =1;for(i = 1;i <= 20;++i){factorial = factorial * i;sum = sum + factorial;}System.out.println("1到20的阶乘为:"+sum);}}14. 实现一个计算器,用户从键盘输入两个操作数和一个运算符(+、-、*、/、%),系统自动完成计算。
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 实现一个计算器,用户从键盘输入两个操作数和一个运算符(+、-、*、/、%),系统自动完成计算。 * * 作 者: 雷恒鑫 * 完成日期: 2012 年 09 月 16 日 * 版 本 号: V1.0 * 对任务及求解方法的描述部分 * 输入描述: * 问题描述: * 程序输出: * 程序头部的注释结束 */public class Exercise_14 {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.print("请您输入第一个操作数:");int first = Console.readInt();System.out.print("请您输入一个运算符:");char operator = Console.readLine_char();System.out.print("请您输入第二个操作数:");int second = Console.readInt();switch(operator){case '+':System.out.println("first + second = "+(first + second));break;case '-':System.out.println("first - second = "+(first - second));break;case '*':System.out.println("first * second = "+(first * second));break;case '/':System.out.println("first / second = "+((double)first / second));break;default:System.out.println("您输入的运算符有误!");break;}}}
下面是Console类:
import java.util.Scanner;/* * @Copyright:2011 Shandong Strong software co,ltd. * All right reserved. * @author:zy * @date:2012-9-14 * @version:1.0 *//* *comment:一句话概括类完成的功能 *description:详细描述类的功能 */public class Console{ public static String readLine(){ Scanner sc=new Scanner(System.in); return sc.next(); } public static char readLine_char(){ Scanner sc=new Scanner(System.in); String str=sc.next(); return str.charAt(0); } public static int readInt(){ Scanner sc=new Scanner(System.in); String str=sc.next(); return Integer.parseInt(str); } public static double readDouble(){ Scanner sc=new Scanner(System.in); String str=sc.next(); return Double.parseDouble(str); }}