Java语言程序设计一真题答案+解析+知识点.docx

上传人:b****6 文档编号:4818777 上传时间:2022-12-09 格式:DOCX 页数:21 大小:894.80KB
下载 相关 举报
Java语言程序设计一真题答案+解析+知识点.docx_第1页
第1页 / 共21页
Java语言程序设计一真题答案+解析+知识点.docx_第2页
第2页 / 共21页
Java语言程序设计一真题答案+解析+知识点.docx_第3页
第3页 / 共21页
Java语言程序设计一真题答案+解析+知识点.docx_第4页
第4页 / 共21页
Java语言程序设计一真题答案+解析+知识点.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

Java语言程序设计一真题答案+解析+知识点.docx

《Java语言程序设计一真题答案+解析+知识点.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计一真题答案+解析+知识点.docx(21页珍藏版)》请在冰豆网上搜索。

Java语言程序设计一真题答案+解析+知识点.docx

Java语言程序设计一真题答案+解析+知识点

2017年4月高等教育自学考试全国统一命题考试

Java语言程序设计

(一)试卷

课程代码 04747

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

1.在下列供选的字符串中,不能作为Java整型常量的是

A.052

B.0x3BEH

C.6389

D.0x3fedL

【答案】B

【解析】该题考查Java语言基础知识中基本数据类型中的整数类型。

Java语言中整型常量有十进制、八进制和十六进制三种写法。

A项以数字符0开头,是八进制写法;C项是十进制写法;D项以0x开头,后随字符和英文字母A到F,是十六进制写法,最后的字母L表示该整型为长整型;C项错在最后的字母H,十六进制表示时后随字符和英文字母A到F。

所以C项不能作为Java整型常量。

【知识点】整数类型的四种表示形式

2.在以下供选的关键字中,能用于定义常值变量的是

A.final

B.static

C.protected

D.super

【答案】A

【解析】该题考查Java语言基础知识中的关键字。

Java语言中的关键字被赋予特定的意义,用于表示程序结构、定义和修饰等。

每个关键字在程序中出现有特定位置和使用方法的要求。

B项用于修饰类变量或类方法;C项为访问权限中受保护访问权限关键字,只限子类或者同一包中的类的方法能访问;D项。

A项的意义是最终的,其意思是“不能改变”,修饰变量时,声明该变量的值不能被改变。

所以A项能用于定义常值变量。

【知识点】常用关键字的使用

3.下列Java语句中,不正确的是

A.floate=0.0d;

B.charc,d=‘a’;

C.int$e,a,b=10;

D.doublee=0.0f;

【答案】A

【解析】该题考查Java语言基础知识中基本数据类型间转换关系。

Java语言中的基本数据类型转换分为自动转换和不兼容类型的强制转换两种:

当满足两种类型是兼容的和目的类型数的范围比来源类型的大这两个条件时,发生自动转换。

A项是定义单精度实型(float)变量(e)且赋值(0.0d),但是0.0d是双精度实型值,不满足目的类型数的范围比来源类型的大这个条件,在赋值时出现类型不匹配错误,因此是不正确的;B项定义了两个字符型变量(c和d)并对d赋初始值(’a’);C项定义了三个整型变量($e、a和b)并对b赋初始值10;D项定义了一个双精度实型变量(e)并对e赋单精度初始值(0.0f),满足两种类型是兼容的和目的类型数的范围比来源类型的大这两个条件,会自动转换。

所以A项不正确。

【知识点】基础知识中基本数据类型间转换关系

4.以下代码的输出结果是System.Out.Println(1+2+“aa”+3);

A.12aa3

B.3aa3

C.12aa

D.代码有语法错

【答案】B

【解析】该题考查Java语言中运算符和字符串基本操作里的字符串连接。

字符串有一个连接运算符+,得到连接两个字符串的结果,但这个运算符容易与算术运算符+混肴。

Java语言规定,当运算符+两边的操作数有一边是字符串时,该运算符为字符串连接运算符,执行连接操作。

因此该题目在运算时按照从左向右的顺序,1+2执行加法计算,得到整数3;与下一个操作数”aa”一起运算时执行连接运算,得到”3aa”;再与最后一个操作数3运算时,依然执行连接运算,得到最终结果”3aa3”。

所以B项是正确的。

【知识点】算术运算符(+)和字符串基本操作里的连接运算符(+)

5.在Swing中,与JComponent类有直接父子关系的是

