Java语言程序设计(一)(04747)+答案

2021年四月高等教育自学考试全国统一命名考试

Java语言程序设计(一)

课程代码( 04747 )

注意事项:

  1. 本试卷分为两部分,第一部分为选择题,第二部分为非选择题。

  2. 应考者必须按试题顺序在答题卡(纸)指定位置上作答,答在试卷上无效。

  3. 涂写部分,画图部分必须使用2B铅笔,书写部分必须使用黑色字迹签字笔。

第一部分 选择题

一、单项选择题(本大题共10小题,每小题1分,共10分。在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出)。

  1. 下列选项中,不属于Java语言特性或语法成分的是( 全局变量)

    A. 面向对象 B. 全局变量 C. JVM D. 多线程

  2. 下列选项中,能作为文档注释的是 ( /**我是javadoc注释*/)

    A. /*我是javadoc注释*/ B. //我是javadoc注释*/

    C. /**我是javadoc注释*/ D. /我是javadoc注释*/

  3. 下列选项中,不能作为for语句中条件表达式的是(k++ )

    A. k++ B. k<=10 C. k== -1 D. true

  4. 关于类的叙述中,正确的是( 类中可以不显示定义构造法)

    A. 每个类都要有一个main方法

    B. 类中可以不显示定义构造法

    C. 声明一个类时,必须使用public修饰符

    D. 类具有封装性,故不能访问类的数据成员

  5. 下列选项中,能正确加入如下Java代码段的Test类中,并成为cal()的重载方法的是(public int cal(int x,inty,floatz){return 0;} )

    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;}

  6. 下列选项中,能够正确初始化数组m的是(int [ ]m = new int[5];)

    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};

  7. 下列选项中,能作为Java接口成员的是(void aMethod();)

    A. void aMethod(); B. private void aMethod();

    C. interface void aMethod(); D. protected void aMethod();

  8. 若程序中有语句FileOutputStream out = new FileOutputStream(“myFile.dat”);,则选项正确的是(如果文件myFile.dat存在,则将覆盖掉文件中已有的内容 )

    A. 如果文件myFile.dat存在,则将抛出IOExcetion异常

    B. 如果文件myFile.dat不存在,则将抛出IOExcetion异常

    C. 如果文件myFile.dat存在,则将覆盖掉文件中已有的内容

    D. 如果文件myFile.dat存在,则将在文件的末尾开始添加新内容

  9. 若要自行设置容器中组件的位置和大小,则需要执行的操作是(调用方法setLayout(null) 和setBounds())

    A. 调用方法setSize()

    B. 调用方法getContentPane()

    C. 调用方法getPreferredSize()

    D. 调用方法setLayout(null)和setBounds()

  10. 子线程自动获得的优先级是(父类优先级 )
    A. 最低优先级 B. 最高优先级 C. 随机优先级 D. 父类优先级

第二部分 非选择题

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

  1. Java编译器将Java程序编译成虚拟机能够识别的二进制代码,这种代码称为 字节码(Bytecode)____。

  2. 语句System.out.println((20+2*9)/4%7);的输出是______2______。

  3. if语句中的条件表达式必须得到一个______逻辑(Boolean)__类型的值。

  4. 对应于基本类型char的包装类是______Character__。

  5. 若有定义:int myArray[ ][ ] = {{23},{46,20},{98,81,64},{54,43,55,76}};,则语句System.out.println(myArray[1][1]);将输出___20________。

  6. 接口中的数据成员变量在声明时一定要______赋初值___。

  7. 能够输入输出对象的流称为___对象流________。

  8. 对组件中文本的文字进行设定的方法是______setFont()____。

  9. 语句JTextField = new JTextFileld(10);中,函数参数10表示的是文本输入框的___列数________。

  10. 实现线程之间交互的方法是notify()/notifyall()和_______wait()___。

三、 简答题(本大题共五小题,每小题4分,共20分)。

  1. 说明嵌套的if语句中,if与else的个数应满足的条件及else语句的对应规则。

答:1. if的个数等于或多于else的个数。

