《第1章习题答案选择题.docx》由会员分享,可在线阅读,更多相关《第1章习题答案选择题.docx(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第1章习题答案一、选择题1 .下列关于Java Application程序结构特点的描述中,错误的是(C)。A. Java程序是有一个或多个类组成的B.组成Java程序若干个类可以放在一个文件中,也可以放在多个文件中C. Java程序的文件名要与某个类名相同Java程序的多个类中,有且仅有一个主类2 . Java程序经过编译后生成的文件的后缀是(A)。A. . obj B. . exe C. . class D. java3 .下列关于运行字节码文件的命令行参数的描述中,正确的是(A)。A.第一个命令行参数(紧跟命令字的参数)被存放在args 0中B.第一个命令行参数被存放在argsl中C.命
2、令行的命令字被放在args 0中D.数组args口的大小与命令行参数的个数无关二、判断题1. Java语言的源程序不是编译型的,而是编译解释型的。(J)2. 操作系统中进程和线程两个概念是没有区别的。(X)Java程序分为两大类:一类是Application程序,另一类是Applet程 序。前者又称Java应用程序,后者又称Java小应用程序。(J)3. 组成Java Application的若干类中,有且仅有一个主类,只有主类中 含有主方法main ()。( V )4. Java程序中是不区分大小写字母的。(X)5. Java程序编译后生成的是字节码文件,其后缀是.exe。(X)如果一个Ja
3、va程序中有多个类,编译后只生成一个字节码文件,其名 字同主类名。(J)6. Java程序中出现的输出方法printin()和print ()是完全一致的。(X )三、简答题1. Java语言有哪些特点?(1) Java语言是简单的Java语言是面向对象的(2) Java语言是分布式的class ChangFangTi extends Juxingint height;ChangFangTi(int 1, int w, int h)super (1, w);height=h;)public int findVolume() return findArea()*height;)public cl
4、ass Testpublic static void main (String args)ChangFangTi obj=new ChangFangTi (2,5,7);.printin (底面积=+rea();.printin (体积=+oume();)2.编写程序模拟银行存取款业务,具体说明如下:(1)建立银行帐户类Bank:成员变量:储户现有款项account (int型);成员方法:存款的方法takein ()取款的方法takeout ()显 示余额的方法show()(2)建立主类Classi:创建对象(对象名为tom),存款800,取款 200,显示余额。class Bankint
5、account;void takein(int a) account=account+a;void takeout (int a) account=account-a;void show() . printin (account) ;)public class Classipublic static void main(String a)Bank tom=new Bank ();n(800);ut(200);0;3、阅读下面的程序,并按要求完成:(1)在横线上填写适当语句,完成程序功能;(2)写出程序的调试过程; (3)写出程序结果。class PersonString name;char s
6、ex;int age;public Person(String s,char c,int i)name=s;sex=c; age=i;public String toString()Strings=姓名:+name+性别:+sex+“ 年龄:”+age; return s; 返回s的值 ) )public class Tlpublic static void main(String args) Person pl=new Person(张三”二男)20);Person p2=new Person(“李四”女,28);定义对象p2,各个参数分别为:李四,女,28pl.sexi女; 将pl的sex
7、属性改为女.println(pl.toStringO);p2.age=33; 将p2的的age改为33 ,println(p2.toString(); 输出p2的各个属性 )(2)调试过程:保存程序TL java javac Tl. java java Tl(3)运行结果:姓名:张三性别:女年龄:20姓名:李四性别:女年龄:334.阅读下面的程序,完成如下要求:(1)在横线上填上适当的语句,完成程序功能;(2)在程序一中的子类B中添加语句:int i, j;(对父类A中的同名 变量i,j进行了重新定义)运行结果是什么?这种现象称为什么?(3)在程序一中在子类B中添加成员方法:void show
8、ij () . printin (“覆盖了父类的成员方法”);(对父类A中的同名方法进行重新定义)运行结果是什么?这种现象称为什 么?class Aint i,j;void showij () . println(ni and j:+i + +j);)class B extends A /B 类继承 A 类int k;void showk() . printin(k: v+k) ;)void sum() . println(i+j+k: +(i+j+k) ;)public class Mlpublic static void main (String args)A father =new A(
9、); B son-new B () ; 使用 B 类创建对象 son father. i=10;father, j=20;j();son. i=7 ; son. j=8; son. k=9;Ilk0;();调用对象son中的方法sum()来求和对父类A中的同名变量i,j进行了重新定义)这种现象称为“变量的隐 藏”,运行结果无变化程序运行的结果:i and j:10 20i and j:7 8k:9i+j+k:24(3)对父类A的同名方法进行重新定义,这种现象称为“方法的覆盖” 运行结果:i and j:10 20覆盖了父类的成员方法k:9i+j+k:24第4章习题答案选择题. Swing图形用
10、户界面主要由(A)组成。A.组件 B.容器 C.布局管理器D.事件.下列说法正确的是(C)。A. JTextArea组件在需要时会自动显示滚动条JList组件可以有选择地设置滚动条,即可以有也可以没有B. JTextArea组件和JList组件本身都没有滚动条JScrollPane容器只能包含JTextArea组件或JList组件1 .创建一个有“开始”按钮语句的是(B)。A. JTextField b=new JTextField(“开始”);JButton b = new JButton (“开始”);B. JLabel b=new JLabel(开始”);JCheckbox b=new
11、JCheckbox (“开始”);2 .事件ActionEvent实现的接口是(D)。A. FocusListener B. ComponentListenerC. WindowListener D. ActionListener5 .为了监听列表框的选项状态是否改变,应该注册的监听器是(D)。A. ItemListener B. ActionListenerC. KeyListener D. ListSelectionListener6 .下列界面元素中,不是容器的是(A)A. JList B. JFrame C. JDialog D. JPanel7 .所有事件类的父类是(B)A. Act
12、ionEvent B. AwtEvent C. KeyEvent D. MouseEvent8 .下列各种布局管理器中,JDialog类和JFrame类的默认布局是(C)A. FlowLayout B. CardLayout C. BorderLyout D. GridLayout9 .在下列各种容器中,最简单的无边框的又不能移动和缩放的只能包含 在另一种容器的容器是(D)A.Window B.JDialog C.JFrame D.JPanel二、填空题.容蛰的主要功能是容纳其他组件和容器。1 .顶层容器包括JFrame和JDialog,这两个类的父类都是窗口类。2 .容器有两种,分别是Win
13、dow和JComponent。3 .对话框分为模态和非模态。4 .常用的菜单形式有两种,分别是常规菜单和快捷菜单。7 .菜单由菜单栏、菜单和菜单项组成。三、简答题.简述什么是组件和容器?(1)组件是图形用户界面中不可再分的最小元素。组件又称控制组件, 它的功能是与用户完成一次交互操作,如接收一个命令,显示一段 文本等。(2)容器是若干个组件和容器的集合。容器中包含了许多界面元素,这 些界面元素可以是组件,也可以是容器。容器实际上是对图形用户 界面中的界面元素的一种管理。将许多界面元素放在一个大容器里, 大容器中还可以有小容器,可用来实现复杂的用户界面。1 .简述什么是事件、事件源和事件处理以及
14、它们的关系?(1)事件:对鼠标、键盘以及其他输入设备的各种操作或一个活动 的发生称作事件(Event)。(2)事件源:鼠标、键盘以及其他输入设备操作的组件称为事件源 (Event Source),即事件发生的场所,通常就是各个组件。(3)事件处理:事件处理是指一旦事件产生时需要执行的操作。四、实践题1.设计一个计算器:包含数字按钮09,以及加、减、乘、除、清零、 等于按钮和一个显示计算结果的文本区,并实现加减乘除运算。package .xiaojia;import .BorderLayout;import .GridLayout;import . Image;import .nEvent;im
15、port.nListener;import.ArrayList;import, List;importpublicclass Demo extends JFrame private JFrame private JPanel private JPanel 中间三个按钮 private JButton private JButton private JButton /初始化功能键 StringEjf=new JFrame(Calculator); centerPanel=new JPanel(); bottomPanel=new JPanel();Backbtn二new JButton(nBac
16、kn);CEbtn=new JButton(nCE,r);Cbtn=new JButton(nCn);窗口中间面板底部面板f /-7 ir ir o tr ir 八 n . ”! a ir if r n !n n r v ir o r if q if f f tr r 八 n t n ”“ tr / )nums=(7,8,9,+,4,5,6,-, l,2,3,*,0,. ,=,/);private private private private private private private private private private private private private pri
17、vate private privateJButton JButton JButton JButton JButton JButton JButton JButton JButton JButton JButton JButton JButton JButton JButton JButtonbtn7=new JButton(nums0); btn8=new JButton(nums1); btn9=new JButton(nums2); btnAdd二new JButton(nums3); btn4=new JButton(nums4); btn5=new JButton(nums5); b
18、tn6=new JButton(nums6); btnMimus=new JButton(nums7); btnl=new JButton(nums8); btn2=new JButton(nums9); btn3=new JButton(nums10); btnMultipus=new JButton(nums11); btn0=new JButton(nums12); btnDot=new JButton(nums13); btnResult=new JButton(nums14); btnDivide=new JButton(nums15);单行输入文本框private JTextFie
19、ld txt=new JTextField(15);private Listlists=new ArrayList (); 用来记录用户输入的数 字和操作符主函数,程序入口public static void main(String args)try new Demo (). init (); catch (Exception e) . printin(程序异常终止”);(0); 退出虚拟机初始化 public void init () throws Exception 使用网格布局方式yout (new GridLayout (4,4,3,3); 左右上下间隔是 3 将功能键添加到底部面板中
20、 (btn7); (btn8); (btn9); (btnAdd); (btn4); (btn5); (btn6); (btnMimus); (btnl); (btn2); (btn3); (btnMultipus); (btnO); (btnDot); (btnResult); (btnDivide);将中间的三个按钮添加到中间面板 (Backbtn);(CEbtn); (Cbtn); jf. add (txt,);将单行文本框添加到窗口的 北部jf. add (centerPanel);将中间面板添加到窗口中间(默认是中间)jf. add(bottomPanel,); 将底部面板添加到窗口
21、的南部为C按钮添加事件监听 tionListener (e-0;将集合中的数据清零xt(”); 将 文本域的值设置为空 );为Back按钮添加事件监听使用Lamdba表达式tionListener (e- String text=xt (); 得到输入框文本 if (n ,r. equals (text) | | h()=l) xt(); 如果是空文本或者文本长度为1,直接设为空 return; if(h()l) 如果文本的长度大于1就要向前截取text=ring (0, h ()-1); xt (text););为CE按钮添加事件监听 tionListener (e- 得到输入文本框Stri
22、ng text=xt(); if equals(text) return;if equals (text) | | n-,f. equals (text) | | equals (text) | | 7”. equals (text) 表示要把+-*/清除,所以要把集合中的第一个数也移除集合(因为用户可能点了 +的时候,就点CE键,此时如果再点数字键就会出现问题) e(0);xt(”); 把文本直接清掉 );为数字按钮添加监听事件使用匿名内部类ActionListener numBtnListener=new ActionListener() Override public void acti
23、onPerformed(ActionEvent e) 得到输入文本框的内容 String text=xt();判断有没有这句话(0不能做分母,请清零后重试),如果有,当点击数字按钮 的时候要它消失if (除数不能为 0. equals (text) xt (e. getAct ionCommand (); return; )如果第一个数是0,就不能输入其他数字了,只能输入小数点了 if(0. equals (text) return; if equals (text) 当文本域中没数据的时候,把当前点击的数字显示上去xt (e. getActionCommand ();else 如果当前输入框
24、有数据,并且是操作符时,记录下该操作符if(s( + “)| s(*)| s(Vn)(text); 将操作符添加到集合中xt);text二”;将得到的文本符空,也就是将+或-或*或/赋空值 )text+=e. getActionCommand();xt (text);;为数字注册监听器tionListener(numBtnListener);tionListener(numBtnListener);tionListener(numBtnListener);tionListener (numBtnListener);tionListener(numBtnListener);tionListene
25、r(numBtnListener);tionListener(numBtnListener);tionListener(numBtnListener);tionListener(numBtnListener);为0按钮添加事件监听tionListener (e- 得到输入文本框String text=xt();if(,rOM.equals(text) 如果第一个数是0,不能再出现0 了return;)如果出现操作符,就记录下来if (n + n. equals(text) | | n-n. equals(text) | | *equals(text) | |equals (text) (tex
26、t);text=”; 把操作符情况(4) Java语言的可移植性(5) Java语言的平台无关性(6)稳定性和安全性(7) Java语言是多线程的(8) Java语言是高性能的(9) Java语言是动态的Java Application程序的在结构上有哪些特点?(1) Java Application程序由一个或多个文件组成,每个文件又由一 个或多个类构成,每个类中由若干个方法和变量组成。(2)在一个Java程序中,仅有一个主方法,Java程序就是从主方法开 始执行的。(3)在一个Java程序中,只有一个主文件,主文件即是包含主方法的 文件。2. Java Application程序编译后生成
27、什么文件?Java Application程序编译后生成.class文件Java Application程序如何被运行?(1)编辑Java源程序(2)编译生成字节码文件(3)解释运行字节码文件text+=e. getActionCommand (); xt (text););为点.按钮添加事件监听使用Lamdba表达式 tionListener (e- 得到输入文本框 String text=xt(); if (*.equals(text) return; 判断文本是否为+- */.if (n + n. equals (text) | | ,r-n. equals (text) | | equ
28、als (text) | | 7”. equals (text) return; 如果该数字后面已经有小数点了,那么就不能连续出现两次小数点了if(ins(”.)return; text+=e. getActionCommand(); xt(text); 设置进去 );为+-*/添加事件监听 使用匿名内部类ActionListener operationBtnListener=new ActionListener() Overridepublic void actionPerformed(ActionEvent e) 获取输入文本框内的内容String text=xt(); if ( equa
29、ls(text) return; )if (n + ,r. equals (text) | | ,r-n. equals (text) | | * equals (text) | | 7”. equals (text) return;)将内容添加到集合中(text);将输入框清空xt);把按钮上面的字显示进去xt (e. get Ac t i onCommand (););为* - + /注册监听器tionListener(operationBtnListener);tionListener (operationBtnListener);tionListener(operationBtnLis
30、tener);tionListener(operationBtnListener);为二按钮添加事件监听ActionListener resultBtnListener=new ActionListener()Overridepublic void actionPerformed(ActionEvent e) 判断集合中的数据if (ty() return;获取文本输入框的内容String text=xt();if(nn. equals(txt) | | + equals(text) | | 一equals(text)equals(text)| | equals(text) return;)将
31、其添加到集合中(text);if()3) return;String one=(0); 得到集合中的第一个数String two=(l) ; /得到集合中的第二个数String three= (2); 得到集合中的第三个数 switch(two)ff 1 flcase + :double i=Double(one);double j=Double(three); xt(i+j)+WM); 显示结果break; ff fl case -:double x二Double (one);double y=Double (three); xt(x-y) + ”); 显示结果 break;ff t fl
32、case * :double a=Double(one);double b=Double(three);xt(a*b)+,fM);break; / fl case / :double k=Double (one);double h=Double (three);if (h=0) xt(”除数不能为0”);0;return;xt(k/h) + ”“);break;)将集合中的数据清空0;);为二等号按钮注册监听器tionListener(resultBtnListener);自定义窗口的图标Imageicon image=new Imageicon(image/11); 图片位置age (age
33、(). getScaledInstance(30,30,_DEFAULT);jf. seticonimage (age ();设置UI的风格为NimbusokAndFeel (n. s. NimbusLookAndFeel,f);更新f窗口内所有组件的UIeComponentTreeUI(jf. getContentPane();jf. setDefaultCloseOperation(_ON_CLOSE); 点 X 关闭窗口jf. setLocation(400, 200); 初始化时定位jf. setResizable (false);禁止拖曳改变窗口大小jf. pack();让窗口的大小
34、自适应jf. setVisible (true) ; /显示窗口2.设计一个图形界面程序要求:(1)有一个菜单条(2)菜单条中有3个菜单(3)第一个菜单中有2个菜单项import .Container;import .FlowLayout;import .DFrame;import .JMenu;import .DMenuBar;import . DMenuItem;public class Exam4_13 extends :IFrame Exam4_13 ()super(菜单实例”);Container c=getContentPane(); c.setLayout(new FlowLay
35、out(); DMenuBar jm=new 3MenuBar(); DMenu file=new JMenu(文件”); DMenu edit=new DMenu(编辑”); JMenu help=new JMenu(“帮助”); DMenuItem open=new JMenu工tem(打开”); DMenuItem save=new JMenu工tem(“保存”); jm.add(file);jm.add(edit);jm.add(help);(open);(save);enuBar(jm);)public static void main(String args)Exam4_13 jf
36、=new Exam4_13 ();jf setsize(400, 300);jf.setVisible(true);第5章习题答案一、选择题.程序能够通过编译并能运行,但结果与期望值不符的错误是(C)。A.语法错B.语义错 C.逻辑错 D.编译错Java语言中所有例外情况的类都会继承的类是(C)。A. Error B. Throwable C. Exception D. lOExceptionJava语言中抛出异常的语句是(A)。A. try B. catch C. finally D. throws4 .下面程序的执行结果是(D)。public class Mpublic static vo
37、id main (String args) try ( return;finally.printin(“56789);A.没有catch语句,无法编译通过.程序正常运行,但不输出结果C.程序出现异常D.程序正常运行,并输出“56789二、填空题. Java语言根据错误性质不同可以分为两大类:Error和Exception。8 捕获异常的语句是try-catch-finally。9 在try-catch-finally语句中,无论是否有异常都要执行的是finally 子句。1. Java语言中要求捕获到的异常必须进行异常处理。2. 一个方法会产生异常,而在该方法体中不予处理,可用throws子句
38、声明 该方法将异常抛出。三、简答题.简述错误和异常的概念?(1)错误(Error)是指应用程序在运行期间发上的严重错误,例如,虚拟机 内存用尽、堆栈溢出等。一般情况下这种错误都是灾难性的,程序运行 将不能简单地恢复执行,而只能依靠外界干预,否则会一直处于非正常 状态。(2)异常(Exception)指非致命性错误,一般指在运行程序时硬件和操作系 统是正常的,而程序遇到了运行错误,如整数进行除法运算时除数为0, 操作数超出数据范围,打开一个文件时发现文件不存在,网络连接中断 等。1 .简述Java语言的异常处理机制?捕获异常处理方式是通过try-catch-finally来捕获和处理异常的.写出
39、try-catch-finally语句的具体格式及功能?try 包含可能发生异常的语句catch(ExceptionSubClassl e) 处理异常语句catch(ExceptionSubClass2 e) 处理异常语句finally无条件执行语句四、实践题1 .阅读下面的程序,完成如下要求:(1)在横线上填上适当的语句,完成程序功能;(2)写出程序的运行结果。class Teststatic int a=3,b=0; 将变量b改成1,也要写出运行结果static String c = “数组元素 c0”;public static void main(StringE args) try.
40、printin(a);, printin (a/b); println(cb);catch(ArithmeticException e).printin (捕捉到一个算术异常);catch(ArrayIndexOutOfBoundsException e) .printin (捕捉到一个数组下标越界异常);catch (Exception e).printin (捕捉到一个系统一般的异常);finally . print In (程序结束);答:(1)调试过程:保存文件编译:javac运行:java Test(2) b=0时,程序结果为:捕捉到一个算术异常程序结束(3) b=l时,程序结果为:
41、33捕捉到一个数组下标越界异常程序结束第6章习题答案一、选择题.通过继承下列(B)类声明的类是线程类。A. Runnable B. Thread C. Timer D. Object.线程的最低优先级是(A)。A. 1 B. 3 C. 6 D. 10.解决线程资源共享遇到的问题可以采用(C)。A.异常机制B.事件机制 C.同步机制4下面关键词和方法,不是线程同步所需要的是(D)。A. synchronized B. wait () C. notify () D. sleep ()5.当线程进行调度使其暂停时,暂停的时间单位是(A)A.毫秒 B.秒 C.分钟 D.小时6主线程属于(D)。A.守护
42、线程 B.用户线程 C. Thread线程 D. Runable线程二、判断题1 .线程的启动时通过引用其start。方法而实现的。(V ).当线程类所定义的run ()方法执行完毕,线程的运行就会终止。(V )2 .线程优先级代表了线程的执行顺序。(V )三、简答题1 .简述什么是程序、进程和线程以及它们之间的关系?(1)程序是静态的代码,能够提供满足用户需要的功能,但是只有在程 序执行时才能够为用户提供功能。(2)进程就是获取系统资源动态执行程序的一次过程。(3)线程是在进程独立内存区域内部独立执行的流程。2 .简述使用线程的好处?为了提高程序执行效率和系统资源的综合利用率,可以把进程分为
43、多个 线程同时执行。程序执行后就是进程,进程可以分多个线程,线程能够并发 执行多项进程内部的操作。3 .简述线程的6种状态?(1)新建状态(2)就绪状态(3)运行状态(4)阻塞状态(5)等待状态(6)终止状态4 .简述什么是死锁和饥饿?(1)死锁:一组线程如果都获得了部分资源,还想要得到其他线程所占用 的资源,最终所有的线程将陷人死锁;(2)饥饿:一个线程由于其他线程总是优先于它而被无限期拖延。5 .简述什么是线程同步机制?这种协作线程之间相互等待对方消息或信号的协调关系称为线程同步。四、实践题1.使用多线程编程模拟银行存款和取款系统。class Deposit extends Thread(
44、private Bank shared;Deposit (Bank s)shared=s;)public void run()for(int i=0;i10;i+)(i);try(sleep (int)m() *100);catch(InterruptedException e)第2章习题答案一、选择题.在Java语言的数据类型中,浮点类型包括(A)A. float 和 double B. float 和 longC. float 和 int D. float int a = new int 3; b= ai; c=b+i;. .println(c);2 .在下列控制语句中,选择语句是 A.
45、if 和 for B. if 和 while C.3 .以下程序段输出的结果是(C) String str=z/123/z; int x=4; int .printin (str);A. 12345 B. 123+4+5 C. 12394 .以下程序段输出的结果是(C) int i=l; int b, c;(D)if 和 continue D. if 和 switchy=5; str=str+ (x+y);D.编译时发生异常A. 0 B. 1 C. 2 D. 35. JAVA语言所用的字符集中字符是(B)8 位 B. 16 位 C. 32 位 D. 64 位6 .下列关于标识符的描述中,正确的是(A)A.标识符中可以使用下划线和美元符B.标识符中可以使用连接符和井号符C.标识符中大小写字母是无区别的D.标识符可选关键字.下列是JAVA语言中可用的注释符,其中错误的是(C) A. /A. /* */* */B. /* */8.下列循环语句的循环次数是(D) int i=5;do .printin (i-