12.下列语句序列执行后,i的值是(D)。
inti=16;
do{i/=2;}while(i>3);
A)16B)8C)4D)2
13.以下由for语句构成的循环执行的次数是(B)。
for(inti=0;true;i++);
A)有语法错,不能执行B)无限次
C)执行1次D)一次也不执行
14.定义类头时能使用的修饰符是(C)。
A)privateB)staticC)abstractD)protected
15.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值,
正确的switch语句是D)。
A)switch(x+y)B)switch(ch+1)
{......}{......}
C)switchchD)switch(a+b);
{......}{......}
16.下列最终属性i的定义中,正确的是()。
A)staticfinalinti=100;B)finalinti=1.2;
C)finali='w';D)finalchari;
17.下列类定义中,不正确的是(C)。
A)classx{....}
B)classxextendsy{....}
C)staticclassximplementsy1,y2{....}
D)publicclassxextendsApplet{....}
18.设x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是()。
A)staticxx1;B)publicxx1=newx(int123);
C)yx1;D)xx1=x();
19.设i、j、k为类x中定义的int型变量名,下列类x的构造函数中不正确的是(B)。
A)x(intm){...}B)voidx(intm){...}
C)x(intm,intn){...}D)x(inth,intm,intn){...}
20.下列方法定义中,正确的是(A)。
A)intx(){charch='a';return(int)ch;}
B)voidx(){...returntrue;}
C)intx(){...returntrue;}
D)intx(inta,b){returna+b;}
21.用于定义类成员的访问控制权的一组关键字是(D)。
A)class,float,double,public
B)float,boolean,int,long
C)char,extends,float,double
D)public,private,protected
22.不能构成循环的语句是(C)。
A)for语句B)while语句C)switch语句D)do__while语句
23.下列程序段执行后b3的结果是(D)。
booleanb1=true,b2,b3;
24=b1?
b1:
b2;
A)0B)1C)trueD)false
25下面数据结构中,属于非线性的是(B)。
A)线性表B)树C)队列D)堆栈
11.设有定义inti=123;longj=456;下面赋值不正确的语句是(D)。
A)j=i;B)j=(long)i;C)i=(int)j;D)i=j;
二、填空题:
(每空1分)
1.构造函数_没__有返回值。
2.Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和___double_______两种具体类型。
3.创建类对象的运算符是__new。
4.当整型变量n的值不能被13除尽时,其值为false的Java语言表达式是__n%13==0___________。
5.在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的__元素个数。
6.定义类就是定义一种抽象的______父类______,它是所有具有一定共性的对象的抽象描述。
7.在Java语言中,使用__平台无关___、___java虚拟机___等技术,实现软件重用。
8.表达式3/6*5的计算结果是____0____。
9.下面是一个类的定义:
publicclass_intMyclass___________
{
intx,y;
Myclass(inti,___=0____)//构造函数
{
x=i;
y=j;
}
}
10.下面是一个JavaApplication的主类的定义,其功能是输出所有命令行参数。
importjava.io.*;
publicclassMyClass
{
publicstaticvoidmain(Stringargs[])
{
if(args.length!
=_0__)
for(inti=0;iSystem.out.println(_"i="+i__________);
elseSystem.out.println(没有命令行参数);
}
}
11下面是一个小程序的主类myprogram的定义,其中A、B是该主类所在源程序中已定义的另两个类的类名:
importjavaawt.*;
importjavaapplet.*;
publicclassmyprogramextendsApplet//定义小程序的主类
{
Aa;Bb;
public_____myprogram___init()
{a=newA();b=___new__B();}
}
12.Java的复合数据类型有:
类、数组和___接口____等。
Java的简单数据类型有:
数值类型(整形和浮点类型),自负类型和布尔类型
13.表达式3/6*5的计算结果是_0_______。
14.定义初值为10的10次方的长整型变量lvar的语句是:
_______longlvar=1*e10___________________。
15.顺序结构、分支结构(或称选择结构)、__循环结构__________是结构化程序设计的三种基本流程控制结构。
16.以下方法m的功能是求两参数之积的整数部分。
intm(floatx,floaty)
{_______k=(int)x*y___________;}
17.Java源程序文件编译后产生的文件称为____字节码____文件,其扩展名为___.class_______。
18.Java和c++都是面向对象的程序设计语言。
三、程序分析:
(每题4分)
1.下面是一个排序的程序:
importjava.io.*;
publicclassTest56_Sort
{
publicstaticvoidmain(Stringargs[])
{
int[]a={42,99,5,63,95,36,2,69,200,96};
System.out.println(排序前的数据序列:
);
ShowArray(a);
Sort(a);
System.out.println(排序后的数据序列:
);
ShowArray(a);
}
publicstaticvoidSort(int[]x)
{
intw;
for(inti=1;i{
for(intj=0;jif(x[j]>x[j+1])
{w=x[j];x[j]=x[j+1];x[j+1]=w;}
/*if(i==1||i==2)ShowArray(x);
if(i==2)break;*/
}
}
publicstaticvoidShowArray(intb[])
{
for(inti=0;iSystem.out.print("b[i"+i+"]="+b[i]);
System.out.println();
}
}
问题:
如果将方法Sort()中的一对注释符(/**/)去掉,程序输出的结果是什么?
排序前的数据序列:
b[0]=42b[1]=99b[2]=5b[3]=63b[4]=95b[5]=36b[6]=2b[7]=69b[8]=200b[9]=96
b[0]=42b[1]=5b[2]=63b[3]=95b[4]=36b[5]=2b[6]=69b[7]=99b[8]=96b[9]=200
b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200
排序后的数据序列:
b[0]=5b[1]=42b[2]=63b[3]=36b[4]=2b[5]=69b[6]=95b[7]=96b[8]=99b[9]=200
2.请写下程序的输出结果:
publicclassTest52
{
Stringstr1="Hello,Javaworld!
\t";
Stringstr2="Hello,students!
";
publicstaticvoidmain(Stringargs[])
{
System.out.print(str1);
System.out.println(str2);
}
}
输出结果:
3.请写下程序的输出结果:
publicclassT2_4{
publicstaticvoidmain(String[]args)
{
inti,j;
charc='*';
for(i=0;i<5;i++)
{
for(j=0;j<=i;j++)
System.out.print("*");
System.out.println();
}
}
}
输出结果:
4、请写下程序的输出结果:
publicclassex2_2
{
publicstaticvoidmain(Stringargs[])
{
intx,y;
byteb=6;
floatz=1.234f;
doublew=1.23;
booleanflag;
x=12;
y=300;
flag=x>y;
System.out.println("x>y=="+flag);
flag=z>w;
System.out.println("z>w=="+flag);
}
}
五、程序设计:
(每题11分,共33分)
1、编程:
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。
2、编程求解:
所有两位整数能被3整除的数的和,以及不能被3整除的数的各位数字之和。
3、设计一个程序求解e的值。
精度达到1.0e-6,
4、请设计一个对N个数进行排序的程序
一、选择题(每道题只有一个正确答案,每小题2分,共30分)15道题
1、关于Java语言叙述错误的是:
(C)
A.Java语言具有跨平台性
B.Java是一种面向对象的语言
C.Java语言中的类可以多继承
D.Java的垃圾收集机制自动回收程序已不再使用的对象
2、以下叙述正确的是:
(B)的确台a
A.构造方法必须是public方法
B.main方法必须是public方法
C.Java应用程序的文件名可以是任意的
D.构造方法应该声明为void类型
3、关于Java中数据类型叙述正确的是:
(B)
A、整型数据在不同平台下长度不同
B.boolean类型数据只有2个值,true和false
C.数组属于简单数据类型
D.Java中的指针类型和C语言的一样
4、设intx=1,floaty=2,则表达式x/y的值是:
(D)
A.0
B.1
C.2
D.以上都不是
5、以下语句有语法错的是:
(A)
A.intx=1;y=2;z=3
B.for(intx=10,y=0;x>0;x++);
C.while(x>5);
D.for(;;);
6、关于类和对象的叙述正确的是:
(A)
A.Java的类分为两大部分:
系统定义的类和用户自定义的类
B.类的静态属性和全局变量的概念完全一样,只是表达形式不同
C.类的成员至少有一个属性和一个方法
D.类是对象的实例化
7、以下有关构造方法的说法,正确的是:
(A)
A.一个类的构造方法可以有多个
B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用
D.构造方法可以和类同名,也可以和类名不同
8、以下有关类的继承的叙述中,正确的是:
(D)
A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性
B.子类只能继承父类的方法,不能继承父类的属性
C.子类只能继承父类的非私有属性,不能继承父类的方法
D.子类不能继承父类的私有属性
9、下列属于容器的组件有:
(B)
A.JButton
B.JPane
C.Canvas
D.JTextArea
10、void的含义:
(C)
A.方法体为空
B.定义的方法没有形参
C.定义的方法没有返回值
D.方法的返回值不能参加算术运算
11、关于Java中异常的叙述正确的是:
(D)
A.异常是程序编写过程中代码的语法错误
B.异常是程序编写过程中代码的逻辑错误
C.异常出现后程序的运行马上中止
D.异常是可以捕获和处理的
12、所有的异常类皆继承哪一个类?
(C)
A.java.io.Exception
B.java.lang.Throwable
C.java.lang.Exception
D.java.lang.Error
13、下面哪个不是java语言中的关键字?
(B)
A.long
B.sizeof
C.instanceof
D.const
14、为实现进程之间的通信,需要使用下列那种流才合适?
(D)
A.Datastream
B.Filestream
C.Bufferedstream
D.Pipedstream
15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?
(D)
A.ActionListener
B.MouseListener
C.MouseMotionListern
D.ItemListener
二、填空题(每空1分,共20分)
1、面向对象程序设计所具有的基本特征是:
___抽象性___,_封装性___,_继承性__,_多态性__
2、数组x定义如下
intx[][]=newint[3][2]
则x..length的值为____3________,
x[0].length的值为_____2_______。
3、Java中实现多线程一般使用两种方法,一是___继承Thread类_________,二是_____实现Runnable方法__________
4、Java的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)__FlowLayout_____,___GridLayout_____,__BorderLayout_____,___CardLayout_______
5、Applet常用的方法是:
__init()_、__run()__、__stop()__和destroy()。
三、阅读程序,写出程序的输出结果(每题5分,共20分)
1、classA{
privateintprivateVar;
A(int_privateVar){
privateVar=_privateVar;
}
booleanisEqualTo(AanotherA){
if(this.privateVar==anotherA.privateVar)
returntrue;
else
returnfalse;
}
}
publicclassB{
publicstaticvoidmain(Stringargs[]){
Aa=newA
(1);
Ab=newA
(2);
System.out.println(a.isEqualTo(b));
}
}
程序的输出结果为:
____false_____
2、classA{
doublef(doublex,doubley){
returnx*y;
}
}
classBextendsA{
doublef(doublex,doubley){
returnx+y;
}
}
publicclassTest{
publicstaticvoidmain(Stringargs[]){
Bobj=newB();
System.out.println("Theprogramoutputis"+obj.f(4,6));
}
}
程序的输出结果为:
__Theprogramoutputis10_
3、publicclassUnchecked{
publicstaticvoidmain(String[]args){
try{
method();
}catch(Exceptione){
System.out.println("A");
}finally{
System.out.println("B");
}
}
staticvoidmethod(){
try{
wrench();
System.out.println("C");
}catch(ArithmeticExceptione){
System.out.println("D");
}finally{
System.out.println("E");
}
System.out.println("F");
}
staticvoidwrench(){
thrownewNullPointerException();
}
}
程序的输出结果为:
E
A
B
4、publicclassTest{
publicstaticvoidmain(String[]args){
intx;
inta[]={0,0,0,0,0,0};
calculate(a,a[5]);
System.out.println("thevalueo