全国2012年10月高等教育自学考试
Java语言程序设计(一)试题
课程代码:04747
一、单项选择题(本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸’’的相应代码涂黑。错涂、多涂或未涂均无分。
1. Java语言中,int类型占用的二进制位数是
A. 8位 B. 16位
C. 32位 D. 64位
2. 以下关于Java语句的说法正确的是
A. continue语句必须出现在多路按值选择结构或循环结构中
B. return语句可以出现在方法体的外面
C. 编译系统会把单独的分号看成是空语句
D. break语句的作用是提早结束当前轮次循环
3. 不能被再继承的类是
A. final类 B. abstract类
C. public类 D. 用户自定义类
4. 已知String s="ABCDEFGHIJABC",以下说法错误的是
A. s.indexOf("C")等于2 B. s.indexOf("EFG",2)等于4
C. s.indexOf("A",7)等于10 D. s.indexOf("D",4)等于3
5. 以下Swing提供的GUI组件类和容器类中,不属于顶层容器的是
A. JFrame B. JApplet
C. JDialog D. JMenu
6. 以下不是JDialog类构造方法的是
A. JDialog( ) B. JDialog(boolean b)
C. JDialog(JFrame f, String s) D. JDialog(JFrame f, String s, boolean b)
7. 以下不属于文字字型要素的是
A. 字体 B. 风格
C. 字号 D. 颜色
8. 阻塞状态的线程在消除引起阻塞的原因后,会转入
A. 死亡状态 B. 开始状态
C. 就绪状态 D. 运行状态
9. 字符流数据是
A. 8位的ASCII字符 B. 16位的Unicode字符
C. 任意字符数据 D. 任意二进制数据
10. 以下方法中,可以执行SQL查询语句的是
A. executeQuery( ) B. executeUpdate( )
C. executeSQL( ) D. executeFind( )
二、填空题(本大题共10小题,每小题2分,共20分)
11. 如果Java源文件中有多个类,那么只能有一个__________类。
12. 运算符‘‘<”、 “*”和“&&”按优先级从高到低的顺序排列为__________。
13. 当联编推迟至运行时间实现时,该联编过程称为__________联编。
14. 数组名如同对象名一样,是一种__________。
15. 为了让监视器与事件对象关联起来,需要对事件对象做__________,告诉系统事件对象的监视器。
16. 列表在界面中表现为列表框,是__________类或它的子类的对象。
17. Java语言的图像处理功能被封装在__________类中。
18. 线程之间的相互等待被称为线程的__________。
19. 希望由FileReader对象rf,创建对文件实行缓冲式输入的对象in,能实现这个要求的代码是__________。
20. 当Client程序和Server程序需要通信时,可以用__________类建立套接字连接。
三、简答题(本大题共6小题,每小题3分,共1 8分)
21. 请写出表示条件“y右移一位后大于3并且y不等于0”成立的Java表达式。
22. 请写出类之间的is-a关系和类之间的has-a关系的含义。
23. 请写出GridLayout布局的三种构造方法。
24. 请写出使用Graphics2D类声明并创建一个左上角为(30,40),宽是80,高为50的椭圆对象ellipse的语句。
25. 请写出采用缓冲式输出时,程序由文件名创建缓冲式输出流的步骤。
26. 请写出数据库更新操作中,删除数据表记录的3种方案各自所使用的对象。
四、程序填空题(本大题共5小题,每空2分,共20分)
27. 以下程序是求50以内的质数。
public class Test27{
public static void main(String[] args){
int i,j;
for (j=2;j<=50;j++){
for(i=2;i<=j/2;i++)
if(______==0) break;
if(i>______) {
System. out. println(j+"是质数");
}else { }
}
}
}
28. 以下是使用JFrame派生的子类MyWindowDemo创建JFrame窗口的代码。类 MyWindowDemo的构造方法有五个参数:窗口的标题名,加人窗口的组件,组件的背景颜色,以及窗口宽和高。
class MyWindowDemo extends JFrame {
public MyWindowDemo(String name,JButton b,Color C,int w,int h){
______;
setTitle(name);
setSize(w,h);
Container contentPane=______;
contentPane.add(b);
b.setB ackground(c);
}
}
29. 小应用程序声明一个用户窗口类和对话框类,用户窗口有若干按钮,当点击某按钮时,打开对应的对话框。以下是对buttonl进行处理的部分代码。
public void actionPerformed(ActionEvent e){
MyDialog dialog;
if(e.getSource()==button 1){
dialog=new MyDialog(______,"水果");
dialog. ________; //显示该对话框
……… //这里是对button l进行处理的其他代码
}
……… //这里是其他按钮事件的处理代码
}
30. 以下是能播放声音的小应用程序中事件处理方法的部分代码,其中clip为一个音频对象,b1、b2分别是播放和停止播放的按钮。
public void actionPerformed(ActionEvent e){
if(e.getSource()==b1){clip.________;}
else if(e.getSource()==b2){clip.________;}
}
31. 以下程序段定义的类DataManager用于管理多个线程共享数据data。为了对data的取、存和修改操作保持完整,多线程在data上的操作有互斥要求;另外,限制线程对data的修改不能让data为负数,所以多线程在data上的操作还有同步要求。为此,程序为管理data上的操作定义成类。
class DataManager{
int data;
DataManager(int init){data=init;}
public int getData(){return data;}
private void putData(int newValue){ data=newValue;}
__________ void modiData(int delta){
if(delta>=0) {
putData(getData()+delta);
} else {
while(getData()+delta<0) {
try{ wait();}
catch(InterruptedException e) {}
}
putData(getData()+delta);
}
________;
}
}
五、程序分析题(本大题共5小题,每小题4分,共20分)
32. 阅读下列程序,请写出该程序的输出结果。
public class Test3 2{
public static void main(String[] args){
int i,j;
for(i=0;i<5;i++)
{
for(j=1;j<5-i;j++)
System.out.print(" ");
for(j=0;j<=i;j++)
System.om.print(’"*");
System. out. Println( );
}
}
}
33. 阅读下列程序,请写出该程序的输出结果。
public class Test3 3{
static int x=1;
int y=0;
Test33() {
x++;y++;
}
public static void main(String[] args) {
Test33 st=new Test33();
System.out.println("x="+x);
System.out.println("st.y=" +st.y);
st=new Test33();
System.out.println("x="+x);
System.out.println("st.y="+st.y);
}
}
34. 阅读下列程序,请写出该程序的功能。假定图像文件apple.gif、banana.gif、pear.gif和watermelon.gif已经存放在当前目录中。
import java. awt. *;import java. awt. event. *;import javax. swing. *;
public class Test3 4 extends JApplet implements ItemListener{
Image image=null;
JPanel p;
public void init() {
Container contentPane=getContentPane();
contentPane. setLayout(new FlowLayout());
JComboBox jc=new JComboBox();
jc. addItem("apple");jc. addItem("banana");
jc. addItem("pear"); jc. addItem("watermelon");
jc. addItemListener(this);
contentPane. add(jc);
p=new JPanel( );
contentPane. add(p);
}
public void paint(Graphics g){
if(image!=null)
g. drawlmage(image,0,0,this);
}
public void itemStateChanged(ItemEvent ie){
String s=(String)ie. Getltem();
image=getImage(getCodeBase(),s+". gif");
repaint();
}
}
35. 阅读下列程序,请写出该程序的功能。
import java. applet. *;import java. awt. *;
public class Test3 5 extends Applet{
public void paint(Graphics g){
setSize(3 80,200);
for(int i=0;i<1 0;i++){
Color myredcolor=new Color(i*25+5,0,0);
g. setColor(myredcolor);
g. fillRect(i*32+5,2,28,28);
}
}
}
36. 阅读下列程序,请写出该程序的功能。
import java. applet. *;import java.awt.*;import java. awt. event. *;
public class Test36 extends Applet {
final int inc=25;
int max=500;int min=200;
Dimension d;
public void init() {
addMouseListener(new MouseAdapter() ){
public void mouseReleased(MouseEvent me){
int w=(d. width+inc)>max?min:(d. width+inc);
int h=(d. height+inc)>max?min:(d. height+inc);
setSize(new Dimension(w,h));
}
}
}
public void paint(Graphics g){
d=getSize();
g. drawLine(0,0,d. width-1,d. height-1);
g. drawLine(0,d. height-1,d. width-1,0);
g. drawRect(0,0,d. width-1,d. height-1);
}
}
六、程序设计题(本大题共2小题,每小题6分,共1 2分)
37. 请编写方法int[]cubeArray(int[]a),返回一个新数组b,数组b的长度与参数数组的长度相同,其元素的值是参数数组对应各元素值的立方。
38. 小应用程序设置一个文本区、一个文本框和两个按钮。用户在文本区中输入整数序列,单击求和按钮,程序对文本区中的整数序列进行求和,并在文本框中输出计算结果。单击第二个按钮,清除文本区和文本框中内容。
注:这里是给定程序的部分代码,你要编写的是actionPerformed(ActionEvent e)方法。
import java.util. *;. . . . . . . . .
public class Test3 8 extends Applet implements ActionListener {
JTextArea textA; JTextField textF; JButton b1,b2;
public void init() {
textA=new JTextArea("",5,10);
textF=new JTextField("",10);
b1=new JButton("求和");b2=new JButton("重新开始");
b1. addActionListener(this);b2. addActionListener(this);
add(textA);add(textF);add(b1);add(b2);
……..
}
public void actionPerformed(ActionEvent e){
//请在以下位置编写代码
}
}
自考试题下载: