Java习题(二)

一、选择题(共30题,单选每题1.5分,多选每题2分少选错选不得分,共50分)
1、【单选题】
(单选题)在Java中,下面代码段运行后,a、b、c的值分别为()。
int a, b, c;
a = 1;
b = 2;
c = (a + b > 3 ? a++ : b++);
A.1,3,2
B.1,2,3
C.2,3,2
D.2,3,3
【正确答案】A
【答案解析】此题目考查的是Java中的算术运算符和三目运算符。 本题中计算a+b>3的值为false,所以c的值为冒号后的b++,而b++的值为2,所以c的值为2,而b++时b会自增1变为3,而a的值并没有改变。所以a的值为1,b的值为3,c的值为2,本题正确选项为A。

2、【单选题】
(单选题)在Java语言中,下列关于类的继承的描述,正确的是()。
A.一个类可以继承多个父类
B.一个类可以具有多个子类
C.子类可以使用父类的所有方法
D.子类一定比父类有更多的成员方法
【正确答案】B
【答案解析】此题目考查的是Java中的继承。 在Java语言中,一个类只能继承一个父类,所以选项A是错误的。子类不可以使用父类中的私有private方法,所以选项C是错误的,子类中如果不扩展父类的方法,则子类不会包含比父类更多的成员方法,所以选项D是错误的。 本题正确选项为B。
    
3、【单选题】
(单选题)在Java中, 关于继承的说法正确的是()。
A.子类只继承同包父类public的属性和方法
B.子类只继承同包父类的方法,而不继承属性
C.子类将继承同包父类的非私有属性和方法
D.子类将继承同包父类的所有属性和方法
【正确答案】C
【答案解析】此题目考查的是Java中的继承。 在Java语言中,子类既能继承父类的方法,也能继承父类的属性,所以选项B是错误的。子类可以继承父类的非私有的属性和方法。所以选项A和D是错误的。本题正确选项为C。
 
4、【单选题】
(单选题)在Java中,System.out.println(“5”+2);的输出结果是()。
A.2
B.5
C.7
D.52
【正确答案】D
【答案解析】此题目考查的是Java中的字符串连接运算符。 在Java语言中,在+两边,只要有字符串,则执行得是字符串的连接,所以本题正确选项为D。
 
5、【单选题】
(单选题)下列关于修饰符混用的说法,错误的是( )
A.abstract 不能与 final 并列修饰同一个类
B.abstract 类中可以有 private 的成员
C.abstract 方法可以放在 abstract 类或接口中
D.static 方法中能直接使用非 static 的属性
【正确答案】D
【答案解析】静态方法中不能引用其外部的非静态成员。
  
6、【单选题】
(单选题)关键字abstract可以和下列( )关键字一起使用
A.final
B.private
C.public
D.static
【正确答案】C
【答案解析】本题考查abstract关键字 选项A错误,抽象方法必须被覆盖 ,而Final后面的方法无法被覆盖 选项B错误,抽象方法必须被覆盖,私有的方法无法被覆盖 因为子类不可见 选项C正确。 选项D错误,静态可以直接被类名调用,调用抽象方法就没什么意义
 
7、【单选题】
(单选题)分析如下Java代码,如果想在控制台上输出"B类的test()方法",
则在1处应填入( )。
class A {
public void test() {
System.out.println(“A类的test()方法”);
}
}
class B extends A {
public void test() {
System.out.println(“B类的test()方法”);
}
public static void main(String args[]) {
// 1
}
}
A.
A a = new B();
a.test();
B.
A a = new A();
a.test();
C.
B b = new A();
b.test();
D.
B.test();
【正确答案】A
【答案解析】本题考查面向对象的特性之一多态。 实现多态的条件是继承和重写,定义父类型的引用指向子类的对象 本题中类B继承了类A,子类中重写了父类的方法test()。 选项A,在继承和重写的前提下,父类A类型的引用变量a指向了子类 B创建的对象。a.test(),会调用子类中的test()方法,会满足题目要求 选项A正确。
 
 
8、【单选题】
(单选题)以下程序运行结果是:
class Demo {
int x;
public static void main(String[] args) {
Demo d = new Demo();
d.x = 8;
show(d);
System.out.println(“x=”+d.x);
}
public static void show(Demo d) {
d.x = 7;
}
}
A.x=8
B.会出现语法编译错误
C.x=7
D.以上都不对
【正确答案】C
【答案解析】本题考查调用带有引用类型的参数 调用带有引用类型的参数,传递的是对象的引用,方法中操作该参数,操作的 是传递到该方法中的具体对象。 本题目中,创建一个对象,变量d存储了该对象在内存中的地址信息,通过 d.x = 8,修改了该对象的x值,然后调用show()方法,将该引用传递给show方法 show()方法中,再次修改了该对象的x值为7,所以最后运行结果x=7 选项C正确
 