A.JMenu

B.JButton

C.JLabel

D.JTextArea

【答案】C

【解析】根据Swing提供的GUI组件类和容器类,以及它们之间的继承关系,与JComponent类有直接父子关系的类有:

AbstractButton、JComboBox、JLabel、JList、JPanel、JMenuBar、JTextComponet等。

A项是AbstractButton类的子类(非直接);B项是AbstractButton类的直接子类之一;D项是JTextComponet类的直接子类。

所以C项是正确的。

【知识点】图形界面设计中Swing类的层次结构

6.在以下选项中,可得到菜单项名称的方法是

A.getMenu()

B.getLabel()

C.getMenu()

D.getItem()

【答案】B

【解析】在Java语言中,菜单有菜单条、菜单、菜单项等几部分组成。

菜单项是类JMenuItem的实例。

A项是AWT中MenuBar类里用于获取指定的菜单的方法;B项是得到菜单选项名称的方法;C项是Swing中JMenuBar类里取得菜单条中的菜单的方法;D项是JMenu类中得到指定索引处的菜单项的方法。

所以B项是正确的。

【知识点】菜单中的常用方法

7.某程序定义了一个JPanel子类,并要让该子类实现多线程,在子类对象创建时启动线程,则在以下叙述中最完整正确的是

A.继承Thread类,在类内定义run()方法,声明和创建线程对象,并让该对象调用Start()方法

B.继承Thread类,在类内定义run()方法,声明线程对象,并让该对象调用Start()方法

C.声明实现Runnable接口,在类内实现run()方法,声明线程对象,创建线程,并调用run()方法

D.声明实现Runnable接口,在类内实现run()方法,声明和创建线程对象,并让该对象调用Start()方法

【答案】D

【解析】Java程序实现多线程应用有两种途径:

一是继承Thread类声明Thread子类,用Thread子类创建线程对象;二是在类中实现Runnable接口,在类中提供Runnable接口的run()方法。

第一种途径的步骤是:

先声明一个Thread类的子类,并在子类中重新定义run()方法;当程序需要建立线程时,就可创建Thread子类的实例,并让创建的线程调用start()方法,这时,run()方法将自动执行。

第二种途径的步骤是:

声明实现Runnable接口的类,在类内实现run()方法;并在类内声明线程对象,在init()方法或start()方法中创建新线程,并在start()方法中启动新线程。

由于该类是JPanel的子类,且Java中无法实现多继承,因此无法同时继承Thread类,所以A和B项是错误的;C项实现多线程的步骤错误。

所以D项是正确的。

【知识点】Java程序实现多线程的两种方法

8.以下关于线程死锁的叙述中,正确的是

A.若程序中存在线程的死锁问题,编译时不能通过

B.实现多线程时死锁不可避免

C.为了避免死锁,应禁止对资源以互斥的方式进行访问

D.线程的死锁是一种逻辑运行错误,编译器无法检测

【答案】D

【解析】如果发生多个线程形成一个等待环,所有线程都陷入相互等待的状态,这种循环等待现象称为死锁。

在互斥同步机制的实现中,稍有不当,就可能产生死锁。

Java语言对死锁问题没有特别处理,只能由用户在编程时注意。

所以D项是正确的。

【知识点】多线程中的死锁问题

9.用类JFileChooser对象可打开和保存文档对话框,程序能从该对话框获得

A.用户选择的文件的长度

B.用户选择的文件名

C.文件对象

D.用户选择的文件内容

【答案】C

【解析】当程序发现用户选择了文件并按下了“打开/保存”按钮后,程序就可以利用getSelectedFile()方法取得文件对象。

A、B和D都是针对用户选择的文件,则可以利用这个文件对象的方法。

所以C项是正确的。

【知识点】文件对话框JFileChooser类的常用方法

10.网络应用有多种模式.其中www采用的模式是

A.对等模式

B.主机终端模式

C.分布式模式

D.客户机/服务器模式

【答案】D

【解析】WWW(万维网)是建立在客户机/服务器模式上,以HTML语言和HTTP协议为基础,能够提供各种Internet服务的信息浏览系统。

所以D项是正确的。

【知识点】网络编程中网络应用模式

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

11.Java编译程序对Test11.java源程序编译,如果没有发生错误,一定会产生一个文件,该文件的名字是________。

【答案】Test11.class

【解析】用Java语言编写的源程序在计算机上运行需经过编译和解释执行两个阶段。

