每日刷题练习Day1
1.在 Java 中,存放字符串常量的对象属于( B )类对象。
A Character B String C StringBuffer D Vector
StringBuffer不能直接等于一个字符串,需要new
Vector是一个集合类
2.已知如下类定义:
class Base {public Base (){//... }public Base ( int m ){//... }public void fun( int n ){//... }}public class Child extends Base{// member methods}
如下哪句可以正确地加入子类中?( D )
A private void fun( int n ){ //...}
B void fun ( int n ){ //... }
C protected void fun ( int n ) { //... }
D public void fun ( int n ) { //... }
此题意就是想在Child子类里重写父类的func()
重写要满足的条件:
1.方法返回值,方法名,参数列表要相同
2.子类的访问修饰限定符>=父类的访问修饰限定符
访问修饰限定符:private<默认的包访问限定符<protected<public
3.下列选项中属于面向对象设计方法主要特征的是( A )。
A 继承 B 自顶向下 C 模块化 D 逐步求精
面向对象设计方法主要特征: 继承 封装 多态
结构化程序设计原则: 自顶向下 模块化 逐步求精
4.关于下列程序段的输出结果,说法正确的是:( D )
public class MyClass{static int i;public static void main(String args[]){System.out.println(i);}}
A 有错误,变量i没有初始化。 B null C 1 D 0
成员变量没有初始化,默认为0
5.下列代码的执行结果是:( B )
public class Test3{public static void main(String args[]){System.out.println(100%3);System.out.println(100%3.0); }}
A 1和1 B 1和1.0 C 1.0和1 D 1.0和1.0
java可以求小数
6.在基本 JAVA 类型中,如果不明确指定,整数型的默认是 __ 类型,带小数的默认是 __ 类型? ( B )
A int float B int double C long float D long double
整数型的默认是 int 类型,带小数的默认是 double 类型
因为float不是默认的,若想不报错 float f=12.5f
7.方法通常存储在进程中的哪一区( D )
A 堆区 B 栈区 C 全局区 D 方法区
程序运行起来都会跑到JVM
JVM里的区域:Java虚拟机栈、本地方法栈、堆区、方法区、程序计数器
方法本身不占内存,但是像public、void、func这些指令是放到方法区的; f 是放在栈里的
本身方法都是一些指令,所以放在方法区
8.不考虑反射,关于私有访问控制符 private 修饰的成员变量,以下说法正确的是( C )
A 可以三种类所引用:该类自身、与它在同一包中的其他类,在其他包中的该类的子类
B 可以被两种类访问和引用:该类本身、该类的所有子类
C 只能被该类自身所访问和修改
D 只能被同一个包中的类访问
被private 修饰的成员变量,只能在该类自己使用
9.类声明中,声明一个类不能再被继承的关键字是( C )
A public B abstract C final D static
被final修饰的类不能被继承
被abstract修饰的类是抽象类,被继承后还需要重写方法(抽象和非抽象)
被static修饰的类是静态内部类
10.假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?( C )
public class A {public int i;static String s;void method1(){}static void method2(){}}
A System.out.println(a.i); B a.method1(); C A.method1(); D A.method2();
成员变量可以直接通过对象a访问
成员方法可以直接通过对象a访问
通过类名A能直接访问的必须是静态的
标题:组队竞赛
import java.util.*; public class Main{public static void main(String[]args){Scanner scan=new Scanner(System.in);while(scan.hasNextInt()){//处理循环输入int n=scan.nextInt();//n个队伍int[]array=new int[3*n];long sum=0;for(int i=0;i<3*n;i++){array[i]=scan.nextInt();//把所有的值都放在数组里}Arrays.sort(array);//排序数组for(int i=0;i<n;i++){sum+=array[array.length-2*(i+1)];//找到每个队伍的最大中间值