考试酷java 第四章.docx
《考试酷java 第四章.docx》由会员分享,可在线阅读,更多相关《考试酷java 第四章.docx(8页珍藏版)》请在冰豆网上搜索。
![考试酷java 第四章.docx](https://file1.bdocx.com/fileroot1/2023-1/23/7637c6e5-f1af-444e-b68b-c447803e1119/7637c6e5-f1af-444e-b68b-c447803e11191.gif)
考试酷java第四章
第四章
1.关于内部类,下列说法不正确的是()。
内部类不能有自己的成员方法和成员变量
2.有一个类B,下面为其构造方法的声明,正确的是( )。
B(intx){}
3.为AB类定义一个无返回值的方法f,使得使用类名就可以访问该方法,该方法头的形式为( )
staticvoidf()
4.在Java语言中,哪一个包中的类是自动导入的?
( )
5.定义外部类时不能用到的关键字是( )。
protected
6.下列哪种类成员修饰符修饰的变量只能在本类中被访问?
()
private
7.定义一个公有double型常量PI,哪一条语句最好?
( )
publicfinalstaticdoublePI=;
8.下面关于方法的说法,不正确的是()。
如果一个类定义了构造方法,也可以用该类的默认构造方法
9.下面关于类的说法,不正确的是( )。
类就是对象
10.给出下面的程序代码:
publicclassX4_1_3{
privatefloata;
publicstaticvoidm(){ }
}
如何使成员变量a被方法m()访问( )
将privatefloata改为staticfloata
11.给出下面程序代码:
byte[]a1,a2[];
bytea3[][];
byte[][]a4;
下列数组操作语句中哪一个是不正确的?
( )
a2=a1
12.下面代码运行后的输出结果为( )。
publicclassX6_1_5{
publicstaticvoidmain(String[]args){
ABaa=newAB();
ABbb;
bb=aa;
}
}
classAB{intx=100;}
true
13.设有下列数组定义语句:
inta[]={1,2,3};
则对此语句的叙述错误的是( )。
a数组元素的下标为1~3
14.已知有定义:
Strings="Ilove",下面哪个表达式正确?
()
s+="you";
15.关于数组,下列说法中不正确的是( )。
定义数组时必须分配内存
16.执行语句:
int[]x=newint[20];后,下面哪个说法是正确的?
()
x[19]为0
1.Applet由浏览器自动调用的主要方法,,和 分别对应了Applet从初始化、启动、暂停到消亡的生命周期的各个阶段。
Initstartstopdestroy
2.数组是一种数据类型,在Java中,数组是作为来处理的。
数组是有限元素的有序集合,数组中的元素具有相同的,并可用统一的和来唯一确定其元素。
复合对象数据类型数组名下标
3.在数组定义语句中,如果[]在数据类型和变量名之间时,[]之后定义的所有变量都是
类型,当[]在变量名之后时,只有[]之前的变量是 类型,之后没有[]的则不是数组类型。
数组数组
4.利用类中的方法可以实现数组元素的复制;利用类中的和方法可以实现对数组元素的排序、查找等操作。
Systemarraycopy()Arrayssort()binarySearch()
5.Java语言提供了两种具有不同操作方式的字符串类:
类和类。
它们都是的子类。
StringStringBufferSystem类是一个功能强大、非常有用的特殊的类,它提供了、系统信息等重要工具。
这个类不能 ,即不能创建System类的对象,所以它所有的属性和方法都是类型,引用时以类名System为前缀即可。
标准输入/输出运行时实例化static
7.方法体内定义变量时,变量前不能加;局部变量在使用前必须,否则编译时会出错;而类变量在使用前可以不用赋值,它们都有一个的值。
修饰符明确赋值默认
8.创建包时需要使用关键字 。
package
9.定义类时需要关键字,继承类时需要关键字,实现接口时需要关键字。
classextendsimplements
10.引用static类型的方法时,可以使用做前缀,也可以使用做前缀。
类名对象名
11.静态数据成员既可以通过来访问,也可以通过直接访问它。
对象名类名
12.从用户的角度看,Java源程序中的类分为两种:
和。
系统定义的类用户自己定义的类
13.static方法中只能引用类型的数据成员和类型的成员方法;而非static类型的方法中既可以引用类型的数据成员和成员方法,也可以引用类型的数据成员和成员方法。
staticstatic非static
14.如果用户在一个自定义类中未定义该类的构造方法,系统将为这个类定义一个默认构造方法。
这个方法没有,也没有任何>具体语句>,不能完成任何操作。
形式参数
15.
是所有类的直接或间接父类,它在
包中。
Object类
16.数组初始化包括初始化和初始化两种方式。
静态动态
17.静态数据成员被保存在类的内存区的单元中,而不是保存在某个对象的内存区中。
因此,一个类的任何对象访问它时,存取到的都是(相同/不同)的数值。
公共存储相同
18.类中的方法是一个特殊的方法,该方法的方法名和类名相同。
[
构造
19.当程序中需要引用包中的类时,导入该包中类的语句为。
import一个类主要包含两个要素:
和>成员方法<>
数据成员
24.publicclassX6_3_1{
publicstaticvoidmain(String[]args){
inta[]={12,39,26,41,55,63,72,40,83,95};
inti1=0,i2=0;
for(inti=0;i<;i++)
if(a[i]%2==1)i1++;
elsei2++;
"\t"+i2);
}
6 4
25.publicclassX6_3_2{
publicstaticvoidmain(String[]args){
inta[]={36,25,48,14,55,40,32,66};
intb1,b2;
b1=b2=a[0];
for(inti=1;i<;i++)
if(a[i]>b1){
if(b1>b2)b2=b1;
b1=a[i];
}
"\t"+b2);
}
}
66 55
26.publicclassX6_3_3{
publicstaticvoidmain(String[]args){
inta[]={36,25,48,14,55,40,32,66};
intb1,b2;
b1=b2=a[0];
for(inti=1;i<;i++)
if(a[i]if(b1b1=a[i];
}
"\t"+b2);
}
}
14 25
27.publicclassX6_3_4{
publicstaticvoidmain(String[]args){
Stringstr="abcdabcabfgacd";
char[]a=();
inti1=0,i2=0,i;
for(i=0;i<;i++){
if(a[i]=='a') i1++;
if(a[i]=='b') i2++;
}
"\t"+i2);
}
}
4 3
28.publicclassX6_3_5{
publicstaticvoidmain(String[]args){
Stringstr="abcdabcabdaeff";
char[]a=();
intb[]=newint[5],i;
for(i=0;i<;i++){
switch(a[i]){
case'a':
b[0]++;break;
case'b':
b[1]++;break;
case'c':
b[2]++;break;
case'd':
b[3]++;break;
default:
b[4]++;
}
}
for(i=0;i<5;i++)
"\t");
}
}
4 3 2 2 3
29.publicclassX6_3_6{
publicstaticvoidmain(String[]args){
inta[]={76,83,54,62,40,75,90,92,77,84};
intb[]={60,70,90,101};
intc[]=newint[4],i;
for(i=0;i<;i++){
intj=0;
while(a[i]>=b[j])j++;
c[j]++;
}
for(i=0;i<4;i++)
"\t");
}
}
2 1 5 2
30.publicclassX6_3_7{
publicstaticvoidmain(String[]args){
inta[][]={{1,2,7,8},{5,6,11,12},{9,10,3,4}};
intm=a[0][0];
intii=0,jj=0;
for(inti=0;i<;i++)
for(intj=0;jif(a[i][j]>m){
m=a[i][j];
ii=i;
jj=j;
}
"\t"+jj+"\t"+a[ii][jj]);
}
}
1 3 12
31.publicclassX6_3_8{
publicstaticvoidmain(String[]args){
String[]a={"student","worker","cadre","soldier","peasant"};
Strings1,s2;
s1=s2=a[0];
for(inti=1;i<;i++){
if(a[i]pareTo(s1)>0)s1=a[i];
if(a[i]pareTo(s2)<0)s2=a[i];
}
"\t"+s2);
}
}
worker cadre
1.已知一个数值矩阵A为 ,另一个矩阵B为 ,求出A与B的乘积矩阵C[3][4]并输出出来,其中C中的每个元素C[i][j]等于 。
2.从键盘上输入4行4列的一个实数矩阵到一个二维数组中,然后求出主对角线上元素之乘积以及副对角线上元素之乘积。
3.(风扇类Fan)设计一个名为Fan的类来表示一个风扇。
这个类包括:
三个名为SLOW MEDIUM和FAST而值为1、2和3的常量表示风扇的速度
一个名为speed的int类型私有数据域表示风扇的速度(默认为SLOW)
一个名为ON的boolean类型私有数据域表示风扇是否打开(默认为false)
一个名为radius的double类型私有数据域表示风扇的半径(默认为5)
一个名为color的String类型私有数据域表示风扇的颜色(默认为blue)
这四个数据域的访问器和修改器
一个创建默认风扇的无参构造函数
一个名为toString()的方法返回描述风扇的字符串。
如果风扇是打开的,那么该方法在一个组合的字符串中返回风扇的速度、颜色和半径。
如果风扇没有打开,该方法返回一个有“fanisoff”和风扇颜色及半径组合成的字符串。
画出该类的UML图。
实现这个类。
编写一个测试程序,创建两个Fan对象。
将第一个对象设置为最大速度、半径为10,颜色为yellow、状态为打开。
将第二个对象设置为中等速度、半径为5,颜色为blue、状态为关闭。
通过调用它们的toString方法显示这些对象。
4.(股票类Stock)设计一个名为Stock的类。
这个类包括:
一个名为symbol的字符串数据域表示股票代码
一个名为name的字符串数据域表示股票名称
一个名为previousClosingPrice的double型数据域,它存储的是前一日的股票值
一个名为currentPrice的double型数据域,它存储的是当时的股票值
创建一支有特定代码和名字的股票的构造方法
一个名为getChangePercent()的方法返回从previousClosingPrice变化到currentPrice的百分比
画出该类的UML图。
实现这个类。
编写一个测试程序,创建一个Stock对象,它的股票代码是Java,
股票名字为SunMicrosystemInc,前一日收盘价是。
设置新的当前值为,然后显示市值变化的百分比。
5.首先让计算机随机产生出10个两位正整数,然后按照从小到大的次序显示出来。
6.编一个程序,程序中包含以下内容:
一个圆类(Circle),包含:
属性:
圆半径radius;常量:
PI。
方法:
构造方法;求面积方法area();求周长方法:
perimeter()。
主类(X4_3_1),包含:
主方法main(),在主方法中创建圆类的对象c1和c2并初始化,c1的半径为100,c1的半径为200,然后分别显示两个圆的面积和周长。
7.有一个数列,它的第一项为0,第二项为1,以后每一项都是它的前两项之和,试产生该数列的前20项,并按逆序显示出来。
8.编一个程序,程序中包含以下内容:
一个学生类(Student),包含:
属性:
学号s_No,姓名s_Name,性别s_Sex,年龄s_Age。
方法:
构造方法,显示学号方法showNo(),显示姓名方法showName(),显示性别方法showSex(),显示年龄方法showAge(),修改年龄方法modifyAge()。
主类(X4_3_2),包含:
主方法main(),在其中创建两个学生对象s1和s2并初始化,两个对象的属性自行确定,然后分别显示这两个学生的学号、姓名、性别、年龄,然后修改s1的年龄并显示修改后的结果。
9.从键盘上输入一个字符串,试分别统计出该字符串中所有数字、大写英文字母、小写英文字母以及其他字符的个数并分别输出这些字符。
10.课后习题
11.从键盘上输入一个字符串,利用字符串类提供的方法将大写字母转变为小写字母,小写字母转变为大写字母,再将前后字符对换,然后输出最后结果。