9、【单选题】
(单选题)在下面程序的第 7 行补充上下列哪个方法,会导致在编译过程中发生
错误( )

  1. class Super{
  2. public float getNum(){
  3.  return 3.0f;
    
  4. }
  5. }
  6. public class Sub extends Super{
  7. // TODO …
  8. }

A.public float getNum(){retun 4.0f;}
B.public void getNum(){}
C.public void getNum(double d){}
D.public double getNum(float d){retun 4.0f;}
【正确答案】B
【答案解析】方法重写、重载的问题。 重写要求方法签名完全相同,返回值类型如果是基本类型或无返回值时必须一致。重载要求方法名相同且参数列表必须不同,与返回值类型无关
 
10、【单选题】
(单选题)Java代码的运行结果是( )。
class Account {
private String name; // 名字
private int state; // 账号状态
private String idCard; // 身份证号
public void Account() {
name = “李强”;
state = 0;
idCard = “109…”;
System.out.println(“执行构造方法。”);}
public void show() {
System.out.println
(“账务账号的名字是” + name + “,状态是”
+ state + “,身份证号是” + idCard + “。”); }
public static void main(String[] args) {
Account acc = new Account();
acc.show();}
}
A.账务账号的名字是null,状态是1,身份证号是109…。
B.执行构造方法。
账务账号的名字是null,状态是1,身份证号是null。
C.账务账号的名字是null,状态是0,身份证号是null。
D.执行构造方法。
账务账号的名字是李强,状态是1,身份证号是109…。
【正确答案】C
【答案解析】本题考查构造方法的特点和作用 构造方法必须与类名相同,没有返回值类型。如果没有定义构造方法,系统会提供无参 的构造方法。构造方法用来初始化成员变量和创建对象。当使用某个构造方法,创建对象的时候,系统会自动调用该构造方法。构造方法在初始化成员变量的时候,给成员变量添加初值。整型为0,字符串类型为null。本题中,定义的Account()方法,与类名相同,但并非是构造方法,只是普通的方法。所以,该类中的成员变量还是默认的初值。 选项C正确
 
11、【单选题】
(单选题)int x = 10;
x = x++ +10;
System.out.println(x);
程序会输出( )。
A.11
B.10
C.21
D.20
【正确答案】D
【答案解析】本题考查后++程序的执行顺序 代码x = x++ + 10;执行顺序如下 1、先执行x+10,结果为20 2、再执行x++,x值为11 3、将第一步结果赋值给x,x=20; 选项D正确
 
12、【单选题】
(单选题)score是一个整数数组,有五个元素,已经正确初始化并赋值,
仔细阅读下面代码,程序运行结果是( )。
int temp = score[0];
for (int index = 1;index < 5;index++) {
if (score[index] < temp) {
temp = score[index];
}
}
A.求最大数
B.求最小数
C.找到数组最后一个元素
D.编译出错
【正确答案】B
【答案解析】本题考查对数组元素遍历的操作 循环体中,依次访问数组中第一个元素之后的每个元素,并与第一个元素比较 如果小于第一个元素,将该元素赋值给变量temp,最后temp的值为数组中 的最小元素 结果为选项B,求最小数。
 
13、【单选题】
(单选题)从下面四段(A,B,C,D)代码中选择出正确的代码段( )
A.
abstract class Name {
private String name;
public abstract boolean isStupidName(String name) {}
}
B.
public class Something {
void doSomething () {
private String s = “”;
int l = s.length();
}
}
C.
public class Something {
public static void main(String[] args) {
Other o = new Other();
new Something().addOne(o);
}
public void addOne(final Other o) {
o.i++;
}
}
class Other {
public int i;
}
D.
public class Something {
public int addOne(final int x) {
return ++x;
}
}

【正确答案】C
【答案解析】A. 抽象方法不能有方法体。B.方法中定义的是局部变量,不能用类成员变量修饰符 private。D.final 修饰为常量,常量的值不能被改变 选项C正确。
 
 
14、【单选题】
(单选题)为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()
A.static void method( )
B.public void method( )
C.final void method( )
D.abstract void method( )

