语言程序设计期末复习综合练习题答案.docx
《语言程序设计期末复习综合练习题答案.docx》由会员分享,可在线阅读,更多相关《语言程序设计期末复习综合练习题答案.docx(19页珍藏版)》请在冰豆网上搜索。
语言程序设计期末复习综合练习题答案
Java语言程序设计期末复习综合练习题
一、选择题。
2.main方法是JavaApplication程序执行的入口点,关于main方法的方法头以下哪项是合法的()
A、publicstaticvoidmain()
B、publicstaticvoidmain(Stringargs[])
C、publicstaticintmain(String[]arg)
D、publicvoidmain(Stringarg[])
答:
B
4.下列哪个是合法的Java标识符()
A、Tree&GlassesB、FirstJavaApplet
C、_$theLastOneD、
答:
B、C
5.JavaApplication源程序的主类是指包含有()方法的类。
A、main方法B、toString方法
C、init方法D、actionPerfromed方法
答:
A
6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特位。
A、8B、16C、32D、64
答:
B
7.设a=8,则表达式a>>>2的值是()。
A、1B、2C、3D、4
答:
B
8.若a的值为3时,下列程序段被执行后,c的值是多少()
c=1;
if(a>0)if(a>3)c=2;elsec=3;elsec=4;
A、1B、2C、3D、4
答:
C
9.在编写JavaApplication程序时,若需要使用到标准输入输出语句,必须在程序的开头写上()语句。
A、import.*;B、import;
C、import.*;D、import;
答:
C
10.对于构造函数,下列叙述正确的是()。
A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
B、构造函数的返回类型只能是void型。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
答:
ACD
11.下面的是关于类及其修饰符的一些描述,正确的是:
()。
A、abstract类只能用来派生子类,不能用来创建abstract类的对象。
B、final类不但可以用来派生子类,也可以用来创建final类的对象。
C、abstract不能与final同时修饰一个类。
D、abstract方法必须在abstract类中声明,但abstract类定义中可以没
有abstract方法。
答:
ACD
13.若在某一个类定义中定义有如下的方法:
abstractvoidperformDial();
该方法属于()。
A、本地方法B、最终方法C、解态方法D、抽象方法
答:
D
14.下列关于静态初始化器的叙述中,哪一个是正确的()
A、静态初始化器是在构造函数之前加上static修饰符。
B、静态初始化器是对类自身进行初始化。
C、静态初始化器在同一个类中只能有一个。
D、静态初始化器是在其所属的类加载内存时由系统自动调用执行。
答:
BD
15.不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确的()
A、实例方法可以直接调用父类的实例方法。
B、实例方法可以直接调用父类的类方法。
C、实例方法可以直接调用其他类的实例方法。
D、实例方法可以直接调用本类的类方法。
答:
BD
16.设有下面两个类的定义:
classPerson{classStudentextendsPerson{
longid;1024”1024”ntValue();
下述说法正确的是()。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且它们的值相等。
D、a和b都是整数类型变量并且它们的值相等。
答:
D
24.下面的语句的作用是:
()。
VectorMyVector=newVector(100,50);
A、创建一个数组类对象MyVector,有100个元素的空间,每个元素的初值为50。
B、创建一个向量类对象MyVector,有100个元素的空间,每个元素的初值为50。
C、创建一个数组类对象MyVector,有100个元素的空间,若空间使用完时,以50
个元素空间单位递增。
D、创建一个向量类对象MyVector,有100个元素的空间,若空间使用完时,以50
个元素空间单位递增。
答:
D
25.在Java中,存放字符串常量的对象属于()类对象。
A、CharacterB、String
C、StringBufferD、Vector
答:
B
31.对于子类的构造函数说明,下列叙述中不正确的是()。
A、子类无条件地继承父类的无参构造函数。
B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函
数,但这个调用语句必须是子类构造函数的第一个可执行语句。
C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行
自己的构造函数。
D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。
答:
D
二、填空题。
2.设x=2,则表达式(x++)*3的值是。
答:
6
3.若x=5,y=10,则x>y和x<=y的逻辑值分别为和。
答:
false、true
4.顺序执行以下两个语句的输出结果是:
。
Strings=“我喜欢学习Java!
”;
));
答:
10
5.据程序的构成和运行环境的不同,Java源程序分为两大类:
程序和程序。
答:
JavaApplication、JavaApplet(或Application、Applet)
6.如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件将产生个文件名与类名相同而扩展名为的字节码文件。
答:
4、class
7.开发与运行Java程序需要经过的三个主要步骤为、
和。
答:
编辑源程序、编译生成字节码、解释运行字节码
9.一个JavaApplication源程序文件名为,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令:
、
。
答:
javac、javaMyJavaApplication
10.在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码字符占用字节内存空间,这样,无论是中文字符还是英文字符,每个都是占用字节内存空间。
答:
2、2
11.在Java程序中定义的类有两种成员:
、。
答:
域成员、方法成员
13.创建一个名为MyPackage的包的语句是,
该语句应该放在程序的位置为:
。
答:
packageMyPackage;应该在程序第一句。
14.方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
方法是不能被当前
类的子类重新定义的方法。
答:
抽象方法、最终方法(或abstract方法、final方法)
15.形式参数指的是方法被时的参数行,实际参数是方法被
时所传递进去的变量或值。
答:
定义、调用
16.多态是指,在Java中有两种多态,一种是使用方法的实现多态,另一种是使用方法的实现多态。
答:
一个程序中有多个同名的不同方法覆盖重载
17.在Java程序中,通过类的定义只能实现重继承,但通过接口的定义可以实现重继承关系。
答:
单、多
19.字符串分为两大类,一类是字符串常量,使用类的对象表示;另一类是字符串变量,使用类的对象表示。
答:
String、StringBuffer
20.设有数组定义:
intMyIntArray[]={10,20,30,40,50,60,70,80,90,100};
则执行以下几个语句后的输出结果是。
ints=0;
for(inti=0;i<;i++)
s+=MyIntArray[i];
s);
答:
550
三、写出下列程序完成的功能。
1.publicclassSum
{publicstaticvoidmain(Stringargs[])
{doublesum=;
for(inti=1;i<=100;i++)
sum+=(double)i;
"sum="+sum);
}
}
答:
计算1/1+1/2+1/3+...+1/100的值。
2.import.*;
publicclassReverse
{publicstaticvoidmain(Stringargs[])
{inti,n=10;
inta[]=newint[10];
for(i=0;itry{
BufferedReaderbr=newBufferedReader(
newInputStreamReader);
a[i]=());;
publicclassClass1
{
publicstaticvoidmain(Stringargs[]){
inti,Max,Min;
inta[]={12,67,8,98,23,56,124,55,99,100};
Max=Min=a[0];
for(i=1;i<;i++){
if(a[i]if(a[i]>Max)Max=a[i];
}
Max+""+Min);
);
}
}
答:
在数组中查找并输出最大值和最小值。
5.publicclassABC
{
publicstaticvoidmain(Stringargs[]){
inti,j;
inta[]={12,67,8,98,23,56,124,55,99,100};
for(i=0;i<;i++){
intk=i;
for(j=i;j<;j++)
if(a[j]inttemp=a[i];
a[i]=a[k];
a[k]=temp;
}
for(i=0;i<;i++)
"");
);
}
}
答:
使用选择法对数组a的数据进行升序排序,然后输出排序后的结果。
6.import.*;
publicclassClass1{
publicstaticvoidmain(Stringargs[])
{
FactN=newFact(4);
());
}
}
classFact{
intn;
Fact(intnn){n=nn;}
intfact(){
inti,f=1;
for(i=1;i<=n;i++)
f=f*i;
returnf;
}
}
答:
定义一个计算n!
的类Fact,然后主类中创建一个对象求解4!
的值。
8.import.*;
publicclassClass1{
publicstaticvoidmain(Stringargs[])
{SubClassa=newSubClass(10,3);
());
}
}
classSuperClass{
floatx;
intn;
SuperClass(floatxx,intnn){x=xx;n=nn;}
}
classSubClassextendsSuperClass{
SubClass(floatxx,intnn){super(xx,nn);}
floatexp(){
floats=1;
for(inti=1;i<=n;i++)s=s*x;
returns;
}
}
答:
定义一个计算xn的类,然后用该类求103的值。
10.import.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{SubClasssb=newSubClass();
));
}
}
classSuperClass
{inta=10,b=20;}
classSubClassextendsSuperClass
{intmax(){return((a>b)a:
b);}}
答:
求两个数的最大值。
四、写出下面程序的运行结果。
1.import.*;
publicclassabc
{publicstaticvoidmain(Stringargs[])
{ABs=newAB("Hello!
","IloveJAVA.");
));
}
}
classAB{
Strings1;
Strings2;
AB(Stringstr1,Stringstr2)
{s1=str1;s2=str2;}
publicStringtoString()
{returns1+s2;}
}
答:
Hello!
IloveJAVA.
2.import.*;
publicclassabc
{
publicstaticvoidmain(Stringargs[])
{inti,s=0;
inta[]={10,20,30,40,50,60,70,80,90};
for(i=0;i<;i++)
if(a[i]%3==0)s+=a[i];
"s="+s);
}
}
答:
s=180
3.import.*;
publicclassabc
{
publicstaticvoidmain(Stringargs[])
{SubSubClassx=newSubSubClass(10,20,30);
();
}
}
classSuperClass
{inta,b;
SuperClass(intaa,intbb)
{a=aa;b=bb;}
voidshow()
{"a="+a+"\nb="+b);}
}
classSubClassextendsSuperClass
{intc;
SubClass(intaa,intbb,intcc)
{super(aa,bb);
c=cc;
}
}
classSubSubClassextendsSubClass
{inta;
SubSubClass(intaa,intbb,intcc)
{super(aa,bb,cc);
a=aa+bb+cc;
}
voidshow()
{"a="+a+"\nb="+b+"\nc="+c);}
}
答:
a=60
b=20
c=30
4.import.*;
publicclassabc
{
publicstaticvoidmain(Stringargs[])
{
Strings1="Hello!
";
Strings2=newString("World!
");
}
}
答:
Hello!
World!
5.import.*;
publicclassABC
{
publicstaticvoidmain(Stringargs[])
{inti;
inta[]={11,22,33,44,55,66,77,88,99};
for(i=0;i<=/2;i++)
a[i]+a[]+"");
);
}
}
答:
110110110110110
6.import.*;
classParent
{
voidprintMe()
{
"parent");
}
}
classChildextendsParent
{
voidprintMe()
{
"child");
}
voidprintAll()
{
();
();
printMe();
}
}
publicclassClass1
{
publicstaticvoidmain(Stringargs[])
{
ChildmyC=newChild();
();
}
}
答:
parent
child
child
五、使用Java语言编写程序。
1.编写一个字符界面的JavaApplication程序,接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和。
答:
参考程序如下:
import.*;
publicclassSUM
{
publicstaticvoidmain(String[]args)
{
inti,n=-1,sum=0;
while(n<1)
try{
BufferedReaderbr=
newBufferedReader(newInputStreamReader);
n=());
}catch(IOExceptione){};
for(i=1;i<=n;i++)sum+=i;
}
}
2.编写一个字符界面的JavaApplication程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。
答:
参考程序如下:
import.*;
publicclassMaxMin{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner;
inta[]=newint[10];
intmax;
intmin;
for(inti=0;i<=9;i++)
a[i]=();
max=min=a[0];
for(inti=1;i<=9;i++)
{if(a[i]>=max)max=a[i];
if(a[i]<=min)min=a[i];}
"max="+max+"\n"+"min="+min);
}
}
4.编写一个学生类Student,要求:
(1)学生类Student属性有:
id:
long型,代表学号
name:
String类对象,代表姓名
age:
int型,代表年龄
sex:
boolen型,代表性别(其中:
true表示男,false表示女)
phone:
String类对象,代表联系电话
(2)学生类Student的方法有:
Student(longi,Stringn,inta,booleans,longp)
:
有参构造函数,形参表中的参数分别初始化学号、姓名、
年龄、性别和联系电话。
intgetAge()():
获取年龄作为方法的返回值。
booleangetSex()():
获取性别作为方法的返回值。
longgetPhone():
获取联系电话作为方法的返回值。
publicStringtoString():
以姓名:
联系电话的形式作为方法的返回值。
答:
参考程序段如下:
classStudent{
longid;
Stringname;
intage;
booleansex;
longphone;
Student(longi,Stringn,inta,booleans,longp){
id=i;
name=n;
age=a;
sex=s;
phone=p;
}
intgetAge(){returnage;}
booleangetSex(){returnsex;}
longgetPhone(){returnphone;}
publicStringtoString(){returnname+":
"+phone;}
}