单选题:(每道题目2分)
1. String类中的getBytes()方法的作用是( C )
a) 将整数变成字符串
b) 将字符串变成字符数组
c) 将字符串变成字节数组
d) 获取中字符串中字符的个数
2. 对字符串的说法正确的是( d )
a) 字符串是基本数据类型
b) 字符串值存储在栈内存中
c) 字符串值初始化后可以被改变
d) 字符串值一旦初始化就不会被改变
基本类型:byte short int long float double char Boolean
引用类型:类,接口,数组
3. 将字符串转成字符数组的方法是( b )
a) toString()
b) toCharArray()
c) toUpperCase()
d) toLowerCase()
4. 向字符串缓冲区中追加字符串,使用的方法是( c )
a) length()
b) delete()
c) append()
d) toString()
字符串缓冲区类:StringBuffer/StringBuilder
5. 关于StringBuffer说法正确的是( a )
a) StringBuffer是字符串缓冲区类,空间是可以发生改变的
b) StringBuffer和String是一样的
c) StringBuffer只能添加同一种类型的元素
d) StringBuffer没有反转的功能 //public StringBuffer reverse()反转
6. 下面哪个程序的运行结果是true( c )
a) System.out.println(“abc”.equals(“Abc”)); //false
b) System.out.println(“”.equals(null)); //false
c) System.out.println(“abc”==”ab”+”c”); //==比较字符串的内容
d) System.out.println(“”.equalsIgnoreCase(null)); //false
//==的作用:a:基本类型 比较的是数据值 b:引用类型 比较的是地址值
equals:比较内容,严格区分大小写
equalsIgnoreCase: 比较内容,忽略大小写
7. 能切割字符串的方法是( c )
a) indexOf()
b) substring()
c) split()
d) trim()
8. 截取字符串的方法是( d )
a) replace()
b) toString()
c) substr()
d) substring()
9. 下面程序运行的结果是( C )
String str = “abcdefg”;
str.substring(0,2);
System.out.println(str);
a) ab
b) abc
c) abcdefg
d) 出现下标越界异常
10. 下面程序的运行结果是( c )
public stati void main(String[]args){
StringBuffer sb = newStringBuffer();
sb.append("qq").append("ww");
show(sb,"ss");
System.out.println(sb.length());
}
static void show(StringBuffersb,String str){
sb.append(str);
}
a) 4
b) 2
c) 6
d) 0
11. 下面程序运行的结果是( d )
String str1= “1”, str2=”2”;
if(str1==str2)
System.out.println(“ABC”);
else if(str1<str2) //编译出错
System.out.println(“DEF”);
else
System.out.println(“GHJ”);
a) ABC
b) DEF
c) GHJ
d) 编译失败
12. 关于Integer类中的静态方法parseInt()方法说法正确的是( b )
a) 将小数转换成整数
b) 将数字格式的字符串转成整数
c) parseInt()方法永远不会抛出异常
d) 将单个字符转成整数
13. 下面代码运行的结果是( c )
Integer x = 3 ;
x = x + 3; //自动拆装箱
System.out.println(x);
a) 编译失败
b) x3
c) 6
d) Null
14. System.exit()的作用是( b )
a) 退出当前的操作系统
b) 退出当前JVM
c) 获取操作系统属性
d) 获取JVM的属性
15. 可以获取绝对值的方法是( d )
a) Math.ceil() //向上取整
b) Math.floor() //向下取整
c) Math.pow() // pow(double a,double b) a的b次方
d) Math.abs()
16. Math.random()说法正确的是( C )
a) 返回一个不确定的整数
b) 返回0或是1
c) 返回一个随机的double类型数,该数大于等于0.0小于1.0
d) 返回一个随机的int类型数,该数大于等于0.0小于1.0
17. Date类中,哪个方法可以返回当前日期对象的毫秒值( b )
a) getSeconds()
b) getTime()
c) getDay()
d) getDate()
18. DateFormat类中的parse()方法描述正确的是( c )
a) 将毫秒值转成日期对象
b) 格式化日期对象
c) 将字符串转成日期对象
d) 将日期对象转成字符串
19. 下面程序的运行结果是( d )
String s1 = “abc”;
String s2 = new String(“abc”);
System.out.println(s1==s2); //比较的是地址值
String s3 = “你好吗”;
String s4 =”你”;
String s5 =”好吗”;
System.out.println(s3==(s4+s5))
a) true true
b) false true
c) true flase
d) false false
多选题:(每道题目3分)
20. StringBuffer类中的append()方法描述正确的是( a,c )
a) 向缓冲区追加字符数据
b) 将缓冲区中的字符串删除
c) append()方法返回值类型是StringBuffer类型
d) append()方法返回值类型是String类型
21. 关于String类的indexOf说法不正确的是( c,d )
a) 返回指定字符在字符串中第一次出现的索引
b) 返回指定子字符串在此字符串第一次出现的索引
c) 返回指定字符在字符串中最后一次出现的索引
d) 返回指定子字符串在此字符串最后一次出现的索引
22. 下面所有描述String类中equals()方法正确的是( d )
a) equals()方式是覆盖Object类中的equals()方法
b) equals()比较字符串中的内容,区分大小写
c) equals()方法的的返回值是布尔类型
d) 以上说法都不正确
23. 关于null和””说法正确的是( a b d )
a) null是常量(空常量)
b) “”是字符串对象
c) null可以调用方法
d) “”可以调用方法
24. 下面关于代码String str = new String(“abc”);描述正确的是( b, c )
a) 只创建了一个对象
b) 创建了两个对象,一个是new String()对象,一个是”abc”对象
c) str.equals(“abc”);将返回true
d) str.equals(“abc”);将返回false
简答题目:(每道题目3分)
26:String类和StringBuffer类的区别是什么?
String内容不可变
StringBuffer 内容可变,
27:通过Math类的哪一个方法可以获取一个随机数?如果想要获取的数据是1-100之间的该怎么办?
Random()可以获取一个[0,1)的随机数,
获取1-100之间的随机数:Math.random()*100+1
28:数组有没有length()这个方法?String有没有length()这个方法?
数组没有length()方法,有length属性,
String 有length()方法
29:”==”和equals()方法的区别是什么?
“==”:基本数据类型比较的是数据值;引用类型比较的是地址值
equals():默认比较的是对象的地址值。重写后,就按照重写后的规则进行比较。
30:冒泡排序,选择排序的原理分别是什么?
冒泡排序:相邻两个元素进行比较,大的放后面,小的放前面,第一次比较完毕,最大值出现在最大索引处;
选择排序:从第一个元素开始,依次和后面的每一个元素进行比较,如果后一个元素比第一个元素小,则交换他两的值,第一次比较完,最小值出现在最小索引的位置;然后再从第二个元素的位置开始,依次和后面的元素进行比较。
编程题:(每道题目10分 题目如果没有说要写测试,就直接写一个功能即可)
31:请自己实现把一个int[]数组转换成字符串的功能。
package com.practice3;
import java.util.Arrays;
//把数组转为字符串 public class ArrayDemo { public static void main(String[] args) { int[] arr={2,33,77,88,97}; //System.out.println(intArrToString(arr)); System.out.println(Arrays.toString(arr)); }
// private static String intArrToString(int[]arr) { // StringBuffer sb = new StringBuffer(); // for (int i = 0; i < arr.length; i++) { // sb.append(arr[i]); // } // String s = sb.toString(); // return s; // // } } |
32:请自己实现一个排序算法的代码。(int[]数组。冒泡或者选择都行)。
//选择排序 public static void selectSort(int[] arr) { for(int x=0; x<arr.length-1; x++) { for(int y=x+1; y<arr.length; y++) { if(arr[y] < arr[x]) { int temp = arr[x]; arr[x] = arr[y]; arr[y] = temp; } } } } //用数组工具类中的sort()方法 public static void sort(int[] arr){ return Arrays.sort(arr); }
|
33:请在main方法里面实现统计一个字符串的英文大写字符,英文小写字符及数字字符分别有多少个的程序代码,并输出统计结果。
package com.practice3; public class CountNumber { public static void main(String[] args) { String s="zvbxghGHGHdf33678hFF216Y"; char[] ch = s.toCharArray(); int numberCount=0; int lowerCount=0; int upperCount=0; for (inti = 0; i < ch.length; i++) { if(Character.isDigit(ch[i])){ numberCount++; }else if(Character.isLowerCase(ch[i])){ lowerCount++; }else if(Character.isUpperCase(ch[i])){ upperCount++; } } System.out.println("数字的个数为:"+numberCount); System.out.println("小写字母的个数为:"+lowerCount); System.out.println("大写字母的个数为:"+upperCount); } } |