2021年4月高等教育自学考试全国统一命名考试
Java语言程序设计(一)
课程代码( 04747 )
注意事项:
-
本试卷分为两部分,第一部分为选择题,第二部分为非选择题。
-
应考者必须按试题顺序在答题卡(纸)指定位置上作答,答在试卷上无效。
-
涂写部分,画图部分必须使用2B铅笔,书写部分必须使用黑色字迹签字笔。
第一部分 选择题
一、单项选择题(本大题共10小题,每小题1分,共10分。在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出)。
-
下列选项中,不属于Java语言特性或语法成分的是( )
A. 面向对象 B. 全局变量 C. JVM D. 多线程
-
下列选项中,能作为文档注释的是 ( )
A. /*我是javadoc注释*/ B. //我是javadoc注释*/
C. /**我是javadoc注释*/ D. /我是javadoc注释*/
-
下列选项中,不能作为for语句中条件表达式的是( )
A. k++ B. k<=10 C. k== -1 D. true
-
关于类的叙述中,正确的是( )
A. 每个类都要有一个main方法
B. 类中可以不显示定义构造法
C. 声明一个类时,必须使用public修饰符
D. 类具有封装性,故不能访问类的数据成员
-
下列选项中,能正确加入如下Java代码段的Test类中,并成为cal()的重载方法的是( )
public class Test{
public void cal(int x,int y,int z){}
//在此处添加cal()的重载方法
}A. public int cal(int x,int z){}
B. public int cal(int x,int y,int z){}
C. public int cal(int x,int y,int z){return 0;}
D. public int cal(int x,int y,float z){return 0;}
-
下列选项中,能够正确初始化数组m的是( )
A. int [ ] m; B. m = {1,2,3,4,5};
B. int [ ] m = new int [5]; D. int [ ] m = new int [5]{1,2,3,4,5};
-
下列选项中,能作为Java接口成员的是( )
A. void aMethod(); B. private void aMethod();
C. interface void aMethod(); D. protected void aMethod();
-
若程序中有语句FileOutputStream out = new FileOutputStream(“myFile.dat”);,则选项正确的是( )
A. 如果文件myFile.dat存在,则将抛出IOExcetion异常
B. 如果文件myFile.dat不存在,则将抛出IOExcetion异常
C. 如果文件myFile.dat存在,则将覆盖掉文件中已有的内容
D. 如果文件myFile.dat存在,则将在文件的末尾开始添加新内容
-
若要自行设置容器中组件的位置和大小,则需要执行的操作是( )
A. 调用方法setSize()
B. 调用方法getContentPane()
C. 调用方法getPreferredSize()
D. 调用方法setLayout(null)和setBounds()
-
子线程自动获得的优先级是( )
A. 最低优先级 B. 最高优先级 C. 随机优先级 D. 父类优先级
第二部分 非选择题
二、填空题(本大题共10小题,每小题2分,共20分)。
-
Java编译器将Java程序编译成虚拟机能够识别的二进制代码,这种代码称为__________。
-
语句System.out.println((20+2*9)/4%7);的输出是____________。
-
if语句中的条件表达式必须得到一个________类型的值。
-
对应于基本类型char的包装类是________。
-
若有定义:int myArray[ ][ ] = {{23},{46,20},{98,81,64},{54,43,55,76}};,则语句System.out.println(myArray[1][1]);将输出___________。
-
接口中的数据成员变量在声明时一定要_________。
-
能够输入输出对象的流称为___________。
-
对组件中文本的文字进行设定的方法是__________。
-
语句JTextField = new JTextFileld(10);中,函数参数10表示的是文本输入框的___________。
-
实现线程之间交互的方法是notify()/notifyall()和__________。
三、 简答题(本大题共五小题,每小题4分,共20分)。
-
说明嵌套的if语句中,if与else的个数应满足的条件及else语句的对应规则。
-
说明方法的形参是引用类型,则在调用方法时,实参传递的内容是什么?当方法返回时,对实参有何影响?
-
若让数组A含有“Java”、“program”、“My”3个字符串,请写出创建数组并进行静态初始化的两种不同的语句形式。
-
在同一类中,同名的方法之间是什么关系?在不同的类中,同名的方法之间是什么关系?
-
什么是轻量级组件?什么是重量级组件?在程序中同时使用轻量级组件和重量级组件时,会有什么显示效果?
四、 程序填空题(本大题共3小题,每空2分,共18分)。
- 以下程序从键盘输入1至9之间的一个整数a,计算从一个a到a个a的和s并输出。例如,当a=5时,s=5+55+555+5555+55555。
import java.util.Scanner;
public class Test26{
public static void main(String[] args){
int a,s=0,r=0;
Scanner sc=new Scanner(System.in);
System.out.println("输入1~9间的一个整数:" );
a=____①____;
for(int i=1;i<=a;i++){
r=___②______;
s=____③_______;
}
System.out.println("和为:"+s);
}
}
- 以下程序定义了父类Person和子类Student。程序将输出:Liubei 25 Shanghai A。
class Person{
private String name;
private int age;
public String getName(){return name;}
public void setName(String name){this.name=name;}
public int getAge(){return age;}
public void setAge(int age){this.age=age;}
Person(String name,int age){this.name=name;this.age=age;}
public String toString(){
String s=name+"\t"+age;
return s;
}
}
class Student extends Person{
private String hometown;
private char grade;
Student(String name,int age,String hometown,char grade){
____①___;
this.hometown=hometown;
this.grade=grade;
}
void print(){
String s=__②___+" "+hometown+ ""+grade;
System.out.println(s);
}
}
public class Test27{
public static void main(String[] args){
Student st = new Student("Liubei”,25, “Shanghai”, ‘A’);
st._______;
}
}
- 以下程序创建一个窗口,窗口内放置一个面板,在面板中绘制直线和矩形。
import javax.swing.*;import java.awt.*;
public class Test28{
public static void main(String[] args){
MyFrame = new MyFrame();
}
}
class MyFrame extends JFrame{
public MyFrame(){
setTitle(“Test28”);
setSize(300,200);
getContentPane().add(___①____);
set Visible(true);
}
}
class Mypanel extends JPanel{
Image myImg;
public void paintComponent(__②___){
g.setColor(Color.green);
g.drawLine(100,50,30,50);
g.setColor(Color.red);
___③___(100,50,100,46);
}
}
五、 程序分析题(本大题共3小题,每小题6分,共18分)。
- 阅读程序,写出该程序的输出结果。
class SuperClass{
String name;
public SuperClass(String s){
name=s;
System.out.println(s);
}
public void method(){
System.out.println("superclass!”);
}
}
class SubClass extends SuperClass{
String department;
public SubClass(String s,String d){
super(s);
department=d;
System.out.println(d);
}
public void method(){ }
}
public class Test29{
public static void main(String[] args){
SuperClass superc=new SuperClass("super”);
SubClass subc=new SubClass("sub1”, “Java”);
SuperClass ssc=new SubClass("sub2”, “Java”);
superc.method();
subc.method();
ssc.method();
}
}
- 阅读程序,描述该程序的输出结果。
import java.io.*;
public class Test30{
public static void main(String[] args) throws IOException{
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String str=br.readLine();
int i,ditNo=0,upCharNo=0,IoCharNo=0,otherCharNo=0;
for(i=0;i<str.length();i++){
if(str.char At(i)<= '9’&& str.charAt(i)>='0')
ditNo++;
else if(str.charAt(i)<= 'Z'&& str.charAt(i)>= 'A')
upCharNo++;
else if(str.charAt(i)<= 'z'&& str.charAt(i)>= 'a')
IoCharNo++;
else otherCharNo++;
}
System.out.println("N1="+ditNo+ "\t"+ "N2="+upCharNo);
System.out.println("N3="+IoCharNo+ "\t"+ "N4="+otherCharNo);
}
}
- 阅读程序,写出该程序的输出结果。
class MyThread3 implements Runnable{
private String[] s;
public MyThread3(String[] s){
this.s=s;
}
public void run(){
int count=0;
long startTime=System.currentTimeMillis();
long endTime=System.currentTimeMillis();
while (endTime-startTime<4500){
try{
if(s[count%s.length].equals("Yellow")){
System.out.println("Yellow on");
Thread.currentThrea().sleep(800);
}
if(s[count%s.length.equals("Red")]{
System.out.println("Red on");
Thread.currentThread().sleep(1000);
}
if(s[count%s.length].equals("Green")){
System.out.println("Green on");
Thread.currentThread().sleep(3000);
}
count++;
endTime=System.currentTimeMillis();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
class Test31{
public static void main(String[] args){
String[] s={"Green", "Red", "Yellow"};
Thread t=new Thread(new MyThread3(s));
t.start();
}
}
六、 程序设计题(本大题共2小题,每小题7分,共14分)。
- 编写方法double sumS(int n),计算以下公式的值s,并返回。
double sumS(int n){
double s=1;
//请在答题卡(纸)上填写此处应编写的代码
}
- 类Test33显示一个窗口,响应鼠标事件。当鼠标进入到窗口中时,在窗口最下面一行,显示鼠标的当前坐标,如题33图所示。要求:编写代码,实现鼠标事件处理程序。
import java.awt.*;
import java.awt.event.*;
import.javax.swing.*;
public class Test33 implements MouseMotionListener{
private JFrame frame;
private JLable tf;
public static void main(String) args){
Test33 two=new Test33();
two.go();
}
public void go(){
frame=new JFrame("Mouse Control");
Container contentPane=frame.getContentPane();
contentPane.add(new JLabel("get mouse event"),BorderLayout.NORTH);
tf=new JLabel();
contentPane.add(tf,BorderLayout.SOUTH);
frame.addMouseMotionListener(this);
frame.setSize(300,300);
frame.setVisible(true);
}
//请在答题卡(纸)上填写此处编写的代码
}