2023年自考类计算机类(工学类)Java语言程序设计(一)历年高频考题带答案难题附详解_第1页
2023年自考类计算机类(工学类)Java语言程序设计(一)历年高频考题带答案难题附详解_第2页
2023年自考类计算机类(工学类)Java语言程序设计(一)历年高频考题带答案难题附详解_第3页
2023年自考类计算机类(工学类)Java语言程序设计(一)历年高频考题带答案难题附详解_第4页
2023年自考类计算机类(工学类)Java语言程序设计(一)历年高频考题带答案难题附详解_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023年自考类计算机类(工学类)Java语言程序设计(一)历年高频考题带答案难题附详解(图片大小可自由调整)第1卷一.历年考点试题黑钻版(共50题)1.下面程序的功能在监控台上每隔一秒钟显示一个字符串"Hello!"。

publicclassClass31implementsRunnable

{

publicstaticvoidmain(Stringargs[])

{

Class31t=newClass31();

Threadtt=newThread(t);

tt.start();

}

publicvoidrun()

{

for(;;)

{

try{

______;

}catch(______){}

System.out.println("Hello");

}

}

}2.设有两个字符串对象strl和str2,则表达式“strl==str2”的意义是判别字符串str1和str2______。3.在Java语言中,有代码intarr[][]=newint[5][6];,则如下说法正确的是______A.arr是非平衡数组B.arrlength=6C.arr.length=arr[0].length=5D.arr[0].length=64.Java语言的控制语句有3种类型,即条件语句、______和转移语句。5.Java语言中,实现KeyListener接口的方法有:keyPressed(KeyEvente)、keyReleased(KeyEvente)和______。6.Java语言是一种______语言,它约束程序员必须遵守规定编写程序,能让编译器检测出程序中尽可能多的错误。7.阅读下列程序,写出程序运行结果。

publicclassC34

{

publicstaticvoidmain(String[]args)

{

int[][]a={{1,2,3},{4,5,6}};

System.out.println(a.length+","+a[0].length+","+a[1][1]);

String[]s={"a","b"};

func(s[0],s[1]);

System.out.println(s[0]+","+s[1]);

Strings1="abc",s2="123";

s1+="xyz";

s2.concat("xyz");

System.out.println(s1+","+s2);

}

staticvoidfunc(Stringx,Stringy)

{

Stringz=x;x=y;y=z;

}

}8.下面程序是否有错?如果有错,试标出错误位置并指出是何种错误。

publicstaticvoidmain(Stringargs[])

{

try{

charch=(char)System.in.read();

...//其他语句

}

catch(Exceptione)

{

return;

}

catch(IOExceptione)

{

System.out.println(e.toString());

}

}9.要为程序中的按钮button设置一个热键Alt+A,可以采用的代码是______A.button.setMnemonic('A')B.button.setMnemonic("Alt+A")C.button.setToolTipText('A')D.button.setToolTipText("Alt+A")10.在Java语言中,package语句必须出现在程序文件的______。11.编写一个方法f3701(),要求该方法有一个字符串参数s,方法的功能是统计s中连续相同的字符构成的子串的最大长度,方法返回这个最大长度值,若没有,则返回1。例如s="103300002222223333",其中连续相同的字符构成的子串有4个,长度依次为2、4、6、4,则最大长度为6。12.程序的功能是在第一个文本框中输入整数,输入结束回车后,在第二个文本框中输出该整数和平方。

importjava.applet.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassClass04extendsAppletimplementsActionListener

{

JTextFieldtext1,text2;

publicvoidinit()

{

text1=newJTextField(10);

text2=newJTextField(10);

setSize(200,100);

add(text1);

add(text2);

text1.______;

}

publicvoidactionPerformed(ActionEvnete)

{

longn;

if(e.getSource()==text1)

{

n=Long.parseLong(text1.getText());

text2.______(String.valueOf(n*n));

}

}

}13.______是将发送给对象的消息与含执行该消息方法的对象连接起来。14.用一个Java语句完成下面的要求:先把变量a与b的差赋值给变量c,再把变量b的值减1。15.程序的功能是在第一个文本框中输入一个整数,按回车键后,在第二个文本框中显示该数的平方和。

