JAVA程序设计基础练习题一、单选题(本大题 15 小题,每小题 2 分,共 30 分) 1. 下列语句执行后,变量 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 【 答案 】 B2. 下面哪个表达式可用得到 x 和 y 的最大值 ( ) ?A) x>y?y:x B) x<y?y:x C) x>y?(x+y):(x-y) D) x==y?y:x; 【 答案 】 B3. 以下是应用程序中定义的静态方法 printBinary ,若在其 main 方法中有方法调用语句 printBinary(2) ,则输出的结果是 ( ) 。static void printBinary(int i) {System.out.print(i + " 的 2 进制数表示为: t");for(int j = 31; j >=0; j--)if(((1 << j) & i) != 0)System.out.print("1");elseSystem.out.print("0");System.out.println();// 换行}A) 00000000000000000000000000000001 B) 00000000000000000000000000000010C) 00000000000000000000000000001111 D) 00000000000000000000000000000000 【 答案 】 B4. 应用程序的 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” 【 答案 】 A5. 应用程序的 main 方法中有以下语句,则输出的结果是 ( ) 。double x=1234.1234567;DecimalFormat form1 = new DecimalFormat("0000.0");System.out.println("PI="+form1.format(x));A) PI=1234.1 B) PI=1234C) PI=1234.1235 D) PI=1234.0 【 答案 】 A6. 下列程序段执行后的结果是 ( ) 。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 【 答案 】 A7. 应用程序的 main 方法中有以下语句,则输出的结果是 ( ) 。int[] x={122,33,55,678,-987};int max=x[0];for(int i=1;i<x.length;i++){if(x[i]>max)max=x[i];}System.out.println(max);A) 678 B) 122 C ) -987 D) 33 【 答案 】 A8. 下列语句序列执行后, k 的值是 ( ) 。int x=2, y=5, k=0;switch( x%y ) {case 0: k=x+y; break;case 1: k=x-y; break;case 2: k=x*y; break;default: k=x/y; break;}System.out.println(k);A) 2 B) 5 C ) 10 D) 0 【 答案 】 C9. 下面的程序输出的结果是( )public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;}A) i=0 B) i= 10 C ) 程序有编译错误 D) i=true 【 答案 】 B10 .应用程序的 main 方法中有以下语句,则输出的结果是 ( ) 。int b[][]={{1, 2, 3}, {4,5}, {6,7}};int sum=0;for(int i=0;i<b.length;i++) {for(int j=0;j<b[i].length;j++) {sum+=b[i][j];}}System.out.println("sum="+sum);A) 28 B) 6 C ) 9 D) 13 【 答案 】 A11. 有整型数组: int[] x={12,35,8,7,2};, 则调用方法 Arrays.sort(x) 后,数组 x 中的元素值依次是 ( ).A) 2 7 8 12 35 B) 12 35 8 7 2 C ) 35 12 8 7 2 D) 8 7 12 35 2【 答案 】 A12. 编译和运行下面的应用程序,并在命令行界面输入 12345 ,则回车后屏幕输出的结果是 ( ).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);}}A) 45 B) 5 C ) 123 D) 12345 【 答案 】 C13. 下面的程序段执行后输出的结果是 ( ) 。StringBuffer buf=new StringBuffer("Beijing2008");buf.insert(7,"@");System.out.println(buf.toString());A) Beijing@2008 B) @Beijing 2008 C ) Beijing2008@ D) Beijing#2008 【 答案 】 A14. 下面的程序编译运行后输出的结果是 ( ) 。public class A implements Runnable {public static void main(String argv[]) {A a = new A();Thread t = new Thread(a);t.start();}public void run() {while(true) {try{Thread.currentThread().sleep(1000);}catch(InterruptedException e){System.out.println(e.toString());}System.out.println("looping while");}}}A) 在屏幕上重复输出 "looping while" 。 B) 在屏幕上输出一次 "looping while" 。C) 没有结果输出。 D) 以上说法都错误。 【 答案 】 A15. 下面的程序段创建了 BufferedReader 类的对象 in ,以便读取本机 d 盘 my 文件夹下的文件 1.txt 。 File 构造函数中正确的路径和文件名的表示是 ( ) 。File f=new File( 填代码处 );file=new FileReader(f);in=new BufferedReader(file);A) "1.txt" B) "d:\my\1" C) "d:\my\1.txt" D) "d: my1.txt" 【 答案 】 C二、多选题(本大题 10 小题,每小题 2 分,共 20 分)1. 下面的说法正确的是 ( ) 。A) Java 语言是面向对象的、解释执行的网络编程语言。 B) Java 语言具有可移植性,是与平台无关的编程语言。C) Java 语言可对内存垃圾自动收集。 D) Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要 java 的运行环境。【 答案 】 ABCD2. 下面 main() 方法的定义哪些是正确的 ( ) ?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) {} 【 答案 】 ACD3. 定义变量如下 :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; 【 答案 】 AD4. 下面哪些关键字能用来控制对类成员的访问 ( ) ?A)public B)protected C)private D)default 【 答案 】 ABC5. 面向对象程序设计的基本特征是 ( ) 。A) 抽象 B) 封装 C) 继承 D) 多态 【 答案 】 ABCD6. 下面关于类的说法正确的是 ( ) 。A) 类是 Java 语言中的一种复合数据类型。 B) 类中包含数据变量和方法。C) 类是对所有具有一定共性的对象的抽象。 D) Java 语言的类只支持单继承。 【 答案 】 ABCD7. 编译并运行下面的程序,运行结果为 ( ).public class T1 {public static void main (String[] args){T 1 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: 8float: 1.2C) 程序可以编译运行,输出结果为:float: 1.2long: 8D) 程序中定义的两个参数不同的 method 方法称为方法重栽。 【 答案 】 BD8. 下面是在命令行运行 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] 【 答案 】 BD9. 编译并运行下面的程序,运行结果为 ( ).public class A {public static void main (String[] args) {A a=new B( );a.test();}void test() {System.out.print ("A");}}class B extends A {void test() {super.test();System.out.println("B");}}A) 子类 B 定义了与父类 A 中同名的方法 test , java 中称为方法的覆盖。 B) 代码可以编译运行,并输出结果: AB 。C) 代码可以编译运行,并输出结果: A 。 D) 子类 B 定义了与父类 A 中同名的方法 test , java 中称为方法的重载。【答案】 AB10. 下面哪个说法正确 ( ) ?A) 如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。B) 如果源文件包含 import 语句,则该语句必须是除空行和注释行外的第一个语句行。C) 如果某源文件包含 package 语句,则该语句必须是第一个非空、非注释行。D) 接口中的方法必定是抽象方法,但可以不用关键字 abstract 修饰。 【 答案 】 ABCD三、填空题(本大题 10 小题,每小题 1 分,共 10 分)1. 创建类的对象时,使用运算符 ___________ 给对象分配内存空间。2. 定义类的构造方法不能有返回值类型,其名称与 _____ 名相同。3. Java 语言中关键字 _____ 表示双精度类型。4. 若有定义: float b={ 1.1f , 3.5f , 6.8f}; ,则 b.length() 的值是 _______ 。5 .若有类定义:class B extends A{…}则类 B 是类 A 的 ______ 。6 .接口中的成员只有静态常量和 ______ 。7. 在子类中使用关键字 _______ 做前缀可调用 被子类覆盖的父类中的方法。8. 关键字 ______ 用于导入包中的类到程序中,供程序中使用。9. Java 语言中 , 通常把可能发生异常的方法调用语句放到 try 块中,并用紧跟其后的 _____ 块来捕获和处理异常。10. 程序中实现多线程的方法有两种:继承 _____ 类和实现 Runnable 接口。【 答案 】1.new 2. 类 3.double 4. 3 5. 子类 6. 抽象方法 7.super 8. import 9. catch 10. Thread四、阅读程序,回答问题(本大题 5 小题,每小题 5 分,共 25 分)1. (5 分 )1: public class Output1 {2: public static void main(String arge[]) {3: int i=0;4: for ( char ch = 97; ch<113; ch++,i++) {5: if( i % 8 == 0 )6: System.out.println(" ");7: System.out.print("t" +ch);8: }9: }10: }(1) 程序第 5 、 6 行的 if 语句的功能是什么? (2 分 ) (2) 程序输出的结果有几行? (3 分 )【 答案 】 (1) 每打印 8 个字符,则换行。 (2) 输出的结果有 2 行。2. (5 分 )1: import java.util.Arrays;2:3: public class SortArray {4: public static void main(String args[]) {5: String[] str = {"size", "abs","length","class"};6: Arrays.sort(str);7: for (int i=0; i<str.length; i++)8: System.out.print(str[i]+" ");9: }10: }(1) 写出程序运行后的结果。 (2 分 )(2) 方法调用 str[0].length() 的返回结果是多少? (3 分 )【 答案 】 (1) abs class length size (2) 43. (5 分 )1: //TestKeyListener.java2: import java.applet.Applet;3: import java.awt.*;4: import java.awt.event.*;5:6: public class TestKeyListener extends Applet {7:8: Color clr;9:10: public void init() {11:12: addKeyListener(13: new KeyAdapter() {14: public void keyTyped( KeyEvent e ) {15: if(e.getKeyChar()=='r'||e.getKeyChar()=='R')16: clr=Color.red;17: else if(e.getKeyChar()=='g'||e.getKeyChar()=='G')18: clr=Color.green;19: else if(e.getKeyChar()=='b'||e.getKeyChar()=='B')20: clr=Color.blue;21: else22: clr=Color.black;23: setBackground(clr);24: }25: });26: }27: }(1) 程序第 15 、 16 行实现的功能是什么? (2 分 )(2) 编译该程序,并编写嵌入该程序字节码文件的网页后,通过支持 java 的浏览器打开网页。如果敲击键盘的‘ b '键,有什么结果? (3 分 )【 答案 】 (1) 如果敲击键盘的‘ r '键,则将颜色对象的值赋为红色。 (2) 小程序的背景颜色变为兰色。4. 定义类 A 和类 B 如下 . (5 分 )class A{int a=1;double d=2.0;void show( ){System.out.println("Class A: a="+a +"td="+d);}}class B extends A{float a= 3.0f ;String d="Java program.";void show( ){super.show( );System.out.println("Class B: a="+a +"td="+d);}}(1) 若在应用程序的 main 方法中有以下语句:A a=new A();a.show();则输出的结果如何? (2 分 )(2) 若在应用程序的 main 方法中定义类 B 的对象 b :A b=new B();b.show();则输出的结果如何? (3 分 )【 答案 】(1) Class A: a=1 d=2.0(2) Class A: a=1 d=2.0Class B: a=3.0 d=Java program.5. (5 分 )import java.util.*;public class W {static String[] s={" 甲 "," 乙 "," 丙 "," 丁 "};public static void main(String[] args) {Stack stk=new Stack();for(int i=0;i<s.length;i++) {stk.push(s[i]+" ");}int k=0;while(k<3) {System.out.print(stk.pop());k++;}}}(1) 堆栈的操作规则如何? (2 分 ) (2) 写出程序运行后的结果。 (3 分 )【 答案 】 (1) 先进后出 (2) 丁 丙 乙五、根据题目要求编写程序(本大题 2 小题,第 1 小题 5 分,第 2 小题 10 分,共 15 分)1. 请定义一个名为 Card 的扑克牌类,该类有两个 private 访问权限的字符串变量 face 和 suit :分别描述一张牌的牌面值(如: A 、 K 、 Q 、 J 、 10 、 9 、 … 、 3 、 2 等)和花色(如:“黑桃”、“红桃”、“梅花”和“方块”)。定义 Card 类中的 public 访问权限的构造方法,为类中的变量赋值;定义 protected 访问权限的方法 getFace() ,得到扑克牌的牌面值 ; 定义 protected 访问权限的方法 getSuit() ,得到扑克牌的花色 ; 定义方法 toString() ,返回表示扑克牌的花色和牌面值字符串(如“红桃 A ”、“梅花 10 ” 等)。【 答案 】 1 . 5 分class Card {private String face;private String suit;public Card( String f, String s ) {face = f;suit = s;}protected String getSuit(){return suit;}protected String getFace(){return face;}public String toString(){return face + " of " + suit;}}2. 若应用程序的 main 方法中,定义字符串数组 f 和 s: 分别表示扑克牌的牌面值和花色;定义 52 个元素的 Card 类型数组 deck ,用来存放 4 个花色的 52 张牌。如下所示。String f[] = { "A", "2", "3","4", "5", "6", "7", "8","9", "10", "J", "Q", "K" };String s[] ={ " 黑桃 ", " 红桃 ", " 梅花 ", " 方块 " };Card deck = new Card[ 52 ];( 1 )使用 Card 类的构造方法给 deck 数组的 52 张牌赋值,要求数组中先存放 黑桃花色的 A 、 2 、 3 、 … 、 K ;然后是红桃花色的 A 、 2 、 3 、 … 、 K ;梅花花色的 A 、 2 、 3 、 … 、 K ;方块花色的 A 、 2 、 3 、 … 、 K 。请写出实现上述功能的程序段。【 答案 】 ( 1 ) 5 分for ( int i = 0; i < deck.length; i++ ) {deck[ i ] = new Card( faces[ i % 13 ], suits[ i / 13 ] );}( 2 )请编写模拟洗牌的程序段,即把数组 deck 中的扑克牌随机打乱存放顺序。【 答案 】 ( 2 ) 5 分for ( int first= 0; first< deck.length; first++ ) {int second = ( int ) ( Math.random() * 52 );Card temp = deck[ first];deck[ first] = deck[ second ];deck[ second ] = temp;}
JAVA程序设计基础练习题
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《JAVA程序设计基础练习题》
文章链接:https://www.skykkk.com/archives1745.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《JAVA程序设计基础练习题》
文章链接:https://www.skykkk.com/archives1745.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
相关推荐
- 暂无文章