2014年4月自考Java语言程序设计(一)试题及答案资料 下载本文

深圳自考报名网:http://www.0755zikaobaoming.com

对data的修改操作保持完整,多线程在data上的操作 有互斥要求;另外,限制线程对data的修改不能让data为负数,所以多线程在data 上的操作还有同步要求。以下是类ShareDataManager的定义。 class ShareDataManager{ int data;

ShareDataManager(int init){data=init;} synchronized void modiData(int delta){ if (data+delta>=0){ data+=delta; } else {

while (data+delta<0){ try{__wait( )____}

catch (InterruptedException e){}

}

data+=delta; }

__notify( )____;

} }

31.某个缓冲式输出的示意程序的界面有一个文本框fileOut和一个文本区text,程序运 行时,先在文本区中输入要存入文件的内容,接着在文本框中输入文件名并回车, 则程序将文本区中的内容保存到指定的文件中。以下是该程序中相应文本框文件名 的输入事件的方法。 public void actionPerformed(ActionEvent e){

if (e.getSource()==fileOut){

try{

out = new BufferedWriter(new __FileWriter(fileOut.getText( ))____ ); out.___write(text.getText( ))___ ; out.flush(); out.close(); text.setText(null); } catch (FileNotFoundException el){

System.out.print(\文件没有找到!\n\); }catch (IOException exp){

System.out.print(\文件读写出错!\n\); } } }

五、程序分析题(本大题共5小题,每小题4分,共20分)

═══════════════════════════════════════════════════════════════════════════════

深圳自考报名网:http://www.0755zikaobaoming.com 32.阅读下列程序,请写出该程序的输出结果。 class Mother{

public voicl methodl(){

System.out.println(\}

public void method2(){

System.out.println(\ methodl(); } }

class Girl extends Mother{ public void methodl(){

System.out.println(\}

public static void main(String args[]){

Girl g= new Girl(); g.method2(); } }

答: Call Mother's method2() Call Girl's method1()

33.阅读下列程序,请写出调用Test33(4)的输出结果。 public static void Test33(int n){

int i,j,a[][]=new int[n][n]; for(i=0;i<4;i++){

if(i%2==0) i 2 4

for(j=0;j<4;j++)

a[i][j]=j+1;

else for (j=n-l;j>=0;j--)

a[i][j]=n-j;

}

for(i=0;i

for(j=0;j

System.out.print(\[i][j]); System.out.println(); }

═══════════════════════════════════════════════════════════════════════════════

深圳自考报名网:http://www.0755zikaobaoming.com

} 答: 1 4 1 4 2 3 2 3 3 2 3 2 4 1 4 1

34.阅读下列程序,请回答以下问题:

(1)在文本框中输入1 7,在文本区中会显示多少行整数,各行有几个数? (2)如果将程序的第一行删除,程序中标号①~⑨语句中哪些会出现错误? import java.awt.*;∥问题(2)所指要删除的行 import javax.swing.*; import java.awt.event.*;

public class Test34 extends JFrame implements ActionListener{

JTextField textF; JTextArea textA; Test34(){

Container con = getContentPane(); con.setLayout(new BorderLayout()); textF = new JTextField(10);

∥①

∥② ∥③

textF.addActionListener(this); textA = new JTextArea(6, 10); setSize(240, 200);

∥④ ∥⑤ ∥⑥

con.add(textF, \ con.add(textA, \ setVisible(true);

∥⑦

∥⑧ ∥⑨

public static void main(String[] args){

new Test34(); }

public voicl actionPerformed(ActionEvent e){

int n,d;

if(e.getSource()==textF){

n = Integer.parseInt(textF.getText()); for (int k=1;k<=n; k++){

d= (int) (Math.ranclom()*1000 % 1000);

═══════════════════════════════════════════════════════════════════════════════

深圳自考报名网:http://www.0755zikaobaoming.com

textA.append(\if(k%5==0)textA.append(\} } } } 答:

(1)4 行,各行的数字个数分别是 5、5、5、2。

(2)第 1 条语句和第 2 条语句。 import java.awt.*;//问题(2)所指要删除的行 import javax.swing.*; import java.awt.event.*; public class Test34 extends JFrame implements ActionListener { JTextField textF; JTextArea textA; Test34() { Container con = getContentPane(); //① con.setLayout(new BorderLayout()); //② textF = new JTextField(10); //③ textF.addActionListener(this); //④ textA = new JTextArea(6, 10); //⑤ setSize(240, 200); //⑥ con.add(textF, \//⑦ con.add(textA, \⑧ setVisible(true); //⑨ } public static void main(String[] args) { new Test34();

═══════════════════════════════════════════════════════════════════════════════