一、 单选题
1. int a=1; byte b=3; b=a+b; System.out.println(b); 以上代码执行的结果是( )
A、4
B、3
C、运行出错
D、编译时有错
[解析]:D b是byte类型=int类型a+byte类型b 需求接收是byte传入int类型不匹配
2. 不能构成循环的语句是( )
A、for 语句
B、while 语句
C、switch 语句
D、do while 语句
[解析]:C swith选择结构
3. 请问数组 int[] num = {1,-1,-56,56,12};,索引为 3 的元素值是?
A、1
B、-1
C、-56
D、56
[解析]:D 从开始
4. 有如下程序段:则表达式 a == b 与 s == s2 的结果分别是:( )。
A、true 与 true
B、false 与 true
C、true 与 false
D、false 与 false
[解析]:B 前面有这道解析
5. 下面代码中会报错的是第几行代码
A、第一行
B、第二行
C、第三行
D、第四行
[解析]:C c是byte类型=int类型i+byte类型b 需求接收是byte传入int类型不匹配
6. 下面数组定义错误的是()
A、int [] arr ={23,45,65,78,89};
B、int [] arr=new int[10] ;
C、int [] arr=new int[4]{3,4,5,6};
D、int [] arr={‘a’, 23 , 45 , 6};
[解析]:C 动态生命和静态声明不能同时都进行使用
7. 已知: int[] a =new int[100]; 请问以下给出的数组元素中会发生 ArrayIndexOutOfBoundsException 异常
A、a[0]
B、a[1]
C、a[99]
D、a[100]
[解析]:D 索引范围是0-99,100超出访问范围
8. 下面代码段中:运行结果是:( )
A、String
B、不知道
C、编译出错
D、运行出错
[解析]:A 这个应该没什么问题
9. ArrayList 的初始化内容如下,下面可以删除 list 集合中所有的”b”的代码是()
A、for (int i = 0; i < list.size (); i++) { if (list.get (i).equals ("b")) { list.remove (i); } }
B、for (int i = list.size ()-1; i > 0; i--) { if (list.get (i).equals ("b")) { list.remove (i); } }
C、list.remove ("b");
D、以上的代码都不能成功删除 list 集合中所有的”b”;
[解析]:B 一般是逆序删除到0,但是吧这个出题人是知道0号索引不为"b"所以大于0.我都想选D...
10. 下列代码,输出结果是?
A、李小璐
B、贾乃亮
C、高圆圆
D、赵又廷
[解析]:D 返回删除的字符串,索引位置也是从0开始
选B 我以为选项和上面添加顺序一样没细看
11. 在 Java 中,关于构造方法,下列说法错误的是:()
A、构造方法的名称必须与类名相同
B、构造方法可以是有参的
C、 构造方法不可以重载
D、构造方法没有返回值
[解析]:C 构造方法可以重载但是不能重写因为重写是将父类有的方法重新写,但是构造方法不能被继承.
12. 以下哪个是通过下标向 String 对象获取对应位置字符的方法( )
A、get()
B、char()
C、getChar()
D、charAt()
[解析]:D
13. 下列 test 类中的变量 r 的最后结果为
A、31
B、30
C、28
D、29
[解析]:A ++x先运算变为11然后y--先用后算为20,相加31
14. 以下代码打印出的结果是
A、itheima>>>1011;
B、info>>>1011;
C、info>>>21;
D、 itheima>>>21
[解析]D 这个题很容易迷惑,因为有个a++容易忽视,所以a=11>b=10走true,info为"itheima",+">>>"其实不是右移运算符就是个字符串,然后加起来后面的21即可.
15. 下面关于方法的参数说法不正确的是()
A、形式参数是在方法定义时的参数;
B、实际参数是方法调用时的参数;
C、方法调用时,形参实参之间的个数、顺序、类型都需要一致;
D、方法调用时,实参的变量名必须和形参的变量名一致;
[解析]D 做过不解释
二、 多选题
16. 执行下列代码后,哪个结论是正确的 String[] s=new String[10];
A、s[9] 为 null;
B、s[10] 为 “”;
C、s[0] 为 未定义
D、 s.length 为 10
解析:AD
A_String[] s=new String[10];
//定义一个字符串数组,10个元素,但是元素中没有赋值
//对于数组中元素是String类型,如果没有赋值 元素的初始值都是null
B_ s[10] 下标越界
C_ s[0] 定义了,初始值为null
D_ s.length为10 正确 数组是调用属性 初始化多大就返回多大 和集合不一样 集合的话就要看里面存着多少
17. 下面语句会造成数组 new int[10]越界异常:ArrayIndexOutOfBoundsException 的是()
A、a[0]+=9;
B、a[9]=10;
C、for(int i=0;i<=10;i++){a[i]++;}
D、a[a.length]
解析:CD
A_ a[0]+=9; <___> a[0]=a[0]+9;
B_ a[9] =10; 将最后一个元素赋值为10
C_ i<=10 发生问题
如果i的取值为10 ,出现 a[10]++; 报错
D_ a[a.length]
a.length取值为10 a[10] 越界
18. 下列数据中,不能存入到 ArrayList 中的是?
A、int
B、String
C、char
D、double
18解析:ACD
ArrayList中存储数据的类型只能是引用类型
int char double都是属于基本类型
19. 以下是循环的语句是
A、for 语句
B、while 语句
C、do while 语句
D、switch 语句
解析:送分
20. 下面哪些函数是 public void aMethod(){...}的重载函数?()
A、void getSum(int a ){...}
B、public int aMethod(int a, float b){...}
C、public int aMethod (){...}
D、private float aMethod (int m){…}
解析:BD
重载方法的概念
同一个类中,方法名一致,但是方法的参数的个数,类型或者顺序不一致
三、 代码题
21. 商场根据消费金额不同,折扣也不同,折扣的规则如下(P 代表消费的总金额):
P>=2000 7 折,1000<=P<2000 8 折,500<=P<1000 9.5 折,0<=P<500 不打折
需求:根据输入的消费金额,输出对应的折扣和折扣前后的金额.
输出格式如下:
import java.util.Scanner; public class Test1 { public static void main(String[] args) { //创建Scanner对象 Scanner sc=new Scanner(System.in); // 输入提示信息 请输入消费金额 System.out.println("请输入消费金额"); int num=sc.nextInt(); //定义一个变量,最终价格 double m=0; //根据打折规则,计算最终价格,输出对应的提示消息 if(num>=0&&num<500){ System.out.println("不打折,金额是:"+num); }else if(num>500&&num<=1000){ m=num*0.95; System.out.println("折扣95折,打折前金额:"+num+",打折后的金额是:"+m); }else if(num>1000&&num<=2000){ m=num*0.8; System.out.println("折扣8折,打折前金额:"+num+",打折后的金额是:"+m); }else if(num>2000){ m=num*0.7; System.out.println("折扣7折,打折前金额:"+num+",打折后的金额是:"+m); }else{ System.out.println("录入金额错误"); } } }
22. 1.定义一个学生类 Student,在类中定义两个属性 name(姓名):String 类型,score(分数):
int 类型,并将其私有化,提供 get/set 方法
2.定义测试类,在测试类中创建三个 Student 对象,第一个对象的属性赋值为 小红,80;
第二个对象的属性赋值为 小明 ,90;第三个对象的属性赋值为 小花,95
3.在测试类中,定义集合,将创建的三个 Student 对象存储到集合中,遍历集合遍历集
合取出三个 Student 对象的分数,计算出三个学生分数的平均值,将结果输出到控制台上
public class Student { private String name;//姓名 private int score;//分数 // getter and setter } public class TestStudent { public static void main(String[] args) { Student s1=new Student(); Student s2=new Student(); Student s3=new Student(); s1.setName("小红"); s1.setScore(80); s2.setName("小明"); s2.setScore(90); s3.setName("小花"); s3.setScore(95); ArrayList<Student> list=new ArrayList<>(); list.add(s1); list.add(s2); list.add(s3); double avg=0; int sum=0; for(int i=0;i<list.size();i++){ Student s=list.get(i); sum+=s.getScore(); } avg=1.0*sum/list.size(); System.out.println("三名学生的平均分是:"+avg); } }
太简单了懒得写了.写完了,这份卷子比较简单.这种题就是记住,集合操作对象,对象操作方法,方法调用属性.