编译时,Java编译器编译源程序,产生字节码文件,该字节码文件的扩展名是.class。

【知识点】Java语言的特点和Java程序的执行过程

12.表达式“-1>>2”的的值是________。

(负数用补码表示)

【答案】-1

【解析】该题考查的是移位运算中的右移运算。

右移运算的规则是:

将左运算分量的每一位二进位向右移动,右端移出的位的信息丢弃。

与左移相反,每右移1位,相当于乘2。

在右移时,需要注意符号位问题。

如果移位前符号位为0(正数),则左端也是用0填充;如果移位前符号位为1(负数),则算术右移运算“>>”用1填充。

【知识点】数据运算中的移位运算

13.为了声明类只是一种模板,类中定义的某些方法没有具体实现代码,只有它的子类,才可能是有实际意义的类。

定义这样的类的修饰符是________。

【答案】abstract

【解析】抽象类是只声明一种模板,没有具体实现代码的类。

只有它的子类才可能是有实际意义的类。

抽象类用关键字abstract来修饰。

【知识点】面向对象编程中的抽象类概念

14.设有字符串定义:

Strings=“12341234”;则表达式s.indexOf(“2”)的值是___________。

【答案】1

【解析】String类的indexOf(Strings)方法是从指定字符串的头开始检索参数字符串s,返回字符串s首次出现的位置。

注意,下标从0开始。

该题中”2”第一次出现的位置索引是1。

【知识点】字符串基本操作中的字符串检索方法

15.在实现接口ActionListener的方法actionPerformed()中,为识别事件对象,调用方法getActionCommand(),该方法返回___________的文字信息。

【答案】获得事件源按钮

【解析】在处理事件的方法中,用获得事件源信息的方法获得事件源信息,并判断和完成相应处理。

获得事件源的方法有:

方法getSource()获得事件源对象;方法getActionCommand()获得事件源按钮的文字信息。

【知识点】事件驱动程序设计中ActionListener接口相关知识

16.程序将若干单选按钮对象加入到一个ButtonGroup对象中,其目的是________。

【答案】构成单选按钮组

【解析】当在一个容器中放入多个单选按钮,且没有用ButtonGroup对象将它们分组,则可以同时选中多个单选按钮;如果使用ButtonGroup对象将单选按钮分组,同一时刻内的多个单选按钮只允许有一个被选中。

【知识点】单选按钮使用的相关知识

17.AWT的Font对象的作用是________。

【答案】用类Font对象设置字型

【解析】在Java语言中,用类Font对象设置字型,包括:

字体风格、字体大小、字体名称等。

【知识点】Java绘图基础知识中字型设置相关知识

18.处于运行状态的线程执行stop()方法,该线程将进入的状态是________。

【答案】死亡状态

【解析】线程生命周期共有五个状态:

新建状态、就绪状态、运行状态、阻塞状态和死亡状态。

死亡状态是指线程不再具有继续运行的能力,也不能再转到其他状态。

线程一般由于执行结束或执行stop()方法进入死亡状态。

【知识点】线程的生命周期

19.FileWriter类的作用是为________提供支持。

【答案】字符流文件写操作

【解析】字符流数据是16位的Unicode字符,字符流能处理Unicode字符集中的任何字符。

读和写操作由FileReader类和FileWriter类提供支持。

【知识点】字符流写操作

20.在访问数据库的程序中。

建立了Statement对象,利用该对象可以执行数据库更新,实现SQL数据库更新的方法是______。

【答案】executeUpdate()

【解析】Statement类是java.sql包中用于在指定的连接中处理SQL语句的类。

利用Statement对象的executeUpdate()方法,执行SQL的update语句,实现数据库更新。

【知识点】数据库更新

三、简答题(本大题共6小题,每小题3分,共18分)

21.请写出表达式实现以下功能:

变量y的值为5与变量z的值为3,有且只有一个成立。

【答案】y==5!

=z==3或y==5&&z!

=3||y!

=5&&z==3

【解析】根据题目,变量y的值为5和变量z的值为3不能同时成立,因此,使用关系运算和逻辑运算来实现。

&&(逻辑与):

只有两个操作数同时为true时,结果才为true;||(逻辑或):

只有两个操作数同时为false时,结果才为false。

需要注意,等于的运算符是==,容易写错。

【知识点】数据运算中的逻辑运算符和关系运算符的应用

