1、Java程序的执行过程中用到一套JDK工具,其中java.exe是指 。
A.Java文档生成器 B.Java解释器 C.Java编译器 D.Java类分解器
2、Java语言中,下列标识符错误的是 。
A.—sys1 B.&—m C.I D.40name // 数字开头
3、下列语句执行后,变量a、c的值分别是 。
int x=182;
int a,c;
c=x/100;
a=x%10;
A) 1,2 B) 2,1 C) 1.82, 2 D) 100,82
int a,c; - 这里定义了两个整型变量a和c。
c=x/100; - 这里将x除以100的结果赋值给c。因为x是182,所以x/100的结果是1(整数除法会丢弃小数部分)。
a=x%10; - 这里将x除以10的余数赋值给a。因为x是182,所以x%10的结果是2
4、应用程序的main方法中有以下语句,则输出的结果是 。
String s1="0.5",s2="12";
double x=Double.parseDouble(s1);
int y=Integer.parseInt(s2);
System.out.println(x+y);
A) 12.5 B) 120.5 C) 12 D) “12.5”
5、下列程序段执行后的结果是 。
String s=new String("abcdefg");
for(int i=0;i<s.length();i+=2){
System.out.print(s.charAt(i));
A) aceg B) ACEG C) abcdefg D) abcd
6、Java编程所必须的默认引用包为 。
A.java.sys包 B.java.lang包 C.java.new包 D.以上都不是
7、执行下列代码后, 结论是正确的String[] s=new String[10];
A.s[10]为″″ B.s[9]为null C.s[0]为未定义 D.s.length为101
8、定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为 。
A.private class MyClass extends Object
B.class MyClass extends Object
C.public class MyClass
D.private class MyClass extends Object
9、JAVA程序经常用到“递归”,“递归”的基本思想是 。
A.“让别人反复调用自己” B.“自己反复调用别人”
C.“自己反复调用自己” D.以上说法都不对
10、Java中访问限定符不包括 。
A.public B.private C.default D.final
11、Applet类的直接父类是 。
A.Component类 B.Container类 C.Frame类 D.Panel类
12、Frame的默认的布局管理器是下列哪一个 。
A.FlowLayou B.BorderLayout C.GridLayout D.CardLayout
13、在下列事件处理机制中 不是机制中的角色。
A.事件 B.事件源 C.事件接口 D.事件处理者
14、、下面属于Java线程同步方法的方法有( ) 。
A.joiny() B.run() C.wait() D.destroy()
15、下列说法不正确的是 。
A.IOException必须被捕获或抛出
B.java语言会自动初始化变量的值
C.java语言不允许同时继承一个类并实现一个接口
D.java语言会自动回收内存中的垃圾
多选题
16、下面的说法正确的是 。
A.Java 语言是面向对象的、解释执行的网络编程语言。
B.Java 语言具有可移植性,是与平台无关的编程语言。
C.Java 语言可对内存垃圾自动收集。
D.Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。
17、.定义变量如下:????
char c='w'; int i=8; long L=15; float f=8.9f;
以下赋值语句正确的是 。
A) i=c+i; B) c=c+i; C) L=f+L; D) f=i+L+f;
A) i=c+i;
这里,c 是 char 类型,其值被提升为 int(因为 int 可以容纳 char 的所有值,并且这是整数提升的标准规则)。因此,c+i 的结果是 int 类型,可以直接赋值给 int 类型的变量 i。所以,这个选项是正确的。
B) c=c+i;
这里,虽然 c 和 i 的和是 int 类型,但结果不能直接赋值给 char 类型的变量 c。
C) L=f+L;
这里,f 是 float 类型,而 L 是 long 类型。在大多数现代编译器中,float 和 long 之间的算术运算会导致结果提升为 double 类型(因为 double 有足够的精度来表示这两种类型的值)。因此,f+L 的结果是 double 类型,不能直接赋值给 long 类型的变量 L。虽然可以显式地将 double 转换为 long(这可能会导致精度损失),但在这个语句中没有这样的转换,所以这是不正确的。
D) f=i+L+f;
这里,i 和 L 会首先被提升为 double 类型(因为 double 可以容纳 int 和 long 的所有值,并且有足够的精度来表示它们的和),然后与 f(也是 float 类型,但会被提升为 double)相加。结果是 double 类型,不能直接赋值给 float 类型的变量 f。虽然可以显式地将 double 转换为 float(这可能会导致精度损失)??????
18、.面向对象程序设计的基本特征是 。
A)抽象 B)封装 C)继承 D)多态
19. 编译并运行下面的程序,运行结果为 。
public class T1 {
public static void main (String[] args){
T1 a=new T1();
a.method(8);
a.method(1.2f);
}
void method(float i) {
System.out.println("float: "+i);
}
void method(long i) {
System.out.println("long: "+i); }
A)程序有编译错误,因为两个method()方法必须定义为静态(static)的。
B)程序可以编译运行,输出结果为: long: 8 float: 1.2
C)程序可以编译运行,输出结果为: float: 1.2 long: 8
D) 程序中定义的两个参数不同的method方法称为方法重栽。
20、下面是在命令行运行Java应用程序A,怎样才能在main(String args[])方法中访问单词"first" 。
java A the first snow , the first snow came.
A)args[0] B)args[1] C)args[2] D)args[5]
在Java中,当你从命令行运行一个程序并传递参数时,这些参数会以字符串数组的形式传递给 main(String[] args) 方法。数组中的每个元素都是一个独立的参数,它们由空格分隔。
参数将如下分配:
args[0] 是 "the"
args[1] 是 "first"
args[2] 是 "snow"
args[3] 是 ","
args[4] 是 "the"
args[5] 是 "first"
后续的参数(如果存在)将继续以这种方式分配