1.分析如下Java代码,编译运行的输出结果是( )。(选择一项)
public static void main(String[ ] args) {
boolean a=true;
boolean b=false;
if (!(a&&b)) {
System.out.print("!(a&&b)");
}else if (!(a||b)) {
System.out.println("!(a||b)");
}else {
System.out.println("ab");
}
}
A.!(a&&b)
B.!(a||b)
C.ab
D.!(a||b)ab
答案:A
2.下列选项中关于变量x的定义,( )可使以下switch语句编译通过。(选择二项)
switch(x) {
case 100 :
System.out.println("One hundred");
break;
case 200 :
System.out.println("Two hundred");
break;
case 300 :
System.out.println( "Three hundred");
break;
default :
System.out.println( "default");
}
A.double x = 100;
B.char x = 100;
C.String x = “100”;
D.int x = 100;
答案:DC
解析:switch语句中case标签在JDK1.5之前必须是整数(long类型除外)或者枚举,不能是字符串,在JDK1.7之后允许使用字符串(String)。
3.给定如下Java代码,编译运行的结果是( )。(选择一项)
public class Test {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<10;i++){
do{
i++;
if(i%2!=0)
sum+=i;
}while(i<6);
}
System.out.println(sum);
}
}
A.8
B.15
C.24
D.什么也不输出
答案:A
解析:sum = 0+3+5
4.以下选项中添加到代码中横线处会出现错误的是( )。(选择二项)
public class Test {
public float aMethod(float a, float b) {
return 0;
}
}
A.
public float aMethod(float a, float b, float c) {
return 0;
}
B.
public float aMethod(float c, float d) {
return 0;
}
C.
public int aMethod(int a, int b) {
return 0;
}
D.
private int aMethod(float a, float b) {
return 0;
}
答案:BD
解析:方法的重载
构成方法重载的条件:
1.不同的含义:形参类型、形参个数、形参顺序不同
2.只有返回值不同不构成方法的重载
3.只有形参的名称不同,不构成方法的重载
5.以下关于方法调用的代码的执行结果是( )。(选择一项)
public class Test {
public static void main(String args[]) {
int i = 99;
mb_operate(i);
System.out.print(i + 100);
}
static void mb_operate(int i) {
i += 100;
}
}
A.99
B.199
C.299
D.99100
答案:B
解析:形参不影响实参的值
1. if多分支语句和switch语句的异同之处。
相同点:都是用来处理多分支条件的结构。
不同点:switch语句只能处理等值条件判断的情况,而且条件只能是整型变量或字符型变量或字符串类型变量。
2. break和continue语句的作用。
break跳出循环,continue结束本次循环,直接进入下一层循环
3. 在多重循环中,如何在内层循环中使用break跳出外层循环。
使用标签
在外层循环前加标签,然后break <标签>
4. 方法重载的定义、作用和判断依据。
方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。 调用时,会根据不同的参数自动匹配对应的方法。
重载的方法,实际是完全不同的方法,只是名称相同而已!
构成方法重载的条件:
1.不同的含义:形参类型、形参个数、形参顺序不同
2.只有返回值不同不构成方法的重载
3.只有形参的名称不同,不构成方法的重载
5. 递归的定义和优缺点。
递归的基本思想就是“自己调用自己”,一个使用递归技术的方法将会直接或者间接的调用自己。
简单的程序是递归的优点之一。但是递归调用会占用大量的系统堆栈,内存耗用多,在递归调用层次多时速度要比循环慢的多,所以在使用递归时要慎重。
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个十进制整数:");
int number;
number = scanner.nextInt();
int number1 = number;
long output = 0;
long i = 1;
while(number > 0) {
output = output + (number % 2) * i;
number = number / 2;
i = i * 10;
}
System.out.println(number1 + "对应的二进制数为:" + output);
}
}
public class TEST2 {
public static void main(String[] args) {
long sum = 0;
for(int i = 1;i <= 100;i++) {
sum = sum + sum(i);
}
System.out.println("结果为:" + sum);
}
static long sum (int x) {
long sum = 0;
for(int i = 1; i <= x;i++) {
sum = sum + i;
}
return sum;
}
}
public class test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
long result;
result = digui(40);
System.out.println("第40位数为:" + result);
}
static long digui(int n) {
long result;
if(n == 1 || n == 2) {
result = 1;
}
else {
result = digui(n-1) + digui(n-2);
}
return result;
}
}