1、
(1)源程序如下:
public class One {
public static void main(String[] args) {
String name = "张三"
int age = 23
char sex = '男'
String myclass = "某某专业2班"
System.out.println("姓名:" + name)
System.out.println("姓名:" + age)
System.out.println("姓名:" + sex)
System.out.println("姓名:" + myclass)
}
}
(2)
编写完程序的后缀名是.java,如本题,文件名就是One.java。
开始\运行\cmd,进入“命令提示符窗口”,然后用javac编译器编译.java文件,语句:javac One.java。
(3)
编译成功后,生成的文件名后缀是.class,叫做字节码文件。再用java解释器来运行改程序,语句:java One
2、编写程序,输出1到100间的所有偶数
(1)for语句
public class Two1 {
public static void main(String[] args) {
for(int i=2i<=100i+=2)
System.out.println(i)
}
}
(2)while语句
public class Two2 {
public static void main(String[] args) {
int i = 2
while (i <= 100) {
System.out.println(i)
i += 2
}
}
}
(3)do…while语句
public class Two3 {
public static void main(String[] args) {
int i = 2
do {
System.out.println(i)
i += 2
}while(i<=100)
}
}
3、编写程序,从10个数当中找出最大值。
(1)for循环
import java.util.*
public class Three1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in)
int number
int max = 0
for (int i = 0i <10i++) {
System.out.print("输入第" + (i + 1) + "个数:")
number = input.nextInt()
if (max <number)
max = number
}
System.out.println("最大值:" + max)
}
}
(2)while语句
import java.util.*
public class Three2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in)
int number
int max = 0
int i = 0
while (i <10) {
System.out.print("输入第" + (i + 1) + "个数:")
number = input.nextInt()
if (max <number)
max = number
i++
}
System.out.println("最大值:" + max)
}
}
(3)do…while语句
import java.util.*
public class Three3 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in)
int number
int max = 0
int i = 0
do {
System.out.print("输入第" + (i + 1) + "个数:")
number = input.nextInt()
if (max <number)
max = number
i++
}while(i<10)
System.out.println("最大值:" + max)
}
}
4、编写程序,计算从1到100之间的奇数之和。
(1)for循环
public class Four1 {
public static void main(String[] args) {
int sum=0
for(int i = 1i<=100i+=2){
sum+=i
}
System.out.println("1~100间奇数和:" + sum)
}
}
(2)while语句
public class Four2 {
public static void main(String[] args) {
int sum = 0
int i = 1
while (i <= 100) {
sum += i
i += 2
}
System.out.println("1~100间奇数和:" + sum)
}
}
(3)do…while语句
public class Four3 {
public static void main(String[] args) {
int sum = 0
int i = 1
do {
sum += i
i += 2
} while (i <= 100)
System.out.println("1~100间奇数和:" + sum)
}
}
5、
(1)什么是类的继承?什么是父类?什么是子类?举例说明。
继承:是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类"。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,为子类追加新的属性和方法也是常见的做法。继承需要关键字extends。举例:
class A{}
class B extends A{}
//成员我就不写了,本例中,A是父类,B是子类。
(2)编写一个继承的程序。
class Person {
public String name
public int age
public char sex
public Person(String n, int a, char s) {
name = n
age = a
sex = s
}
public void output1() {
System.out.println("姓名:" + name + "\n年龄:" + age + "\n性别:" + sex)
}
}
class StudentPerson extends Person {
String school, department, subject, myclass
public StudentPerson(String sc, String d, String su, String m, String n,
int a, char s) {
super(n, a, s)
school = sc
department = d
subject = su
myclass = m
}
public void output2() {
super.output1()
System.out.println("学校:" + school + "\n系别:" + department + "\n专业:"
+ subject + "\n班级:" + myclass)
}
}
public class Five2 {
public static void main(String[] args) {
StudentPerson StudentPersonDemo = new StudentPerson("某某大学", "某某系别",
" 某专业", "某某班级", " 张三", 23, '男')
StudentPersonDemo.output2()
}
}
publicclass
student{
private
string
stuid
private
string
stuname
private
char
stusex
private
int
stuage
/**
*以下是各属性的getter/setter方法
*/
public
void
setstuid(string
stuid){
this.stuid=stuid
}
public
string
getstuid(){
return
stuid
}
public
void
setstuname(string
stuname){
this.stuname=stuname
}
public
string
getstuname(){
return
stuname
}
public
void
setstusex(char
stusex){
this.stusex=stusex
}
public
char
getstusex(){
return
stusex
}
public
void
setstuage(int
stuage){
this.stuage=stuage
}
public
int
getstuage(){
return
stuage
}
/**
*构造方法,构造学生信息
*/
public
student(string
stuid,string
stuname,char
stusex,int
stuage){
this.stuid=stuid
this.stuname=stuname
this.stusex=stusex
this.stuage=stuage
}
public
string
tostring(){//覆盖该类的tostring()方法
stringbuffer
buff=new
stringbuffer()
buff.append("学号:"+stuid)
buff.append("\n姓名:"+stuname)
buff.append("\n性别:"+stusex)
buff.append("\n年龄:"+stuage)
return
buff.tostring()
}
public
static
void
main(string[]
args){
student
stu=new
student("1000","zhangsan",'男',18)
system.out.println
(stu)//打印学生信息
system.out.println
("--修改姓名结果--")
stu.setstuname("lisi")
system.out.println
(stu)
}
}
2018年9月计算机二级考试JAVA基础试题(2)
单选题
1.下列选项中属于Java语言的垃圾回收机制的一项是()。
A.语法检查
B.堆栈溢出检查
C.跨平台
D.内存跟踪
2.使用如下()保留字可以使只有在定义该类的包中的其他类才能访问该类。
A.abstract
B.priVate
C.protected
D.不使用保留字
3.下列命令中,是Java编译命令的是()o
A.javac
.jaVa
C.javadoc
D.appletviewer
4.下面(.)是合法的标识符。
A.$persons
B.2Users
C.*point
D.this
5.下列表达式中正确的是()。
A.5++
B.(a+b)++
C.++(a+b)
D.++x
6.在Java中,所有类的根类是()。
A.java.lang.Object
B.java.lang.Class
C.java.applet.Applet
D.java.awt.Frame
7.在Java中,用package语句说明一个包时,该包的层次结构必须是()。
A.与文件的结构相同
B.与文件目录的层次相同
C.与文件类型相同
D.与文件大小相同
8.在读字符文件Employee.dat时,使用该文件作为参数的类是()。
A.BufferedReaderB.
DatalnputStream
C.DataOutputStream
D.FileInputStream
9.下列构造方法的调用方式中,正确的是()。
A.按照一般方法调用
B.由用户直接调用
C.只能通过new自动调用
D.被系统调用
参考答案
1.D。【解析】本题考查Java语言的垃圾回收机制。语法检查是编译器的一项工作,不属于垃圾回收,选项A错误堆栈溢出在解释执行时进行检查,选项B错误跨平台是Java语言的一个特点,不属于垃圾回收机制,选项C错误为了充分利用资源,Java语言提供了一个系统级的线程,用于监控内存,在必要时对不再使用的某些内存进行回收,这就是垃圾回收机制。
2.D。【解析】本题考查类的修饰符。类的默认访问控制策略是不使用保留字来定义类,这会限制其他包中的类访问该类,该类只能被同一个包的类访问和引用,也不能用import语句引用,选项D正确。protected保留字不起作用,具有protected成员的类的子类可以在包外访问这些被保护的成员。abstract修饰符修饰的类被称为抽象类,没有具体对象的概念类,不满足题意。private修饰符修饰的类只能被该类自身访问和修改,而不能被任何其他类获取和引用,不满足题意。可见本题正确答案为选项D。
3.A。【解析】本题考查Java中JDK工具。javac是Java的编译命令,能将源代码编译成字节码,以.ClaSS扩展名存入Java工作目录中。Java是Java解释器,执行字节码程序,该程序是类名所指的类,必须是一个完整定义的名字。javadoc是Java文档生成器,对Java源文件和包以XML格式生成API文档。appletviewer是JavaApplet浏览器。
4.A。【解析】本题考查Java标识符的命名,属于考试重点内容,应该掌握。Java中标识符的命名规则是:标识符以字母、下画线或美元符作为首字符的字符串序列标识符是区分大小写的标识符的字符数没有限制。由此可见,Java中标识符不能以数字开头,所以选项B错误不能以“*”开头,选项C错误this是专用标识符,具有专门的意义和用途,选项D错误,只有选项A正确。
5.D。【解析】本题考查Java中的运算符。“++”和“--”都是一元算术运算符,主要用于自加和自减,在Java中不允许对表达式进行这样的运算,选项B和选项C都是错误的,更不允许对数字进行这样的运算,选项A也错误,只有选项D正确。
6.A。【解析】本题考查考生对Java类的掌握。在Java中java.lang包封装着所有编程应用的基本类。Object是所有类的根,它所包含的属性和方法被所有类集成。Class类是由编译器自动生成对象的一个特殊类,它伴随每个类。选项C和选项D都是普通类。
7.B。【解析】本题考查Java包的概念。Java采用包来管理类名空问,为编程提供一种命名机制,也是一种可见性限制机制。定义一个包要用package关键字,用package语句说明一个包时,该包的层次结构必须与文件目录的层次相同。否则,在编译时可能出现查找不到的问题,所以选项B正确。
8.D。【解析】本题考查java.io包中的字符输入流。Java的输入输出包括字节流、文件流和对象流等,要注意区分不同流使用的不同类。字符类输入流都是抽象类InputStreamReader及其子类FileReader、BufferedReader等。选项A中BufferedReader是把缓冲技术用于字符输入流,提高了字符传送的效率,但它不能处理文件流。选项B中DataInputStream类是用来处理字节流的,实现了Datalnput接口,不能处理文件流。选项C中DataOutputStream类实现了DataOutput接口,不能处理文件流。选项D中FileInputStream可对一个磁盘文件涉及的数据进行处理,满足题目要求。
9.C。【解析】本题考查Java中的构造方法。构造方法在Java中占有非常重要的地位,务必掌握。构造方法是类中的一种特殊方法,是为对象初始化操作编写的方法,用来定义对象的初始状态。构造方法不能被程序调用,构造方法名必须与类名相同,没有返回值,用户不能直接调用,只能通过new自动调用,所以选项C正确。