【正确答案】A
【答案解析】1、public修饰的方法可被其它类访问或引用。 2、abstract修饰的方法是抽象方法,抽象方法没有方法体,要使用抽象方法,必须先实现此抽象方法。 3、final修饰的方法不能被继承。 4、static修饰的方法为静态方法,静态方法不需要类的实例化就可以被类直接调用。 故要使得类名AB可以直接调用method()方法,则必须在method()前用static来修饰。。
 
15、【单选题】
(单选题)给出以下代码,请问该程序的运行结果是( )。
public abstract class AbstractClass{
public AbstractClass(){
System.out.printIn(“abstract class constructor!”);
}
public void aMethod(){
System.out.printIn(“method in the abstract class”);
}
}
A.代码编译失败,因为抽象类不能有构造器。
B.代码编译失败,因为当类不存在抽象方法时,是不能定义为抽象类的。
C.代码编译成功,并且因为该类实际上不是抽象类,因此可以被实例化。
D.代码编译成功,但不能被实例化。可以被扩展为非抽象类,子类的构造器可以调用抽象父类的构造器。
【正确答案】D
【答案解析】本题考查抽象类 选项A错误,编译成功,抽象类是可以有构造器的。 选项B错误,编译成功,抽象类中可以没有抽象方法,但是如果一个类中有抽象方法 这个类必须是抽象类。 选项C错误,编译成功,但是只要是抽象类,就不能创建对象。 选项D正确,抽象类不能被实例化,只能由其子类实例化。
  
16、【单选题】
(单选题)如下两个数组定义
char[] arr1 = {‘a’,‘c’,‘d’};
char[] arr2 = {‘g’,‘h’,‘j’};
能将两个数组正确合并的选项是( )。
A.
int length = arr1.length+arr2.length;
char[] arr3 = new char[length];
System.arraycopy(arr1, 0, arr3, 0, arr1.length);
System.arraycopy(arr2, 0, arr3,0, arr2.length);
B.
int length = arr1.length+arr2.length;
char[] arr3 = new char[length];
System.arraycopy(arr1, 0, arr3, 0, arr1.length);
System.arraycopy(arr2, 0, arr3,arr1.length-1, arr2.length);
C.
int length = arr1.length+arr2.length;
char[] arr3 = new char[length];
System.arraycopy(arr1, 0, arr3, 0, arr1.length);
System.arraycopy(arr2, 0, arr3,arr1.length+1, arr2.length);
D.
int length = arr1.length+arr2.length;
char[] arr3 = new char[length];
System.arraycopy(arr1, 0, arr3, 0, arr1.length);
System.arraycopy(arr2, 0, arr3,arr1.length, arr2.length)
【正确答案】D
【答案解析】本题考查数组拷贝的操作 arraycopy(src, srcPos, dest, destPos, length),System类中的方法,用于 拷贝数组元素 各个参数含义如下: src 表示源数组 srcPos 表示从源数组哪个位置拷贝 dest 表示目标数组 destPos 从目标数组哪个位置拷贝 length 表示拷贝源数组元素的个数 选项A中,拷贝数组arr2的时候,覆盖了新数组中前3个元素,错误 选项B中,拷贝数组arr2的时候,覆盖了新数组中第3个元素,错误 选项C中,拷贝数组arr2的时候,从新数组下标4拷贝,拷贝3个元素,会出现越界异常,错误 选项D正确
 
17、【单选题】
(单选题)下列程序输出结果是( )。
class Super {
public static void m1() {
System.out.println(“m1 in Super”); }
public void m2() {
System.out.println(“m2 in Super”); }}
class Sub extends Super {
public static void m1() {
System.out.println(“m1 in Sub”); }
public void m2() {
System.out.println(“m2 in Sub”); }}
public class TestMain {
public static void main(String args[]) {
Super sup = new Sub();
sup.m1();
sup.m2();
Sub sub = (Sub) sup;
sub.m1();
sub.m2(); }}
A.
m1 in Sub
m2 in Sub
m1 in Sub
m2 in Sub
B.
m1 in Super
m2 in Super
m1 in Sub
m2 in Sub
C.
m1 in Sub
m2 in Sub
m1 in Super
m2 in Super
D.
m1 in Super
m2 in Sub
m1 in Sub
m2 in Sub
【正确答案】D
【答案解析】静态方法可以被继承和隐藏 而不能够被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象进行多态调用。 选项D正确
 
18、【单选题】
(单选题)下列程序输出结果是( )。
int x = 3; int y = 4;
boolean bo = x++>3 && ++y>4;
System.out.println(x);
System.out.println(y);
System.out.println(bo);
A.4 4 false
B.3 4 false
C.4 5 false
D.4 5 true
【正确答案】A
【答案解析】本题考查逻辑运算符&&的短路逻辑 对于“&&”,当第一个操作数为false,将不会判断第二个操作数,因为此时无论第二个操作数是什么,最后的结果一定是false。 本题中x++>4,x的值为3,后++,先计算3>4,结果为false,然后x自增,x值为4,整个表达式结果为false,++y>5不再运算,y值不变还是4 所以输出结果为4 4 false 选项A正确
 
 
19、【单选题】
(单选题)将给定的数组变成如下格式的字符串,下列选项中,正确的是( )。
例如:[1,3,4]->"[1,2,3]"
A.
String str = “[”;
for (int x=0; x<=arr.length ; x++){
if(x!=arr.length-1)
str = str + arr[x] + “,”;
else
str = str + arr[x] + “]”;
}
B.
String str = “[”;
for (int x=0; x<arr.length-1 ; x++){
if(x!=arr.length-1)
str = str + arr[x] + “,”;
else
str = str + arr[x] + “]”;
}
C.
String str = “[”;
for (int x=0; x<arr.length ; x++){
if(x!=arr.length-1)
str = str + arr[x] + “,”;
else
str = str + arr[x] + “]”;
}
D.
String str = “[”;
for (int x=0; x<arr.length+1 ; x++){
if(x!=arr.length-1)
str = str + arr[x] + “,”;
else
str = str + arr[x] + “]”;
}
【正确答案】C
【答案解析】该题目考查的是数组元素的遍历,通过for循环, 循环变量作为访问数组元素的下标,即可访问数组中 每一个元素,注意防止出现数组下标越界异常 A,D都会出现越界异常,B会丢失数组元素,C正确
 
20、【单选题】
(单选题)关于以下应用程序的说明,正确的是( )。
1. class StaticClass
2. {
3. static int x=10;
4. static { x+=5;}
5. public static void main(String[] args)
6. {
7. System.out.println(“x=” + x);
8. }
9. static { x/=3;}
10. }
A.4行与9行不能通过编译,因为缺少方法名和返回类型
B.9行不能通过编译,因为只能有一个静态初始化器
C.编译通过,执行结果为:x=5
D.编译通过,执行结果为:x=3
【正确答案】C
【答案解析】本题考查静态代码块 类中可以有多个static语句块,当类加载的时候依次执行 运行该应用程序的时候,先执行static{x+=5;},此时x值是15. 然后执行static{x/=3;},计算结果为x=15/3,结果为5 所以本题选项C正确。
 
21、【多选题】关于abstract,以下选项正确的是( )。
A.abstract 类中必须都是abstract方法
B.abstract 类的子类也可以是abstract类
C.abstract 类不能创建对象,但可以声明引用
D.abstract 方法不能有方法体
【正确答案】B,C,D
【答案解析】本题考查abstract的使用。 选项A错误,abstract类中,可以没有abstract方法 选项B正确,一个abstract类可以继承一个abstract类。 选项C正确,abstract类不能创建对象,但是可以定义一个引用类型变量 选项D正确,abstract修饰的方法,为抽象方法,只有方法的定义,没有 方法的实现,即不能有方法体。

22、【多选题】
(多选题)对于如下类中的study()方法,请选择如下选项中,属于方法重载的是( )
public class Student{
public String study(String content){}
}
A.public void study(int days){}
B.public String study(String content,String title){}
C.public String study(){}
D.public void study(String title){}
【正确答案】A,B,C
【答案解析】本题考查方法的重载 方法的重载必须满足方法名相同,参数不同(个数或类型不同),与方法的返回类型无关,本题四个选项,方法名都满足,D选项会报出重复的方法错误不是重载 选项ABC都正确

23、【多选题】
(多选题)下列说法错误的有( )。
A.在类方法中可用 this 来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
【正确答案】A,C,D
【答案解析】A在类方法中不能使用 this 关键字。C在类方法中可以调用其它类中的类方法。D在类方法中可以通过实例化对象调用实例方法。
 
24、【多选题】
(多选题)给出以下代码,请问该程序的运行结果是什么?
class A{
private int x=0;
static int y=1;
protected int z=2;
}
class B extends A{
void method(){
System.out.println(x);
System.out.println(y);
System.out.println(z);
}
}
下列说法正确的是( )。
A.程序编译错误,因为类B不能访问变量x。
B.程序编译成功,打印输出012。
C.程序编译错误,如果移走System.out.println(x)这条语句,
可使编译程序通过。
D.程序编译错误,因为变量x未在类B中定义。
【正确答案】A,C,D
【答案解析】本题考查java中几种访问修饰符 public:公共的,可以在任何类中访问 protected:受保护的,只能在同一个包中,或子类中访问 default:只能在同一个包中的类中访问 private:私有的,只能在本类中访问的 本题代码中,变量x是私有的,不能在类外部访问,ACD正确。
 
25、【多选题】
(多选题)下列选项中可以实现无限循环的是:()。
A.for(;😉{}
B.while(true){}
C.do{}while(true);
D.for(int i=0;i++){}
【正确答案】A,B,C
【答题时间】2019-10-31 07:48:57
【答案解析】此题考查无限循环的语法。 选项D有编译错误,缺少分号,不满足for循环的基本语法要求

26、【多选题】下列对java中关键字final的说法正确的是( )。
A.关键字final可以修饰类,方法,变量。
B.final修饰的类,称为final类,类中方法必须使用final修饰
C.类中被final修饰的方法,在其子类中不能被重写
D.类中的变量如果使用static和final修饰,必须声明同时初始化,不可被改变
 【正确答案】A,C,D
【答案解析】本题考查final的用法 * final可以修饰类,方法,和变量 * final修饰方法,不可以被重写 * final修饰类,该类不能被继承 * final修饰的变量,为常量,不可改变 选项ACD正确。 选项B错误,final的类中,没有对方法是否final的限定。

27、【多选题】
(多选题)下列关于do…while循环说法正确的是:
A.do…while循环,循环体至少执行一次
B.do…while循环和while循环只是语法不同,没区别
C.do…while循环先执行循环体,再执行boolean表达式,如果为true再执行循环体
D.以上说法都正确
【正确答案】A,C
【答案解析】本题考查do…while循环的用法和while循环的区别。 while和do…while的区别如下: while循环先判断再执行; do…while循环先执行一次循环体,再判断。 当初始条件不满足循环条件时,while循环一次都不会执行; do…while循环不管任何情况都至少执行一次,所以选项AC正确
 
28、【多选题】
(多选题)如下变量的定义,double d = 1.5;int x=1,y=2,z=3;则正确的switch语句是( )
A.
switch((int)d){
case 1:System.out.println(x);break;
case 2:System.out.println(y);break;
}
B.
switch(d){
case 1.5:System.out.println(x);break;
case 2.0:System.out.println(y);break;
}
C.
switch(x+y){
case 1:System.out.println(x);break;
case 2:System.out.println(y);break;
}
D.
switch(x+y){
case 1:System.out.println(x);break;
case z:System.out.println(y);break;
}
【正确答案】A,C
【答案解析】本题考查switch结构的用法 switch语句中,表达式结果类型为byte,short,int,char,jdk1.7之后支持String类型 本题中选项B,变量d类型是double类型,错误。 case后必须使用常量,选项D中使用变量z,作为case选项,错误 选项A,将d强制转换成int类型符合语法要求 正确 选项C, x+y结果为int类型,case后都使用常量,满足语法要求,正确 所以正确答案AC
 
29、【多选题】
(多选题)下列程序中不会出现编译错误的是( )
A.
short s1 = 3;
short s2 = 5;
s1 += s2;
B.
short s1 = 3;
short s2 = 5;
s1 = s1+s2;
C.
short s1 = 3;
short s2 = 5;
s1 = s1 * s2;
D.
short s1 = 3;
short s2 = 5;
s1 = s2 ;
【正确答案】A,D
【答案解析】本题考查扩展赋值运算符。 Java的扩展赋值运算符,+=,-=,
=,/=, %= x+=y等价于x=x+y,其他同理。 除了以上语法现象外,使用扩展赋值运算符运算的时候,内部隐含强制转换。 如果出现需要类型转换,扩展赋值运算符直接进行转换。 选项B C都出现相同错误,计算结果都是int类型,都需要从int类型强制转换到short类型 选项AD都使用扩展赋值运算符运算,自动强制转换 AD正确
  
30、【多选题】
循环统计1到100之间能被7整除的整数的个数,
代码输出正确的是:()。
A.
int y = 1;
int count = 0;
while(y<=100){
if(y/70)
count++;
y++;
}
System.out.println(count);
B.
int y = 1;
int count = 0;
while(y<=100){
if(y%7
0)
count++;
y++;
}
System.out.println(count);
C.
int count = 0;
for(int i=1;i<=100;i++){
if(i%70)
count++;
}
System.out.println(count);
D.
int count = 0;
for(int i=1;i<=100;i++){
if(i/7
0)
count++;
}
System.out.println(count);
【正确答案】B,C
【答案解析】题目要求7的整数倍,所以应该选择模的运算 A,D选项都是除的运算

二、填空简答题

1、下列for循环执行结束后,输出结果是a d c d c
int y = 1;
for(System.out.println(“a”); y < 3;System.out.println(“c”)){
System.out.println(“d”);
y++;
}
【答案解析】for 循环中,使用三个表达式控制循环的执行,该题目中的循环比较特殊,第一和第三表达式分别为输出语句所替代,但是不影响for循环的执行流程。执行流程如下: 1、计算表达式1的值 2、计算表达式2的值,如果为true则执行循环体,否则退出循环 3、执行循环体 4、执行表达式3 5、计算表达式2的值,如果为true则执行循环体,否则退出循环 6、如此循环往复

2、阅读下列程序:
public interface Action{
public void execute();
}
public class Main{
public static void main(String args[]){
Action action = //1;
action.execute();
}
}
注释1处可以添加的正确的代码是
new Action(){
public void execute(){}
}
【答案解析】本题考查如何定义一个匿名内部类。
如果在一段程序中需要创建一个类的对象
(通常这个类需要实现某个接口或继承某个类),
而且对象创建后,这个类的价值就不存在了,
这个类可以不必命名,称之为匿名内部类。
格式如下: SuperType obj = new SuperType(){};

3、列出Java中所有的基本数据类型,并说明这些数据类型占用的字节数?
java的原始数据类型,也可以叫java的基本数据类型,一共就8个,分别是:byte、short、int、long、boolean、char、float、double
byte 1个字节,boolean 1个字节,char 2个字节,short 2个字节,int 4个字节,long 8个字节,float 4个字节,double 8个字节

4、Overload(重载)和Override(重写)的区别?
1)重写(override):
1.1)发生在父子类中,方法名相同,参数列表相同,方法体不同。
1.2)遵循“运行期绑定” ,看对象类型来调用方法

