首页 > 课程 > Java语言程序设计(一) > 模拟试题 > 2018年01月自学考试04747《Java语言程序设计(一)》试题

2018年01月自学考试04747《Java语言程序设计(一)》试题

发布时间:2019-08-14

全国2018年1月自考Java语言程序设计(一>试卷

课程代码:04747

一、单项选择题(本大题共10小题,每小题1分,共10分>

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.在下述字符串中,不属于Java语言关键字的是(  )

A.float B.new

C.java D.return

2.Java语言中数值数据的类型能自动转换,按照从左到右的转换次序为(  )

A. byte→int→short→long→float→double

B. byte→short→i nt→l ong→fl oat→double

C. byte→sho rt→int→float→long→double

D. short→byte→int→l ong→float→double

3.在以下供选择的概念中,不属于面向对象语言概念的是 (  )

A.消息B.模块

C.继承D.多态性

4.在下述Java语言语句中,错误的创建数组的方法是(  )

A.int intArray[];intArray=new int[5];

B.int intArray[]=new int[5];

C.int[ ] intArray ={1,2,3,4,5};

D.int intArray[5]={1,2,3,4.5}。

5.在Swing中,它的子类能用来创建框架窗口的类是(  )

A.JWindow B.JFrame

C.JDialog D.JApplet

6.MouseListener接口不能处理的鼠标事件是 (  )

A.按下鼠标左键B.点击鼠标右键

C.鼠标进入D.鼠标移动

7.以下不属于文字字型要素的是(  )

A.颜色B.字体

C.风格D.字号

8.在以下四个供选的整数中,能作为线程最高优先级的整数是(  )

A.0 B.1

C.10 D.11

9.Java语言可以用javax.swing包中的类JFileChooser来实现打开和保存文件对话框。用户通过文件对话框不可能获得的信息是 (  )

A.文件名称B.文件路径

C.文件内容D.文件对象

10.在编写访问数据库的Java程序时,Connection对象的作用是(  )

A.用来表示与数据库的连接B.存储查询结果

C.在指定的连接中处理SQL语句D.建立新数据库连接

二、填空题(本大题共10小题,每空2分,共20分>

请在每小题的空格中填上正确答案。错填、不填均无分。

11.Java的编译程序先将Java源程序翻译成与机器无关的__________。字节码

12.表达式¨23&18’’的值是__________。

13.如果类A某个成员变量的类型是类B,则类A和类B之间是__________关系。

14.Java语言提供了两个用于处理字符串的类,它们是__________。String\StringBuffer

15.某程序用代码“JTextField text=new JTextField<);”创建了一个文本框,并对这个文本框注册了监视器,则在监视器处理方法actionPerformed (ActionEvent e>中,判定是在这个文本框上发生事件的条件表达式是__________。e.getSource(>==text 

16.一个水平滚动条对象的初始值是50,滑块的宽是10个像素,表示的范围是[0,250]。

创建这样的滚动条对象时,提供的5个参数依次是__________。(P125>JScrollBar.HORIZONTAL,50,10,0,25 0

17.要在JComponent 子类的组件中绘图,应重写__________方法。paintComponet(>

18.当线程使用完临界段后,为了使等待的线程恢复工作,需要调用的方法是__________。Notify(> 19.某程序想为一个long型整数文件构造随机读写对象,支持这个要求的类是__________。RandomAcces sFile

20.设已知服务器的IP地址和端口号,要创建一个套接字对象,支持这个要求的类是__________。Socket 三、简答题(本大题共6小题,每小题3分,共18分>

21.请写出一段if语句,判断一个整数n是否为偶数。如果是偶数,输出“Yes.”;否则,输出“No.”。

If(n%2==0>{System.out.println(“Yes”>。}els{System.out.println(“No”>。}

22.请写出接口定义的一般形式。

23.请写出Java语言编写事件处理程序的两种主要方案。

24.设已经有Graphics2D对象g2d,

请用Java语句绘制一个矩形rect,其左上角坐标是(20,30>,宽是120,高是30。

Rectangle2D rect=new Rectangle2D.Double(20,30,120,30>

G2d.draw(rect>。

25.打开文件对话框时,还可以设置筛选条件,即指定文件的类型。请写出FileFilter类预设的两个方法。accept(> getDescription(>

26.请写出URLConnection类提供的三个常用方法。

getOutputStream(>

getInputStream(>

connect(>

四、程序填空题(本大题共5小题,每空2分,共20分>

27.方法void moveOddForword(int a[]>的功能是将数组中的所有奇数移到所有偶数之前。

void moveOddForword(int a[]>{

for(int i=0, odd=0。________;i++>i

if(________>{ a[i]%2= =0

int t=a[i];a[i]=a[odd];a[odd]=t;odd++;

}

}

28.以下程序创建了一个窗口,然后在窗口内显示″Hello,World!″。

importjavax.swing.*; importjava.awt*;

public class HelloWorld{

public static void main(String[]ares> {

TextFrame frame=new TextFrame(>;

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE>;

frame. ________; setVisable(true>

}

}

class TextFrame extends JFrame {

public TextFrame(> { .

setTitle(″HelloWorld″>;

setSize(WIDTH,HEIGHT>;

TextPanel panel=new TextPanel(>;

Container contentPane=getContentPane(>;

contentPane.add(panel>;

}

public static final int WIDTH=300;

public static final int HEIGHT= 200;

}

class TextPanel extends JPanel {

public void paintComponent(Graphics g> {

super. ________;paintComponent(g>

g.drawString(″Hello,World!″,x,y>;

}

public int x=100;public int y=100;

}

29.以下是子窗口中设置一个菜单条类的定义。类的构造方法根据指定的窗口名称和菜单表设置菜单条,菜单和菜单项,当选中某个菜单项时,在文本框中显示相应菜单项被选中的信息。

class MenuWindow extends JFrame implements ActionListener{

public static JTextField text;

public 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{

JMenu menu=new JMenu(menuList[i][0]>;

for(intj=1;j{

JMenultem anltem=new JMenultem(menuList[i][j]>;

anltem.setActionCommand(menuList[i][j]>;

anltem.________;menu.add(anltem>;ActionListener(this>

}

menubar.__________;add(menu>

}

text=new JTextField(>;setJMenuBar(menubar>;

con.add(text,BorderLayout.SOUTH>;

}

public void actionPerformed(ActionEvent e>{

text.setText(e.getActionCommand(>+″菜单项被选中!″>;

}

}

public class Test29 extends Applet{

MenuWindow window;

String menuList[][]={{″体育″,″跑步″,″打蓝球″,″打乒乓″},

{″娱乐″,″唱歌″,″跳舞″}};

public void init(> {

window=new MenuWindow(″体育娱乐之窗″,menuList>;

window.setVisible(true>。

}

}

30.以下是一个用鼠标自由作画的小应用程序。最简单的方法是根据鼠标所在位置画点,跟随鼠标的移动,不断画圆点,就能实现用鼠标作画。

import java.awt.*;

import java.awt.event.*;

public class Test30 extends java.applet.Applet implements MouseMotionListener {

Color color;int lineSize=2:

int x=-1,y=-l;

public void init(>{

setLocation(30,20>; setSize(300,300>;

setBackground(Color.green>;addMouseMotionListener(this>;

}

public void paint(Graphics g>{

if(x!=-1&&y!=-1>{

g.setColor(color>;g.fillOval(x,y,1ineSize,lineSize>;

}

}

public void mouseMoved(MouseEvent e>{}

public void mouseDragged(MouseEvent e>{

x=e.getX(>;y=e.getY(>;_________;repaint(>

}

public void ________ (Graphics g>{paint(g>;} update(>。

}

31.以下定义的类ShareData用于管理多个线程共享数据data。一个线程生成data,另一个线程使用data。约定,新生成的data只有被另一个线程使用后,才能生成下一个data。反之,一个data被使用后,也不能再继续使用。所以,生成和使用data的线程之间需要互斥和同步。以下是管理上述使用方式的类,类内有要管理的共享数据,以及对共享数据的存操作putData(>和取操作getData(>。

class ShareData{

int data;∥共享数据

boolean newData=false;∥有最近新生成data的标志

synchronized int getData(>{

while(!newData>{

try{ _________; wait(>

} catch(InterruptedExceptipn e>{

System.out.println(″因错误,而中断!″>;

}

}

newData=false; notify(>;return data;

}

synchronized void putData(int n>{

while(newData>{

try{wait(>;

}catch(InterruptedException e>{

System.out.println(″因错误,而中断!″>;

}

}

data=n; __________; newData=true

notify(>; return;

}

}

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

32.阅读下列程序,请写出该程序的输出结果。

class Parent{

private void method 1 (>{ System.out.println(″Parent′s method 1(>″>;}

public void method2 (> { System.out.println(″Parent′s method2(>″>;method 1(>;}

}

class Child extends Parent{

public void method l (>{System.out.println(″Child′s method 1 (>″>;}

public static void main(String args[]>{Parent p= new Child(>;p.method2(>;}

}

Parent′s method 2(>

Parent′s method 1(>

33.阅读下列程序,请写出该程序的功能。

importjava.util.*;importjavax.swing.*;

public class Test33{

public static void main(String args[]>{

String str=(String>JOptionPane.showInputDialog(null,″请输入信息″,

″输入对话框″,JOptionPane.PLAIN_MESSAGE,null,null,null>;

StringTokenizer pas=new StringTokenizer(str,″,″>;

int n=pas.countTokens(>;

System.out.println(″输入的信息有单词:″+n+″个,全部单词如下:″>;

while(pas.hasMoreTokens(>>{

String s=pas.nextToken(>;

System.out.println(s>;

}

}

>

在输入对话框中输入文字,并以多好作为分割符输出单词个数,及各个单词

34.阅读下列程序,请用示意图画出程序运行时呈现的界面。

importjava.applet.*;importjava.awt.*;importjavax.swing.*;

class MyPanel extends JPanel{

JTextField textl,text2;

MyPanel(Stringsl,Strings2>{

textl=new JTextFieId(s1>;text2=new JTextField(s2>;

add(text 1>;add(text2>;

}

}

class MySubPanel extends MyPanel{

JTextField text;

MySubPanel(String sl,String s2,String s3>{

super(s1,s2>;text = new JTextField(s3>;add(text>;

}

}

public class Test34{

public static void main(String args[]>{

JFrame mw=new JFrame(″一个示意窗口″>;

mw.setSize(350,150>;

Container con = mw.getContentPane(>;

con.setLayout(new BorderLayout(>>;

MyPanel pl=new MyPanel(″文本框l″,″文本框2″>;

MySubPanel p2=new MySubPanel(″文本框3″,″文本框4″,″文本框5″>;

JTextArea text=new JTextArea(″这里是一个文本区″>;

con.add(pl,″North″>; con.add(p2,″South″>;

con.add(text,″Center″>;mw.setVisible(true>;

}

}

月全国自考Java语言程序设计方案(一)真题及答案

35.阅读下列程序,请写出该程序的功能。

importjava.applet.*:importjava.awt.event.*;importjavax.swing.*

public class Class 1 extends Applet implements KeyListener{

JButton button=new JButton(″开始″>;

JTextArea text=new JTextArea(5,20>;

public void init(> {

button.addKeyListener(this>; add(button>。add(text>;

}

public void keyPressed(KeyEvent e>{

int t=e.getKeyCode(>;

if(t>=KeyEvent.VK_A&&t<=KeyEvent.VK_Z>{

text.append(″″+(char>t>;

}

}

public void keyTyped(KeyEvent e>{}

public void keyReleased(KeyEvent e>{}

}

程序功能:从键盘输入字符如果是大写字母A-Z,则显示在文本区中

36.阅读下列程序,请写出该程序的功能。

import java.applet.*; import java.awt.*;

public class Test36 extends java.applet.Applet implements Runnable{ Thread myThread = null;

double seta=0.0。

public void start(>{

setSize(500,400>;

if(myThread=null>{myThread=new Thread(this>; myThread.start(>;} }

public void run(>{

while(myThread!=null>{

try {myThread.sleep(40>;

}catch(InterruptedException e>{}

seta+=3.0; if(seta>=360>seta=0; repaint(>;

}

}

public void paint(Graphics g>{

final double pi=3.14159; final double r = 100.0;

int x0=250+(int>(r*Math.cos(3.1415926/180.0*seta>>;

int y0=200+(int>(r*Math.sin(3.1415926/180.0*seta>>;

g.setColor(Color.red>; g.drawOval(x0,y0,10,10>;

}

}

红色、顺时针画圆

六、程序设计题(本大题共2小题,每小题6分,共1 2分>

37.请编写方法void strReverse(String str>,该方法的功能是输出一个新字符串,新字符串字符排列顺序与原字符串str的字符排列顺序相反。例

如,strReverse(″ABCD″> 所输出的结果是″DCBA″。请使用字符串与字节数组的相互转换方法进行设计。publicstaticvoid strReverse(String str>{

byte[] s=str.getBytes(>。

String t=""。

for(int i=s.length-1。i>=0。i-->{

t+=(char>s[i]。

}

System.out.println(t>。

}

38.请设计实现如下用于输入学号和姓名的对话框界面,其中空白格是文本框,用于输入相应的内容。

月全国自考Java语言程序设计方案(一)真题及答案

这里给出的是程序的一部分,你要编写的是类InputNoNameDialog的构造方法InputNoNameDialog(JFram e f,String s,JTextField t>。其中参数f是对话框的依赖窗口,s是对话框标题,t是依赖窗口中显示对话框输入内容的文本框。

以下是类InputNoNameDialog的程序框架。

class InputNoNameDialog extends JDialog implements ActionListener{

JLabel title;JTextField textl,text2,mainText;JButton done;

InputNoNameDialog(JFrame f,String s,JTextField t>{

super(f,s,true>; mainText = t;Container con = getContentPane(>;

title=new JLabel(s>;textl=new JTextField(10>;

text2=new JTextField(10>;con.setLayout(new GridLayout(3,2>>;

con.setSize(200,100>; setModal(false>;

//请在以下位置续写其余代码

done=new JButton("确定">。

done.addActionListener(this>。

con.add(title>。con.add(done>。

con.add(new JLabel("学号">>。con.add(textl>。

con.add(new JLabel("姓名">>。con.add(text2>。

setVisible(true>。}

public void actionPerformed(ActionEvent e>{

//输入结束按确定按钮后,将对话框中输入的学号和姓名在它依赖窗口的文本框中显示。mainText.setText(″学号:″+textl.getText(>+″姓名:″+text2.getText(>>;

setVisible(false>;dispose(>;

}

}

11 / 11

联系方式

  • 投诉与建议电子邮箱:272223086@qq.com
  • 联系方式: 13117063983    http://www.hbzkjy.com