22.请写出通过继承,子类可以获得的好处。

【答案】继承机制规定,子类可以拥有超类的所有属性和方法,也可以扩展定义自己特有的属性,增加新方法和重新定义超类的方法。

【解析】该题考查的是面向对象编程基础中继承的机制。

继承(Inheritance)是面向对象语言的重要机制,就是在已有类的基础上,扩充属性,或扩充与改写其某些方法,生成新的类。

继承定义的类称为子类,被继承的类称为超类(父类),子类自动含有超类具有的属性和方法,还可增加某些特殊性,并可扩充和修正部分行为。

【知识点】面向对象中继承的相关知识

23.请写出将按钮对象b和文本区对象text放置于面板对象tp,并将tp放置于滚动面板,最后将滚动面板添加到JFrame子窗口对象frame的Java语句。

【答案】

tp.add(b);

tp.add(text);

frame.getContentPane().add(newJScrollPane(tp));

【解析】面板有两种,一种是普通面板JPanel,另一种是滚动面板JScrollPane。

普通面板JPanel对象添加组件的方法:

add(组件),使用这个方法将按钮对象b和文本区对象text放置于面板对象tp;将tp放置于滚动面板时,要用到JScrollPane类的构造方法JScrollPane(Componentcom),参数com是要放置于JScrollPane对象的组件对象;将滚动面板添加到子窗口对象frame时,应先用getContentPane()方法获得内容面板,再将组件加入。

因此,最后一部分语句可以写在一起,形如:

frame.getContentPane().add(newJScrollPane(tp));。

【知识点】图形界面设计中的面板:

普通面板和滚动面板的常用方法

24.请写出Graphics2D类中stroke、paint两种属性的作用。

【答案】

stroke属性控制线条的宽度,笔形样式,线段连接方式或短划线图案;

paint属性控制填充效果

【解析】Graphics2D类是由Graphics类扩展出来的,拥有更强大的二维图形处理能力,提供坐标转换、颜色管理以及文字布局等更精确的控制。

stroke属性和paint属性是Graphics2D类的两个常用属性。

【知识点】Graphics2D类的绘图属性

25.请写出Java系统提供的支持文件随机访问的类和该类提供的读取一个字符的方法。

【答案】RandomAccessFile类,charreadChar()方法

【解析】文件随机访问可利用RandomAccessFile类实现,该类创建的流既可以随机输出,也可以随机输入。

RandomAccessFile类常用的读写文件的方法有read()、readLine()、readChar()、writeBoolean(booleanv)、writeChar(intv)等,其中读取一个字符的方法是charreadChar()。

【知识点】输入输出流中的随机访问

26.请写出URLConnection类实现网络访问的基本过程。

【答案】首先创建一个URL对象,其构造方法是URL(Stringurl),因此myURL=newURL(s);然后利用URL对象的openConnection()方法,从系统获得一个URLConnection对象。

【解析】URLConnection类用于接收和发送信息,程序获得一个URLConnection对象,相当于完成对指定URL的一个HTTP连接。

【知识点】网络编程中的URL类和URLConnection类

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

27.方法countPrimes(intm,intn)统计自m至n范围内质数的个数,并输出这些质数。

【答案】

j%i==0

i>j/2

【解析】外循环j控制求m到n范围内的质数,内循环对给定的j,i从2开始至j/2,逐一测试i对j的整除性,一旦发现某个i能整除j,则用break语句,结束整除性测试循环。

整除性测试循环结束后,是一个if语句,当发现i循环直至i大于j/2才结束,说明所有的i都不能整除j,表明j是质数,然后计数器加1用于记录质数的个数。

【知识点】循环结构和循环体中的break语句

28.以下是某应用程序定义的两个方法。

方法setCheckBoxs(ItemListenerlistener)已知监视器,产生一组选择按钮,并给他们注册监视器和将它们加入到面板中;方法使用的全局对象有面板panel,存放按钮名称的数组boxName,选择按钮数组box,文本区text。

方法itemStateChanged(ItemEvente)是选择按钮的事件监视方法,当某个选择按钮的选择状态有改变时,监视方法在文本区中显示各选择按钮的选择状态(被选中或没有选中)。

【答案】

addItemListener(listener)

box[i].isSelected()

【解析】用户选择单选按钮做出选择后,程序应对这个选择作出必要的响应,程序为此要处理选择项目事件。

