深圳自考报名网: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(); ═══════════════════════════════════════════════════════════════════════════════