1.下面说法正确的是( C )。
A)Java 程序的源文件名称与主类(公共类)的名称相同,后缀可以是java或txt等。
B)JDK的编译命令是java。
C)一个java源程序编译后可能产生几个字节码文件。
D)在命令行运行编译好的字节码文件,只需在命令行直接键入程序名即可运行该程序。
2.下面的说法正确的是(ABCD)。
A) Java 语言是面向对象的、解释执行的网络编程语言。
B) Java 语言具有可移植性,是与平台无关的编程语言。
C) Java 语言可对内存垃圾自动收集。
D) Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。
3.下面main()方法的定义哪些是正确的(ACD)?
A)public static void main(String args[]) {}
B)public static void main(String[]) {}
C)public static void main(String[] args) {}
D)public static void main(String [] x) {}
4.用于定义数据简单类型的一组关键字是(B)。
A) class, float, main, public
B) float, boolean, int, long
C) char, extends, float, double
D) int, long, float, import
5.以下的变量定义中,合法的语句是(B)。
A) float 1_variable = 3.4; B) int abc_ = 21;
C) double a = 1 + 4e2.5; D) short do = 15;
6.定义变量如下:
int i=18;
long L=5;
float f=9.8f;
double d=1.2;
String s="123";
以下赋值语句正确的是(ABD)。
A) s=s+i; B) f=L+i; C) L=f+i; D) s=s+i+f+d;
7.以下语句输出的结果是(A)
String str="123";
int x=4,y=5;
str=str+(x+y);
System.out.println(str);
A)1239 B)12345 C)会产生编译错误D)123+4+5
8.以下语句中没有编译错误或警告提示信息的是(B)?
A)byte b=256; B)double d=89L; C)char c="a"; D)short s=8.6f;
9. 下面的程序输出结果是:1+2=3,请将程序补充完整。
public class App2 {
public static void main(String args[]) {
int x=1,y=2;
System.out.println(______________);
}
}
答案:x+"+"+y+"="+(x+y)
10.阅读下面的程序,回答问题。
程序如下:
public class App1 {
public static void main(String args[]) {
char ch='\n';
System.out.print("The first snow came,"+ch+"How beautiful it was!");
}
}
(1)这是哪一类java程序?
(2)写出保存该文件的文件名及后缀名?
(3)在JDK下编译该文件的命令是什么?编译后形成什么文件?
(4)在JDK下如何运行该程序?程序运行后输出的结果如何?
10.答案:
(1)Java应用程序(Java Application);
(2)App1.java;
(3)在命令行用javac App1.java编译该程序。
编译后形成App1.class的字节码文件;
(4)在命令行键入java App1即可运行该程序。
编程序运行后输出的结果为:
The first snow came,
How beautiful it was!
编写Java应用程序,定义类Car,类中有3个变量:字符串name,表示汽车的品牌;字符串color,表示汽车的颜色;double型变量weight,表示汽车的自重;int型变量passenger,表示汽车能搭乘的人数。类中还定义一个构造方法,用来初始化上面的4个变量。在应用程序中创建类Car的1个对象(品牌:“大众”;颜色:“黑色”;自重:1500公斤;搭乘的人数:5人),并显示其信息。
1.以下选项中变量均已正确定义,错误的赋值语句是(D)。
A) i--; B) i += 7;
C) k += x +2; D) y + x = z;
2.若以下变量均已正确定义并赋值,下面符合Java语言语法的表达式是(B)。
A) a = a≤7 B) a = 7 + b + c
C) int 12.3 % 4 D) a = a + 7 = c + b
3.定义整型变量:int n=456;,表达式的值为5的是(AB)。
A) n / 10 % 10 B) ( n - n / 100 * 100 )/10
C) n % 10 D) n / 10
4.对下面的语句序列正确的说法是(B)。
int c='A'/3;
c+='1'%5;
System.out.println(c);
A)产生编译错误; B)输出结果25;
C)输出结果21; D)输出结果2;
5.设a, f, x, y, z 均为int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的是(D)。
A) x > y && f < a B) -z < x - y
C) y != ++x D) y + x * x++
6.执行下列程序段后,b, x, y的值正确的是(C)。
int x=6,y=8;
boolean b;
b=x A) true , 6, 8 B) false , 7, 7 C) true, 7, 7 D) false, 6, 8 7.下面的程序段输出的变量b的值是(B )。 int a = 0xFFFFFFFE; int b= ~a; System.out.println("b="+b); A) 0xFFFFFFFE B) 1 C) 14 D)-2 8.若a和b均是整型变量并已正确赋值,正确的switch语句是(A D)。 A) switch(a+b);B) switch( a+b*3.0 ) { …… } { …… } C) switch a D) switch ( a%b ) { …… } { …… } 9.以下由do-while语句构成的循环执行的次数是(D)。 A)无限次B)有语法错,不能执行 C)一次也不执行D)执行1次 int k = 0; do { ++k; }while ( k < 1 ); 10. 执行完下面的程序段后,k的值是(B)。 int k=0; label:for(int i=1;i<10;i++) { for(int j=1;j<5;j++) { k+=i+j; if(j==3) break label; } } A) 3 B) 9 C)12 D) 6 11.下列方法x的定义中,正确的是(A)。 A) int x( ){ char ch='a'; return (int)ch; } B) void x { ... } C) int x( int i ){ return (double)(i+10); } D) x( int a){ return a; } 12.下列方法定义中,方法头不正确的是(D)。 A) public int x( ){ ... } B) public static int x( double y ){ ... } C) void x( double d ) D) public static x( double a ){ ... } 13.为了区分重载多态中同名的不同方法,要求(A)。 A) 采用不同的形式参数列表B) 返回值类型不同 C) 参数名不同D) 选项A、B、C都对 14.在某个类中定义一个方法:void GetSort(int x),以下能作为这个方法的重载的是(ABCD)。A.void GetSort(float x){ x*=x; } B.int GetSort(double y){ return (int)(2*y);} C.double GetSort(int x,int y) {return x+y;} D.void GetSort(int x,int y) { x=x+y;y=x-y} 15.若已定义:int a[ ]= {0,1,2,3,4,5,6,7,8,9} ; 则对a数组元素正确的引用是(B)。 A) a[-3] B) a[9] C) a[10] D) a(0) 16.下面是在命令行运行Java应用程序A,怎样才能在main(String args[])方法中访问单词"first" (BD)? java A the first snow , the first snow came. A)args[0] B)args[1] C)args[2] D)args[5] 6.编写Java应用程序求1!+2!+...+20!的和并显示,要求用方法实现求阶乘。 3.应用程序中定义方法头如下所示的方法: static int[] add(int[] x, int[] y) static int[] multi(int[] x, int[] y) add方法的功能是:把参数数组x和y(其元素个数相同)的每个元素相加,并作为返回数组的元素;multi方法的功能是:把参数数组x和y(其元素个数相同)的每个元素相乘,并作为返回数组的元素。在Java应用程序中使用这两个方法。 6.编写应用程序,定义一个5行3列的二维数组,给数组的每个元素赋10~100之间的随机 值,显示二维数组每行的元素,并输出所有元素的和。 1.面向对象程序设计的基本特征是(ABCD)。 A)抽象B)封装C)继承D)多态 2.下面关于类的说法正确的是(ABCD)。 A)类是Java 语言中的一种复合数据类型。B) 类中包含数据变量和方法。 C)类是对所有具有一定共性的对象的抽象。D) Java 语言的类只支持单继承。 3.下列选项中,用于在定义类头时声明父类名的关键字是(D)。 A)package B)interface C)class D)extends 4.定义类头时可以使用的访问控制符是(CD)。 A) private B) protected C) public D) 缺省的,即没有访问控制修饰符 5.有一个类A,对于其构造函数的声明正确的是( B )。 A)void A(int x){...} B)A(int x){...} C)A A(int x){...} D)int A(int x){...} 6.设X为已定义的类名,下列声明对象x1的语句中正确的是(ABD)。 A) static X x1; B) private X x1=new X( ); C) abstract X x1; D) final X x1=new X( ); 7.设类B是类C的父类,下列声明对象x1的语句中不正确的是(D)。 A)B x1= new B( ); B) B x1=new C( ); C)C x1=new C( ); D) C x1=new B( ); 8. 编译运行下面的程序,结果是(A)。 public class A { public static void main (String[] args){ B b=new B( ); this.test(); } public void test() { System.out.print ("A"); } } class B extends A{ void test() { super.test(); System.out.println("B"); } } A)产生编译错误,因为类B覆盖类A的方法test()时,降低了其访问控制的级别。 B)代码可以编译运行,并输出结果:AB。 C)代码可以编译运行,但没有输出。 D)代码可以编译运行,并输出结果:A。 9.下面的程序编译运行的结果是(A)。 public class A implements B{ public static void main (String[] args){ int m,n; A t= new A(); m= t.k; n= B.k; System.out.println(m+","+n); } } interface B { int k = 5;} A)5,5 B)0,5 C) 0,0 D)编译程序产生编译错误 10.为了使包abc中的所有类在当前程序中可见,可以使用的语句是(A)。 A)import abc.*; B)package abc.*; C)import abc; D) package abc; 1.定义一个名为MyRectangle的矩形类,类中有4个私有的整型域,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);类中定义没有参数的构造方法和有4个int参数的构造方法,用来初始化类对象。类中还有以下方法:getW( )——计算矩形的宽度;getH( )——计算矩形的高度;area( )——计算矩形的面积;toString( )——把矩形的宽、高和面积等信息作为为字符串返回。编写应用程序使用MyRectangle类。 2.设计一个Dog类,它有名字、颜色、年龄等属性,定义构造方法用来初始化类的这些属性,定义方法输出Dog 的信息。编写应用程序使用Dog类。 3.设计一个长方体类MyCube,该类包含第1题中的MyRectangle类对象作为类的域,表示长方体的底面;此外还包含一个整型变量d,表示长方体的高。类中定义构造方法初始化类对象、定义求体积和表面积的方法。编写应用程序测试MyCube类。 4.设计一个表示用户的User类,类中的变量有用户名、口令(私有的)和记录用户个数的变量(静态的),定义类的3个构造方法(没有参数、有一个参数给用户名赋值、有两个参数给用户名和口令赋值)、获取和设置口令的方法、返回字符串表示的类信息的方法(包括用户名、口令)。编写应用程序测试User类。 1.定义一个抽象基类Shape,它包含一个抽象方法getArea(),从Shape类派生出Rectangle 和Circle类,这两个类都用getArea()方法计算对象的面积。编写编写应用程序使用Rectangle 类和Circle类。 2.定义一个接口ClassName,接口中只有一个抽象方法getClassName()。设计一个类Horse,该类实现接口ClassName中的方法getClassName(),功能是获取该类的类名。编写应用程序使用Horse类。 3.定义接口MyItfc,接口中只有一个名为area的方法,该方法有一个double类型参数,返回类型也为double。编写一个应用程序,并实现接口MyItfc,接口中area方法的实现是返回参数的立方值;在应用程序中调用该方法并输出其结果。 1.定义字符串s:String s=”Micrsoft公司”; 执行下面的语句,c的值为(B)。 char c=s.charAt(9); A) 产生数组下标越界异常。B) 司C) null D) 公 2.以下语句执行后输出的结果是(B)。 String s0 = new String( "hello,Java!" ); System.out.println(s0.length() ); A)10 B)11 C) 9 D)15 3.应用程序的main方法中有以下语句,则输出的结果是( A )。 String s1=new String("AAA"); String s2=new String("AAA"); boolean b1=s1.equals(s2); boolean b2=(s1==s2); System.out.print(b1+" "+b2); A)true false B) false true C) true true D)false false 4.下面的程序段输出的结果是(A)。 String s1="Java",s2="java"; System.out.println( s1.equalsIgnoreCase( s2 )); A)true B)false C) Java D)java 5.下面的程序段输出的结果是(A)。 String s1="Abc",s2="Bcd"; System.out.println( https://www.doczj.com/doc/5210640555.html,pareTo( s2 )); A)-1B)1 C) false D)true 6.下面的程序段执行完后,cont的值是多少(C)? String strings[]={ "string", "starting","strong", "street" ,"soft"}; int cont=0; for ( int i = 0; i < strings.length; i++ ) if ( strings[ i ].endsWith( "ng" ) ) cont++; A)1 B)2 C) 3 D)4 7.定义字符串:String str = "abcdefg"; 则str.indexOf( 'd' ) 的结果是(C)。 A)’d’ B)true C) 3 D)4 8.下面的程序段输出的结果是(A)。 StringBuffer buf1; String str="北京2008"; buf1=new StringBuffer(str); System.out.println(buf1.charAt(2)); A)2 B) 京C) 0 D)null 9.下面的程序段输出的结果是(C)。 StringBuffer buf1; String str="007beijing"; buf1=new StringBuffer(str); buf1.setCharAt(0,'6'); System.out.println( buf1.toString() ); A) 007bei0jing B) 007beijing C) 607beijing D) 667beijing 10. 若有如下赋值语句: x = new StringBuffer().append("a").append(4).append("c").toString(); x的类型是_______;它的值是_______。 答案:String; a4c。 11.下面的程序段希望把字符串str中的类名、对象名和方法名分离出来单独显示,因此创建了一个字符串分析器对象stoken,请把stoken的分隔符填写在程序中的空中,程序中定义的变量k的值是__(1)___。 String str="System.out.println(\"stoken.hasMoreTokens()=\"+stoken.hasMoreTokens())"; StringTokenizer stoken=new StringTokenizer(str,___ (2)___); int k=stoken.countTokens(); 答案:(1)7 (2)" .()\"+=" 12.应用程序的main方法中有以下语句,则输出的结果是(B)。 Hashtable hashtable=new Hashtable(); hashtable.put("100","aaa"); hashtable.put("200","bbb"); hashtable.put("300","ccc"); System.out.println(hashtable.get("200")); A) aaa B) bbb C) 200 D) 3 编写命令行界面的猜数游戏:猜数范围由命令行输入,将猜数的结果输出并提示,直到猜出正确的结果。 6.编写应用程序,用1到6之间的随机数来模拟掷骰子游戏,统计扔5000次后出现骰子各点的次数并输出。 编写应用程序,在其main方法中定义以下两个字符串数组: String mpgStr[]={"1.jpg","2.jpg","3.jpg","4.jpg","5.jpg"}; String pngStr[]={"1.png","2.png","3.png","4.png","5.png"}; 然后将他们的每个元素间隔添加到V ector对象中,并在命令行界面显示所有元素;然后将V ector对象中所有.png的元素都删除,再显示V ector对象中的所有元素,如图所示。 4.定义一个学生类Student,该类定义了3个属性:学号number(String类型)、姓名name(String 类型)和成绩mark(int型);类中定义一个构造方法,用来初始化类中的3个属性;为了方便显示,该类覆盖了父类Object的toString()方法,返回以下格式的字符串:"学号:"+number+" 姓名:"+name+" 成绩:"+mark。编写应用程序,在main方法中创建ArrayList对象list,并添加5个Student类对象,并将list的所有元素分行显示;然后将list的元素按学号升序排序后输出。 1.为了捕获一个异常,代码必须放在下面哪个语句块中(A)? A) try块B) catch 块C)throws D)finally块 2.下面关于try块的说法正确的是(C)? A) try块后至少应有一个catch 块。B) try块后必须有finally块。 C)可能抛出异常的方法应放在try块中D)对抛出的异常的处理应放在try块中 3. finally块中的代码将(A) A)总是被执行B)如果try块后面没有catch 块时,finally块中的代码才会执行。 C)异常发生时才被执行D)异常没有发生时才被执行 4.一个异常将终止(C)? A)整个程序B)只终止抛出异常的方法 C)产生异常的try块D)上面的说法都不对。 5.阅读下面的程序,选择正确的说法(B)。 class A { public static void main(String args[]) throws Exception { method(); } static void method() throws Exception { try { System.out.print("try: performed\t"); } finally{ System.out.print("finally: always performed"); } } } A)编译该程序产生编译错误,因为method()抛出异常,而调用它时没有进行处理。 B)程序编译成功,运行该程序输出:try: performed finally: always performed。 C)程序编译成功,运行该程序输出:try: performed D)程序编译成功,运行该程序输出:finally: always performed。 3.自定义异常类MyException,该类继承自Exception类,类中只有含一个字符串参数msg 的构造方法,构造方法中只有一条语句super(msg)——调用父类的构造方法。另外,编写自定义类MyAdd,类中只有一个私有的整型变量x;有两个公有方法void add(int x)和int getX(),其中add(int x)的功能是把参数x的值加到类中的变量x中(但要求x的值在0~100之间,否则抛出自定义异常MyException类的对象),getX()方法返回x的值。编写应用程序 TestMyException.java,在其main方法中创建MyAdd类对象,并调用MyAdd类的set方法共3次,分别设置x的值为88、66、128,每次都输出类中变量x的值,编译、运行程序TestMyException.java,观察程序的输出结果。 1.编译和运行下面的应用程序,并在命令行界面输入12345,则回车后屏幕输出的结果是( D). public class A { public static void main(String args[]) throws IOException{ BufferedReader buf=new BufferedReader( new InputStreamReader(System.in)); String str=buf.readLine(); int x=Integer.parseInt(str); System.out.println(x/100%10); } } A) 45 B)5 C) 123 D) 3 2.下面的程序段创建了BufferedReader类的对象in,以便读取本机d盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是(C)。 File f=new File(填代码处); file=new FileReader(f); in=new BufferedReader(file); A) "1.txt" B) "../my/1.txt" C) "d:\\my\\1.txt" D) "d:\ my\1.txt" 3.下面语句的功能是( A )。 RandomAccessFile raf2 = new RandomAccessFile("1.txt","rw" ); A)打开当前目录下的文件1.txt,既可以向文件写入数据,也可以从文件读取数据。 B)打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。 C)打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。 D) 以上说法都不对。 4.下面的程序第7行创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行两次,则文件test.txt 的内容是(A)。 1: import java.io.*; 2: public class Test { 3: public static void main(String args[]) { 4: try { 5: String s="ABC"; 6: byte b[]=s.getBytes(); 7: FileOutputStream file=new FileOutputStream("test.txt",true); 8: file.write(b); 9: file.close(); 10: } 11: catch(IOException e) { 12: System.out.println(e.toString()); 13: } 14: } 15: } A) ABCABC B) ABC C)Test D) Test Test 5.下面的程序段的功能是( B )。 File file1=new File("e:\\xxx\\yyy"); file1.mkdirs(); A)在当前目录下生成子目录:\xxx\yyy B)生成目录:e:\xxx\yyy C)在当前目录下生成文件xxx.yyy D)以上说法都不对 6.下面关于java中输入/输出流的说法正确的是(ABCD)。 A) FileInputStream与FileOutputStream类用读、写字节流。 B) Reader与Writer类用来读、写字符流。 C) RandomAccessFile既可以用来读文件,也可以用来写文件。 D) File类用来处理与文件相关的操作。 7.下面创建的输入或输出流对象哪个能读或写Java语言中的double类型的数据(BCD)。 A) FileOutputStream fos=new FileOutputStream("1.dat"); B) DataOutputStream out=new DataOutputStream(new FileOutputStream(“2.dat”)); C) RandomAccessFile raf = new RandomAccessFile("3.java" , "rw" ); D) DataInputStream in=new DataInputStream(new FileInputStream(“4.dat”)); 8.下面关于对象串行化(Serializable)的说法正确的是(ABCD )。 A)一个类实现接口Serializable就能使之串行化,但该接口没有具体方法需要实现。 B)一个对象串行化后,能通过对象流读取对象或写入对象。 C)用transient关键字修饰的变量将不参与串行化。 D)串行化一个类,必须保证在恢复时java虚拟机能找到这个类的.class文件,否则将会出现ClassNotFoundException。 2.编写应用程序,创建一个文件输出流,向文件中分别写入以下类型数据:int、double和字符串,然后创建一个文件输入流,将文件中写入的数据显示在屏幕上。 Question 2 Write a program to enter 20 integer values in an array. Enter the value to be searched in this array. Using linear search method, find the position of the entered value in that array. Display an error message if the value is not in the array. Question 2 Write a Java program to enter 20 values in an array. Pass this array as a parameter in a function called “sumEv enPositive( ).This function computes the sum of the elements that are even and positive. 1.求1000以内能被3,5和7中恰好两个整除的数,以10个为一行输出。 4. 以下的选项中能正确表示J ava语言中的一个整型常量的是()。 A) 12.B)-20 C)1,000 D) 4 5 6 5. 以下选项中,合法的赋值语句是()。 A) a = = 1;B) ++i;C)a=a + 1=5; D)y=i nt(i); 6. 若所用变量都已正确定义,以下选项中,非法的表达式是( )。 A) a !=4||b==1B) 'a'%3C) 'a'= 1/2D)'A'+32 7. 若有定义int a=2;则执行完语句a+= a -=a*a;后,a的值是()。 A)0B)4C)8D) –4 8. 在Jav a语言中,逻辑常量只有tr ue和___________ 两个值。 9.J av a语言中的浮点型数据根据数据存储长度和数值精度的不同,进一 步分为flo at和__________两种具体类型。 10.Ja va语言是( )。 A.面向问题的解释型高级编程语言 B.面向机器的低级编程语言 C.面向过程的编译型高级编程语言 D.面向对象的解释型高级编程语言 11.下列的变量定义中,错误的是( )。 A)in t i;B)in t i=I nte ge r.MA X_V A LUE; C)st ati c int i=100;D)int123_$; 12.以下的变量定义语句中,合法的是()。 A) flo at$_*5= 3.4F; B)b yt e b1=15678; C) dou ble a=Dou ble. MAX_VA LUE; D)in t _a bc_=3721L; 13.以下字符常量中不合法的是()。 A)'|' B)'\''C) "\n"D) '我' 14.若以下变量均已正确定义并赋值,下面符合Ja va语言语法的语句是 ( )。 A) b = a!=7 ; B) a=7+b+c=9; C) i=12.3* % 4;D) a=a+7=c+b; 15.下列程序段执行后t5的结果是()。 int t1=9, t2=11, t3=8; int t4,t5; t4 = t1>t2?t1 : t2+t1; t5 = t4>t3?t4 : t3; A) 8 B)20C)11D)9 16.设a, b,c,d均为i nt型的变量,并已赋值,下列表达式的结果属 于非逻辑值的 是()。