importjava.applet.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassClass29extendsAppletimplementsActionListener

{

JTextFieldt1,t2;

publicvoidinit()

{

t1=newJTextField(10);

t2=newJTextField(10);

setSize(200,100);

add(t1);

add(t2);

text1.______;

}

publicvoidactionPerformed(ActionEvnete)

{

longn;

if(e.getSource()==t1)

{

n=Long.parseLong(t1.getText());

t2.______(String.valueOf(n*n));

}

}

}16.键盘事件的接口是______。17.为实现线程同步,Java语言提供了notify()、notifyAll()和______三个方法供线程在临界段中使用。18.小应用程序创建一个线程。使用容器类方法getGraphics()获得Graphics对象,给线程作为画笔使用。请写出该程序中这个线程的工作内容。

importjava.applet.*;

importjava.awt.*;

publicclassClass1extendsjava.applet.AppletimplementsRunnable{

ThreadredBall;GraphicsredPen;

intrx=0,ry=0;

publicvoidinit(){

setSize(250,200);

redBall=newThread(this);

redPen=getGraphics();

redPen.setColor(Color.red);

setBackground(Color.gray);

}

publicvoidstart(){redBall.start();

}

publicvoidrun(){

while(true){

if(Thread.currentThread()==redBall){

rx=(int)(80*Math.random());

ry=(int)(80*Math.random());

redPen.setColor(Color.red);

redPen.fillOval(100+rx,100+ry,10,10);

try{redBall.sleep(500);}

catch(InterruptedExceptione){}

redPen.setColor(Color.gray);

redPen.fillOval(100+rx,100+ry,10,10);

}

}

}

}19.Java中当两个程序需要通信时,可以通过使用______类建立套接字连接。20.写出下面语句的运行结果。

inti=8;

switch(i){

default:System.out.println("default");

case0:Ststem.out.println("zero");break;

case1:System.outprintlln("one");

case2:System.out.println("two");

}21.在Java语言中,以下不会用到关键字this的选项是

A.将对象自己作为参数,调用别的方法B.当方法的局部变量隐藏成员变量时,利用this引用成员变量C.使用super调用超类的构造方法D.构造函数内调用另一构造函数22.在Java语言中,不能作为容器的是______A.JDialogB.JFrameC.JTextAreaD.JPanel23.以下是一个放幻灯片的应用程序,程序的界面中含一个面板子类P的对象和一个按钮对象b。设幻灯片已经装入内存,并存放于myImage数组中,幻灯片的张数存于变量num中。程序运行时,用户点击按钮b,按钮的监视方法循环更换幻灯片号curImage,并让系统调用P重定义的paintComponent()方法显示当前幻灯片。

intcurImage=0;finalintnum=30;

Image[]myImage=newImage[num];

//以下是类P内定义的两个方法

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==b){

______;

curImage=(curImage+1)%num;

try{mythread.sleep(200);

}catch(InterruptedExceptione){}

}

}

publicvoidpaintComponent(Graphicsg){

if((myImage[curImage])!=null)

g.______(myImage[curImage],10,10,

myImage[curImage].getWidth(),

myImage[curImage].getHeight(),this);

}24.下面不是Java移位算符的是______A.>>>B.<<<C.>>D.<<25.Java程序使用对象需依次经历哪4个步骤?26.Java语言中,重载方法的选择是在编译时进行的,系统根据______、参数类型和参数顺序寻找匹配方法。27.在Java语言中有如下数组定义,则数组a共有多少个元素

inta[][]=newint[3][];

a[0]=newint[4];

a[1]=newint[5];

a[2]=newint[2];A.11B.12C.15D.不能这样定义28.方法readByURL()的功能是已知网址创建URL对象,设置网络连接,获取网址上的内容并显示。其中获取网址上的内容并显示的代码已被省略。

publicvoidreadByURL(StringurlName){

try{

URLurl=newURL(urlName);

URLConnectioncon=url.______;

con.______;

InputStreamReaderin=newInputStreamReade(tc.getInputStream());

BufferedReaderdis=newBufferedReader(in);

String

inLine;

…//这里的代码实现逐行输入网址上的内容并显示

dis.close();

}catch(MalformedURLExceptione){e.printStackTrace();}

catch(IOExceptione){e.printStackTrace();}

}29.有一个整数数组,其中存放着序列{1,3,5,7,9,11,13,15,17,19},请将该序列逆序存放并输出。30.阅读下列程序,请写出该程序的功能。

