1. 单选题样例
l 如果s代表一个串,参看下列代码
String s2 = "";
for(int i=s.length()-1; i>=0; i--){
s2 = s.charAt(i) + s2;
}
请判断执行这段代码后,s2的状态:
A) 把s串反转过来
B) 与s串相同
C) 对s串的长度加倍
D) 编译错误
答案:B
l 下列对于this引用叙述正确的是:
A) this是当前对象,整个对象由Java虚拟机在刚开始的时候就创建了。
B) this 是形参,它在某个实例方法调用前创建,调用后释放。
C) this 是隐含存储在对象中的一个特殊的引用。
D) this 是隐含的变量,类似于c语言中的全局变量。
答案: B
2. 多选题样例
l 下列关于java数组论述,正确的是:
A) 定义一个Java的多维数组变量,实际上是定义了将会指向数组对象的引用,该数组对象所包含的元素又将是另一个数组对象的引用。
B) int[][] x = new int[3][5]; 所定义的二维数组对象含有15个int型元素。
C) String[] x = {"o", "k","ok"}; 所创建的数组对象含有3个串对象。
D) int[] x = {0}; 与 int[] x = new int[1]; 的结果是完全等价的。
E) int[][] x = {{1},{1,2},{1,2,3},new int[1]}; 是正确的语句。
答案:A, D, E
l 下列叙述正确的是:
A) 方法中可以定义另一个方法,称为:内部方法。
B) 类中可以定义另一个类,称为内部类。
C) 接口中可以定义另一个接口,称为:内部接口。
D) 对象中可以包含另一个对象。
E) 属性中可以包含另一个属性。
答案:B, C
l 如果int[] x = … 已经指向一个整型数组,我们想把数组中的元素翻转(比如:1,2,3,4,5 变成:5,4,3,2,1),写了如下代码,请完善之:
for(int i=0; i<x.length/2; i++){
int t = x[i];
x[i] = ______________;
______________ = t;
}
答案:两个空都是:x[x.length-1-i]
注意:x[x.length-i-1] 也是对的。
l 假设s是一个型如:"cat223dog456nice25ttt98"的串,其特征是数字与字符交错。我们希望知道这个串中有多少个数字段。假设该串必以字符开始。我们给出了如下代码,请完善之:
boolean old_tag = false; // 表示开始不是数字
boolean tag = false;
int n = 0; // 数字组计数
for(int i=0; i<s.length(); i++){
char c = s.charAt(i);
tag = c>='0' && c<='9'; // 是否为数字
if(____________) n++;
old_tag = tag;
}
答案:!old_tag && tag
注意: tag && (!old_tag) 也对, 类似:tag==true && old_tag == false 这样的描述也对。