一、上机目的
1.掌握Eclipse环境的使用。
2.掌握基本数据类型及基本类型数组的使用方法
3.掌握Java控制结构中的控制语句和循环语句及其使用方法。
二、上机内容
1..编程求10以内整数的和。
public class Sum {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=10;i++){
sum+=i;
}
System.out.print("10以内的数之和为:"+sum);
}
}
2.编程实现将由键盘输入的十进制正整数转换为二进制数,并输出转换后的二进制结果。
import java.util.Scanner;
public class Change {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个十进制数:");
int num1 =in.nextInt();
//Integer.toBinaryString():可将十进制转换为二进制
String num2=Integer.toBinaryString(num1);
System.out.println("该数对应的二进制数为:"+num2);
in.close();
}
}
3.编程实现由键盘输入的年份是否为闰年,要求采用方法调用的方式实现。
import java.util.Scanner;
public class Year {
static boolean isLeapYear(int year) {
if((year%4==0 && year%100!=0)||year%400==0) {
return true;
}else;{
return false;
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入一个年份");
int year = in.nextInt();
if(isLeapYear(year)==true) {
System.out.println(year+"是闰年");
}else {
System.out.println(year+"是平年");
}
}
}
4. 编程求s=1!+2!+…+n!(n从键盘输入),采用方法调用的方式实现。
import java.util.Scanner;
public class JieCheng {
//定义阶乘方法,为防止溢出将数据类型定义为long型
static long factorial(int n) {
long num=1;
for(int j=1;j<=n;j++) {
num *=j;
}
return num;
}
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入一个数:");
int a=in.nextInt();
long sum=0;
for(int i=1;i<=a;i++) {
sum += factorial(i);
}
System.out.println("1~"+a+"以内的数的阶乘和为"+sum);
}
}
5. 编程求s=1-2+3-4+…+99-100。
public class Sum2 {
public static void main(String[] args) {
int num;
int temp;
int sum1=0;
int sum2=0;
for(num=1;num<101;num++) {
if(num%2!=0) {
sum1 +=num;//计算奇数和
}else {
temp=-num;
sum2 +=temp;//计算偶数和
}
}
int sum3=sum1+sum2;
System.out.println("1-2+3-4+…+99-100="+sum3);
}
}
6. 试编写一个程序,其功能是:从键盘输入一个整数,输出这个数的每位数字之和。
例如:输入245789,输出35。
import java.util.Scanner;
public class Sum3 {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = in.nextInt();
int sum=0;
while(num>0){
//逐步获取从最低位到最高位的数字
sum += num%10;
num = num/10;
}
System.out.println("各位数之和为:"+sum);
in.close();
}
}
7. 设计并实现一个要求用户输入两个数并猜测两数之和的程序。如果用户猜对结果,就显示祝贺消息,否则显示慰问信息以及正确答案。
import java.util.Scanner;
public class Guess {
public static void main(String[] args) {
/*设计并实现一个要求用户输入两个数并猜测两数之和的程序
如果用户猜对结果,就显示祝贺消息,否则显示慰问信息以及正确答案
*/
Scanner in = new Scanner(System.in);
System.out.println("请输入第一个整数:");
double num1=in.nextDouble();
System.out.println("请输入第二个整数:");
double num2=in.nextDouble();
System.out.println("请猜下这两数之和:");
int sum1=in.nextInt();
double sum2=num1+num2;
if(sum1==sum2) {
System.out.println("恭喜您答对了");
}else {
System.out.println("很抱歉答错了,正确答案为:"+sum2);
}
in.close();
}
}
8 编写程序,一列数的规律如下:1、1、2、3、5、8、13、21、34……
求这列数的第30个数是多少。
public class Fibonacci {
static int fibonacci(int x) {
if(x==1||x==2) {
return 1;
}else {
return fibonacci(x-1)+fibonacci(x-2);
}
}
public static void main(String[] args) {
int num =30;
System.out.println("斐波那契数列的第"+num+"个数为"+fibonacci(30));
}
}
9*.输入年月日,输出这一天的前一天。
import java.util.Scanner;
public class BeforeDay {
public static void ForeData(int year,int month,int day) {
//判断闰年,且输入日期为3月1日
if(year%4==0 && year%100!=0&&month==3&&day==1) {
month = month-1;
day=29;
System.out.printf("%d",year);
System.out.printf("年");
System.out.printf("%d",month);
System.out.printf("月");
System.out.printf("%d",day);
System.out.printf("日");
}else if(month==3&&day==1) {
month = month-1;
day=28;
System.out.printf("%d",year);
System.out.printf("年");
System.out.printf("%d",month);
System.out.printf("月");
System.out.printf("%d",day);
System.out.printf("日");
//处理1月1日
}else if(month==1&&day==1) {
year=year-1;
month = 12;
day=31;
System.out.printf("%d",year);
System.out.printf("年");
System.out.printf("%d",month);
System.out.printf("月");
System.out.printf("%d",day);
System.out.printf("日");
//小月,1号
}else if(month==2&&day==1||month==4&&day==1||month==6&&day==1||month==9&&day==1||month==11&&day==1) {
month = month-1;
day=31;
System.out.printf("%d",year);
System.out.printf("年");
System.out.printf("%d",month);
System.out.printf("月");
System.out.printf("%d",day);
System.out.printf("日");
//大月,1号
}else if(month==3&&day==1||month==5&&day==1||month==7&&day==1||month==8&&day==1 ||month==10&&day==1 ||month==12&&day==1) {
month = month-1;
day=30;
System.out.printf("%d",year);
System.out.printf("年");
System.out.printf("%d",month);
System.out.printf("月");
System.out.printf("%d",day);
System.out.printf("日");
}else {
day=day-1;
System.out.printf("%d",year);
System.out.printf("年");
System.out.printf("%d",month);
System.out.printf("月");
System.out.printf("%d",day);
System.out.printf("日");
}
}
public static void ErrorTip(int i) {
System.out.println("输入的整数不合法");
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入年份");
int year = in.nextInt();
if(year>1998&&year<2050) {
System.out.println("请输入月份:");
}else {
ErrorTip(year);
}
int month= in.nextInt();
if(month>0&&month<13) {
System.out.println("请输入具体几号:");
}else {
ErrorTip(month);
}
int day=in.nextInt();
if(year%4==0 && year%100!=0&&month==2) {
if(day>0&&day<30) {
ForeData(year, month, day);
}else {
ErrorTip(day);
}
}else if(month==2){
if(day>0&&day<29) {
ForeData(year, month, day);
}else {
ErrorTip(day);
}
}else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) {
if(day>0&&day<32) {
ForeData(year, month, day);
}else {
ErrorTip(day);
}
}else{
if(day>0&&day<31) {
ForeData(year, month, day);
}else {
ErrorTip(day);
}
}
}
}