​ 2. else子句属于逻辑上离它最近的if语句,即同一块中还没有匹配else的最近的if。

  1. 说明方法的形参是引用类型,则在调用方法时,实参传递的内容是什么?当方法返回时,对实参有何影响?

答:1. 在调用方法时,将实参的首地址传递给形参。

​ 2. 在方法返回时,对形参的修改也即修改了实参。

  1. 若让数组A含有“Java”、“program”、“My”3个字符串,请写出创建数组并进行静态初始化的两种不同的语句形式。

答:

  1. String A[]={“Java”,“program”,“My”};

         2. String A[]=new String[3];
    

​ A[0]=“Java”; A[1]=“program”;A[2]=“My”;

  1. 在同一类中,同名的方法之间是什么关系?在不同的类中,同名的方法之间是什么关系?

答:1. 同一个类中,具有不同签名的同名方法是重载方法。

​ 2. 具有继承关系的类之间,有相同参数表的同名方法是重写方法,后代类中的方法覆盖了祖先类中的同名方法。参数表不同的同名方法是重载方法。其他不同类中,同名方法没有关系。

  1. 什么是轻量级组件?什么是重量级组件?在程序中同时使用轻量级组件和重量级组件时,会有什么显示效果?

答:1. 不包含本地代码的组件称为轻量级组件。

        2. 包含本地代码的组件称为重量级组件。
        3. 当重量级组件与轻量级组件一同使用时,如果组件区域有重叠,则重量级组件总是显示在上面。

四、 程序填空题(本大题共3小题,每空2分,共18分)。

  1. 以下程序从键盘输入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=____① sc.nextInt____;
      for(int i=1;i<=a;i++){
         r=___②_r*10+a_____;
         s=____③___s+r____;
      }
      System.out.println("和为:"+s);
   }
}
  1. 以下程序定义了父类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){
      ____①_super(name,age)__;
      this.hometown=hometown;
      this.grade=grade;
   }
   void print(){
   String s=__②_super.toString()__+" "+hometown+ ""+grade;
   System.out.println(s);
   }
}
public  class Test27{
   public static void main(String[] args){
   Student st = new Student("Liubei”,25, “Shanghai”, ‘A’);
   st.___print()____;
   }
}
  1. 以下程序创建一个窗口,窗口内放置一个面板,在面板中绘制直线和矩形。
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(___①_new Mypanel()___);
   set Visible(true);
   }
}
class Mypanel extends JPanel{
   Image myImg;
   public void paintComponent(__②__Graphics g_){
      g.setColor(Color.green);
      g.drawLine(100,50,30,50);
      g.setColor(Color.red);
      ___③_g.drawRect__(100,50,100,46);
   }
}

五、 程序分析题(本大题共3小题,每小题6分,共18分)。

  1. 阅读程序,写出该程序的输出结果。
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();
   }
}
                                  //super\sub1\Java\sub2\Java\superclass!\
  1. 阅读程序,描述该程序的输出结果。
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);
   }
}

答:该程序读入一串字符,分别统计其中数字的个数、大写字母的个数、小字母的个数以及它符号的个数,并输出统计结果。

  1. 阅读程序,写出该程序的输出结果。
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();
   }
}
               //Green on\Red on\Yellow on

六、 程序设计题(本大题共2小题,每小题7分,共14分)。

  1. 编写方法double sumS(int n),计算以下公式的值s,并返回。

在这里插入图片描述

double sumS(int n){
   double s=1;
   //请在答题卡(纸)上填写此处应编写的代码
}
double sumS(int n){
    double s = 1;
    if(n<=0)return-1;
    else{
        for(int i=1;i<=n;i++)
            s+=1.0/3*i);
        return 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);
   }
   //请在答题卡(纸)上填写此处编写的代码
   public void mouseDragged(MouseEvent e){
       String s="Mouse dragging: X="+e.getX()+"Y="+e.getY();
       tf.setText(s);
   }
   public void mouseMoved(MouseEvent e){
       String s="Mouse dragging: X="+e.getX()+"Y="+e.getY();
       tf.setText(s);
   }
} 
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值