Java语言程序设计一试题答案.docx
- 文档编号:29903283
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:17
- 大小:40.58KB
Java语言程序设计一试题答案.docx
《Java语言程序设计一试题答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计一试题答案.docx(17页珍藏版)》请在冰豆网上搜索。
Java语言程序设计一试题答案
全国2012年1月高等教育自学考试
一、单项选择题(本大题共10小题,每小题1分,共l0分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下面供选字符序列中,不属于Java语言关键字的是(C)
A.innerB.throw
C.falseD.throws
2.表达式“-1>>>1”的十进制值是(B)
A.-2B.231-1
C.-(231-1)D.232-1
3.Java语言中,在类定义时用final关键字修饰,是指这个类(D)
A.子类必须实现父类未实现的方法B.没有具体实现代码
C.必须要有实例D.不能被继承
4.表达式 "java程序设计".1ength() 的值是(C)
A.0B.12
C.8D.13
5.以下关于BorderLayout布局的叙述中,不正确的是(D)
A.把容器内的空间划分成5个区域B.加入组件应该指明要放入的区域
C.是框架窗口的默认布局D.一个位置可直接放多个组件
6.利用文件对话框打开或保存文件,在打开文件对话框之前,可用FileFilter类设置筛选条件,其所用的两个方法是(B)
A.accept()和getSelectedFile()B.accept()和getDescription()
C.accept()和setDescription()D.setDescription()和getDescription()
7.设已经有Graphics2D对象g2d,RoundRectangle2D对象rRect,绘制对象rRect的代码是(A)
A.g2d.draw(rRect)B.g2d.drawRoundRect(rRect)
C.rRect.draw()D.rRect.drawRoundRect()
8.以下关于线程互斥和同步的叙述中,正确的是(A)
A.临界段是线程互斥使用资源的程序段B.临界段能使线程使用其它线程的资源
C.互斥和同步能很好地解决死锁问题D.可用notify()方法让等待线程结束等待
9.在编写访问数据库的Java程序时,Connection对象的作用是(C)
A.存储查询结果B.在指定的连接中处理SQL语句
C.用来表示与数据库的连接D.用来创建数据库的连接
10.获取InetAddress对象的域名所用到的方法是(A)
A.getHostName()B.getLocalName()
C.getHostAddress()D.getLocalHost()
二、填空题(本大题共10小题,每空2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
11.能在浏览器上执行的Java程序被称为_小应用程序(Applet)____。
12.如果子类A隐藏了超类B的成员变量x,而类A的某个方法f()要引用类B的x,则引用类B的x的引用代码可以写成__super.x___。
13.接口有与类相似的基本形式,它有常量定义和方法定义,但没有__方法的实现代码__。
14.设u和v是类A的两个对象,则逻辑表达式“u==v”的意义是_引用相同的对象_。
15.要获得对象的字符串表示,调用的方法是__toString()__。
16.注册鼠标点击事件监视器的方法是_addMouseListener___。
17.在异或模式下绘图时,实际绘制的颜色是由当前正要绘制的颜色、原先绘制的颜色,以及__异或模式设定的颜色___作特定的运算确定的。
18.多线程程序设计中,让执行临界段程序时等待的线程结束等待,通常使用的方法有resume()、notify()或者__notifyAll()__。
19.创建的流既可以随机输出,也可以随机输入的类是_RandomAccessFile___。
20.Java程序中使用套接字方法实现C/S模式时,在Client端支持网络底层通讯的类是__Socket___。
三、简答题(本大题共6小题,每小题3分,共18分)
21.请写出以下程序段的执行结果。
intc=0,d,n=3758;
while(n>0){if((d=n%l0)>c)c=d;n/10;}
System.out.println("结果="+c);
答:
结果=8
22.什么是方法重载,如何正确区分重载?
答:
方法重载是指在一个类中定义多个有相同名字的方法。
通过对方法的参数类型、参数个数、顺序进行区分。
23.请写出定义一个包含2个子数组的二维整型数组对象aArr的代码,其中第一个子数组有5个元素,第二个子数组有3个元素。
答:
int[][]aArr=newint[2][]
aArr[0]=newint[5]
aArr[1]=newint[3]
24.请写出创建一个JPanel对象p,并为对象p设定GridLayout布局的代码。
答:
JPanelp=newJPanel;
p.setLayout(newGridLayout())
25.由于创建输出流对象时,可能会出现IOException异常,所以创建输出流对象的代码必须出现在try-catch语句结构中。
请写出为当前目录下的myFile.dat文件创建缓冲输出流对象outs的代码。
答:
try{BufferedWriterouts=newBufferedWriter(newFileWriter("myFile.dat"));}
catch(IOExceptione){}
26.请写出已知数据库url、用户名uName和密码pWord,通过驱动程序管理器(DriverManager)的方法getConnection()建立连接con的代码,可能产生的异常是SQLException。
答:
try{Connectioncon=DriverManager.getConnection(url,uName,pWord)}
catch(SQLExceptione){}
四、程序填空题(本大题共5小题,每空2分,共20分)
在每小题的空格中填上正确答案,完全代码,使它能正确实现题意的功能。
错填、不填均无分。
27.方法inttenDigNumlnArray(int[]a,intd)的功能是统计数组中十位数是d的整数的个数。
提示:
对于一个整数n,运算n/10的作用是求得去掉n的个位数后的整数,运算n%10的作用是求得n的个位数。
staticinttenDigNumlnArray(int[]a,intd){
intc=0;
for(inti=0;_i if(_a[i]/10%10==d__)c++; } returnc; } 28.某小应用程序的类实现了接口ActionListener,在其窗口有一个文本区对象text和一个标上文字“输入一个整数”的按钮对象,并正确为该按钮对象注册了监视器。 按钮处理程序要实现的功能是当点击这个按钮时,程序弹出一个输入信息的对话框,输入一个整数n,程序接受n后,将2至n的所有偶数输出在文本区text中。 以下是其中处理按钮事件的方法。 publicvoidactionPerformed(ActionEvente){ if(e._getActionCommand()__.equals("输入一个整数")){ Stringres=(String)JOptionPane.showInputDialog(null,"输入一个正整数", "输入对话框",JOptionPane.PLAIN_MESSAGE,null,null,null); n=Integer.parseInt(res); text.setText("");. for(intk=2;k<=n;k+=2) text._append(String.valueOf(k)+””)__; } } 29.一个示意选择框选择的类CheckBoxWin,类的构造方法根据给定的选择项目表构造一组选择框,这组选择框允许多选,当这组选择框中的某个选择项的选择状态有改变(从选中变成未选中,或从未选中变成选中)时,选择框的监视程序在一个文本区中输出那个状态有改变的选择项目。 以下是类CheckBoxWin的定义。 classCheckBoxWinextendsJFrameimplementsItemListener{ JPanelp=newJPanel(); JTextAreatext; String[]nameList; JCheckBoxboxArray[]; CheckBoxWin(String[]sp){ Containercon=getContentPane(); con.setBackground(Color.BLUE); con.setLayout(newFlowLayout()); p.setSize(90,(sp.1ength)*20); p.setLayout(newGridLayout(sp.1ength,1)); nameList=sp; boxArray=newJCheckBox[sp.1ength]; for(inti=0;i JCheckBoxbox=newJCheckBox(sp[i]); box.__addItemListener(this)__; p.add(box); boxArray[i]=box; } con.add(p); text=newJTextArea(3,13); text.setText(""); JScrollPanejsp=newJScrollPane(text); jsp.setSize(100,60); con.add(jsp); setSize(100,(sp.1ength)*20+120); setLocation(100,100); setVisible(true); } publicvoiditemStateChanged(ItemEvente){ for(inti=0;i if(e.getItemSelectable()==__boxArry[i]__){ if(boxArray[i].isSelected()) text.append(nameList[i]+".从未选中变成被选中\n"); else text.append(nameList[i]+": 从选中变成未被选中\n"); return; } } } } 30.以下是一个JPanel的子类的paintComponent方法,该方法利用Graphics2D绘制一个正方形,正方形的位置、边长和颜色分别存于该类的成员变量lTop、edge和c中。 intedge;Point1Top;Colorc; publicvoidpaintComponent(Graphicsg){ Graphics2Dg2=(Graphics2D)g; g2.setColor(c); Rectangle2Drec=newRectangle2D.__Double___(1Top.x,lTop.y,edge,edge); __g2.draw(rec)_____; } 31.以下小应用程序的界面有一个文本区,文本区同时作为发生键盘事件的事件源,并对键盘事件实施监视。 程序运行时,先点击文本区,让它激活,以便能响应键盘事件。 以后输入英文字母时,在文本区中顺序显示输入的字母。 importjava.applet.*;importjavax.swing.*; importjava.awt.*;importjava.awt.event.*; publicclassTest31extendsAppletimplements_KeyListener_{ JTextAreatext=newJTextArea(5,10); publicvoidinit(){setSize(200,200); _text.addKeyListener(this)__; text.setBackground(Color.gray);add(text); } publicvoidkeyPressed(KeyEvente){} publicvoidkeyReleased(KeyEvente){} publicvoidkeyTyped(KeyEvente){ intt=e.getKeyCode(); if(t>=KeyEvent.VK_A&&t<=KeyEvent.VK_Z){ text.append(""+(char)t); } } } 五、程序分析题(本大题共5小题,每小题4分,共20分) 32.阅读下列程序,请写出该程序的功能。 publicclassTest32 {publicstaticvoidmain(Stringargs[]) {doublesum=0.0; For(inti=1;i<=500;i++) sum+=1.0/(double)i; System.out.println("sum="+sum); } } 答: 程序功能为求1+1/2+1/3….1/500的和。 33.阅读下列程序,请回答以下问题: (1)界面中有哪些组件? (2)点击每一个按钮分别会显示什么内容? importjava.applet.*;importjava.awt.*; importjava.awt.event.*;importjavax.swing.*; publicclassTest33extendsAppletimplementsActionListener { Stringmsg=""; StringbuttonCom[]={"Yes","No","Undecided"}; JButtonbList[]=newJButton[buttonCom.length]; JTextFieldt; publicvoidinit() { setLayout(newGridLayout(4,1)); for(inti=0;i { bList[i]=newJButton("按钮"+(i+1)); add(bList[i]); bList[i].addActionListener(this); } t=newJTextField(); add(t); } publicvoidactionPerformed(ActionEvente) { for(inti=0;i<3;i++) { if(e.getSource()==bList[i]) { t.setText("Youpressed"+buttonCom[i]); break; } } } }答: (1)程序有三个按钮及一个文本框。 (2)若按下“按钮1”时会显示: YoupressedYes,若按下“按钮2”时会显示: YoupressedNo,若按下“按钮3”时会显示: YoupressedUndecided。 34.阅读下列程序,请写出该程序的功能。 importjava.io.*;importjava.awt.*;importjavax.swing.*; importjava.awt.event.*; classMyWindowextendsJFrameimplementsActionListener{ JTextAreatext;BufieredReaderin;JTextFieldfileName; FileReaderfile; MyWindow(){ Contaihercon=this.getContentPane();//获得内容面板 con.setLayout(newBorderLayout()); fileName=newJTextField("输入文件名"); fileName.addActionListener(this); text=newJTextArea(20,30); JScrollPanejsp: newJScrollPane(text); con.add(jsp,BorderLayout.CENTER); con.add(fileName,"South");setVisible(true); } publicvoidactionPerformed(ActionEvente) {Strings; try{Filef=newFile(fileName.getText()); file=newFileReader(f); in=newBufferedReader(file); }catch(FileNotFoundExceptionel){} try{while((s=in.readLine())! =null) text.append(s+'\n'); }catch(IOExceptionexp){} } } publicclassTest34{ publicstaticvoidmain(Stringargs[]){newMyWindow();} } 答: 在文本框中输入文件名,就会把该文件读出在文本区中显示出来。 35.阅读下列程序,请回答以下问题: (1)该程序中的类MyPanel的成员变量twoClick的作用是什么,该成员变量的值是如何改变的? (2)程序运行时,用户在界面的不同位置,用鼠标点击两次,界面中会出现什么? importjava.awt.*;importjavax.swing.*;importjava.awt.event.*; classMyPanelextendsJPanelimplementsMouseListener{ intleftx,lefty,rightx,righty; booleantwoClick; MyPanel(){ twoClick=false;addMouseListener(this); } publicvoidmousePressed(MouseEvente){ if(! twoClick){ leftx=e.getX();lefty=e.getY(); }else{ rightx=e.getX();righty=e.getY();repaint(); } twoClick=! twoClick; } publicvoidmouseClicked(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidpaintComponent(Graphicsg){ g.clearRect(0,0,this.getWidth(),this.getHeight()); g.fillRect(1eftx,lefty,Math.abs(rightx-leftx), Math.abs(righty-lefty)); } } classMyWinextendsJFrame{ MyPanelp=newMyPanel(); MyWin(){ getContentPane().add(p); setSize(400,400);setLocation(100,100);setVisible(true); } } publicclassTest35extendsJFrame{ publicstaticvoidmain(String[]args){newMyWin();} } 答: (1) 成员变量twoClick是布尔类型,false标识第一次按下鼠标,true标识第二次按下鼠标。 它的值随鼠标的按动在false与true间循环改变。 (2) 界面中画出一个矩形块。 36.阅读下列程序,请回答以下问题: (1)程序执行时创建的线程个数。 (2)各线程的名称。 (3)举例给出程序可能的输出结果。 classSeltManagedextendsThread{ intcountDown; publicSeltManaged(Stringname,intc){ countDown=c; setName(name);start(); } publicvoidrun(){ while(true){ System.out.println(getName()+"("+countDown+")"); try{ sleep(50); }catch(InterruptedExceptione){}; if(--countDown==0) return; } } } publicclassTest36{ publicstaticvoidmain(String[]args){ for(inti=0;i<2;i++) newSeltManaged("线程"+String.valueOf(i),2); } } 答: (1)程序运行时创建两个线程。 (2)名字分别为“线程0”、“线程1”。 (3)程序可能输出为: 线程0 (2)、线程1 (2)、线程1 (1)、线程0 (1)。 六、程序设计题(本大题共2小题,每小题6分,共12分) 37.编写方法int[]delete(int[]a,intd),方法将创建一个新数组b,新数组b中只包含原数组中所有值不等于d的元素,并返回该新数组b。 答: int[]delete(int[]a,intd) { int[]b; intj=0,k=0; for(inti=0;i { if(a[i]! =d)j++; } b=newint[j]; for(inti=0;i { if(a[i]! =d){b[k]=a[i];k++;} elsecontinue; } returnb; } 38.以下程序的界面有一个按钮ave、一个文本区text和一个标签label。 程序运行时,在文本区中输入数字序列,单击ave按钮,则在标签label中显示这个数字序列中正实数的平均值。 注: 这里是给定程序的部分代码,你要编写的是actionPerformed(ActionEvente)方法。 importjavax.swing.*;……… clas
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 试题答案