1、第 1 章 Java 语言概述选择题1-1 在下列概念中,Java 语言只保留了(B )A. 运算符重载 B. 方法重载C. 指针 D. 结构和联合1-2 下列关于 Java 语言特性的描述中,错误的是( D)A. 支持多线程操作B. Java 程序与平台无关C. Java 和程序可以直接访问 Internet 上的对象D. 支持单继承和多继承1-3 下列关于 Java Application 程序在结构上的特点的中,错误的是(C )A. Java 程序是由一个或多个类组成的B. 组成 Java 程序的若干个类可以放在一个文件中,也可以放在多个文件中C. Java 程序的文件名要与某个类名相同
2、D. 组成 Java 程序的多个 类中,有且仅有一个主类1-4 Java 程序经过编译后生成 的文件的后缀是(C )A. .obj B. .exe C. .class D. .java1-5 下列关于运行字节码文件的命令行参数的描述中,正确的是(A )A. 第一个命令行参数(紧跟命令字的参数)被存放在 args0中B. 第一个命令行参数被存放在 args1中C. 命令行的命令字被存放在 args0中D.数组 args的大小与命令行参数的个数无关判断题1-1 JavaC+的语言之前问世的。 (错)1-2 Java 语言具有较好的安全性和可移植性及与平台无关等特性。 (对)1-3 Java 语言中
3、取消了联合的概念,保留了结构概念。 (错)1-4 Java 语言中数据类型占内在字节数与平台无关。 (对)1-5 Java 语言中可用下标和指针两种方式表示数组元素。 (错)1-6 Java 语言的源程序不是编译型的,而是编译解释型的。 (对)1-7 操作系统中进程和线程两个概念是没有区别的。 (错)1-8 Java 语言既是面向对象的又是面向网络的高级语言。 (对)1-9 Java 程序分为两大类:一类是 Application 程序,另一类是 Applet 程序。前者又称Java 应用程序,后者又称为 Java 小应用程序。 (对)1-10 Java Application 程序是由多个文
4、件组成的,其中可以有也可以没有主文件。 (错)1-11 组成 Java Application 的若干类中,有且仅有一个主类,只有主类中含有主方法main()。 (对)1-12 Java Application 程序中,必有一个主方法 main() ,该方法有没有参数都可以。(对)1-13 Java 程序中是不区分大小写字母的。 (错)1-14 下述两个命令:javac 和 java 是不同的,编译时用前者,运行时用后者。 (对)1-15 Java 程序编译后生成的是字节码文件,其后缀是.exe。 (错)1-16 字节码文件机器是不能直接识别的,它要经过解释器,边解释边执行。 (对)1-17
5、在 Java 程序中,使用 import 语句引入类是在解释器中实现的。 (对)1-18 在运行字节码文件时,使用 java 命令,一定要给出字节码文件的扩展名.class。 (错)1-19 Java 程序中有多个类,编译后只生成一个字节码文件,其名字同主类名。 (错)1-20 Java 程序中出现的输出方法 println()和 print()是完全一致的。 (错)分析程序的输出结果题1-1 程序 Exerl_1.javaimport java.io.*;public class Exerl_1public static void main (String args )System.out.
6、print(“This is a “);System.out.println(“strint.“)该程序的输出结果如下:This is a string.1-2 程序 Exerl_2.javaImport java.io.*;Public class Exerl_2Public static void mian(String args )Char ch=“ “;System.out.println(“Input a character:“);Trych=(char)System.in.read();Catch(IOException e) System.out.println(“The cha
7、racter is “+ch+“); 该程序的输出结果如下Input a character:kThe character is k1-3 程序 Exerl_3.javaimport java.io.*;public class Exerl_3Public static void main(String args )String str= “ “System.out.println(“Input a string:“);TryBufferedReader in =new BufferedReader(new InputStreamReader(System.in);str=in.readLin
8、e();Catch(IOException e ) System.out.println(“The string is “+str+ “ “ “);1-4 程序 Exerl_4.javaimport java.io.*public class Exerl_4public static void main(String args )A a=new A;a.i=8;a.d=1.25;a.meth(“该程序输出结果如下所示“);System.out.println(“ti=“+a.i+“,d=“+a.d);class Aint i;double d;void meth(string str)Syst
9、em.out.println(str);该程序输出结果如下所示i=8,d=1.25编程题1-1 编写一个 Java Application 程序,使该程序运行后输出字符串“Hello!How are you.“。参考程序内容如下import java.io.*;public class prol_1public static void main(String args )System.out.println(“Hello!How are you.“);1-2 编写一个 Java Application 程序,使该程序输出显示如下结果:Var1=10,var2=19.5Ok!参考程序内容如下:i
10、mport java.io.*;public class prol_2public static void main(String args )int var1=10;double var2=19.5;System.out.println(“var1=“+var1+“,var2=“+var2);System.out.println(“ok!“);第 2 章 Java 语言语法基础选择题2-1 Java 语言所用的字符集中字符是 B 位。A. 8B. 16C. 32D. 642-2 下列关于标识符的描述中,正确的是 A 。A. 标识符中可以使用下划线和美元符B. 标识符中可以使用连接符和井号符C
11、. 标识符中大小写字母是无区别的D. 标识符可选用关键字2-3 Java 语言和各种分隔符中,非法的是 D 。A. 空白符B. 分号C. 逗号D. 问号2-4 下列是 Java 语言中可用的注释,其中错误的是 C 。A. /B. /*/C. /*/D. /*/2-5 Java 语言中字符型数据的长度是 B 位。A. 8B. 16C. 32D. 642-6 下列描述的两种数据类型的长度不相等的是 A 。A. 字符型和布尔型B. 字节型和布尔型C. 短整型和字符型D. 整型和单精度浮点型2-7 下列是 Java 语言中的复合数据类型,其中错误的是 C 。A. 数组B. 接口C. 枚举D. 类2-8
12、 下面是关于 Java 语言中数据类型的强制转换的描述,其中错误的是 C,D 。A. 当数据类型从高转换为低时需强制转换B. 强制转换时使用强制转换去处符,形如( )C. 浮点型数据强制转换为整型时,小数部分四舍五入D. 赋值操作中都要采用强制类型转换2-9 下列关于常量的描述中,错误的是 B,D 。A. Java 语言的常量有 5 种B. 浮点型数 12.456 是单精度的C. 布尔型常量只有两个可选值:true 和 falseD. 字符串常量含有结束符0 2-10下列关于定义符号常量的描述中,错误的是 A,C 。A. 定义符号常量使用关键字 constB. 定义符号常量时要赋初值C. 符号
13、常量既可以定义为类成员,又可在方法中定义D. 定义符号常量时必须给出数据类型2-11下列关于变量的默认值的描述,其中错误的是 B,C 。A. 定义变量而没有进行初始化时,该变量具有默认值B. 字符型变量的默认值为换行符C. 布尔型变量的默认值是 trueD. 变量的默认值是可以被改变的2-12下列关于变量定义的描述中,正确的是 A,C 。A. 定义变量时至少应指出变量名字和类型B. 定义变量时没有给出初值该变量可能是无意义值C. 定义变量时,同一个类型多个变量间可用逗号分隔D. 定义变量时必须要给变量初始化2-13下列关于变量作用域的描述,错误的是 D 。A. 在某个作用域定义的变量,仅在该作
14、用域内是可见的,而在该作用域外是不可 见的B. 在类中定义的变量的作用域在该类中的方法内可以使用C. 在方法中定义 的变量的作用域仅在该方法体内D. 在方法中作用域可嵌套,在嵌套的作用域中可以定义同名变量2-14下列关于增 1(+)减 1(-)1 运算符的描述中,正确的是 A,B 。A. 增 1 减 1 运算符都是单目运算符B. 增 1 减 1 运算符都具有前缀运算和后缀运算C. 增 1 减 1 运算符不会改变变量的值D. 增 1 减 1 运算符前缀运算和后缀运算后表达式值是相同的2-15关于运算符优先级的描述中,错误的是 D 。A. 在表达式中,优先级高的运算符先进行计算B. 赋值运算符优先
15、级最高C. 单目运算符优先级高于双目和三目运算符D. 逻辑运算符优先级高于逻辑位运算符2-16下列关于表达式的描述中,正确的是 A,C 。A. 任何表达式都有确定的值和类型B. 算数表达式的类型由第一个操作数的类型决定C. 逻辑表达式的操作数是逻辑型的D. 赋值表达式的类型取决于右值表达式的类型2-17下列表达式中,非法的是 B,C 。int a=5,b=6;double c=1.1,d=2.2A. a+c+dB. (a+c)- -C. c”和“”都是右移运算符,其区别在于对向右移出的位是舍弃还是保留。 (错)2-26 赋值运算符组成的赋值表达式中,通常将右边表达式的类型转换为左边变量的类型后
16、再赋值。 (对)2-27 三目运算符的 3 个操作数中,第一个操作数的类型必须是逻辑型的(对)2-28 强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。 (对)2-29 对象运算符 instanceof 是一个单目运算符,其表达式的值的类的对象。 (错)2-30 内存分配运算符 new 可以为创建的数组分配内存空间,但不能为创建的变量分配空间。2-31 运算符的优先级中,最低的是三目运算符。 (错)2-32 运算符的结合性中,除了三目运算符是自右向左外,其余都是自左向右。 (错)2-33 关系表达式和逻辑表达式的值都是布尔型的。 (对)2-34 赋值表达式的值不能是逻辑型的。
17、(错)2-35 条件表达式的类型总是“ ?”和“:”之间的操作数的类型。 (错)2-36 块语句可能嵌套,外层块语句定义的变量在内层块语句中是可见的(对)2-37 条件自勉中的表达式可以是任何表达式。 (错)2-38 在条件语句的嵌套结构中,一个 if 子句最多有一个 else 子句与它配对,而且一定是距离它最近的。 (对)2-39 开关语句中,case 子句后面的 可以是块语句。 (对) 、2-40 循环语句中,表达式必须是逻辑型表达式。 (对)2-41 在 Java 语言中,break 语句不能作用在的左边。 (错)2-42 Java 语言中,数组在静态和动态赋值时都判越界。 (对)2-4
18、3 说明或声明数组时不分配内存大小,创建数组时分配内存大小。 (对)2-44 基本数据类型的数组在创建时系统将指定默认值。 (对)2-45 数组在定义时可以进行初始化,使用初始值表。 (对)2-46 Java 语言中数组元素只有下标表示,没有指针表示。 (对)2-47 创建数组时,系统自动将数组元素个数存放在 length 变量中,可供用户对数组操作时使用。 (对)2-48 字符串可分为字符串常量和字符串变量两种,它们都是对象。 (对)2-49 Java 语言中不使用字符数组存放字符串(对)2-50 下列创建字符串 s 的方法是错误的。 (对)char ch=m,m,n,n;char s=ne
19、w char(ch);计算表达式的值,上机验证其结果题2-1 已知:int a=3,b=5;求下列表达式的值:(1) (a+b)%b(2) ba(3) -ba(4) A求下列表达式的值:(1) x+y(2) x+4/5(3) 2*x=y(4) y/6*6(5) y+=x-=1答案(1)false (2)1.5 (3)false (4)2.8 (5)3.32-3 已知:Boolean b1=true, b2=false; int a=6;求值:(1) b1求值:(1) a0+a1(2) a3=6(3) a2*a34*a3(4) (a0+=a1)+ +a2(5) for(int i=1;i2)Sy
20、stem.out.println(“AB“);elseSystem.out.println(“BA“);if(i=5)break;System.out.println(“i=“+i);输出结果如下:BABAABABABi=52-7 Exer2_7.java 程序public class Exer2_7public static void main(String args)long j1=1,j2=1;for(int i=5;i=1;i-)j1*=i;for(int i=4;i=1;i-)j2*=i;System.out.println(“5!+4!“+(j1+j2);输出结果如下:5!4!=1
21、442-8 Exer2_8.java 程序public class Exer2_8public static void main(String args)String s1=“123456“;char ch=4,5,6,7,8;double d;d=new double5;d0=1.2f;d1=2.3f;d2=3.4f;d3=4.5f;d4=5.6f;String s2=“ab“,“cd“,“ef“;inta=1,2,3,4,5,6,7,8,9;System.out.println(“s1=“+s1);for(ing i=0;ib 时,c 值为 a,否则 c 值为b。int a,b,c;if(
22、ab)c=a;elsec=b;(9) 用 for 循环语句实现下述循环:循环变量 m 为 100,每次 m 循环减 10;当 m等于 50 时退出循环,循环体为空语句。for(int m=100;m=50;m-=10) (10) 使用带标号名的 break 语句,在双重 for 循环自勉结构中,一次从内层循环跳出外层循环。该功能程序段如下:F:for(ing i=)for(ing j=)break F;2-12 编程求出一个一维 int 型数组的元素最大值、最小值、平均值和所有元素之和。程序内容如下:import java.io.*;public class pro2_1public stat
23、ic void main(String args)int a=23,76,45,21,63,90,46,83;int max,min,sum;max=min=a0;for(int i=1;iai)min=ai;for(int i=1;i)(=) ;3-4 成员变量的非访问控制修饰符有(static ) , (final) , (volatile) 。3-5 在成员方法的定义中可省略的部分有(修饰符) , (参数表) , (异常类名列表) 。3-6 Java 语言中,重载方法的选择是在(编译)时进行的,系统根据(参数个数) , (参数类型) , (参数顺序)寻找匹配方法。3-7 没有子类的类称为
24、(最终类) ,不能被子类重载的方法称为(最终方法) ,不能被改变值的量称为常量,又称为(最终变量) 。3-8 创建一个对象时,通常要包含 3 项内容:(说明对象) ,给对象分配空间, (对象初始化) 。3-9 系统规定 int 型变量默认值为(0) ,浮点型变量的默认值为(0.0) ,布尔型变量的默认值为(false) 。3-10 Java 语言中,定义子类时,使用关键字( extends)来给出父类名。如果没有指出父类,则该类的默认父类为(object 类) 。3-11 系统规定:表示当前类的构造方法用(this() ) ,表示直接父类的构造方法用(super() ) 。3-12 接口中默认
25、的成员变量的修饰符为(final ) ,默认的成员方法的修饰符是(abstract ) 。3-13 实现接口中的抽象方法时,必须使用(完全相同)方法头,并且还要用(public)修饰符。3-14 包名与子包名之间用(.)分隔。加载包的关键字是(import) 。3-15 字符串类又包含两大类,它们是(String)和(StringBuffer).分析程序的输出结果题3-1 Exer3_1.javaclass Aint x,y,z,sum;A(int i,int j,int k)x=i;y=j;z=k;sum=x+y+z;boolean sameA(A al)if(al.x=x)elseretu
26、rn false;boolean sameS(A al)if(al.sum=sum)return true;elsereturn false;class Exer3_1public static void main(String args)A a=new A(2,5,8);A b=new A(2,5,8);A c=new A(5,8,2);System.out.println(a,sameA(b);System.out.println(a,sameA(c);System.out.println(a,sameA(b);System.out.println(a,sameA(c);输出结果如下:tr
27、uefalsetruetrue3-2 Exer3_2.javaclass Bvoid meth(int i)System.out.println(“Int:“+i);void meth(double i)System.out.println(“Double:“+i);class Exer3_2public static void main(String args)int i=8;double d=6.8;short s=10;float f=5.3f;byte b=9;char c=a;B ob=newB();ob.meth(i);ob.meth(d);ob.meth(s);ob.meth(i
28、nt)f);ob.meth(b);ob.meth(c);输出结果如下:Int:8Double: 6.8Int:10Int:5Int:9Int:973-3 Exer3_3.javaclass Cint c;C(int a)c=0;for(int i=0;i=a;i+)c+=i;C(Cb)c=b.c;class Exer3_3public static void main(String args)C c1=new C(6);C c2=new C(new C(4);System.out.println(“c1:“+c1.c);System.out.println(“c2“+c2.c);输出结果如下:
29、c1:21c2:103_4 Exer3_4.javaclass Dstatic int d=100;static int meth()int s=d*10;return(s);D(int i)d=i;class Exer3_4public static void main(String args)System.out.println(“d.meth:“+D.d);D dd=new D(10);System.out.println(“d:“+D.d);System.out.println(“dd:“+dd.d);System.out.println(“d.meth:“+D.meth();Syst
30、em.out.println(“d.meth:“+dd.meth();System.out.println(“d:“+D.d);D.d=500;System.out.println(“d.meth:“+D.meth();输出结果如下:d.meth:100d:10dd:10d.meth:100d.meth:100d:10d.meth:50003_5 Exer3_5.javaclass Edouble h,w;void show()System.out.println(“width=“+w+“,height=“+h);class T extends Edouble area()return w*h
31、;class Exer3_5public static void main(String args)T t1=new T();T t2=new T();t1.w=8.0;t1.h=5.0;t2.w=12.0;t2.h=16.0;t1.show();System.out.println(“t1:area=“+t1.area();t2.show();System.out.println(“t2:area=“+t2.area();输出结果如下:Width= 8.0 , height=5.0t1:area=40.0width=12.0,height=16.0t2:area=192.03-6 Exer3
32、_6.javaclass AA()System.out.println(“class A“);class B extends Aint b;B(int i)(b=i);class C extends Bprivate int c;C(int i,int j)super(j);c=i;int return c()return c;class Exer3_6public static void main(String args)C c=new C(5,18);System.out.println(“c:“+c.b*c.return c();输出结果如下:class Ac:903-7 Exer3_7
33、.javaclass Avoid show()System.out.println(“class A“);class B extends Avoid show()System.out.println(“class B“);class C extends Bvoid show()System.out.println(“class C“);class Exer3_7public static void main(String argsp)A a=new A();B b=new B();C c=new C();A x=new A();x=a;x.show();x=b;x.show();x=c;x.s
34、how();输出结果如下:class Aclass Bclass C3-8 Exer3_8.javaabstract class Shapprivate double w,h;Shap(double i)w=h=i;Shap(double i,double j)w=i,h=j;Shap(Shap s)w=s.w;h=s.h;double getw()return w;double geth()return h;abstract double area();class Rest extends ShapRect(double i)super(i);Rect(double i,double j)s
35、uper(i,j);Rect(Rect r)super(r);double area()return getw()*geth();class Exer3_8public static void main(String args)Shap s=new Shap3;s0=new Rect(8.0);s1=new Rect(5.0,6.0);s2=new Rect(new Rect(12.0,4.0);for(int i=0;is.length;i+)System.out.println(“s“+i+“area=“+si.area();输出结果如下:s0area=64.0s1area=30.0s2a
36、rea=48.03-9 addre.java(在子目录 address 下)package address;public class addreprivate String s1,s2,s3;public addre(String str1,String str2,String str3)s1=str1;s2=str2;s3=str3;public void show()System.out.print(s1);System.out.print(“t“+s2);System.out.println(“t“+s3);Exer3_9.javaimport address.*;class Exer3_9