12上半年Java机考试题.docx

上传人:b****8 文档编号:10911834 上传时间:2023-02-23 格式:DOCX 页数:23 大小:185.39KB
下载 相关 举报
12上半年Java机考试题.docx_第1页
第1页 / 共23页
12上半年Java机考试题.docx_第2页
第2页 / 共23页
12上半年Java机考试题.docx_第3页
第3页 / 共23页
12上半年Java机考试题.docx_第4页
第4页 / 共23页
12上半年Java机考试题.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

12上半年Java机考试题.docx

《12上半年Java机考试题.docx》由会员分享,可在线阅读,更多相关《12上半年Java机考试题.docx(23页珍藏版)》请在冰豆网上搜索。

12上半年Java机考试题.docx

12上半年Java机考试题

2012年(上)全国信息技术水平考试

计算机程序设计技术水平证书(JAVA语言)考试题

第一大题:

单选题

(30分)

1.(1分)

下列选项中,不是Java注释方式的是(D)。

C

(A)//…(B)/*…*/(C)/**…**/(D)/**…*/

2.(1分)

下列说法中正确的是(C)。

B

(A)不需定义类,就能创建对象

(B)属性可以是简单变量,也可以是一个对象//读者类的书属性

(C)属性必须是简单变量

(D)对象中必有属性和方法

3.(1分)

若有定义intx=3,y;则执行语句y=(x++)+(x++)+(x++);后y=(B)。

(A)9(B)12(C)15(D)18//第一个括号中的x++先赋值后自加x=4(但是括号中只进行了赋值),第二个括号的x++也先赋值后自加x=5,第三个括号的x++也先赋值后自加x=6。

3+4+5

4.(1分)

若编译一个定义了5个类和18个方法的Java源代码文件,则编译该源代码文件时会产生的字节码文件有(A)。

D

(A)1个(B)23个(C)18个(D)5个

5.(1分)

在Java中,switch(exp)语句的exp不能是(A)。

D

(A)字符型变量(B)整型变量(C)整型常量(D)逻辑型常量

6.(1分)

若有定义如下classdog{floatx;staticinty;…},则下列说法中正确的是(A)。

D

(A)x称为类变量,y为实例变量(B)x,y均为类变量(C)x,y均为实例变量(D)x为实例变量,y为类变量//静态的是类变量(所有的对象都能够看到),非静态的变量是实例变量(每个对象单独存在,每个对象都不同)

7.(1分)

在JAVA中,下列关于继承的论述中错误的是(B)。

C

(A)继承具有传递性(B)继承关系也称为“即是”关系//(C)继承具有多支持的特性//只有单一的继承,一个子类(D)继承提高了系统的可重用性

8.(1分)

在Java中,使一个线程进入就绪状态调用的方法是(B)。

(A)init()(B)start()(C)run()(D)sleep()

9.(1分)

在Java中,当服务器的套接字连接建立后,接收客户端的套接字应调用的方法是(B)。

(A)connect()(B)accept()(C)link()(D)receive()

10.(1分)

在Java中,连接数据库加载JDBC-ODBC桥接驱动器时,可能会发生的异常是(A)。

B

(A)FileNotFoundException(B)ClassNotFoundException

(C)ClassCastException(D)RuntimeException

11.(1分)

将一个RandomAccessFile对象中的文件指针移动到文件中的一个确定位置,应调用方法(B)。

(A)skipBytes()(B)seek()(C)moveBytes()(D)seekBytes()

12.(1分)

阅读下列代码:

  publicclassParent{

   publicintaddValue(inta,intb){

     ints;

     s=a+b;

     returns;

   }

  }

  classChildextendsParent{

  }

 下列选项中可以加入类Child的是(D)。

C//从重载和覆盖考虑

