选择题
1. | 有一个类A,以下为其构造方法的声明,其中正确的是()。 A void A(int x){...} B A(int x){...} C a(int x){...} D void a(int x){...} |
---|
答案:B
2. | 定义类头时,不可能用到的关键字是() A. class |
---|
答案:B
3. | 设i,j为 类X中定义的int型成员变量名,下列X的构造方法中不正确的是()。 A)void X(int k){ i = k; } B)X(int k){ i = k; } C)X(int m, int n){ i =m; j=n; } D)X(){ i=0; j=0; } |
---|
答案:A
4. | 设i、j为类X中定义的double型成员变量,下列类X的构造方法中不正确的是()。 A) double X(double k){ int k; return i; } B) X(double m,double n){ i = m; j = n; } C) X(){ i=6; j=8; } D) X(double k) { i=k; } |
---|
答案:A
5. | 设A为已定义的类名,下列声明A类的对象a的语句中正确的是() A) A a = new A(); B) public A a = A(); C) A a = new class(); D) a A; |
---|
答案:A
编程题
1.Student类设计
【问题描述】请按照以下要求设计一个学生类Student,并进行测试,要求如下:
(1)Student类包含姓名、成绩两个属性。
(2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值。(Getters and Setters)
(3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值。
(4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩复制。另一个使用有参的构造方法,在构造方法中给姓名和成绩赋值。
(5)输出两个Student对象的姓名和成绩,一行一个Student,如:zhangsan 35
【输入形式】无
【输出形式】
zhangsan 35
lisi 38
【样例说明】两个Student对象,第一个名字zhangsan 成绩35,第二个名字lisi 成绩38
【评分标准】 正确得满分
代码如下:
public class Homework_1 {
public static void main(String[] args){
Student stu1 = new Student();
stu1.setName("zhangsan"+" ");
stu1.setGrade(35);
System.out.print(stu1.getName());
System.out.println(stu1.getGrade());
Student stu2 = new Student("lisi", 38);
System.out.print(stu2.getName()+" ");
System.out.println(stu2.getGrade());
}
}
class Student{
private String name;
private int grade;
public Student(){
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getGrade(){
return grade;
}
public void setGrade(int grade){
this.grade = grade;
}
public Student(String name,int grade){
this.name = name;
this.grade = grade;
}
}
2.计算日期差
【问题描述】
结构
class Date { int year; int month; int day; };
利用该类编写一个程序用来计算两个日期之间相差的天数。
【输入形式】
输入两个日期,每个日期分占一行,在一行中日期的年、月、日是三个整数,以空格分隔。并假设第二个日期大于或等于第一个日期。
【输出形式】
第二个日期与第一个日期间相差的天数。
【输入样例】
2003 3 25 2003 3 29
【输出样例】
4
【评分标准】
完全正确
代码如下:
import java.util.Scanner;
public class Homework_2 {
public static void main(String[] args){
int year,month,day;
Date date1 = new Date();
Date date2 = new Date();
Scanner sc = new Scanner(System.in);
year = sc.nextInt();
month = sc.nextInt();
day = sc.nextInt();
date1.getDate(year,month,day);
year = sc.nextInt();
month = sc.nextInt();
day = sc.nextInt();
date2.getDate(year,month,day);
System.out.print(date2.dateSum()-date1.dateSum());
}
}
class Date {
private int year;
private int month;
private int day;
public void getDate(int year,int month,int day){
this.year=year;
this.month=month;
this.day=day;
}
int dateSum(){
int[] arr={0,31,28,31,30,31,30,31,31,30,31,30,31} ;
int sum = day-1;
while (month != 0) {
--month;
sum += arr[month];
if (month == 2 && ((year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)))
sum += 1;
}
sum += 365 * year ;
sum += (year - 1) / 4 ;
sum -= (year - 1) / 100 ;
sum += (year - 1) / 400 ;
return sum;
}
}
3. 第四章课后编程题6Rectangle类
【问题描述】
1)创建一个Rectangle类;
2)属性:两个double成员变量,width和height;
3)不带参数的构造方法:width和height的初始值分别为6和8;
4)方法:计算矩形的周长,方法名为findPremeter();
5)编写测试类,创建一个Rectangle的对象,对象名为r,调用计算周长的方法,并输出计算结果。
【输入形式】
【输出形式】r的周长:(width+height)*2.
【样例输入】
【样例输出】28
【样例说明】
【评分标准】输出正确满分
代码如下:
public class Homework_3 {
public static void main(String[] args){
Rectangle r = new Rectangle();
r.setWidth(6);
r.setHeight(8);
System.out.printf("%.0f",r.findPremeter());
}
}
class Rectangle{
private double width;
private double height;
public void setWidth(double width){
this.width = width;
}
public void setHeight(double height){
this.height = height;
}
public double findPremeter(){
return (width+height)*2;
}
}
4. 第四章课后编程题4book类
【问题描述】
定义一个表示图书的类,名字为Book,属性包含:书名、价格、出版社、作者等信息,编写构造方法实现对属性的赋值,编写一个方法,实现输出一本书的基本信息的功能。编写测试类使用Book类创建对象,使用构造方法给属性赋值,并调用对象的方法,输出对应的信息。
【输入形式】
【输出形式】输出书名, 价格, 出版社, 作者
【样例输入】
【样例输出】Java, 57.0, Neusoft, Zhou
【样例说明】
【评分标准】 输出正确满分
代码如下:
public class Homework_4 {
public static void main(String[] args) {
Book book = new Book();
book.setTitle("java");
book.setPrice(57.0);
book.setPress("Neusoft");
book.setAuthor("Zhou");
book.print();
}
}
class Book{
private String title;
private double price;
private String press;
private String author;
public void setTitle(String title) {
this.title = title;
}
public void setPrice(double price){
this.price = price;
}
public void setPress(String press) {
this.press = press;
}
public void setAuthor(String author) {
this.author = author;
}
public void print(){
System.out.print(title+","+price+","+press+","+author);
}
}
5. 账簿类
【问题描述】
编写帐簿类AccountBook类。类中有三个属性:accountName(String类型)、income(double类型)和outcome(double类型)。定义通过收入和支出自动计算余额的方法compute。再编写测试类,在测试类中用AccoutnBook类创建一个帐簿对象,设置名称是“Zhangsan”,收入30,支出10,并将帐户名称“Zhangsan”,该帐户收入额和支出额及该账户的余额输出到控制台。
【样例输出】
Zhangsan, income: 30*, outcome: 10*, balance: 20*.
【评分标准】
输出正确
代码如下:
public class Homework_5 {
public static void main(String[] args){
AccountBook accountBook = new AccountBook();
accountBook.setAccountName("Zhangsan");
accountBook.setIncome(30);
accountBook.setOutcome(10);
accountBook.print();
}
}
class AccountBook{
String accountName;
double income;
double outcome;
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public void setIncome(double income) {
this.income = income;
}
public void setOutcome(double outcome) {
this.outcome = outcome;
}
public double compute() {
double balance = income-outcome;
return balance;
}
public void print(){
System.out.print(accountName+", income: "+(int)income+"*, outcome: "+(int)outcome+"*, balance: "+(int)compute()+"*.");
//Zhangsan, income: 30*, outcome: 10*, balance: 20*.
}
}
6. 内切圆
【问题描述】创建圆类,有一个属性半径,创建长方形类,有两个属性长和宽,分别设计合适的构造方法用于生成对象,在长方形类中创建方法,判断一个圆是否能放在这个长方形内(提示,该方法的参数类型为圆类),创建测试类,输入3个float类型的数,第一个为圆对象的半径,第二个和第三个为长方形对象的长和宽,调用长方形对象方法,判断圆是否能放在长方形内,如果是输出true,否则输出false。要按照题目要求设计三个类,生成两个对象,并调用相应方法,未生成对象不得分。
【输入形式】圆的半径,长方形长和宽
【输出形式】判断结果
【样例输入】5.0 12.0 14.0
【样例输出】true
【样例说明】
【评分标准】结果正确满分
代码如下:
import java.util.Scanner;
public class Homework_6 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
Round round = new Round();
Rectangle rectangle = new Rectangle();
round.setRadius(sc.nextFloat());
rectangle.setLength(sc.nextFloat());
rectangle.setWidth(sc.nextFloat());
System.out.print(rectangle.isInscribe(round));
}
}
class Round{
private float radius;
public void setRadius(float radius) {
this.radius = radius;
}
public float getRadius() {
return radius;
}
}
class Rectangle{
private float length;
private float width;
public void setLength(float length) {
this.length = length;
}
public void setWidth(float width) {
this.width = width;
}
public Boolean isInscribe(Round round){
return round.getRadius()*2 <= length && round.getRadius()*2 <= width;
}
}
程序片段编程题
1. 补全计算体积的重构方法
【问题描述】请根据已知的程序代码,补全类BodyVolume的重构方法getVolume(),显示球体和圆柱体的体积。
【输入形式】无
【输出形式】
Ball Volume=3140.0
Cylinder Volume=6280.0
【样例输入】
【样例输出】
【样例说明】
【评分标准】输出正确,满分
答案如下:
2. 显示工人信息
【问题描述】请根据已知的程序代码,补全类Worker,增加显示语句显示工人信息。
【输入形式】无
【输出形式】
name=wang
age=40
salary=3800.0
level=1
【样例输入】
【样例输出】
【样例说明】
【评分标准】输出正确,满分
答案如下:
博主java萌新,有问题可评论区共同交流学习,欢迎大家交流awa