监视选择项目对象的类要实现接口ItemListener,程序要声明和建立选择对象,用addItemListener(ItemListenere)方法为选择对象注册监视器,编写处理选择项目事件的接口方法itemStateChanged(ItemEvente),在该方法内用getItemSelectable()方法获取事件源,并作相应处理。

因此第一个空应为addItemListener(listener);第二个空需要判断单选按钮是否被选中,应为box[i].isSelected()。

【知识点】选择项目事件处理

29.以下是一个放幻灯片的应用程序,程序的界面中含有一个面板子类P的对象和一个按钮对象b。

设幻灯片已经装入内存,并存放于mylmage数组中,幻灯片的张数存于变量num中。

程序运行时,用户点击按钮b,按钮的监视方法循环更换幻灯片号curlmage,并让系统调用P重定义的paintComponent()方法显示当前幻灯片。

【参考答案】

repaint()

drawImage

【解析】幻灯片显示时由于图形信息量较大,可能会出现斑驳现象。

为提高显示效果,该题采用图像缓冲技术,先将幻灯片完整装入内存,在缓冲区绘制图像。

当用户点击按钮b时,先调用repaint()方法重画程序窗口;在图像输出时,Graphics对象调用drawImage()方法显示图像。

【知识点】图像处理技术中的图像输出和图像缓冲技术

30.以下应用程序的界面中有—个用于输入文件名的文本框甜对象fileName、—个用于输入匹配字符串的文本框对象p,和一个用于输出的文本区对象text。

程序运行时,用户输入匹配字符串和文件名,程序逐行读入文件的内容,检出那些以匹配字符串开头的行并显示在文本区中。

【答案】

FileReader(filename.getText())

in.readLine()

【解析】程序要使用缓冲式输入,需要先创建FileReader对象,再利用FileReader对象创建BufferedReader对象,称为将FileReader对象接到BufferedReader对象上,in=newBufferedReader(FileReader(filename.getText())可以将FileReader对象接到BufferedReader对象in上;程序逐行读入文件内容使用readLine()方法,同时要判断是否输入到了最后一行,因此,输入且判断语句使用s=in.readLine()!

=null。

【知识点】输入输出流中缓冲式输入

31.方法getURLConnection(Strings)的功能是已知网络中的资源s,获得一个URLConnection对象并返回。

【答案】

URL(s)

OpenConnection()

【解析】URLConnection类用于接收和发送信息,程序获得一个URLConnection对象,相当于完成对指定URL的一个HTTP连接。

首先创建一个URL对象,其构造方法是URL(Stringurl),因此myURL=newURL(s);然后利用URL对象的openConnection()方法,从系统获得一个URLConnection对象。

【知识点】网络编程中的URL类和URLConnection类

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

32.阅读下列程序段,请写出标有注解

(1)、

(2)和(3)语句的作用。

【答案】

(1)第一条语句的作用是载入图像序列:

img0.jpg~img14.jpg;

(2)第二条语句的作用是显示一张图像;

(3)第三条语句的作用是增加图像显示之间的时间间隔。

【解析】

(1)getImage()方法用于把Image对象与图像文件联系起来,该方法被循环执行15次,用以加载img0.jpg~img14.jpg图像;

(2)Image类的drawImage()方法用于显示图像,这里的作用是把前面加载的图像显示出来;

(3)第三条语句是一个循环结构,但是该循环次数较多,且循环体为空,作用就是增加图像显示之间的时间间隔。

【知识点】Image类及其属性和方法

33.阅读下列程序,请写出调用fib(10)的输出结果。

【答案】

\tab1\tab1\tab2

\tab3\tab5\tab8

\tab13\tab21\tab34

\tab55

【解析】

按照程序的执行顺序,容易得出第一次输出为\tab1\tab2,注意这里的输出函数是print(),输出后没有换行;然后是一个循环结构,根据实参的值,该循环次数为4次。

(1)第一次循环:

i=3,f1=2

执行print(“\t”+f1)后,得到\tab1\tab1\tab2;

i%3==0条件成立,执行print(“\n”)后,得到\tab1\tab1\tab2(换行);

执行i

执行print(“\t”+f2)后,得到第二行结果\tab3;

(i+1)%3==0条件不成立,print(“\n”)不执行。

(2)第二次循环:

i=5,f1=5

执行print(“\t”+f1)后,得到\tab3\tab5;

i%3==0条件不成立,不执行p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1