一、选择题(每小题3分,共60分) (1到15为单选,16到20为多选)
1、在创建某类的对象时 应该( C)
A、先声明对象,然后才能使用对象
B、先声明对象,为对象分配内存空间,然后才能使用对象
C、先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
D、以上述说法都不对
2、Java应用程序经过编译后会产生一个以(B)为扩展名的字节码文件
A、.java B、.class C、.exe D、.html
3、已知有数组定义:int MyArray[] = {10,20,30,40,50,60,70,80,90,100},则以下程序段:
int s = 0 ;
for ( int i = 0 ; i < MyArray.length ; i + + )
if ( i % 2 = = 1 )
s =s+ MyArray[i] ;
System.out.println( s );
执行后s的值是(C)
A、200 B、250 C、300 D、350 E、程序编译出错
4、给定以下程序段,如下:
int i=0,j=-1;
switch(i){
case 0:j=1;
case 2:j=2;
default:j=5;
}
System.out.print("j="+j);
编译运行,正确的是( D)
A、j=-1 B、j=1 C、j=2 D、j=5
5、有如下程序段:
String unset=null;
if(unset!=null && unset.length()>5){
System.out.println("Hello Pido! ");
}
则执行以上程序段后,以下选项描述正确的是( D)
A、运行时出现错误 B、编译正确但运行时空指针异常
C、编译时出现空指针异常 D、没有任何错误出现
6、有以下程序段:
int i = 0;
for(;i<100;i++){
if(i==10){break;}
}
System.out.println("i="+i);
则执行后程序的输出结果为( B)
A、i=10 B、10 C、9 D、i=9
7、如下Java程序片段
String a = "abcdefg"; String b = "abcdefg";
System.out.println(a==b);
运行后,该程序段的输出结果是(B )
A、true B、false C、0 D、编译出错
8、分析下面的Java程序段:
class testException{
int sum=0;
public static void main(String args[]){
int n[]={0,1,2,3,4};
for(int i=1;i<=4;i++){
sum=sum+n[i];
}
System.out.println("sum="+sum);
}
}
输出结果将是(D )
A、10 B、sum=10 C、运行时报错 D、编译出错
9、有如下Java程序声明
String s1=new String(“pido”);
String s2=new String(“online”);
String s3=new String("0");
以下选项中能够通过编译的是( A)
A、s3=s1+s2 B、s3=s1&s2 C、s3=s1||s2 D、s3=s1&&s2
10、在单一文件中import、class和package的正确出现顺序是( A)
A、package, import, class B、class, import, package
C、import, package, class D、package, class, import
11、下面的Java变量名既符合规则又符合规范的是( D)。
A、myString B、ab C、$mystring D、MyString
12、阅读下面代码片段,输出结果是(A)。
StringBuffer sb = new StringBuffer("Hello");
String t = " MY";
t = t + " FRIEND";
sb.append(t);
System.out.println(sb.toString().toLowerCase().toLowerCase());
A. my friend hello
B. Hello MY FRIEND
C. 程序报错
D. hello my friend
13、声明s1; String s1 = new String("phenobarbital");
经过下面代码之后,
String s2 = s1.substring(3, s1.indexOf("p"));
s2的值是(D)。
A、null B、"phen" C、"nobarbital" D、程序报错
14、代码执行如下的程序输出的结果是( C)
int num[] ={1,2,3,4,5,6};
int sum=0;
for(int i=0;i
if(num[i]%2=0){
sum=sum+num[i];
}
}
System.out.println(sum);
A、12 B、22 C、编译出错 D、20
15、运行下面这段代码,输出结果是(B)。
public class MyTest {
int x = 30;
public static void main(String args[]){
int x = 20;
MyTest ta = new MyTest();
ta.Method(x);
System.out.print(x);
}
public void Method(int z){
int y = z*z+x;
System.out.print(y);
}
}
A、93030 B、 43020 C、92030 D、 42030
16、以下代码第(BC)行有错误
int[] list = new int[10]; 第1行
StringBuffer sb = new String (""); 第2行
// 产生0-99的随机数 第3行
int num; 第4行
for (int i = 0; i < 10; i++) { 第5行
num = Math.random() * 100; 第6行
list[i] = num; 第7行
sb.append(num + " "); 第8行
} 第9行
A、第1行 B、第2行 C、第6行 D、第8行 E、第5行
17、阅读下面代码,其中说法正确的是(DE)。
public int guessWhat( double arr[ ] ){
double x= 0;
for( int i = 0; i < arr.length; i++ ){
if(x > arr[i]){
x = arr[i];
}
}
return x;
}
A、返回数组最大值的下标
B、返回数组最小值的下标
C、返回数组中的最大值
D、返回数组中的最小值
E、参数可以是int类型的数组
F、参数可以是String类型的数组
18、关于下面代码,说法正确的是(ED)。
public class Test {
int x=10; 第1行
public static void main(String[ ] args1){ 第2行
Test test = new Test(); 第3行
int x = 11; 第4行
if (test.methodA()){ 第5行
x++; 第6行
System.out.println(x); 第7行
} 第8行
} 第9行
public boolean methodA(){ 第10行
System.out.println(x++); 第11行
return true; 第12行
} 第13行
} 第14行
A、第4行有编译错误
B、第5行有编译错误
C、第12行有编译错误
D、运行输出12
E、运行输出10
F、运行输出11
19、关于下面代码,说法正确的是(BD)
String space = " ";
String composite = space +space+ "a" + space +"b"+ space; System.out.println("AB".equalsIgnoreCase(composite.substring(1).trim().toUpperCase()));
A、编译报错
B、输出结果为false
C、输出结果为true
D、其中"AB"是对象
E、其中"AB"不是对象
20、关于类的方法使用下列那些描述是正确的(AEC)
A、在类中调用本类的方法可以直接通过方法名调用。
B、在类中调用本类的方法不可以直接通过方法名调用,必须要通过对象。
C、在类中调用本类的方法可以通过对象.方法名调用。
D、不同类之间方法可以直接通过方法名调用。
E、不同类之间方法可以通过对象.方法名调用。
二、填空题(每空2分,共20分)
1、设x=2.5,a=7,则表达式x+a%3*7的值为_____9.5_____;
2、输入一个正整数,输出该数的阶乘。求整数n的阶乘公式为:n!=12…*n。(n!表示n的阶乘)
System.out.print("输入一个正整数:");
Scanner input = new Scanner(System.in);//省略导入包
int number = input.nextInt();
int result = 1;
for (_________________) {
__________________
}
3、int a[]={1,2},b=2,i=0;则a[i++]+=b;执行后:i=__________ ,a[i]= __________;
4、如下程序段
class A{
int var1=1; int var2;
public static void main(String args[]) {
int var3=3; A a=new A();
System.out.println(a.var1+a.var2+var3);
}
}的运行结果是__________;
5、"mypido".equals(new String("mypido"))的返回结果是__________(填true或false);
6、如下Java程序段
char c=’a’;
switch (c) {
case ’a’: System.out.print("pido");
default: System.out.print(" online");
}的运行结果是__________;
7、程序段int i=1; int j=i++; if((i>++j)&&(i++==j)) i=i+j; 运行后i的值是__________(此空4分);
三、程序分析题(每小题5分,共10分)
1、写出以下程序的运行结果。
public class EqualOrNot{
public static void main(String[] args) {
B b1=new B();
B b2=new B();
b1.c(5);
b2.c(5);
System.out.println(b1==b2);
System.out.println(b1.equals(b2));
System.out.println(b1.x==b2.x);
}
}
class B{
int x;
public void c( int y){ x=y; }
}
2、写出以下程序的运行结果。
int i = 0, j = 0;
while(i<5){
if(j>2){
System.out.println("**");
i++;
j--;
continue;
}
System.out.println("*");
j++;
i++;
}
四、 编程题(共10分)
1、需求:在包myjava.test中创建个类名为People的类 ,属性为年龄(age)默认值20,
在这个类中有个方法myAge其功能是通过参数接收一个数值,与属性age进行比较
如果接受的数值大则返回“你猜我的年龄也太老了吧”否则返回“我可没这么小”,相等则返回“你真厉害,一下就猜中了”。编写测试类调用myAge方法(程序框架要完整)