全国2014年4月高等教育自学考试Java语言程序设计(一)试题
温馨提示
亲爱的学员,您好!
全国2014年4月高等教育自学考试
Java语言程序设计(一)试题
课程代码:04747
请考生按规定用笔将所有试题的答案涂、写在答题纸上。
选择题部分
注意事项:
1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2. 每小题选出答案后,用2 B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。
一、单项选择题(本大题共1 0小题,每小题1分,共1 0分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。
1.以下标识符中,不是Java语言关键字的是
A.wait B.new
C.long D.switch
2.以下数据类型转换中,必须进行强制类型转换的是
A.int→char B. short→long
C.float→double D. byte→int
3.以下供选择的概念中,属于面向对象语言重要概念和机制之一的是
A.函数调用 B.模块
C.继承 D.结构化
4.以下Java程序代码中,能正确创建数组的是
A.int myArray[]; myArray[]=new int[5];
B.int myArray[]=new my(5);
C.int[]myArray={1,2,3,4,5};
D.int myArray[5]={1,2,3,4,5};
5.某Java程序的类A要利用Swing创建框架窗口,则A需要继承的类是
A.JWindow B.JFrame
C.JDialog D.JApplet
6.MouseMotionListener接口能处理的鼠标事件是
A.按下鼠标键 B.鼠标点击
C.鼠标进入 D.鼠标移动
7.以下术语中,属于文字字型风格属性的是
A.颜色 B.宋体
C.斜体 D.字号
8.以下能作为表示线程优先级的数值,并且级别最低的是
A.0 B.1
C.1 5 D.1 6
9.某Java程序用javax.swing包中的类JFileChooser来实现打开和保存文件对话框。该程序 通过文件对话框首先获得的信息是
A.文件长度 B.文件路径
C.文件内容 D.文件对象
1 0.在编写访问数据库的Java程序时,ResultSet对象的作用是
A.用来表示与数据库的连接 B.存储查询结果
C.在指定的连接中处理SQL语句 D.建立新数据库连接
非选择题部分
注意事项:
用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
二、填空题(本大题共1 0小题,每空2分,共20分)
11.类Testll经Java编译程序编译后,产生的文件是 ______。
12.表达式“45&20”的十进制值是 ______。
13.如果类A继承和扩展类B,则子类A和超类B之间的关系是 ______。
14.Java语言提供的用于处理不可改变的字符串类是 ______。
15.要使得已注册的按钮对象暂时不响应事件,需使用的方法是______。
1 6.一个水平滚动条对象的初始值是1 50,滑块的宽是8个像素,表示的范围是[0,300]。 创建这样的滚动条对象时,提供的最后2个参数依次是______。
17.某应用程序定义的类C17是JPanel的子类,在类C17的对象中需要绘图,则在类 C17中应重写的方法是 ______。
18.当线程进入临界段后,发现需要与别的线程进行同步,则要调用的方法 是 ______。
19.某程序想要随机读写字符文件,能支持这个要求的类是______。
20.某应用程序已经声明了InetAddress对象addr,现要用域名www.baidu.com创建addr 对象,能实现这样要求的代码是addr =InetAddress.______;。
三、简答题(本大题共6小题,每小题3分,共1 8分)
21.已知变量n,请写出使用for语句计算
的代码。
22.请写出接口体中可能包含的内容。
23.请写出对事件对象作监视器注册的作用。
24.已知Graphics对象g,获得Graphics2D对象g2d,然后,用圆角长方形类创建对象 circle,该对象的左上角坐标是(30,40),半径是50。请写出实现以上要求的Java代 码。
25.某程序希望用FileFilter类的子类为打开文件对话框设置文件筛选条件。请写出设置 此筛选条件要使用的类及相应的方法。
26.JDBC是Java程序与数据库连接的API。请写出JDBC能做的三件事情。
四、程序填空题(本大题共5小题,每空2分,共20分)
27.方法void moveOddFront (int a[])的功能是将数组a中的所有奇数都移到数组的前端, 而把偶数放于所有奇数的后面,其方法是当发现是偶数时,就让该数留在原来位置, 当发现是奇数时,就与前面的第一个偶数交换。程序引入变量odd表示移动过程中 遇到的奇数个数。
void moveOddFront(int a[]){
for(int i=0, odd=0; ______;i++)
if( a[i] %2 == 1){
int t = a[odd]; a[odd]=a[i]; a[i]=t;______;
}
}
28.以下程序的界面包含一个文本区text和一个允许多选的列表list,列表的条目存于字 符串数组sports[]中,当列表发生选择事件时,事件处理程序将这次选中的所有条目 在文本区中输出。这里给出的是其中处理列表事件的方法。
public void valueChanged(________e){
if (e.getSource()==list){
text.setText(null);
int tempList[]=list. getSelectedIndices();∥获得选中索引表
for (int i=0;i < tempList.length; i++)∥对索引表中的每个元素显示被选中字样
text.append(sports[______]+":被选中\n");
}
}
29.以下应用程序创建一个窗口,窗口内放置一个面板,在面板中显示一张图片和一段 文字。
import javax.swing.*;import java.awt.*;
public class Test29 {
public static void main(String[] args) {
MyFrame frame = new MyFrame();
}
}
class MyFrame extends JFrame {
public MyFrame(){
setTitle("Test29"); setSize(300, 200);
Toolkit tool=______;
Image img = tool.getImage("myPic2.jpg");
getContentPane().add(new MyPanel (img));
setVisible(true);
}
}
class MyPanel extends JPanel{
Image myImg;
MyPanel(Image img){ myImg=img;}
public void paintComponent(Graphics g) {
if(myImg!=null)g.______ (myImg, 100,30,this);
g.drawString("我是一名自考生!",100, 140);
}
}
30.类ShareDataManager用于管理多个线程共享数据data,其中定义了一个供线程修改 data的方法modiData()。为了对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{______}
catch (InterruptedException e){}
}
data+=delta;
}
______;
}
}
31.某个缓冲式输出的示意程序的界面有一个文本框fileOut和一个文本区text,程序运 行时,先在文本区中输入要存入文件的内容,接着在文本框中输入文件名并回车, 则程序将文本区中的内容保存到指定的文件中。以下是该程序中相应文本框文件名 的输入事件的方法。
public void actionPerformed(ActionEvent e){
if (e.getSource()==fileOut){
try{
out = new BufferedWriter(new ______ );
out.______ ;
out.flush(); out.close(); text.setText(null);
} catch (FileNotFoundException el){
System.out.print("文件没有找到!\n");
}catch (IOException exp){
System.out.print("文件读写出错!\n");
}
}
}
五、程序分析题(本大题共5小题,每小题4分,共20分)
32.阅读下列程序,请写出该程序的输出结果。
class Mother{
public voicl methodl(){
System.out.println("Call Mother's methodl()");
}
public void method2(){
System.out.println("Call Mother's method2()"); methodl();
}
}
class Girl extends Mother{
public void methodl(){
System.out.println("Call Girl's methodl()");
}
public static void main(String args[]){
Girl g= new Girl(); g.method2();
}
}
33.阅读下列程序,请写出调用Test33(4)的输出结果。
public static void Test33(int n){
int i,j,a[][]=new int[n][n];
for(i=0;i
if(i%2==0)
for(j=0;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("t"+ a[i][j]);
System.out.println();
}
}
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, "North"); ∥⑦
con.add(textA, "Center"); ∥⑧
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);
textA.append(" "+d);
if(k%5==0)textA.append("");
}
}
}
}
35.阅读下列程序,请回答以下问题:
(1)程序运行时,呈现的界面中菜单条有哪些菜单?
(2)程序中带注释/*1*/的代码行的作用是什么?
import javax.swing.*;import java.awt.*;import java.awt.event.*;
class MenuWindow extends JFrame implements ActionListener{
JTextField text;
MenuWindow (String s,String menuList[][]){
setTitle(s);
Container con = this.getContentPane();
con.setLayout(new BorderLayout());
this.setLocation(100, 100); this.setSize(300, 100);
JMenuBar menubar=new JMenuBar();
for(int i=0;i< menuList.length; i++){
JMenu menu = new JMenu(menuList[i][0]);
for(int j=1;j
JMenuItem anItem=new JMlenuItem(menuList[i][j]);
/*1*/ anItem.setActionCommand(menuList[i][j]);
anItem.addActionListener(this); menu.add(anItem);
}
menubar.add(menu);
}
text = new JTextField(); setjMenuBar(menubar);
con.add(text,BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e){
text.setText("<"+e.getActionCommand()+">菜单项被选中!");
}
}
public class Test35{
public static void main(String[] args){
MenuWindow window;
String menuList[][]={{"体育","跑步","打篮球","打乒乓"},
{"娱乐","唱歌","跳舞"},
{"学习","数学","语文"}};
window=new MenuWindow("菜单示例程序",menuList);
window.setVisible(true);
}
}
36.阅读下列程序,请回答以下问题:
(1)程序要求在文本框text中输入的内容是什么?
(2)程序采用什么输入方式下载网络文件?
import java.net.*; import java.awt.*;
import java.awt.event.*; import java.io.*; import javax.swing.*;
public class Test36{
public static void main(String args[]){
new ConnectNet("读取网络文本文件示意程序");
}
}
class ConnectNet extends JFrame implements ActionListener{
JTextField text = new JTextField(30);
JTextArea showArea=new JTextArea();
JButton b= new JButton("下载"); JPanel p= new JPanel();
ConnectNet(String s){
super(s);Container con = this.getContentPane();
p.add(text); p.add(b);
JScrollPane jsp = new JScrollPane(showArea);
b.addActionListener(this);
con.add(p,"North"); con.add(jsp, "Center");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500, 400); setVisible(true);
}
public void actionPerformed(ActionEvent e){
String urlName=text.getText();
try{ URL url: new URL(urlName);∥由网址创建URL对象
URLConnection tc =url.openConnection();∥获得URLConnection对象
tc.connect();∥设置网络连接
InputStreamReader in =
new InputStreamReader(tc.getInputStream());
BufferedReader dis = new BufferedReader(in);
String inLine;
while((inLine=dis.readLine())!=null){
showArea.append(inLine+"");
}
dis.close();
} catch (MalformedURLException e2){e2.printStackTrace();}
catch(IOException e3){ e3.printStackTrace();}
}
}
六、程序设计题(本大题共2小题,每小题6分,共1 2分)
37.编写方法int[] arrayReverse(int[]a),该方法的功能是返回一个新的数组b,新数组的 元素排列顺序与参数数组的元素排列顺序相反。
38.类InputData是用于输入考生考号、课程和成绩的窗口,
窗口的界面如右图所示,其中三个文本框用来输入考号、课
程和成绩。
注:这里是给定程序的部分代码,你要编写的是完成该类的构
造方法。
import java.awt.*;import javax.swing.*;
import java.awt.event.*;
public class InputData extends JFrame implements ActionListener{
JTextField noText, markText, courseText;
JButton ok=new JButton("确 定");
public static int no, mark;∥让创建者直接获取考号和成绩
public static String course;∥让创建者直接获取课程名称
InputData(){
super("成绩输入窗");
Container con = getContentPane();
con.setLayout(new GridLayout(4, 1));
noText = new JTextField(12);
courseText = new JTextField(12);
markText = new JTextField(12);
∥请在答题纸相应位置编写代码
con.add(ok); ok.addActionListener(this);
con.setSize(250, 70); setVisible(true); pack();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() = ok) { ∥读取考号和成绩
no = Integer.parseInt(noText.getText());
course = courseText.getText();
mark = Integer.parseInt(markText.getText());
setVisible(false); dispose();
}
}
public static void main(String[] args) {
new InputData();
}
}
点击查看全部真题 >>
扫码登录
扫码关注“广东省自考网”微信公众号
即可查看全部内容
《广东自考网》免责声明:
1、由于考试政策等各方面情况的调整与变化,本网提供的考试信息仅供参考,最终考试信息请以省考试院及院校官方发布的信息为准。
2、本站内容部分信息均来源网络收集整理或来源出处标注为其它媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:812379481@qq.com