importjava.util.*;

classMyThreadextendsThread{

intpauseTime;Stringname;

publicMyThread(intx,Stringn){pauseTime=x;

name=n;}

publicvoidrun(){

for(inti=1;i<=4;i++){

try{

System.out.println(name+":"+newDate(System.currentTimeMillis());

Thread.sleep(pauseTime);

}catch(Exceptione){}

}

}

}

publicclassTest36{

staticpublicvoidmain(String[]args){

MyThreadthread1=newMyThread(1000,"FastThread");thread1.start();

MyThreadthread2=newMyThread(3000,"SlowThread");thread2.start();

}

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

classMyThreadextendsThread{

Stringmessage,ints;

MyThread(Stringmessage,intsec){this.message=message;s=sec;

publicvoidrun(){

try{sleep(s);}catch(InterruptedExceptione){}

System.out.println(message+""+getPriority());

}

}

classThreadTest{

publicstaticvoidmain(Stringargs[]){

Threadfoo=newMyThread("Foo",1000);

foo.setPriority(Thread.MIN_PRIORITY);foo.start();

Threadbar=newMyThread("Bar",800);

bar.setPriority(3);bar.start();

Threadgar=newMyThread("Gar",400);

gar.setPriority(7);gar.start();

Threadkar=newMyThread("Kar",100);

kar.setPriority(Thread.MAX_PRIORITY);kar.start();

}

}

注:假设处理机中没有其他线程占用资源。32.要使Java程序退出Java运行环境,可以执行的代码是______。33.下列不是构造方法特征的是______A.名字与类相同B.是无参数的C.是void型D.是一种特殊方法34.在Java程序中要设置打开文件对话框的文件筛选条件,应该继承______类,编写一个实现类,实现accept(Filef)与getDescription()两个方法。35.阅读下列程序,写出程序功能。

importjavax.swing.*;

importjava.awt.event.*;

publicclassClass36extendsJFrameimplementsActionListener

{

publicJFramemw1,mw2;

publicClass36()

{

JButtonbutt1=newJButton("我是一个按钮");

butt1.setActionCommand("b1");

JButtonbutt2=newJButton("我是另一个按钮");

butt2.setActionCommand("b2");

butt1.addActionListener(this);

butt2.addActionListener(this);

Stringname1="我是第一个窗口";

Stringname2="我是第二个窗口";

mw1=newJFrame(name1);mw1.setSize(500,500);

mw2=newJFrame(name2);mw2.setSize(300,300);

mw1.getContentPane(

).add(butt1);

mw2.getContentPane().add(butt2);

mw1.setVisible(true);mw2.setVisible(true);

}

publicvoidactionPerformed(ActionEvente)

{

booleanyesNo;

if(e.getActionCommand().equals("butt1"))

{

yesNo=!mw2.isVisible();

mw2.setVisible(yesNo);

}

else

{

yesNo=!mw1.isVisible();

mw1.setVisible(yesNo);

}

}

publicstaticvoidmain(String[]args)

{

newClass36();

}

}36.下面代码不合法之处是______

classClass6

{

intx;

voidf()

intclass6=1;①

x=class6;②

}

voidg()

{

inty;③

y=class6+x;④

}

}A.语句①B.语句②C.语句③D.语句④37.写出下面程序的功能。

importjava.awt.*;

publicclassabc

{publicstaticvoidmain(Stringargs[])

{newFrameOut();}

}

classFrameOutextendsFrame

//Frame为系统定义的窗框类

{Buttonbtn;

FrameOut()

{super("窗口");

btn=newButton("我是一个按钮");

setLayout(newFlowLayout());

add(btn);

setSize(300,200);

show();38.使用默认字节字符对应表,将字符串转化为字节数组的方法是______。39.字符串有一个连接运算符+,得到连接两个字符串的结果,一个连接方法是______。40.JDBC是Java程序与数据库连接的API,请写出它能做的三件事。41.写出下面程序的输出结果。

classC0{

publicC0(intx){

System.out.println("C0"+x);

}

C0(){System.out.println("C0");}

}

classC1extendsC0{

publicC1(intx){

System.out.println("C1"+x);

}

publicstaticvoidmain(Stringargs[]){

newC1(1);

}

}42.下列有关Java的叙述错误的是

A.是一种强类型语言B.与平台无关C.可以使用汉字变量名D.不检查数组下标越界43.什么是方法重载?44.ResultSet对象的______方法可将数据表游标移到插入记录位置,输入数据后,用方法insertRow()插入记录。45.下列应用程序,产生两个组合框,一个可以选择月份,一个可以选择2000~2009年之间的年份。

importjavax.swing.*;

publicclassClass31002extendsJFrame

{

JComboBoxmonthBox=newJComboBox();

______

publicClass31002()

{

super("ExpirationDate");

setSize(240,90);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanelpane=newJPanel();

JLabelexp=newJLabel("ExpirationDate:");

for(inti=0;i<13;i++)monthBox.addItem(""+i);

for(inti=2000;i<2010;i++)yearBox.addItem(""+i);

pane.add(exp);

pane.add(monthBox);

______

setContentPane(pane);

}

publicstaticvoidmain(String[]arg)

{

newClass31002().setVisible(true);

}

}46.下列有关抽象方法及抽象类的叙述错误的是______A.使用abstract修饰的方法是抽象方法B.使用final修饰的类是抽象类C.抽象类可以没有抽象方法,但有抽象方法的类一定是抽象类D.抽象类必须被继承才能使用,抽象类不可能有实例47.Java中的线程和多线程指的是什么?48.在java.awt.evenf包中用来检测并对事件做出反应的模型不包括______A.源对象B.监视器对象C.事件对象D.事件方法49.已知Strings="ABCDEFGHIJABC",以下说法错误的是______A.s.indexOf("C")等于2B.s.indexOf("EFG",2)等于4C.s.indexOf("A",7)等于10D.s.indexOf("D",4)等于350.方法voidmaxDigit(intn)的功能是找出十进制整数n各位中最大且最高位的那个数字。例如:n=237127,该方法输出7,4,表示最大数字是7,在第4位上;n=2347865,该方法输出8,3,表示最大数字是8,在第3位上。

voidmaxDigit(intn)

{

intc=0,d,x=0,y=0;

while(n>0)

{

d=n%10;______;

if(______){c=d;x=y;}

n/=10;

}

System.out.println(c+","+x);

}第1卷参考答案一.历年考点试题黑钻版1.参考答案:Thread.sleep(1000)

InterruptedExceptione2.参考答案:是否引用同一个对象3.参考答案:D[考点]本题主要考查的知识点为Java二维数组。

二维数组名.length和二维数组名[下标1].length的区别是:二维数组名.length是二维数组的子数组个数;二维数组名[下标1].length是指定子数组的元素个数。所以本题arr.length=5,arr[0].length=6,arr是5行6列的平衡数组。4.参考答案:循环语句[考点]Java语言的控制语句[解析]Java语言的控制语句分为:条件语句(if...else,switch)、循环语句(for,while,do...while)和转移语句(break,continue)。5.参考答案:keyTyped(KeyEvente)6.参考答案:强类型7.参考答案:2,3,5

a.b

abcxyz,123(4.1)[考点]数组和字符串[解析]对于二维数组来说,有两种长度,一种是二维数组的长度(a.length),一种是二维数组元素的长度(a[0].length),数组的下标都是从0开始。

方法func()中的交换只是交换了形参(局部变量)x和y的值,并没有使实参s[0]和s[1]发生交换。

+和concat()都能完成字符串的连接。s2.concat("xyz")连接得到的新字符串并没有赋值,它和s2=s2.concat("xyz")是不同的。8.参考答案:程序有错。捕获异常应将具体的异常类参数置前,题中将Exception类置前,将捕获所有异常,无法进入其他catch块。

改正如下:

publicstaticvoidmain(Stringargs[])

{

try{

charch=(char)System.in.read();

...//其他语句

}

catch(IOExceptione)

{

System.out.println(e.toString());

}

catch(Exceptione)

{

return;

}

}[考点]线程异常[解析]异常的捕获需要注意顺序,捕获异常应将具体的异常类参数置前。9.参考答案:A10.参考答案:起始行[考点]package语句[解析]package语句必须出现在程序文件的起始行,表示出现在该文件中的所有类都属于这个程序包。11.参考答案:intf3701(Strings)

{

intm=1,n=0;

bytess[]=s.getBytes();

for(inti=1;i<ss.lengh;i++)

if(ss[i]==ss[i-1])

m++;

else

{

if(m>n)n=m;

m=1;

}

}

returnn;

}12.参考答案:addActionListener(this)

setText13.参考答案:联编14.参考答案:c=a-b--;。15.参考答案:addActionListener(this)

setText[考点]文本框和键盘事件[解析]程序在添加文本框之后,通过addActionListener(this)给相应的文本框添加事件。在计算出平方和之后通过setText将其设为第二个文本框的值。16.参考答案:KeyListener17.参考答案:wait()18.参考答案:程序的功能:在随机位置显示一个小圆,程序采用背景色重画的办法,清除前一次显示的小圆。[考点]图形绘制和线程综合应用[解析]在run()方法中随机产生一个坐标点,以此为左上角坐标,红色填充一个小圆形区域,500毫秒后,用背景色填充同一个小圆形区域,使红色小圆形区域消失,马上又随机产生一个坐标点,再红色填充,再消失,循环不止。19.参考答案:socket[考点]Java网络编程——套接字[解析]利用socket的构造方法,可以在客户端建立到服务器的套接字连接:Socket(Stringhost,intport)host是服务器的IP地址,port是端口号。20.参考答案:default

zero[考点]switch语句[解析]switch语句先计算表达式的值,将表达式的值顺序与各个case进行比较,只要不遇到break就继续向下执行,如果与每个case之后的常量表达式比较都不相等则执行default。因为按一般人的习惯dafault通常放在最后,可以不加break。本题放在最前面会先执行,没有break继续向下执行。21.参考答案:C[解析]本题主要考查的知识点为Java的this的关键字。[要点透析]关键字this用来指对象自己。this的作用有很多种,例如将对象自己作为参数,调用别的方法,当方法的局部变量隐藏成员变量时,利用this引用成员变量;构造函数内调用另一构造函数。使用super调用超类的构造方法不会用到关键字this。22.参考答案:C[考点]本题主要考查的知识点为Java容器。

文本区(JTextArea)是窗体中一个放置多行文本的区域,它不是容器,使用javax.swing.JTextArea类来建立文本区,JTextArea组件没有事件。23.参考答案:repaint()

drawImage24.参考答案:B[考点]移位运算[解析]A是算术右移,C是逻辑右移,D是算术左移。25.参考答案:声明对象、创建对象、使州对象和撤消对象。26.参考答案:参数个数[考点]重载[解析]重载能由调用提供的参数个数、参数类型和参数顺序在编译时确定被调用的方法。27.参考答案:A[解析]主要考查的知识点为Java语言中的非平衡数组。[要点透析]此数组为从最高维开始,分别对每一维分配不等长的空间,属于非平衡数组。28.参考答案:openConnection

Connect()[考点]网络编程[解析]要建立网络连接要创建URL对象,然后利用URL对象的openConnection方法,从系统获得一个URLConnection对象,有了这个对象就可以获得流对象和实现网络连接(connect()方法)。29.参考答案:publicclassArrays{

puhlicstaticvoidmain(String[]args){

inta[]={1,3,5,7,9,11,13,15,17,19};

intt;

System.out.println("数组的初始状态为:");

for(inti=0;i<a.length;i++){

System.out.print(""+a[i]);

System.out.println();

}

for(inti=0;i<a.length/2;i++){

t=a[i];

a[i]=a[a.length-i-1];

a[a.length-i-1]=t;

}

System.out.println("数组逆序存放后的状态为:");

for(inti=0;i<a.length;i++){

System.out.print(""+a[i]);

System.out.println();

}

}

}[考点]数组[解析]数组逆序只需要将第一个和最后一个对换,第二个和倒数第二个对换,直到数组长度的中间对换完成。30.参考答案:在程序中创建两个线程,该两个线程交替执行,按两个不同的时间间隔显示当前时间。31.参考答案:Kar10

Gar7

Bar3

Foo

1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论