终于考完了,我刚开始没有看清题目,导致把时间给浪费了,题号变了。
编程题:
1. 编写程序,输入一个年份,输出这一年的 2 月有几天?
思路:利用scanner来让用户输入年份,用if条件来判断输入的年份是否为闰年
判断是否为闰年的条件是:能被4整除,并且不能被100整除或者能被400整除
转化为java的条件为:year%4==0&&year%100!=0||year%400==0
package fupanfei;
import java.util.Scanner;
public class fupanfei1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入你要查询的年份:");
Scanner input= new Scanner(System.in);
int year = input.nextInt();
if(year%4==0&&year%100!=0||year%400==0)
{
System.out.println(year+"年是闰年,二月要:29天哦");
}
else {
System.out.println(year+"年是平年,二月只有:28天哦");
}
}
}
2. 编写程序,提示用户输入一个三位的整数,判断它是否是回文数
字?
思路:判断条件是利用取余数法获取三位数的个位和百位,是否相等。
package fupanfei;
import java.util.Scanner;
public class fupanfei2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入一个三位数整数:");
Scanner input=new Scanner(System.in);
int num=input.nextInt();
if(num>999||num<100) {
System.out.println("你输入的参数错误!");
}
int num1 = num/100;//获取到百位
int num2 = (num%100)%10;//获取到个位
if(num1==num2) {
System.out.println(num+"是回文数!");
}
else {
System.out.println(num+"不是回文数!");
}
}
}
3. 编写程序,输入某年某月某日,判断这一天是这一年的第几天?
思路:利用for循环,快速获取
//1.定义一个数组,存放12个月的天数
int[] days= {31,28,31,30,31,30,31,31,30,31,30,31};
// 2.输入年月日
Scanner input = new Scanner(System.in);
System.out.println("请输入年月日:");
int y=input.nextInt();
int m=input.nextInt();
int d=input.nextInt();
if(y%4==0&&y%100!=0||y%400==0)
days[1]=29;
// 3.求总天数
int sum=0;
for(int i=0;i<=m-2;i++)
sum=sum+days[i];
sum=sum+d;
// 4.输出结果
System.out.println(y+"年"+m+"月"+d+"日是在这一年的第"+sum+"天!");
}
}
package fupanfei;
import java.util.*;
public class fupanfei3 {
public static void main(String[] args) {
// 输入某年某月某日,判断这一天是这一年的第几天
Scanner scan=new Scanner(System.in);
System.out.println("请输入年份:");
int year=scan.nextInt();
System.out.println("请输入月份:");
int month=scan.nextInt();
System.out.println("请输入日期:");
int day=scan.nextInt();
int total=0;
if(year%400==0||(year%100!=0&&year%4==0)) {//闰年
int[] months= {31,29,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<month-1;i++) {
total=total+months[i];
}
total=total+day;
System.out.println("这是这一年的第"+total+"天");
}
else {//非闰年
int[] months= {31,28,31,30,31,30,31,31,30,31,30,31};
for(int i=0;i<month-1;i++) {
total=total+months[i];
}
total=total+day;
System.out.println("这是这一年的第"+total+"天");
}
}
}
4. 编写程序,输入 5 个数,要求从小到大输出。
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个数");
int a=sc.nextInt();
System.out.println("请输入第二个数");
int b=sc.nextInt();
System.out.println("请输入第三个数");
int c=sc.nextInt();
System.out.println("请输入第四个数");
int d=sc.nextInt();
System.out.println("请输入第五个数");
int e=sc.nextInt();
int []array={a,b,c,d,e};
for(int i=0;i<(array.length-1);i++)
{
for(int j=i+1;j<array.length;j++)
{
if(array[i]>array[j])
{
int zhong=array[i];
array[i]=array[j];
array[j]=zhong;
}
}
}
System.out.println("从下到大:"+array[0]+" "+array[1]+" "+array[2]+" "+array[3]+" "+array[4]);
}
5. 编写程序,输入一个密码,判断密码是否输入正确,如果正确,
输出“密码正确”,如果错误,提示用户再次输入,最多输入 3 次。
package fupanfei;
import java.util.Scanner;
public class fupanfei5 {
public static void main(String[] args) {
//初始化一个密码
String my_password = new String("123456");
Scanner sc = new Scanner(System.in);
//记录输入次数
int count = 0;
System.out.println("请输入密码: ");
//从键盘上数入 3 次,进行比较
for (count = 0; count < 3; count++) {
String string = sc.nextLine();
if (my_password.equals(string)) {
System.out.println("登录成功!");
} else if (!(my_password.equals(string)) && count <= 1) {
System.out.println("密码错误,请重新输入!");
} else if (!(my_password.equals(string)) && count == 2) {
System.out.println("连续三次错误,程序退出!");
}
}
}
}
6. 一些网站对于密码具有一些规则。编写一个方法,检测字符串是
否是一个有效密码。假定密码规则如下:
- 密码必须至少 8 位字符
- 密码仅能包含字母和数字
- 密码必须包含至少两个数字
编写程序,提示用户输入一个密码,判断密码是否为有效密码。
package fupanfei;
import java.util.Scanner;
public class fupanfei4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 接收用户输入
Scanner input = new Scanner(System.in);
System.out.print("请输入一个密码:");
String str = input.nextLine();
// 1. 至少8位:字符串长度大于等于8
int length = str.length();
if (length < 8){
System.out.println("密码格式错误,至少8位:字符串长度大于等于8");
System.exit(1);
}
// 2. 转ASCII
boolean bool1 = true, bool2 = false;
int count = 0;
for (int i = 0 ;i < length;i++){
int int_ASCII = char_to_ASCII(str.charAt(i));
// 仅能包含字母和数字;[48, 57]、[65, 90]、[97, 112]
if (int_ASCII < 48 || (int_ASCII > 57 && int_ASCII < 65) || (int_ASCII > 90 && int_ASCII < 97) || int_ASCII > 112)
bool1 = false;
// 必须至少包含两个数字
if (int_ASCII >= 48 && int_ASCII <= 57)
count++;
}
if (count >= 2)
bool2 = true;
// 输出判断
if (bool1 && bool2)
System.out.println("恭喜您密码格式没问题哦!");
else
System.out.println("有问题,非法参数!");
}
public static int char_to_ASCII(char ch){
return (int) (ch);
}
}
7. 定义一个学生类,包含三个属性(学号,姓名,成绩)均为私有
的,分别给这三个属性定义两个方法,一个设置它的值,另一个
获得它的值。然后在一个测试类里试着调用。
8. 编写一个圆类 Circle,该类拥有:
(1)一个成员变量
Radius(私有,浮点型); //存放圆的半径;
(2)两个构造方法
Circle( ) // 将半径设为 0
Circle(double r ) //创建 Circle 对象时将半径初始化为 r
(3)三个成员方法
double getArea( ) //获取圆的面积
double getPerimeter( ) //获取圆的周长
void show( ) //将圆的半径、周长、面积输出到屏幕
编写应用程序,创建类的对象,分别设置圆的半径,计算并分别
显示圆半径、圆面积、圆周长
package fupanfei;
import java.math.*;
import javax.swing.*;
class Circle{
int r;
Circle(int r){
this.r=r;
}
public void getS(){
System.out.println("面积是:"+Math.PI*r*r);
}
public void getL(){
System.out.println("周长是:"+2*Math.PI*r);
}
public static void main(String[] args){
String s=JOptionPane.showInputDialog("请输入半径:");
System.out.println("半径是:"+s);
Circle c=new Circle(Integer.parseInt(s));
c.getS();
c.getL();
}
}