2)重载(overload):
2.1)发生在一个类中,方法名相同,参数列表不同,方法体不同。
2.2)遵循“编译期绑定”,看参数类型来绑定方法。

5、访问权限修饰符有几种,它们之间有什么区别?
在这里插入图片描述

6、&和&&、|和||的区别?
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作.。

三、程序代码题

public class Student {
String sNO,sName,sSex;
int sAge,sJava;
public Student(String XH,String XM,String XB,int NL,int XF) {
   super();
   sNO=XH;
   sName=XM;
   sSex=XB;
   sAge=NL;
   sJava=XF;   
}
public String getNO() {
return sNO;
}
public String getName() {
return sName;
}
public String getSex() {
return sSex;
}
public int getAge() {
return sAge;
}
public int getJava() {
return sJava;
}
public static void main(String[] args) {
Student[] st=new Student[5];
st[0]=new Student("09zc01","张三","男",19,94);
st[1]=new Student("09zc02","李四","男",20,85);
st[2]=new Student("09zc03","王五","女",18,96);
st[3]=new Student("09zc04","赵六","男",17,90);
st[4]=new Student("09zc05","杨七","女",21,88);
    int max=0,min=100,sum=0;
    System.out.println("    学生信息:");
    for (int i=0;i<st.length;i++) {
    if (st[i].sJava < min)
    min=st[i].sJava;
    if (st[i].sJava > max)
    max=st[i].sJava;
    sum=sum+st[i].sJava;
    System.out.println("学生编号:"+st[i].getNO()+",  姓名:"+st[i].getName()+",  性别:"+st[i].getSex()+",  年龄:"+st[i].getAge()+",  Java课学分:"+st[i].getJava());
    }
    System.out.println();
    System.out.println("    共有学生:"+st.length+",  平均成绩:"+sum/st.length);
    System.out.println("    最小学分:"+min+",  最大学分:"+max);
}
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值