《Java面向对象编程》练习题.pdf
.JavaJava 面向对象编程面向对象编程练习题练习题专题专题 1 1 初识初识 JavaJava一、填空题一、填空题1 自从 Sun 推出 Java 以来,按应用围可分为三个版本,分别是(JAVA SE)、(JAVAEE)、(JAVA ME)。2环境变量的设置,若 JDK 安装在“D:JDK”,则应设置 Path 为(D:JDKbin)、classpath 为(D:JDKlib)。3Java 源文件的扩展名为(.java),用 Javac 编译 Java 源文件,得到的字节码文件的扩展名为(.class)。4如果 Java 源文件中有多个类,那么只能有一个类是(public class)类。5Java 程序可以分成两类,即(Java ApplicationJava Application)和(java Appletjava Applet)。二、选择题二、选择题1作为 Java 应用程序入口的 main 方法,其声明格式是(b)A public static int main(String args)B public static void main(Stringargs)Cpublic void main(String args)Dpublic int main(String args)2下面命令正确的是(B)Ajava AppFirst.java Bjava AppFirstCjava appfirst.class Djavac AppFirst3设有 一个 Java 小程序,源程 序名为FirstApplet.java,其 HTML 文件为.FirstApplet.html,则运行该小程序的命令为(D)Ajava FirstApplet Bjavac FirstApplet.javaC appletviewer FirstApplet.javaD appletviewerFirstApplet.html4JDK 安装完成后,主要的命令如 javac、java 等,都存放在根目录的(A)文件夹下。Abin Bjre Cinclude Ddoc5Java 语言是一种D 语言。A机器B汇编C面向过程的D面向对象的6、Java 程序的最基本组成单位是D。A函数B过程C变量D类三、简答题(十分重要)三、简答题(十分重要)1Java 语言有哪些特点?2JDK 安装完成后,如何设置环境变量?3简述 Java 应用程序和小应用程序的区别。4简述 Java 应用程序的开发过程.专题专题 2 2 标识符、表达式、数据类型标识符、表达式、数据类型一、填空题一、填空题1Java 逻辑常量有两个:(ture)和(flase)。2写出下列表达式的运算结果,设 a=2,b=-4,c=true。(1)-a%b+-2(2)a=1&a b)(4)(-a)afalse-8-0.4(5)(double)(a+b)/5+a/b3、比较两个数相等的运算符是:=。4、Java 中的八种基本数据类型分别是:char、int、long、shore、flaot、double、byte和 boolean。二、选择题二、选择题1下面这些标识符哪个是错误的(C)AJavaworld B_sum C2Java Program D$abc2下列哪一组运算符的优先级顺序是从高到低排列的(B)A|、&、!B&、|C!、%、+D、3?+a:b+);Aa 的值为 2,b 的值为 3,c 的值为 1 Ba 的值为 2,b 的值为 4,c 的值为 2Ca 的值为 2,b 的值为 4,c 的值为 1 Da 的值为 2,b 的值为 3,c 的值为 26设各个变量的定义如下,哪些选项的值为 true(C)int a=3,b=3;boolean flag=true;A+a=b B+a=b+C(+a=b)|flag D(+a=b)&flag7表达式(int)6.5/7.5*3 的值的类型为(C)?Ashort Bint Cdouble Dfloat8设 a,b,x,y,z 均为 int 型变量,并已赋值,下列表达式的结果属于非逻辑值的是(D)Axy&bx-y Cy=+x Dy+x*x+9下面语句输出的结果为(B)Syste.out.println(52);A6 B7 C10 D2510对下面的语句执行完后正确的说法是:(D).int c=c/3;System.out.println(c);A输出结果为 21 B输出结果为 22 C输出结果为 32 D输出结果为 3311以下选项中变量 a 已定义类型,合法的赋值语句为(D)Aa=int(y);Ba=1;Ca=a+1=3;D+a;12执行下列程序段后,ch,x,y 的值正确的是:(A)int x=3,y=4;boolean ch;ch=xy&+x=-y;Atrue,6,8Bfalse,6,8Ce,7,7Dfalse,7,719、下列程序运行的结果是 D。public class A public static void main(String args)int x=7%3;while(x).x-;System.out.println(x);A0B1CtrueD编译错误三、编程题三、编程题1使用 Math.pow()方法,求出 2 的 32 次方的值。专题专题 3 3 流程控制语句流程控制语句一、填空题一、填空题1在 switch 语句中的表达式的类型必须是(int 型)或者(Boolean)。2break 在循环语句中的作用是(跳出整个循环)。3分支语句包括(双重分支)和(多重分支)。4while 循环语句的循环次数(不限),do-while 语句的循环次数(至少一次),for 语句的循环次数(不限)。.二、选择题二、选择题1下面程序片段输出的是什么(C)int a=3,b=1;if(a=b)Syste.out.println(“a=”+a);Aa=1 Ba=3 C编译错误,没有输出 D正常运行,但没有输出2下面语句执行后,x 的值为(C)int a=4,b=5,x=3;if(+a=b)x=x*a;A3 B12 C15 D203请看下面的程序代码:if(x0)Syste.out.println(“first”);else if(x20)Syste.out.println(“second”);else Syste.out.println(“third”);当程序输出“second”时,x 的围是(B)Ax=0 Bx=0 Cx0 Dx=204请看下面的程序代码:switch(n)case 0:Syste.out.println(“first”);case 1:case 2:Syste.out.println(“second”);break;default:Syste.out.println(“end”);.当 n 为何值时,程序段将输出字符串”second”(D)A 0 B1 C2 D以上都可以5下列语句执行后,j 的值是(D)int j=3,i=3;while(-i!=i/j)j=j+2;A 4 B5 C6 D76下列语句执行后,x 的值是(D)int x=2;dox+=x;while(x-j)continue;while(i4);A i=4,j=5 Bi=5,j=4 Ci=5,j=5 D8下列语句执行后,k 的值是(B)int j=4,i,k=10;for(i=2;i!=j;i+)k=k-i;A 4 B5 C6 D79下列语句执行后,c 的值是(C).i=5,j=6.char c=0;for(c=a;c=e)break;A e Bf Cg Dh10若变量都已经正确说明,则以下程序段输出为(A)a=10;b=50;c=30;if(ab)a=b;b=c;c=a;System.out.println(“a=”+a+”b=”+b+”c=”+c);Aa=10 b=50 c=10 Ba=10 b=30 c=10Ca=50 b=30 c=10 Da=50 b=30 c=3011以下程序段输出是(D)int x=1,y=0,a=0,b=0;i=(-a=b+)?-a:+b;j=a+;k=b;System.out.println(“i=”+i+”,j=”+j+”,k=”+k);2 -1 2Ai=2,j=1,k=3 Bi=1,j=1,k=2 Ci=4,j=2,k=4 Di=2,j=-1,k=212以下程序的输出是(B)int x=1,y=0,a=0,b=0;switch(x)case 1:.switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;break;case 3:a+;b+;System.out.println(“a=”+a+”,b=”+b);2 0Aa=1,b=0 Ba=2,b=0 Ca=1,b=1 Da=2,b=213以下程序段输出是(C)int i=0,j=0,a=6;if(+i0)|(+j0)a+:System.out.println(“i=”+i+”,j=”+j+”,a=”+a);Ai=0,j=0,a=6 Bi=1,j=1,a=7 Ci=1,j=0,a=7 Di=0,j=1,a=714、下列程序运行的结果是 C。public class A public static void main(String args)char c=d;for(int i=1;i=0;i-)arri=2*i+1;String output=0;int sum=0;for(int i=0;i0B=0C0D不确定9、已知 String s=This is a string,则 s.indexOf(is)的值为。A1B2C3D410、已知 int i=123,通过以下哪种方式可以得到字符串123。AInteger.parseInt(i);CLong.parseLong(i);11、以下程序段执行的结果为。String str1,str2;str1=Byebye;str2=Byebye;System.out.print(str1.equals(str2);System.out.println(str1=str2);AtruefalseBtruetrueCfalsetrueDfalsefalse12、已知 StringBuffer sb=new StringBuffer(abcde),则 sb.delete(1,2)后 sb的值为。AabcBabdeCacde DadeBString.valueOf(i);DFloat.parseFloat(i);.三、编程题三、编程题1实现把“I Love Java!”的字符全部转换为小写并输出到控制台。2使用 String 类中的 split()函数,统计出“this is my homework!I must finish it!”中单词的个数。(注意:单词之间用一个空格来分隔。)3给出两个日期,计算它们之间相隔的天数。4实现将当前日期信息以4 位年份、月份全称、两位日期形式输出。.专题专题 7 7异常处理异常处理一一填填空题空题1一个 try 语句块后必须跟()语句块,()语句块可以没有2自定义异常类必须继承()类及其子类3异常处理机制允许根据具体的情况选择在何处处理异常,可以在()捕获并处理,也可以用 throws 子句把他交给()处理二选择题二选择题1.finally 语句块中的代码()A总是被执行B当 try 语句块后面没有 catch 时,finally 中的代码才会执行C异常发生时才执行D异常没有发生时才被执行2.抛出异常应该使用的关键字是()AthrowBcatchCfinallyDthrows3.自定义异常类时,可以继承的类是()AErrorBAppletCException 及其子类DAssertionError.4.在异常处理中,将可能抛出异常的方法放在()语句块中AthrowsBcatchCtryDfinally5.对于 trycatch 子句的排列方式,下列正确的一项是()A子类异常在前,父类异常在后B父类异常在前,子类异常在后C只能有子类异常D父类异常与子类异常不能同时出现6.使用 catch(Exception e)的好处是()A只会捕获个别类型的异常B捕获 try 语句块中产生的所有类型的异常C忽略一些异常D执行一些程序三简答题三简答题1try/catch/finally 如何使用?2Throw/throws 有什么联系和区别?3如何自定义异常类?4谈谈 final、finally 的区别和作用5如果 try里有一个 return 语句,那么紧跟在这个 try 后的 finally里的代码.会不会被执行?6Error 和 Exception 有什么区别?(重要)7什么是 RuntimeException?列举至少 4 个 RuntimeException 的子类四编程题四编程题1编写程序,要求输入若干整数,输入的同时计算前面输入各数的乘积,若乘积超过 100000,则认为是异常,捕获并处理这个异常,输出信息。2编写一个登录界面,要求名只能由1 至 10 位数字组成,密码只能有6 位,任何不符合名和密码要求的情况都视为异常,必须捕获并处理异常3设计自己的异常类表示对负数求平方根的错误;在类Test 的主方法中,从键盘输入一个数,若输入的数不小于 0,则输出它的平方根;若小于 0,则抛出自定义异常;在程序中处理异常并输出提示信息“输入错误,不能对负数求平方根”专题专题 8 8多线程多线程一、填空题一、填空题1Java 语言实现多线程的方法有两种,它们是()和()2 线程有 5 种状态,它们是()、()、()、()和()3在 java 中,线程同步是通过()关键字实现的4新创建的线程默认的优先级是()5当一个线程睡眠时,sleep()方法不消耗()时间二选择题二选择题1.一个 Java 程序运行后,在系统中这个程序便可以作为一个()A线程 B进程 C进程或线程 D不可预知2.设已经编好了一个线程类 MyThread,要在 main()中启动该线程,需使用以下哪个方法().Anew MyThreadBMyThread myThread=new MyThread();myThread.start();CMyThread myThread=new MyThread();myThread.run();Dnew MyThread.start();3.以下哪个方法不能使线程进入阻塞状态()Asleep()Bwait()Csuspend()Dstop()4.可以使用()方法设置线程的优先级AgetPriority()BsetPriority()Cyield()Dwait()5.线程是 Java 的()机制A检查 B解释执行 C并行 D并发6.以下方法用于定义线程执行体的是()Astart()Binit()Crun()Dmain()7.一个线程如果调用了 sleep()方法,能唤醒它的方法是()Anotify()Bresume()Crun()D以上都不是三、编程题三、编程题1设计四个线程对象对同一个数据进行操作,两个线程执行减操作,两个线程执行加操作2制作两个线程对象,要求用同步块的方式使第一个线程运行 2 次,然后将自己阻塞起来,唤醒第二个线程,第二个线程再运行2 次,然后将自己阻塞起来,唤醒第一个线程两个线程交替执行。.专题专题 9 9 图形用户界面编程图形用户界面编程一填空题一填空题1 AWT 的组件库被更稳定、通用、灵活的库取代,该库称为()2()用于安排容器上的 GUI 组件3 设置容器的布局管理器的方法是()4 当释放鼠标按键时,将产生()事件5 Java 为那些声明了多个方法的 Listener 接口提供了一个对应的(),在该类中实现了对应接口的所有方法6 ActionEvent 事件的监听器接口是(),注册该时间监听器的方法名是(),事件处理方法名是()7 图形用户界面通过()相应用户和程序的交互,产生事件的组件称为()8 Java 的 Swing 包中定义菜单的类是()9 向容器添加组件使用()方法10 对话框有两种类型,分别是()和()11 工具栏一般放在窗口的()位置12 若要使表格具有滚动条,需要将表格添加到()组件中。13 paint()方法的参数是()类的实例14 drawRect(int x1,int y1,int x2,int y2)中,x2 和 y2 分别代表矩形的()和().二选择题二选择题1 窗口 JFrame 使用()方法可以将 jMenuBar 对象设置为主菜单AsetHelpMenu(jMenuBar)Badd(jMenuBar)CsetJMenuBar(jMenuBar)DsetMenu(jMenuBar)2 下面属于容器类的是()AColor 类BJMenu 类CJFrame 类DJTextField 类3 使用()类创建菜单对象ADimensionBJMemuCJMenuItemDJTextArea4 使用()方法创建菜单中的分隔条AsetEditableBChangeListenerCaddDaddSeparator5 JPanel 和 JApplet 的默认布局管理器是()ACardLayoutBFlowLayoutCBorderLayoutDGridLayout6 JFrame 的默认布局管理器是()ACardLayoutBFlowLayoutCBorderLayoutDGridLayout7 按钮可以产生 ActionEvent 事件,实现哪个接口可以处理此事件(AFocusListenerBComponentListenerCActionListenerDWindowListener.).8 容器使用()方法将组件添加到容器AaddComponent()Badd()CsetComponent()DAdd()9 向 JTextArea 的()方法传递 false 参数可以防止用户修改文本AsetEditableBchangeListenerCaddDaddSeparator10为了能够通过选择输入学生性别,使用组件的最佳选择是()AJCheckBoxBJRadioButtonCJComboBoxDJList11当选中一个复选框,即在前面的方框上打上对勾,引发的事件是(AActionEventBItemEventCSelectEventDChangeEvent12窗口关闭时会触发的事件是()AContainerEventBItemEventCWindowEventDMouseEvent13下面哪种对话框可以接受用户输入()AshowConfirmDialogBshowInputDialogCshowMessageDialogDshowOptionDialog14addActionListener(this)方法中的 this 参数表示的意思是(A当有事件发生时,应该使用 this 监听器Bthis 对象类会处理此事件Cthis 事件优先于其他事件.).D只是一种形式15以下类中,具有绘图能力的类是()BGraphicsDColorAImageCFont16Graphics 类中提供的绘图方法分为两类:一类是绘制图形,另一类是绘制()A屏幕 B文本 C颜色 D图像三、编程题三、编程题1设计一个图形界面的猜数字游戏程序2设计一个将华氏温度转换为摄氏温度的程序,按钮完成温度的转换。公式:摄氏温度=(华氏温度-32)*5/93设计一个 C/S 考试系统的界面(如下图),单击“确认”按钮后,使“开始考试”按钮可用,并使“学号”、“”后的文本框及“确认”按钮不可用;单击“开始考试”按钮后使“下一题”按钮可用,同时设置“开始考试”按钮不可用。4设计一个窗口,里面有两个文本框和一个按钮,在第一个文本框中输入一个数,当单击按钮时,在另一个文本框中显示该数字的平方根,要求能处理异常。.5下面的程序实现了在窗口中绘制一个以(70,70)为圆心,50 为半径,边框是绿色的圆,圆心是红色的。请将程序补充完整:class Exam extends Frame public void paint(Graphics g)g.setColor(Color.green);g.drawOval(20,20,100,100);g.setColor(Color.red);_;6下面的程序实现了在窗体的坐标(50,50)处以红色显示“红色文字”,请将程序补充完整:class Exam extends Frame public void paint(Graphics g)_;g.drawString(“红色文字”,50,50);.专题专题 1010(模块(模块 7 7)输入输出输入输出一、填空题一、填空题1根据流的方向,流可以分为两类:()和()2根据操作对象的类型,可以将数据流分为()和()两种3 在 java.io 包中有 4 个基本类:InputStream、OutputStream、Reader 和()类4在 Java 语言中,实现多线程之间通信的流是()5()类是 java.io 包中一个非常重要的非流类,封装了操作文件系统的功能。6()类用于将 Java 的基本数据类型转换为字符串,并作为控制台的标准输出7Java 包括的两个标准输出对象分别是标准输出对象()和标准错误输出8 FileInputStream 实现对磁盘文件的读取操作,在读取字符的时候,它一般与()和()一起使用二选择题二选择题1Java 语言提供处理不同类型流的类所在的包是()Ajava.sql Bjava.util Cjava.math Djava.io2创建一个 DataOutputStream 的语句是()Anew DataOutputStream(“out.txt”)Bnew DataOutputStream(new File(“out.txt”);Cnew DataOutputStream(new Writer(“out.txt”);Dnew DataOutputStream(new OutputStream(“out.txt”);.3下面语句正确的是()ARandomAccessFile raf=new RandomAccessFile(“myfile.txt”,”rw”);BRandomAccessFile raf=new RandomAccessFile(new DataInputStream();CRandomAccessFile raf=new RandomAccessFile(“myfile.txt”);DRandomAccessFile raf=new RandomAccessFile(new File(“myfile.txt”);4下面哪个方法返回的是文件的绝对路径()AgetCanonicalPath()BgetAbsolutePath()CgetCanonicalFile()DgetAbsoluteFile()5在 File 类提供的方法中,用语创建目录的方法是()Amkdir()Bmkdirs()Clist()DlistRoots()6程序如果要按行输入/输出文件中的字符,最合理的方法是采用()ABufferedReader 和 BufferedWriter 类BInputStream 和 OutputStream 类CFileReader 和 FileWriter 类DFile_Reader 和 File_Writer 类7RandomAccessFile 类的()方法可用于设置文件定位指针在文件中的位置。AreadInt BreadLine Cseek Dclose8下面哪个流类使用了缓冲区技术()A BufferadOutputStreamB FileInputStreamC DataOutputStreamDFileReader.三、编程题三、编程题1编写一段代码,实现的功能是:统计一个文件中字母“A”和“a”出现的总次数2使用随机文件流类 RandomAccessFile 将一个文本文件倒置读出。3编写一个Java 应用程序,可以实现Dos 中的 type 命令,并加上行号。即将文本文件在控制台上显示出来,并在每一行的前面加上行号。专题专题 1111(模块(模块 8 8)数据库数据库 JDBCJDBC一简答题一简答题1说明 ODBC 数据源创建的步骤2JDBC 提供了哪几种连接数据库的方式?(重要)3SQL 语言包括哪几种基本语句来完成数据库的基本操作?4写出装载驱动程序的代码5说明 Statement 和 PreparedStatement 的不同,都用在什么场合?二选择题二选择题1下面方法中,可以用来加载JDBC 驱动程序的是()A类 java.sql.DriverManager 的 getDriver 方法B类 java.sql.DriverManager 的 getDrivers 方法C类 java.sql.Driver 的 connect 方法D类 java.lang.Class 的 forName 方法2下面方法中,可以用来建立数据库连接的是()A类 java.sql.DriverManager 的 getConnection 方法.B类 javax.sql.DataSource 的 getConnection 方法C类 javax.sql.DataSource 的 connection 方法D类 java.sql.Driver 的 getConnection 方法3一个()对象用于向数据库提交查询AResultSet BConnection CStatement DApplet4JDBC API 主要定义在下面哪个包中()Ajava.sql Bjava.io Cjava.awt Djava.util5Statement 类的 executeQuery()方法返回的数据类型是()AStatement 类的对象 BConnection 类的对象CDatabaseMetaData 类的对象 DResultSet 类的对象三、编程题三、编程题1创建一个图书数据库,包含书号、书名、作者、出版日期、数量等字段,分别用两种方法连接该数据库。2对上题中创建的图书数据库编写一个按照指定关键字查找图书信息的应用程序。3使用预编译的 SQL 语句对图书信息进行查询、插入、修改和删除操作。专题专题 1212(模块)(模块)网络编程网络编程一、填空题一、填空题1 一个 URL 地址是由(协议名称、主机名称、端口号、文件名)几部分组成的2 URL 类中返回 URL 端口号的方法是(public getPort())3 一个 Socket 由一个(IP)地址和一个(端口号)唯一确定4 目前最广泛使用的网络协议是Internet 上使用的(TCP/IP)协议5 TCP/IP 协议的两种通信协议是(TCP)协议和(UDP)协议6 常用的变成模式有客户端/(服务器)模式和 B/S 模式7 套接字是一个特定机器上被编号的(),用户可用的端口号是(),系统可用的端口号是()8 服务器端套接字类是(ServerSocket).二选择题二选择题1关于协议下面说确的是(b)ATCP/IP 协议由 TCP 协议和 IP 协议组成BTCP 和 UDP 都是 TCP/IP 协议传输层的子协议CSocket 是 TCP/IP 协议的一部分D主机名的解析是 TCP/IP 的一部分2TCP 协议栈的 4 层结构中不包括()A应用层 B传输层 C网络层 D会话层3下面服务中使用 TCP 协议的是(A)AHTTP BFTP CSMTP DNEWS4HTTP 服务的端口号是(A)A80 B21 C23 D1205下面 URL 合法的是(A)A92.168.1.59/index.html Bftp:/192,168,1,1/incomingCftp:/192.168.1.1:-1 D 192.168.1.1.26下面方法表示本机的是(C)Alocalhost B255.255.0.0 C127.0.0.1 D123.456.789.07一个 Socket 由(A)唯一确定A一个 IP 地址和一个端口号 B一个 IP 地址和一个主机名C一个主机号和一个端口号 D一个 IP 地址8获取本机地址可以使用下面哪个方法(B)A getHostName()B getLocalHost()C getByName()D getHostAddress().9以下()方法可以获取指定 URL 的协议名Apublic String getProtocol()Bpublic String getHost()Cpublic final Object getContent()Dpublic int getPort()10 下面创建 Socket 的语句中正确的是()A Socketa=newSocket(80);B Socketb=newSocket(“130.3.4.5”,80);C ServerSocketc=newSocket(80);D ServerSocketSocket(“130.3.4.5”,80);三简答题三简答题1什么叫套接字?它的作用是什么?2建立 Socket 连接时,客户端和服务器端有什么不同?3基于 UDP 的通信和基于 TCP 的通信有什么不同?4客户端的套接字对象和服务器端的套接字对象是如何进行通信的?四编程题四编程题1编写一个程序,利用URL 类来获取某一主页的 HTML 文件2编写一对客户机/服务器程序,利用数据报将一个文件从一台机器传到另一台机器上重要:.d=new