考前思考题.docx
- 文档编号:28281545
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:14
- 大小:21.05KB
考前思考题.docx
《考前思考题.docx》由会员分享,可在线阅读,更多相关《考前思考题.docx(14页珍藏版)》请在冰豆网上搜索。
考前思考题
一、选择题
1.在如下所示的Test类中,共有(C )个构造方法。
publicclassTest{
privateintx;
publicTest(){
x=35;
}
publicvoidTest(intf){
x=f;
}
publicTest(Strings){
}
}
A.0B.1C.2D.3
2.下列程序段的输出结果是(C)
inta=0;
while(a<5){
switch(a){
case0:
case1:
case2:
a=a+2;break;
case3:
a=a+3;
default:
a=a+5;
}
}
A.7B.8C.9D.10
3.在Java中,关于构造方法,错误的说法是( C )
A、构造方法的名称必须与类名相同 B、 构造方法可以带参数
C、 构造方法不可以重载 D、 构造方法绝对不能有返回值
4.以下类成员变量的修饰符中,(A)的访问权限最大,可供任何类访问。
A.publicB.privateC.protectedD.default
5.(D)语句用于声明一个方法可能抛出异常,这些异常要求调用该方法的程序处理的。
A.tryB.catchC.throwD.throws
6.System.out.println("5" + 2);的输出结果应该是( A )。
A、52 B、7 C、2 D、5
7.如有定义:
inta[][]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};则a[1][2]=(D)。
A.3B.4C.5D.6
8.如下程序段中:
int a = 5,b = 5;
String s1 = newString("祝你今天考出好成绩!
");
String s2 = newString("祝你今天考出好成绩!
");
则表达式a == b与s1 == s2的结果分别是(C)。
A、true与true B、false与true C、true与false D、false与false
9.以下Java组件中,(B)可以实现一个按钮。
A.JLabelB.JButtonC.JFrameD.JTextField
10.Java使用(B)进行单行语句的注释。
A.{}B.//C.--D.\\
二、填空题
1.Java语言定义抽象方法的关键字是____abstract___,定义接口的关键字是interface,定义类变量和类方法的关键字是___static_____。
2.Java通过流实现输入输出,按照处理单元分为字节流和字符流,按照流的方向可以分为输入流和输出流。
3.Java语言常用的布局管理器包括BorderLayout、FlowLayout和GridLayout布局管理器,其中JFrame的默认布局管理器是BorderLayout。
4.当用户按下Button组件时,会触发ActionEvent事件,此时触发事件的组件把ActionEvent类传递给向它注册的监听器ActionListener,由它的actionPerformed方法负责事件处理。
5.调用线程的start方法,可以及使线程的新建状态转换为可运行状态,当线程得到时间片后,将执行该线程run方法中包含的指令代码。
6.Java引入包的语句为__import____,创建自定义包的语句package语句要写在程序的第__1_行。
7.Java语言中,以下三种情况需要使用关键字super来实现对父类的成员和方法的访问:
调用父类构造方法、调用父类被覆盖的方法和访问父类中被隐藏的成员变量。
8.Java实现TCP编程时,服务器类使用ServerSocket类创建,通过调用服务器类的accept()方法等待客户端的连接请求;客户端使用newSocket(IP,port)向指定IP地址主机的port端口发送连接请求。
9.配置Java开发环境时,需要设置环境变量path和classpath,设置path的作用是可在任意路径访问JDK命令,设置classpath的作用是指定JDK的类库所在路径。
三、改错题(每错2分,共10分)
下面程序说明如下:
(1)定义Employee类,该类包括一个构造函数和修改薪水的方法。
(2)在测试类中的主方法(Java程序的入口方法)中定义了一个包含10个员工的数组,循环接受10个员工的姓名和薪水,每个员工的工号与录入顺序相同(工号从1开始,保存在数组中第0个元素中,以后依此类推);
(3)主方法中根据需要修改薪水的员工工号,将其薪水上调为5000元。
该程序包含多处错误,请在不影响程序功能和结构的基础上,至少找出5处错误,在错误出下方画线,并在旁边空白处修改。
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
publicclassTestError{
staticintnumber=10;①修改为publicstaticvoidmain(Stringargs[])
①publicvoidmain(Stringargs[]){//定义主方法
BufferedReadersin=newBufferedReader(
newInputStreamReader(System.in));
②Employee[]employee;//定义员工数组
Stringid;②修改为Employee[]employee=newEmployee[10]
Stringname;
intsalary;
//循环录入10个员工信息,员工的工号为录入顺序号
for(inti=0;i System.out.println("请输入姓名: "); name=sin.readLine();//录入姓名 System.out.println("请输入薪水: "); salary=Integer.parseInt(sin.readLine());//录入薪水 employee[i]=newEmployee((i+1)+""),name,salary); } //修改指定员工的薪水 System.out.println("请输入需要修改薪水的员工工号: "); id=sin.readLine();⑥处修改为employee[Interger.parseInt(id)-1] ⑥if(employee[id-1].changeInfo((id+""),5000)) System.out.println("成功将该员工的薪水上调为5000元"); else System.out.println("该员工的薪水上调失败! "); } } //以下定义员工类 classEmployee{ Stringid; Stringname; intsalary;③处将void去掉 ③publicvoidEmployee(Stringid,Stringname,intsalary){//定义构造函数 this.id=id; this.name=name; this.salary=salary; } ④publicvoidchangeInfo(Stringid,intsalary){④处将void修改为boolean booleanresult; if(id==this.id){ this.salary=salary; ⑤result=TRUE;⑤处将TRUE改为true }else{ result=false; } returnresult; } } 四、阅读程序回答问题(共30分) 1.阅读程序(10分) publicclassTest{ publicstaticvoidmain(String[]args)throwsIOException{ InputStreamis=newFileInputStream(args[0]); InputStreamReaderin=newInputStreamReader(is); BufferedReaderbr=newBufferedReader(in); Stringstr; intc=0; while((str=br.readLine())! =null){ System.out.println(str); } } } (1)该程序的功能是什么? (2分) 以命令行参数的形式指定需要打开的文件,逐行在显示器上显式将该文件内容。 (2)解释表达式str=br.readLine())! =null的含义。 (1分) 从br中读取一行字符,并将其保存在str变量中,同时判断读入的内容是否是文件结束 (3)语句system.out.println()的作用是什么? (2分) 在显示器上输出一行信息,并换行 (4)请用符合规定的Java文件名命名该文件。 (3分) Test.java (5)java流可分为节点流和处理流,上述程序中FileInputStream是节点流还是处理流? (2分) 节点流 2.阅读程序(10分) publicclassEx_SuperUse{ staticintn=10;//A行 publicstaticvoidmain(String[]args){ SubClasssc1=newSubClass(); SubClasssc2=newSubClass(n); } } classSuperClass{ privateintn; SuperClass(){ System.out.println("SuperClass()"); } SuperClass(intn){ System.out.println("SuperClass("+n+")"); this.n=n; } } classSubClassextendsSuperClass{ privateintn; SubClass(intn){ super(n); System.out.println("SubClass("+n+")"); this.n=n;//B行 } SubClass(){ super();//C行 System.out.println("SubClass()"); } } (1)写出上述程序的运行结果(3分) SuperClass() SubClass() SuperClass(10) SubClass(10) (2)A行中static关键字是什么含义,可否去掉static关键字? (3分) 定义类变量,由于该变量在类方法中调用,因此不能去掉static关键字 (3)B行中this的作用是什么,可否去掉this关键字? (4分) 使用this关键字调用成员方法,由于出现了方法形参与类成员变量同名的情况,因此,此处this不能去掉。 3.阅读程序(5分) importjavax.swing.*; importjava.awt.event.*; importjava.awt.*; publicclassTestFrame{ publicstaticvoidmain(Stringargs[]){ newMyFrame(); } } classMyFrameextendsJFrame{ JButtonb=newJButton("Clickme! "); publicMyFrame(){ setLayout(newFlowLayout()); add(b); b.addActionListener(newMyMonitor());//A行 setBounds(200,300,200,300); setVisible(true); this.setDefaultCloseOperation(DISPOSE_ON_CLOSE); } classMyMonitorimplementsActionListener{ publicvoidactionPerformed(ActionEvente){ if(b.getText().equals("Clickme! ")) b.setText("Clickmeagain! "); else b.setText("Clickme! "); } } } (1)该程序的功能是什么? (3分) 程序执行后显式一个窗体,创体中包含一个按钮,初始时按钮显式Clickme! ,点击之后变为Clickmeagain! ,再次点击之后变为Clickme! ,如此循环往复。 (2)该程序中A行的作用是什么? (2分) 为按钮注册监听程序 4.阅读程序(5分) publicclassSumPower{ publicstaticfinalintN=30;//A行 publicstaticlongpower(intn){//D行 inti=n; longpower=1;//B行 do{ power*=n; i--; }while(i>0); returnpower; } publicstaticlongsumPower(intn){//E行 inti=1; longsum=0;//C行 do{ sum+=power(i++); }while(i<=n); returnsum; } publicstaticvoidmain(String[]args){ System.out.println("计算结果: "+sumPower(SumPower.N)); } } (1)该程序的功能是什么。 (3分) 计算1! +2! +。 。 。 。 +30! 并输出计算结果。 (2)程序中A行中使用的final关键字是什么含义? (1分) 定义常量 (3)程序中B、C行中定义power与sum的类型为long型,D、E行定义sumPower(intn)与power(intn)的返回值为long类型,可否将这些long修改为int? 为什么? (1分) 不能,由于30! 不能使用int类型表示,会损失精度。 五.编程题(20分,本题含两小题,每题10分) 1.编写一个程序,在控制台输出1-100间的素数,要求每行输出10个数。 (10分)publicclass IsPrime{ publicstaticvoidmain(String[]args){ intp=0;//设置p的目的是为了控制输出格式。 for(inti=2;i<=100;i++){//因为1不是素数(质数也叫素数),所以此处从2开始计数 booleanflag=true;//这里设置一个布尔变量,用来作标记,默认初始值为真 for(intj=2;j<=i-1;j++){//素数是除了1和它本身之外不能被其他数整除的数,故此处循环不包括1和它本身 if(i%j==0)flag=false;//当i能被比它小的任意一个数整除的时候,说明这个数不是素数,同时修改布尔变量为假 } if(flag){System.out.print(i+"\t");p++;}//根据布尔变量的值是否为真输出素数,输出一次p就加一 if(p%10==0){System.out.println();}//每输出10个数换一行 } } } publicclassPrimeNumber{ publicstaticvoidmain(String[]args){ intcount=0; for(inti=2;i<100;i++){ booleanflag=true; for(intj=2;j if(i%j==0){ flag=false;break; } } if(flag){ System.out.print(i+"\t"); count++; if(count==10){ System.out.print("\n"); count=0; }}}}} 2.创建一个复数类complex,复数具有如下格式: RealPart+ImaginaryRart*I,其中,I为-1的平方根。 要求如下: (10分) (1)包括两个私有成员变量RealPart、ImaginaryRart,分别保存复数的实部和虚部。 (2)提供两个构造方法,一个用于此类声明的对象的初始化;一个为默认的无参构造方法。 (3)提供两复数的加、减运算方法。 (4)提供toString()方法,可以将复数转换为形如(a,b)的字符串,其中a为实部,b为虚部publicclassComplex{ privatedoublea; privatedoubleb; publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub Complexx=newComplex(2,3); Complexy=newComplex(1,4); Complexc=newComplex(); x.Add(x,y); x.Multiply(x,y); x.Subtraction(x,y); c.Add(c,y); } Complex(){ a=0.0; b=0.0; } Complex(doublea,doubleb){ this.a=a; this.b=b; } publicvoidAdd(Complexx,Complexy){ doublea=x.a+y.a; doubleb=x.b+y.b; System.out.println("相加为: ("+a+","+b+")"); } publicvoidSubtraction(Complexx,Complexy){ doublea=x.a-y.a; doubleb=x.a-y.b; System.out.println("相减为: ("+a+","+b+")"); } publicvoidMultiply(Complexx,Complexy){ doublea=x.a*y.a-x.b*y.b; doubleb=x.a*y.b+x.b*y.a; System.out.println("相乘为: ("+a+","+b+")"); }} 。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 考前 思考题