(A)intaddValue(intx,inty){//dosomething...}

(B)publicvoidaddValue(intx,inty){//dosomething...}

(C)publicintaddValue(intx){//dosomething...}//方法重载

(D)publicintaddValue(intx,inty)throwsMyException{//dosomething...}

13.(1分)

下列程序段执行后,其输出结果是(C)。

classA{

voiddisp(){

System.out.println("classA");

}

}

classBextendsA{

voiddisp(){

System.out.println("classB");

}

publicstaticvoidmain(String[]args){

Aa=newA();

Aa1=newB();//上转型对象

a.disp();//classA

a1.disp();//classB,调用不同子类的方法

}

}

(A)classA

classA

(B)classB

classB

(C)classA

classB

(D)classB

classA

14.(1分)

下列程序段执行后,其输出结果是(A)。

B

publicclassTest{

publicstaticvoidthrowit(){

System.out.print("throwit");

thrownewRuntimeException();

}

publicstaticvoidmain(String[]aa){

try{

System.out.print("hello");

throwit();

}catch(Exceptionre){

System.out.print("caught");

}finally{

System.out.print("finally");

}

System.out.print("after");

}

}

(A)hellothrowitcaught

(B)hellothrowitcaughtfinallyafter

(C)hellothrowitRuntimeExceptionafter

(D)hellothrowitcaughtfinallyafterRuntimeException

15.(1分)

在Java中,int数据类型所占的位数是(C)。

(A)8(B)16(C)32(D)64

16.(1分)

在Java中,下列说法不正确的是(C)。

D

(A)如果final修饰变量,则一旦赋值,就等同一个常量

(B)如果final修饰类,则该类不能被子类继承

(C)如果final修饰方法,则该方法不能在子类中被重写

(D)如果final修饰方法,则该方法所在的类不能被继承//类可以被继承,final方法不能被继承

17.(1分)

下列程序段执行后,t5的值是(A)。

intt1=5,t2=6,t3=7,t4,t5;

t4=t1

t1:

t2;

t5=t4

t4:

t3;

(A)5(B)6(C)7(D)以上都不对

18.(1分)

下列程序段执行后,r的值是(DC)。

intx=5,y=10,r=5;

switch(x+y)

{

case15:

r+=x;//r=10

case20:

r-=y;//r=0

case25:

r*=x/y;//r=0

default:

r+=r;//r=0

}

(A)15(B)10(C)0(D)20

19.(1分)

设类B是类C的父类,则下列声明对象x1的语句中不正确的是(D)。

(A)Bx1=newB();(B)Bx1=newC();//B声明的对象被子类C所赋值

(C)Cx1=newC();(D)Cx1=newB();

20.(1分)

在Java中,定义一个包的关键字是(B)。

(A)import(B)package(C)interface(D)protected

21.(1分)

关于下列程序段,说法正确的是(CD)。

classTemp{

staticStringtest[]=newString[10];

publicstaticvoidmain(Stringa[]){

System.out.println(test[0]);

}

}

(A)编译时将发生错误

(B)编译时正确但是运行时出错

(C)输出为0

(D)输出为null

22.(1分)

下列程序段执行后,其输出的结果是(A)。

C

publicclassSub

{

shortmValue;

privateSub(shortmValue){

this.mValue=mValue;

}

voidShow(){

System.out.println(mValue);

}

publicstaticvoidmain(String[]args)

{

shorta=52;

shortb=13;

shortc=a+b;

Subos=newSub(c);

os.Show();

}

(A)运行正确,输出“65”

(B)编译出错,原因是构造函数不能用private修饰

(C)编译出错,原因是不能把两个short类型用“+”相加后赋值给short类型

(D)运行出错,原因是不能创建构造函数用private修饰的对象

23.(1分)

下列说法中错误的是(D)。

(A)final关键字声明该方法是最终方法,不能被重写

(B)所谓方法的覆盖是声明一个方法与其父类中某个方法相同

(C)所谓方法的重载是多个方法可以共用一个方法名

(D)所谓构造方法就是类里面的第一个方法

24.(1分)

下列程序执行后,其输出结果是(D)。

A

classSuper{

publicinti=0;

Super()//如果在一开始没写这个不带参数的构造方法,在子类继承是要用

{//super()在子类中调用,如果一开始有就不用super()调用

}

publicSuper(Stringtext){

i=1;

}

}

publicclassSubextendsSuper{

publicSub(Stringtext){//super()调用不带参数的构造方法,要调用缺省的父类的构造方法

i=2;

}

publicstaticvoidmain(Stringag[]){

Subsub=newSub("Hello");

System.out.println(sub.i);

}

}

(A)编译失败(B)编译成功,程序输出0

(C)编译成功,程序输出1(D)编译成功,程序输出2

25.(1分)

下列选项中,属于JFrame缺省布局方式的是(AB)。

(A)FlowLayout布局方式

(B)BorderLayout布局方式

(C)GridLayout布局方式

(D)CrdLayout布局方式

26.(1分)

Java中数值数据的类型能自动转换,按照从左到右的转换次序是(CB)。

(A)byte→int→short→long→float→double

(B)byte→short→int→long→float→double//不带小数点向带小数点的转换

(C)byte→short→int→float→long→double

(D)short→byte→int→long→float→double

27.(1分)

采用缓冲式输出时,如果又想立即写入到文件,则需要调用的方法是(B)。

(A)flash()(B)flush()(C)write()(D)read()

//对于缓冲区,普通读写时是缓冲区满时再输出,快速读写时是写一个输出一个

28.(1分)

若抛出用户自定义异常,应使用的子句是(B)。

(A)catch(B)throw(C)try(D)finally

29.(1分)

Java中强制垃圾回收应使用的语句是(B)。

(A)java中不能强制垃圾回收(B)调用System.gc()方法//garbatecollect

(C)调用Runtime.gc()方法(D)将针对对象的引用设为null

30.(1分)

以下程序的执行结果是(B)。

C

publicclassTest{

publicstaticvoidmain(Stringargs[]){

Doublex=newDouble(4.0);//x和y都是对象,他们的内容是4.0

Doubley=newDouble(4.0);

System.out.println(x==y);//对象的引用,地址不同

}

}

(A)编译错误(B)True(C)False(D)抛出异常

第二大题:

实践题

(70分)

1.(20分)

备注:

考生按照系统提示目录保存试题文件,每道试题建立一个文件夹,文件夹名为题目编号。

文件夹中的文件命名参照提示所给的程序架构。

例:

第一题的试题文件夹名为“1”,文件名为“Exam1.java”,对应的字节码文件为:

Exam1.class。

问题描述:

输入三角形的三条边,分别是a,b,c三个值,判断其是一般三角形还是等腰三角形或者等边三角形或者不是三角形。

提示:

判断是否三角形的基本条件是a,b,c三条边都大于0,任何两条边相加大于第三边;等腰三角形的条件是在满足基本三角形的前提下,任何两条边相等则为等腰三角形;等边三角形的条件是三条边都相等。

程序结构如下:

publicclassExam1{

publicstaticvoidmain(String[]args)

{

//提示键盘输入a,b,c三个值,可以使用Scanner类接收输入。

//接受键盘输入,判断是否为“一般三角形”、“等腰三角形”、“等边三角形”、“不是三角形”。

}

}

2.(25分)

备注:

考生按照系统提示目录保存试题文件,每道试题建立一个文件夹,文件夹名为题目编号。

文件夹中的文件命名参照提示所给的程序架构。

例:

第一题的试题文件夹名为“1”,文件名为“Exam1.java”,对应的字节码文件为:

Exam1.class。

问题描述:

编写一个应用程序用来对一文本中的字符串进行加密,并将加密后的内容保存到另一个文本文件中。

对于字母字符串加密规则如下:

对于其他字符,不进行加密。

提示:

使用FileInputStream和FileOutputStream打开文件,对文件进行单字符读写操作。

‘a’--’z’的ASCII码是97至122。

‘A’--’Z’的ASCII码是65至90。

源文件放置于该题目录下,名称为data.txt,加密后的文件请命名为crpData.txt。

源文件data.txt内容如下:

ChineseName:

GuoqiangZhang

EnglishName:

EddyZhang

Sex:

Male

Born:

6/12/82

University:

BeijingUniversity

Major:

Marketing

Address:

328#,BeijingUniversity

Telephone:

1398****451

Email:

****

程序运行结果如下图所示。

程序结构如下:

importjava.io.*;

publicclassExample{

publicstaticvoidmain(String[]args)

{

try{

//初始化读文本和写文本对象

//遍历文本中所有字符,判断其是否字母,并进行加密操作,写入到新文本中。

}catch(Exceptionex){}

}

}

3.(25分)

备注:

考生按照系统提示目录保存试题文件,每道试题建立一个文件夹,文件夹名为题目编号。

文件夹中的文件命名参照提示所给的程序架构。

例:

第一题的试题文件夹名为“1”,文件名为“Exam1.java”,对应的字节码文件为:

Exam1.class。

问题描述:

编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。

提示:

设计一个学生类Stud,包含以下成员:

(1)三个数据成员:

no(学号,整型)、name(姓名,字符串型)和deg(成绩,整型);

(2)两个整型静态变量sum和num,分别存放总分和人数;

(3)两个普通成员函数setData()和disp(),分别用于给数据成员赋值和输出数据成员的值;

(4)一个静态成员函数avg(),用于计算平均分。

在main()函数中定义了一个对象数组用于存储输入的学生数据。

程序结构如下:

importjava.io.*;

classStud{

//成员定义

publicStud(){}

//通过键盘输入,设置学号、姓名、成绩

publicvoidsetData(){

//通过键盘输入,设置学号、姓名、成绩

//累加学生人数和总成绩

}

publicvoiddisplay(){

//显示该学生的学号、姓名、成绩

}

//计算平均成绩

publicstaticvoidavg(){

//显示学生的平均成绩,总成绩除以学生人数

}

}

publicclassExam3{

publicstaticvoidmain(String[]args){

Stud[]stu=newStud[3];

for(inti=0;i<3;i++){

stu[i]=newStud();

stu[i].setdata();

}

for(intj=0;j<3;j++){

stu[j].display();

}

Stud.avg();

}

}

运行结果如下图所示:

===============================================================

2012年(上)JAVA试卷参考答案

一、理论题(每小题1分,共30分)

1

2

3

4

5

6

7

8

9

10

C

B

B

D

D

D

C

B

B

B

11

12

13

14

15

16

17

18

19

20

B

C

C

B

C

D

A

C

D

B

21

22

23

24

25

26

27

28

29

30

D

C

D

A

B

B

B

B

B

C

需要讲解的题:

2,3,5,6,7,8,9,10,11,12,14,18,14,24,26,27

容易出错的题:

3,12,22(不是A而是C,因为要(short)(a+b))

不妥的题:

2(A也对,因为有匿名类),29(A也说得过去)

二、实践题(20+25+25=70分)

1.(20分)编程:

输入三条边,判断能否构成三角形。

importjava.util.Scanner;

publicclassExam1{

publicstaticvoidmain(String[]args){

try{

Scannerscan=newScanner(System.in);

doublea,b,c;

System.out.println("请输入三角形一条边:

");

a=scan.nextDouble();

System.out.println("请输入三角形第二边:

");

b=scan.nextDouble();

System.out.println("请输入三角形第三边:

");

c=scan.nextDouble();

if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&c+a>b){

if(a==b&&b==c){

System.out.println("这是等边三角形");

}

elseif(a==b||b==c||c==a){

System.out.println("这是等腰三角形");

}

else{

System.out.println("这是一般三角形");

}

}

else{

System.out.println("这不是三角形");

}

}

catch(Exceptione){

System.out.println("请输入正整数");

}

}

}

一次运行结果如下:

请输入三角形一条边:

2

请输入三角形第二边:

3

请输入三角形第三边:

4

这是一般三角形

2.(25分)编程:

对文本中的字符串进行加密

importjava.io.*;

publicclassExam2{

publicstaticvoidmain(String[]args){

try{

//初始化读文本和写文本对象

FileInputStreamfis=newFileInputStream("data.txt");

FileOutputStreamfos=newFileOutputStream("crpData.txt");

//遍历文本中所有字符,判断其是否字母,并进行加密操作,写入到新文本中。

intch;

while((ch=fis.read())!

=-1){

if(ch>=97&&ch<=122){//'a'—'z'的ASCII码是97至122

ch+=3;

if(ch>122){ch-=26;}

}

if(ch>=65

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

当前位置:首页 > 教学研究 > 教学反思汇报

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

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