一、选择题
(1)以下说法错误的是(C)
A.数组是一个对象
B.数组不是一个原生类
C.数组的大小可以任意改变
D.在Java中,数组存储在堆中连续的内存空间中
数组不是一个原生类,数组是通过基本类型来定义的
int[] arr=new int[100];
(2)下面这段代码的执行结果(22,34,17)
public class Test4 {
public static void main(String[] args) {
System.out.println(new B().getValue());
}
static class A{
protected int value;
public A(int v){
setValue(v);
}
public void setValue(int value){
this.value=value;
}
public int getValue(){
try{
value++;
return value;
}catch (Exception e){
System.out.println(e.toString());
}finally {
this.setValue(value);
System.out.println(value);
}
return value;
}
}
static class B extends A{
public B(){
super(5);
setValue(getValue()-3) ;
}
public void setValue(int value){
super.setValue(2*value);
}
}
}
(3)如何跳出Array 的for-each循环(A)
A.break
B.return true
C.return false
D.以上说法都不对
(4)一个以".java"为后缀的源文件(C)
A.只能包含一个类,类名必须与文件名相同
B.只能包含与文件名相同的类以及其中的内部类
C.只能有一个与文件名相同的类,可以包含其他类
D.可以包含任意类
.java后缀的源文件可以包含多个类,故A错误
不一定非是内部类,也可以是一个普通的类,B错误
(5)以下代码cnt值为(5)
如果一个类中的有多个静态代码块,那么定义在前面的静态代码块先执行,定义在后面的静态代码块后执行
二、编程题
2.1 两种排列方式
2.1.1 题目
2.1.2 题解
代码:
package newcoder;
import java.util.Scanner;
public class Test2 {
public static boolean process(String str1,String str2){
if(str1==null && str2==null) return true;
if(str1==null || str2==null) return false;
int i=0;
int j=0;
while(i<str1.length() && j<str2.length()){
if(str1.charAt(i)>str2.charAt(j)){
return false;
} else if(str1.charAt(i)<str2.charAt(j)){
return true;
}else {
i++;
j++;
}
}
if(i==str1.length()){
return true;
}else {
return false;
}
}
public static boolean isLexi(String[] strs){
for(int i=0;i<strs.length-1;i++){
if(!process(strs[i],strs[i+1])){
return false;
}
}
return true;
}
public static boolean isLengths(String[] strs){
for(int i=0;i<strs.length-1;i++){
if(strs[i].length()>strs[i+1].length()){
return false;
}
}
return true;
}
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int n=Integer.valueOf(scanner.nextLine());
String[] strs=new String[n];
if(n==0 ||strs==null ||strs.length==0) System.out.println("both");
for(int i=0;i<n;i++){
strs[i]=scanner.nextLine();
}
if(isLengths(strs) && isLexi(strs)){
System.out.println("both");
}else if(isLengths(strs)){
System.out.println("lengths");
}else if(isLexi(strs)){
System.out.println("lexicographically");
}else {
System.out.println("none");
}
}
}
【注意】: