Java语言程序设计(一)历年真题试卷及答案由湖南自考生网www.zikaosw.com收集、提供。更多真题及答案,可在我办网站“自考历年真题”栏目中查看。软件工程历年真题建议
同学们在自学完教材后,做几套历年真题,熟悉题型,提高学习能力。
全国2017年4月高等教育自学考试
Java语言程序设计(一)试卷(含答案)
(代码:04747)
本试卷分两部分,满分100分,考试时间150分钟。
1.第一部分为选择题,应考者必须在“答题卡”的选择题答题区按要求填涂作答;
2.第二部分为非选择题,应考者必须在“答题卡”的非选择题答题区作答,不能答在y 卷上;
3.请按照试卷的题号顺序在相应的答题区域内作答。
第一部分选择题(共10分)
一、单项选择题(本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡 上的相应字母涂黑。错涂、多涂或未涂均无分。
1.在下列供选的字符串中,不f作为Java整型常量的是
A. 052
B.0x3BEH
C. 6389
D.0x3fedL
2.在以下供选的关键字中,能用于定义常值变量的是
A. final
B.static
C. protected
D.super
3.下列Java语句中,不正确的是
A. float e = 0.0d;
B. char c,d =,a';
C. int $ e,a,b =10;
D. double e = O.Of;
4.以下代码的输出结果是 System.out.println(l + 2 + "aa" + 3);
A. 12aa3
B. 3aa3
C. 12aa
D.代码有语法错
5.在Swing中,与JComponent类有直接父子关系的是
A. JMenu
B.JButton
C. JLabel
D.JTextArea
6.在以下选项中,可得到菜单项名称的方法是
A. getMenu()
B.getLabel()
C. getJMenu()
D.getltem()
Java语言程序设计(一)试卷第1页(共10页)
7.某程序定义了一个JPanel子类,并要让该子类实现多线程,在子类对象创建时启动线程,则在以下叙述中最完整正确的是
A.继承Thread类,在类内定义run()方法,声明和创建线程对象,并让该对象调用 start()方法。
B. 继承Thread类,在类内定义run〇方法,声明线程对象,并让该对象调用start()方法。
C.声明实现Runnable接口,在类内实现run〇方法,声明线程对象,创建线程,并 调用run()方法。
D.声明实现Runnable接口,在类内实现run()方法,声明和创建线程对象,并让该 对象调用start(3方法^
8.以下关于线程死锁的叙述中,正确的是
A.若程序中存在线程的死锁问题,编译时不能通过www.zikao sw.com
B.实现多线程时死锁不可避免
C.为了避免死锁,应禁止对资源以互斥的方式进行访问
D.线程的死锁是一种逻辑运行错误,编译器无法检测
9.用类】FileChooser对象可打开和保存文件对话框,程序能从该对话框获得
A.用户选择的文件的长度
B.用户选择的文件名
C.文件对象
D.用户选择的文件内容
10.网络应用有多种模式,其中WWW采用的模式是
A.对等模式
B.主机终端模式
C.分布式模式
D.客户机/服务器模式
第二部分非选择题(共90分)
二、填空题(本大题共10小题,每空2分,共20分)
11.Java编译程序对Testll.java源程序编译,如果没有发生错误,一定会产生一个文件,该文件的名字是
12. 表达式“-1» 2”的值是。(负数用补码表示)
13.为了声明类只是一种模板,类中定义的某些方法没有具体实现代码,只有它的子类才可能是有实际意义的类。定义这样的类的修饰符是。
14.设有字符串定义:Strings = "12341234";则表达式s.indexOf("2")的值是。
15.在实现接口 ActionListener的方法actionPerformed()中,为识别事件对象,调用方法getActionCommand(),该方法返回的文字信息。
16. 程序将若干单选按钮对象加人到一个ButtonGroup对象中,其目的是
17. AWT的Font对象的作用是
18. 处于运行状态的线程执行stop()方法,该线程将进入的状态是:
Java语言程序设计(一)试卷第2页(共10页)
19File Writer类的作用是为提供支持。
20.在访问数据库的程序中,建立了 Statement对象后,利用该对象可以执行数据库更新,实现SQL数据库更新的方法是
三、简答题(本大题共6小题,每小题3分,共18分)
21.请写出表达式实现以下功能:变量y的值为5与变量z的值为3,有且只有一t成立。
22.请写出通过继承,子类可以获得的好处。
23.请写出将按钮对象b和文本区对象text放置于面板对象tp,并将tp放置于滚动面板,最后将滚动面板添加到JFrame子窗口对象frame的Java语句。
24.请写出Graphics2D类中stroke、paint两种属性的作用。www.zi kaosw.com
25.请写出Java系统提供的支持文件随机访问的类和该类提供的读取一个字符的方法。
26.请写出URLConnection类实现网络访问的基本过程。
四、程序填空题(本大题共5小题,每空2分,共20分)
27.方法countPrimes(intm,intn)统计自m至n范围内质数的个数,并输出这些质数。 public static int countPrimes(int m, int n){
int i, j, count = 0;
For(j= m;j <=n;j++){
for(i = 2; i <= j/2; i++)
if(______)break;
if(_____){
count++;System.out.println(j);
}
}
return count;
以下是某应用程序定义的两个方法。方法setCheckBoxs(丨temListener listener)已知监 视器,产生一组选择按钮,并给它们注册监视器和将它们加入到面板中;方法使用 的全局对象有面板panel,存放按钮名称的数组boxName,选择按钮数组box,文本 区text。方法itemStateChanged(ItemEvente)是选择按钮的事件监视方法,当某个选择 按钮的选择状态有改变时,监视方法在文本区中显示各选择按钮的选择状态(被选 中或没有被选中)。
JPanel panel = new JPanel();
String boxName[] = {"选择按钮A ","选择按钮B",”选择按钮C,. };
JCheckBox[] box = new JCheckBox[boxName.length];
JTextArea text = new JTextArea(4, 10);
public void setCheckfioxs(ItemListener listener){
for (int i = 0; i < boxName.length; i++) {
Java语言程序设计(一)试卷第3页(共10页)
box[i] = new JCheckBox(boxName[i], false);
box[i]._________;
panel.add(box[i]);
}
public void itemStateChanged(ItemEvent e) { text.setText(null);
for (int i = 0; i < box.length; i++) {
text.append(boxName[i] + (______________?
"被选中"没有被选中")+" \n");
以下是一个放幻灯片的应用程序,程序的界面中含一个面板子类P的对象和一个按 钮对象b。设幻灯片已经装人内存,并存放于mylmage数组中,幻灯片的张数存于 变量mim中。程序运行时,用户点击按钮b,按钮的监视方法循环更换幻灯片号 curlmage,并让系统调用P重定义的paintComponent〇方法显示当前幻灯片。
int curlmage = 0; final int num = 30;
Image [ ] mylmage = new Image [num];
//以下是类P内定义的两个方法
public void actionPerformed(ActionEvent e){
if (e.getSource() = b) {
________________________
curlmage = (curlmage + 1) % num;
try {mythread.sleep(200);
} catch (InterruptedException e) {}
}
public void paintComponent(Graphics g) {
if ((mylmage [curlmage]) != null)
g.__________(mylmage [curlmage], 10, 10,
mylmage[curlmage].getWidth()
mylmage [curImage].getHeight(), this);
以下应用程序的界面中有一个用于输入文件名的文本框对象fileName、一个用于输入 匹配字符串的文本框对象p,和一个用于输出的文本区对象text。程序运行时,用户 输入匹配字符串和文件名,程序逐行读入文件的内容,检出那些以匹配字符串开头
Java语言程序设计(一)试卷第4页(共10页)
的行并显示在文本区中。
public void actionPerformed(ActionEvent e) {
String s;
if (e.getSource() = fileName) {
try { in = new BufferedReader(new_____________);
} catch (FileNotFoundException el) {
System.out.print("File Not found!\n");
}
text.setText(null);
try {
while ((s =___________) != null){
if(s.startsWith(p.getText())) text.append(s + ’\n’);
}
} catch (IOException exp) { System.out.print(MFile read error!\n”);
}
}
}
31,方法getURLConnection (String s)的功能是已知网络中的资源s,获得一个URLConnection对象并返回。
URLConnection getURLConnection (String s){
URL myURL = null;
try { myURL = new_____________;
}catch(MalformedURLException e) {
System.out.println("有错的 URL: "+s + e);
}
return myURL.________________;
三程序分析题(本大题共5小题,每小题4分,共20分)
32.阅读下列程序段,请写出标有注解(1)、(2)和(3)语句的作用。
Image img[];
public void int(){
img=new Image[15];
for (int i=0;i<15;i++){
img[i]=getImage(getCodeBase(),’’img"+i+".jpg"); // (1)
}
Java语言程序设计(一)试卷第5页(共10页)
public void paint(Graphics g){ int i=0, k=0;
while(k<15000){;//语句略
g.drawlmage(img[i],0,0,this);//(2)
k++;
for(intj=0;j<5000000;j++){}//(3)
i = (i+1)% img.length;
}
}
33.阅读下列程序,请写出调用fib(10)的输出结果。
public static void fib(int n) {
int fl = 1, f2 = 1;
System.out.print("\t" + fl + "\t" + f2);
for (int i = 3; i <= n; i += 2)
{ fl += f2;
System.out.print("\t" + fl);
if (i % 3 == 0)System.out.print(H\n");
if (i < n) {
f2+=fl;
System.out.print("\t" + f2);
}
if ((i + 1) % 3 = 0)System.out.print("\n");
}
}
34.阅读下列程序,请回答以下问题:
(1 )写出程序运行时界面中有哪些组件,以及它们的位置关系。www.zikao sw.com
(2)按点击按钮1,按钮2,按钮2,按钮1的顺序点击按钮,写出文本区的输出内容。
import java.io.*;
import java.awt.*;
import java.awt.event. *;
import javax.swing. *;
class MyFrame extends JFrame implements ActionListener {
JButton btnl, btn2;
JTextAreaja;
public MyFrame。{
btnl = new JButtonf 按钮 1");
btn2 = new JButton(”按钮2”);
ja = new JTextArea(5, 10);
getContentPane().add(btnl,BorderLayout.NORTH);
getContentPane().add(btn2,B〇rderLayout.SOUTH);
getContentPane().add(ja,BorderLayout.CENTER);
btnl .addActionListener(this);
btn2.addActionListener(this);
setSize(180, 200);set Visible (true);
}
Java语言程序设计(一)试卷第6页(共10页)
public void actionPerformed(ActionEvent e) {
if(e. getSource()== btnl) {
btn 1 .setEnabled(false);
ja.append("按钮 1 被点击!\n");
btn2.setEnabled(true);
}else {
btnl .setEnabled(true);
ja.append(”按钮 2 被点击!\n");
btn2.setEnabled(false);
}
}
}
public class Test34{
public static void main(String[] args) {
new MyFrame();
}
}
35.阅读下列程序,请写出该程序的输出结果。
public class Test35{
public static void main(String[] args) { System.out.println("开始:");
MyThread x = new MyThread(1000, MyThread y = new MyThread(300, "boy"); x.start();
y.start();
while (x.isAlive() || y.isAlive〇); System.out_println("结束•");
}
class MyThread extends Thread { int dt;
String name;
public MyThread(int c, String n) { dt = c;
name = n;
}
public void run() {
MyResourceClass.outMsg(this);
}
Java语言程序设计(一)试卷第7页(共10页)
class MyResourceClass {
synchronized static void outMsg(MyThread th){
System.out.println(th.name + " "+”启动 for (int i = 0; i < 2; i-H-) {
System.out.println(th.name + "第"+i+"次活动•"); try {
Thread.sleep(th.dt);
} catch (InterruptedException e) { }
}
System.out.println(th.name + " 活动完成.");
36.阅读下列程序,请写出该程序的功能。
import java.util.*; import java.io.*;
import java.awt.*;import javax.swing.*;import java.awt.event. *;
class MyFrame extends JFrame implements ActionListener {
JText Area text;
JTextField tf; Buffered Writer out;
MyFrame () {
super("—个测试程序");
Container con = getContentPane();
text = new JTextArea(10, 20);
text.setBackground(Color.cya^);
tf = new JTextField();
tf.addActionListener(this);
con.setLayout(new BorderLayout())
con.add(text, ’’Center"); con.add(tf, "South");
setVisible(true);pack();
}
public void actionPerformed(ActionEvent e)
{ if (e.getSource() == tf) {
try {
out = new BufferedWriter(new FileWriter(tf.getText()));
StringTokenizer tokens=new StringTokenizer(text.getText());
int n = tokens.countTokens(), i;
for(i = 0; i < n; i++){
out. write(tokens.nextT oken()+”\r\n");
Java语言程序设计(一)试卷第8页(共10页)
out.flush(); text.setText(null); System.exit(O);
} catch (IOException exp) {
text.setText("文件写出错! \n");
}
}
}
ptr c class Test36{
public static void main(String args[])
{ new MyFrameQ;
(本大题共2小题,
每小题6分,共12分)
讀矣写方法double sumSequence (int n),该方法的功能是求以下数列前n项的和s并 返
s = 1/2+2/3+3/5+5/8+8/13+
苓示:下一项的分子=上一项的分母,下一项的分母=上一项的分子与分母的和。 :•: uble sumSequence (int n){
}
某应用程序的界面如下图所示,有3个文本框,第一个文本框对象为tl,第二个文 本框对象为t2,第三个文本框对象为r。程序对前两个文本框作事件监视。程序运行 时,当前两个文本框有整数输入时,在第三个文本框输出它们的和。要求编写实现 上述功能的方法 actionPerformed(ActionEvent e)。
Java语言程序设计(一)试卷第9页(共10页)
public void actionPerformed(ActionEvent e){
//请在以下位置编写代码
Java语言程序设计(一)试卷第10页(共10页)
更多自考本科考试复习资料可查看我办湖南自考生网“考试资料”栏目。
【答案】