Java核心技术习题答案

Java核心技术习题答案
Java核心技术习题答案

Java核心技术

习题答案

马志强张然李雷孝编

清华大学出版社

目录

第一章Java语言概述 (3)

第二章 Java语法基础 (4)

第三章面向对象编程 (15)

第四章数组 (38)

第五章高级类特性 (45)

第六章 GUI编程 (51)

第七章集合框架 (62)

第九章集合框架 (77)

第十章 IO流 (81)

第十一章 JDBC访问数据库 (84)

第十二章线程 (85)

第十三章网络编程 (90)

一、选择题

1-5 ABBBB

6-8 AAB

二、填空题

1. MyClass MyClass.class

2. String数组(String[])一

3. javac A.java java A

三、程序设计题

1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。

1)首先安装JDK;

2)配置环境变量path,classpath可配可不配;

3)FirstJava.java

public class HelloWorld{

public static void main(String[] args){

开始学习Java程序设计!");

}

}

2、修改下面四个Java源文件中的错误,使其能够编译和运行。

Test1.java:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰;

Test2.java:源文件中public修饰的类的名字为Testing2,和源文件名字不一致;

Test3.java:Test3类的main方法的形参类型为String[];

Test4.java:Test4类的main方法必须使用static关键字修饰。

一、选择题

1-5 BCADB

6-9 DCCC

二、填空题

1. abc ,a1, _abc, _1a, ab123

#a,const,$abc,1abc,if,$#1sa,$_a,_$q1

2.题目出现问题:代码修改为 ch = (char) (ch+1);结果为’B’;如果直接结果为98。

3.true(真) false(假)

4.4

5. 2 2 false 2

6.m*20/100 (double)m*20/100

三、编程题

1、由命令行输入一个成绩,使用switch结构求出成绩的等级。A:90-100;B:80-89;C:70-79;D:60-69;E:0-59。

public class IfElseTest {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int grade = sc.nextInt();

if(grade<0 || grade>100){

System.exit(0);

}

int temp =(int)Math.floor(grade/10);

switch(temp){

case 10:{

break;

}

case 9:{

break;

}

case 8:{

break;

}

case 7:{

break;

}

case 6:{

break;

}

default:{

break;

}

}

}

}

2、计算圆周率:PI=4-4/3+4/5-4/7... ...;打印出第一个大于3.1415小于3.1416的值。

public class PITest{

public static void main(String[] args){

double result=0.0;

for(int i=1;;i++){

double m=4.0/(2*i-1);

if((i%2)==0){

result-=m;

}else{

result+=m;

}

if(result>3.1415 && result<3.1416){

break;

}

}

}

}

3、输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值。斐波那契数列:1、1、2、3、5、8、13、21、3

4、……。

public class FibonacciTest{

public static void main(String[] args){

Scanner sn=new Scanner(System.in);

int num=sn.nextInt();

int i=1;

int n1=1,n2=1;

while(i<=num){

if(i==1||i==2){

n2=1;

}else{

int temp=n2;

n2=n1+n2;

n1=temp;

}

i++;

}

第"+num+"个值为:"+n2);

}

}

4、计算多项式1-1/3+1/5-1/7+1/9......的值。

1)要求出前50项和值。

2)要求出最后一项绝对值小于1e-5的和值。

public class SumTest{

public static void main(String[] args){

double sum=0.0;

for(int i=1;i<=50;i++){

if(i%2==0){

sum=sum-1.0/(2*i-1);

}else{

sum=sum+1.0/(2*i-1);

}

}

前50项和值:"+sum);

double item=0.0;

int j=1;

sum=0.0;

while(item<0.00001){

item=1.0/(2*j-1);

if(j%2==0){

sum-=item;

}else{

sum+=item;

}

j++;

}

最后一项绝对值小于1e-5的和值:"+sum);

}

}

5、产生100个0-999之间的随机整数,然后判断这100个随机整数哪些是素数,哪些不是?

public class PrimeTest {

public static void main(String[] args) {

PrimeTest t = new PrimeTest();

for(int i=0;i<100;i++){

int num = (int)(Math.random()*1000);

if(t.isPrime(num)){

是素数!");

}else{

不是素数!");

}

}

}

public boolean isPrime(int num){

for(int i=2;i<=num/2;i++){

if(num%i==0){

第一个被"+i+"整除!");

return false;

}

}

return true;

}

}

6、在屏幕上打印出n行的金字塔图案,如,若n=3,则图案如下:

*

***

*****

public class PrintStar{

public static void main(String[] args){

Scanner sn=new Scanner(System.in);

int rows=sn.nextInt();

for(int i=1;i<=rows;i++){

for(int j=1;j<=rows-i;j++){

}

for(int k=1;k<=2*i-1;k++){

}

}

}

}

7、歌德巴赫猜想,任何一个大于六的偶数可以拆分成两个质数的和,打印出所有的可能。如输入10,结果为:10=5+5;10=3+7。

public class Gede {

public static void main(String[] args) {

int n = Integer.parseInt(args[0]);

if(n<=6 || n%2!=0){

错误的参数!");

return;

}

Gede g = new Gede();

//因为1不是素数,n-2是偶数,所以从3开始循环

for(int i=3;i<=n/2;i++){

if(i%2==0){

continue;

}

if(g.isPrime(i) && g.isPrime(n-i)){

}

}

}

/**

* 判断num是否是素数

*/

public boolean isPrime(int num){

for(int i=2;i<=num/2;i++){

if(num%i==0){

return false;

}

}

return true;

}

}

四、实训题

万年历的设计与实现。

本程序包含两个类CalenderModelA和TestCalenderModelA。

CalenderModelA实现了赛事日期设置等主要功能,程序文件CalenderModelA .java。

public class CalenderModelA

{

//计算从公元始的天数

public int getNumberOfDay(int year, int month, int day)

{

int total = 0;

int limit = getTotalDaysOfMonth(year, month);

if(day<=limit)

{

for (int y = 1; y < year; y++)

{

total += (this.isLeapYear(year) ? 366 : 365);

}

for (int m = 1; m < month; m++)

{

total += (this.getTotalDaysOfMonth(year, month));

}

total+=day;

return total;

}

else

{

您输入的日期非法");

return -1;

}

}

//打印万年历

public void show(int year, int month)

{

int total = 0;

//计算从公元始到今年之前的总天数

for (int y = 1; y < year; y++)

{

total += (this.isLeapYear(y) ? 366 : 365);

}

//计算今年到本月前的总天数

for (int m = 1; m < month; m++)

{

total += (this.getTotalDaysOfMonth(year, m));

}

//计算本月1日是星期几

total = total % 7;

int d1 = (total + 1) % 7;

int d2 = this.getTotalDaysOfMonth(year, month);

年" + month + "月");

String[] s = { "日", "一", "二", "三", "四", "五", "六" };

for (int i = 0; i < 7; i++) {

}

for(int i=0;i

}

//打印本月日历

for (int i = d1,j=1; i < d1 + d2; i++,j++) {

if((i+1)%7 == 0){

}

}

}

//判断是否为闰年

public boolean isLeapYear(int year)

{

return ((year%4 == 0) && (year % 100 != 0)) || (year % 400 == 0); }

//计算某年某月天数

public int getTotalDaysOfMonth(int year, int month)

{

int total = 0;

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

total = 31;

break;

case 2:

total = this.isLeapYear(year) ? 29 : 28;

break;

case 4:

case 6:

case 9:

case 11:

total = 30;

break;

}

return total;

}

}

TestCalenderModelA实现main方法,具有输入大赛起始和终止日期,输出日历,并计算大赛周期的功能。程序文件TestCalenderModelA .java。

public class TestCalenderModelA

{

public static void main(String[] args)

{

Scanner scan = new Scanner(System.in);

请输入年份:");

int year = scan.nextInt();

请输入月份:");

int month = scan.nextInt();

月历如下");

CalenderModelA testBegin = new CalenderModelA();

testBegin.show(year, month);

}

}

第三章面向对象编程

一、选择题

1-5 CABDD

2-10 DCCBC

11-12 CC

二、填空题

1.Package mypackage?;

2.final

3.Object

4.package import class

5.c

三、程序设计题

2、按下列要求编写程序:

①创建Teacher类

要求:Teacher类要描述姓名、年龄、薪水,类型分别为String、int、double

②创建TeacherTest类

要求:在TeacherTest类中创建Teacher的对象;为该对象的属性(姓名、性别、年龄)赋值;将该对象的属性(姓名、性别、年龄)输出;

③为Teacher类添加一个方法,用于在教师原有薪水的基础上增加5000;

④修改TeacherTest类,增加对教师增加薪水方法的调用,并将增加后的薪水值输出。

Teacher.java:

public class Teacher {

public String name;

public int age;

public double salary;

public String getName() {

return name;

}

public void setName(String name) {

https://www.360docs.net/doc/2c6512119.html, = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public double getSalary() {

return salary;

}

public void setSalary(double salary) {

this.salary = salary;

}

public Teacher(){

}

public Teacher(String name,int age,double salary){

https://www.360docs.net/doc/2c6512119.html,=name;

this.age=age;

this.salary=salary;

}

public void addSalary(){

this.salary=this.salary+5000;

}

}

TeacherTest.java:

public class TeacherTest {

public static void main(String[] args) {

Teacher teacher=new Teacher();

teacher.age=35;

https://www.360docs.net/doc/2c6512119.html,="zhangsan";

teacher.salary=1234.5;

teacher.addSalary();

}

}

3、定义一个Person类。

①包含以下属性:String name; int age; boolean gender; Person partner。

②定义marry(Person p)方法,代表当前对象和p结婚,如若可以结婚,则输出恭贺信息,否则输出不能结婚原因。下列情况不能结婚:结婚年龄,男<24,女<22;3,某一方已婚。

③定义测试类,来测试以上程序。

public class Person{

private String name;

private int age;

private boolean gender;

Person partner;

public Person(String name,int age,boolean gender,Person partner){

https://www.360docs.net/doc/2c6512119.html,=name;

this.age=age;

this.gender=gender;

this.partner=partner;

}

public void marry(Person p){

if(this.gender==p.gender){

同性不能结婚!");

return;

}

if((this.gender==true && this.age<24)||(this.gender==false && this.age<22)

|| (p.gender==true && p.age<24) || (p.gender==false && p.age<22)){

没有达到结婚年龄!");

return;

}

if(this.partner!=null || p.partner!=null){

有一方已经结婚!");

return;

}

祝你们新婚愉快!");

this.partner=p;

p.partner=this;

}

public static void main(String[] args){

Person p1=new Person("关之琳",23,false,null);

Person p2=new Person("刘德华",26,true,null);

Person p3=new Person("孙楠",70,true,null);

p1.marry(p2);

p1.marry(p3);

}

}

4、定义一个Animal类,该类有两个私有属性,name(代表动物的名字)和legs(代表动物的腿的条数)。

①两个构造方法,一个无参,默认给name赋值为AAA,给legs赋值为4;另一个需要两个参数,分别用这两个参数给私有属性赋值。

②两个重载的move()方法,其中一个无参,在屏幕上输出一行文字: XXX Moving!!(XXX为该动物的名字);另一个需要一个int参数n,在屏幕上输出n次XXX Moving!!

public class Animal1 {

private String name;

private int legs;

public Animal1(){

https://www.360docs.net/doc/2c6512119.html,="AAA";

this.legs=4;

}

public Animal1(String name,int legs){

super();

https://www.360docs.net/doc/2c6512119.html,=name;

this.legs=legs;

}

public String getName() {

return name;

}

public void setName(String name) {

https://www.360docs.net/doc/2c6512119.html, = name;

}

public int getLegs() {

return legs;

}

public void setLegs(int legs) {

this.legs = legs;

}

public void move(){

}

public void move(int n){

int i=1;

while(i<=n){

i++;

}

}

}

5、定义一个Fish类,继承自Animal类。

①提供一个构造方法,该构造方法需要一个参数name,并给legs赋默认值0;

②覆盖Animal类中的无参move()方法,要求输出:XXX Swimming!! public class Fish extends Animal {

private String name;

private int legs;

public Fish(String name){

https://www.360docs.net/doc/2c6512119.html,=name;

this.legs=0;

}

public void move(){

}

}

public class Bird extends Animal {

private String name;

private int legs;

public Bird(String name){

https://www.360docs.net/doc/2c6512119.html,=name;

this.legs=2;

}

public void move(){

}

}

6、写一个类Zoo,要求分别生成若干个Animal、Fish和Bird。并调用他们的属性和方法。

public class Zoo {

public static void main(String[] args) {

Animal a=new Animal("dog",4);

a.move();

a.move(3);

Fish f=new Fish("small fish");

f.move();

Bird b=new Bird("xique");

b.move();

Animal af=new Fish("small fish");

af.move();

}

}

7、某公司的雇员分为以下若干类:

①Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。

②SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪;

③HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数;

④SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率。

⑤BasedPlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。

写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个函数,打印出某月每个员工的工资数额。注意:要求把每个类都做成完全封装,不允许非私有化属性。

class Employee{

private String name;

private int month;

public Employee(String name,int month){

https://www.360docs.net/doc/2c6512119.html,=name;

this.month=month;

}

public String getName(){

return name;

}

public double getSalary(int month){

if(this.month==month){

return 100.0;

}

return 0.0;

}

}

class SalariedEmployee extends Employee{

private double monthSalary;

public SalariedEmployee(String name,int month,double monthSalary){ super(name,month);

this.monthSalary=monthSalary;

}

public double getSalary(int month){

return monthSalary+super.getSalary(month);

}

}

class HourlyEmployee extends Employee{

private int hours;

private double hourSalary;

public HourlyEmployee(String name,int month,int hours,double hourSalary){ super(name,month);

this.hours=hours;

this.hourSalary=hourSalary;

}

public double getSalary(int month){

double result;

if(hours<=160){

result=hours*hourSalary;

}else{

result=160*hourSalary+(hours-160)*1.5*hourSalary;

}

return result+super.getSalary(month);

}

}

class SalesEmployee extends Employee{

private double salesCount;

private double rate;

public SalesEmployee(String name,int month,double salesCount,double rate){ super(name,month);

this.salesCount=salesCount;

Java基础测试题(答案)

1. 有以下程序片段,下列哪个选项不能插入到行1。( D ) 1. 2.public class Interesting{ 3.//do sth 4. } (只能有一个public修饰的class) A、import java.awt.*; B、package mypackage; C、class OtherClass{ } D、public class MyClass{ } 2. 以下哪项是接口的正确定义?( B D ) A、interface B { void print(){};} (接口里的方法都是抽象的,不能有方法体) B、abstract interface B { void print() ;} C、abstract interface B extends A1,A2 //A1、A2为已定义的接口 { abstract void print(){ };} (同上) D、interface B { void print();} 1.接口可以声明为public(公共)或默认的访问权限。接口隐含表明是抽象的(abstract)的。 2.接口的方法默认即为public(公共)且是abstract(抽象)的. 3.接口中的变量默认即为public(公共), static(静态) and final(最终的)。 接口声明编译器如何解释呢 public interface Searchable {}public abstract interface Searchable {} abstract interface Searchable {}abstract interface Searchable {} interface Searchable {}abstract interface Searchable {}

Java2实用教程(第5版)习题解答(活动za)

习题解答 习题(第章) 一、问答题 . .需个步骤: 1)用文本编辑器编写源文件。 2)使用编译源文件,得到字节码文件。 3)使用解释器运行程序。 .源文件由若干个类所构成。对于应用程序,必须有一个类含有( [])的方法,含有该方法的类称为应用程序的主类。不一定,但至多有一个类。 .:\\\\;.; .和 . .独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行)二、选择题 .。.。 三、阅读程序 .()。()两个字节码,分别是和。()得到“”,得到“: ”,得到“您好,很高兴认识您”习题(第章) 一、问答题 .用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。不是标识符。.关键字就是语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。和不是关键字。个关键字:。 .,,,,,,,。 .常量必须用或为后缀。常量用或为后缀,但允许省略后缀。 .一维数组名。二维数组名。 二、选择题 .。.。.。.。.【代码】【代码】【代码】【代码】。.。 三、阅读或调试程序 .属于操作题,解答略。

.属于操作题,解答略。.属于操作题,解答略。.【代码】:。【代码】:[]。.【代码】:。【代码】:四、编写程序 . { ( []) { (()'你'); (()'我'); (()'他'); } } . { ( [ ]) { 'α''ω'; ( <) (" "); } } 习题(第章) 一、问答题 . .不可以 . . 不是必须的 .结束语句的执行 .可以 二、选择题 .。.。.。 三、阅读程序 .你,苹,甜 .好好 . 四、编程序题 .{

Java编程基础知识点汇总及习题集答案

J a v a编程基础知识点汇总及习题集答案 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (14) 第四章循环语句 (20) 第五章方法 (26) 第六章数组 (33) 第七章面向对象 (42) 第八章异常 (63) 第一章 Java入门 知识点汇总 1、JAVA 三大体系 Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心的部分,包含Java 最核心的类库。 JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装配、部署企业级应用,包含Servlet、JSP、JavaBean、JDBC、EJB、Web Service等。 Java ME:(J2ME,Java 2

Platform Micro Edition,微型版),用于小型电子设备上的软件开发。 2、JDK,JRE,JVM的作用及关系作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 path环境变量:存放可执行文件的存放路径,路径之间 用逗号隔开 classpath环境变量:类的运行路径,JVM在运行时通过classpath加载需要的类 4、重点掌握两个程序 :Java编译器工具,可以将编写好的Java文件(.java)编译成Java字节码文件(.class); :Java运行工具,启动Java虚拟机进程,运行编译器生成的字节码文件(.class) 5、一切程序运行的入口public static void main (String args []){ World!”); } 课堂笔记

java基础笔试测试题与答案

Java 一章至五章考试 一. 填空题(8 分) 1. 面向对象的三大原则是( 封装),( 继承) 和( 多态).2 分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数).2 分 3. ( 实体) 方法和( 构造) 方法不能修饰为abstract ?2分 二.选择题(60 分) 1) 在Java 语言中,下列(a,d )是不满足命名规范的变量名。(选择二项) a) 姓名 b) $Name c) _instanceof d) instanceof 2) 下列Java 代码片段的输出结果是( a ) 。 char c='a'; int i=c; float f=i; byte b=(byte)c; System.out.println(c+","+i+","+f+","+b); a) 编译错误 b) a,97,97,97 c) a,97,97.0,97 d) a,97,97.0f,97 3) 下列Java 代码中,空白处的代码是(b,c )。( 选择两项) public interface Fee{ public float calLabFee(float unitPrice, float time); } public class FeeImpl implements Fee { public float calLabFee(float unitPrice, float time){ return unitPrice * time; } } public class FeeInterfaceTest { public static void main(String[] args){ ________________ Float labFee = fee.calLabFee(400.00,5); } }

Java2实用教程试题

课程代码:座位号: 新疆大学期末考试 《Java2实用教程》试卷 姓名:王多强 学号:20102006014专业:机械工程及自动化 第一部分选择题(共12分) 一、单项选择题(本大题共4小题,每题只有一个正确答案,答对一题得3分,共12分) 1、下面的代码段中,执行之后i 和j 的值是什么?【C 】 inti=1; intj; j=i++; A 、1,1 B 、1,2 C 、2,1 D 、2,2 2、已知如下的命令执行javaMyTestabc 【C 】 请问哪个语句是正确的? A 、args[0]="MyTestabc" B 、args[0]="MyTest" C 、args[0]="a"

D、args[2]='b' 3、以下哪个方法用于定义线程的执行体?【B】 A、start() B、init() C、run() D、main() 4、下面哪个函数是publicvoidexample(){...}的重载函数【A】 A、publicvoidexample(intm){...} B、publicintexample1(){...} C、publicvoidexample2(){...} D、以上都不对 第二部分非选择题(共88分) 二、名词解释(本大题3小题,每题4分,共12分。) 1、方法重载 答:方法重载就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。 2、构造方法 答:在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门方法即构造方法,它是一种特殊的成员方法。 3、多态 答:多态就是一个方法名可以通过不同参数(参数名,参数个数)来重复使用,表示不同的意思,即一个名字多种功能用法,分为通用的多态和特定的多态两种。

Java基础试题及其答案

Java试题 1) java程序中,main方法的格式正确的是()。(选择一项) a)static void main(String[] args) b)public void main(String[] args) c)public static void main(String[]s) d)public static void main(String[] args) 2)给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项)a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 3)在Java中,在包下定义一个类,要让包下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。 (选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; “”+new Person() toString() c) int a= 3+5 d) float f=5+; double float 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; (“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 已到文件尾,再读取抛出 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList List 有序可重复 b) HashSet Set 无序不可重复同一对象是重复 的 c) HashMap Map(key/value)重复定义:hashCode、 equals(业务) d) LinkedList List 8)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public static void main(String args[]){ int a=5;

Java核心技术习题答案

Java核心技术 习题答案 马志强张然李雷孝编 清华大学出版社 目录 第一章Java语言概述 (3) 第二章 Java语法基础 (4) 第三章面向对象编程 (15) 第四章数组 (38) 第五章高级类特性 (45) 第六章 GUI编程 (51) 第七章集合框架 (62) 第九章集合框架 (77) 第十章 IO流 (81) 第十一章 JDBC访问数据库 (84) 第十二章线程 (85) 第十三章网络编程 (90)

第一章Java语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1. MyClass MyClass.class 2. String数组(String[])一 3. javac A.java java A 三、程序设计题 1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。 1)首先安装JDK; 2)配置环境变量path,classpath可配可不配; 3)FirstJava.java public class HelloWorld{ public static void main(String[] args){ 开始学习Java程序设计!"); } } 2、修改下面四个Java源文件中的错误,使其能够编译和运行。 Test1.java:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰; Test2.java:源文件中public修饰的类的名字为Testing2,和源文件名字不一致; Test3.java:Test3类的main方法的形参类型为String[]; Test4.java:Test4类的main方法必须使用static关键字修饰。

Java基础笔试机试测试题(带答案)

Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java"中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量c的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常

Java2实用教程(第5版)习题解答

习题解答 习题1(第1 章) 一、问答题 1. James Gosling 2.需 3 个步骤: 1)用文本编辑器编写源文件。 2)使用 javac 编译源文件 ,得到字节码文件。 3)使用解释器运行程序。 3 .源文件由若干个类所构成。对于应用程序,必须有一个类含有 public static void main(String args[]) 的方法,含有该方法的类称为应用程序的主类。不一定,但至多有一个 public 类。 4. set classpath=D:\jdk\jre\lib\rt.jar;.; 5.java 和 class 6.java Bird 7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行) 二、选择题 1.B。 2. D。 三、阅读程序 1. ( a) Person.java。 ( b)两个字节码,分别是 Person.class 和 Xiti.class。 ( c)得到 “ NoSuchMethodError ”,得到“ NoClassDefFoundError: Xiti/class ”,得到“您好,很高兴认识您nice to meet you” 习题2(第2 章) 一、问答题 1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。 false 不是标识符。 2.关键字就是 Java 语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来 用。 true 和 false 不是关键字。 6 个关键字: class implements interface enum extends abstract。 3. boolean, char, byte, short, int, long, float, double。 4. float 常量必须用 F 或 f 为后缀。 double 常量用 D 或 d 为后缀,但允许省略后缀。 5.—维数组名.length。二维数组名.length。 二、选择题 1.C。 2. ADF 。 3. B。 4. BE。 5.【代码2】【代码3】【代码4】【代码5】。 6. B。

JAVA入门练习50题(含答案)

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count); } }

Java核心技术试题

一、不定向选择题(共30题,每题2分,共60分) 1、为了区分重载多态中同名的不同方法,要求( )。 A) 采用不同的参数列表B) 返回值类型不同 C) 调用时用类名或对象名做前缀D) 参数名不同 2、定义主类的类头时可以使用的访问控制符是( )。 A) private B) protected C) public D) private protected 3、下列整型的常量属性i 的定义中,正确的是( )。 A) static final int i=100; B) final int i; C) static int i; D) final float i=1.2f; 4、设x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( )。 A) public x x1= new y( ); B) x x1=x( ); C) x x1=new x( ); D) int x x1; 5、下列方法定义中,正确的是( )。 A) int x( int a,b ) B) double x( int a,int b) { return (a-b); } { int w; w=a-b; } C) double x( a,b ) D) int x( int a,int b) { return b; } { return a-b; } 6、为了使包sos在当前程序中可见,可以使用的语句是( )。 A)import sos.*; B)package sos.*; C)sos import; D)sos package; 7、设i、j、k 为类X 中定义的int 型变量名,下列类X 的构造函数中正确的是( )。 A) X( int i){ ... } B) void X( int i){ ... } C) X( int i, int j){ ... } D)X( int i,int j,int k){ ... }

java2实用教程第4版_习题解答

习题解答 习题一(第1章) 一、问答题 1.James Gosling 2.需3个步骤: 1)用文本编辑器编写源文件。 2)使用javac编译源文件,得到字节码文件。 3)使用解释器运行程序。 3.由类所构成,应用程序必须有一个类含有public static void main(String args[])方法,含有该方法的类称为应用程序的主类。不一定,但最多有一个public类。 4.set classpath=D:\jdk\jre\lib\rt.jar;.; 5.java和class 6. java Bird 7.独行风格(大括号独占行)和行尾风格(左大扩号在上一行行尾,右大括号独占行) 二、选择题 1.B。2.D。 三、阅读程序 1.(a)Person.java。(b)两个字节码,分别是Person.class和Xiti.class。(c)得到“NoSuchMethodError”,得到“NoClassDefFoundError: Xiti/class”,得到“您好,很高兴认识您nice to meet you” 习题二(第2章) 一、问答题 1.用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列称为标识符。标识符由字母、下划线、美元符号和数字组成,第一个字符不能是数字。false不是标识符。2.关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。不是关键字。class implements interface enum extends abstract。 3.boolean,char,byte,short,int,long,float,double。 4.float常量必须用F或f为后缀。double常量用D或d为后缀,但允许省略后缀。5.一维数组名.length。二维数组名.length。 二、选择题 1.C。2.ADF。3.B。4.BE。5.【代码2】【代码3】【代码4】【代码5】。6.B。

JAVA试题及答案

JA V A语言基础内部测试题 选择题(针对以下题目,请选择最符合题目要求的答案,针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。)(每题2分) 没有注明选择几项的,只选择一项 1、JAVA所定义的版本中不包括:() A、JAVA2 EE B、JAVA2 Card C、JAVA2 ME D、JAVA2 HE E、JAVA2 SE 2、下列说法正确的是() A、JAVA程序的main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样 D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来 3、Java中,在如下所示的Test类中,共有()个构造方法。 public class Test{ private int x; public Test(){ x=35; } public void Test(double f){ =(int)f; } public Test(String s){} } A、0 B、 1 C、 2 D、3 4、变量命名规范说法正确的是() A、变量由字母、下划线、数字、$符号随意组成; B、变量不能以数字作为开头; C、A和a在java中是同一个变量; D、不同类型的变量,可以起相同的名字; 5、下列javaDoc注释正确的是() A、/*我爱北京天安门*/

B、quals("john") C、"john" = "john" D、"john".equals(new String("john")) 6、下列输出结果是() int a = 0 ; while ( a < 5 ) { switch(a){ case 0: case 3 : a = a + 2; case 1 : case 2 : a = a + 3; default : a = a + 5; } } ( a ) ; A、0 B、5 C、10 D、其他 7、下列代码输出结果是( ) int i = 10; while ( i > 0 ){ i = i + 1; if ( i = =10 ){ break; } } A.while循环执行10次 B.死循环 C.循环一次都不执行 D.循环执行一次 8、下面有关for循环的描述正确的是() A、for循环体语句中,可以包含多条语句,但要用大括号括起来 B、for循环只能用于循环次数已经确定的情况 C、在for循环中,不能使用break语句跳出循环 D、for循环是先执行循环体语句,后进行条件判断 9、下列()属于引用数据类型(选择两项) A、String B、char C、用户自定义的Student类类型

Java核心技术复习题答案

Java核心技术习题答案 马志强然雷孝编 清华大学

目录 第一章Java语言概述 (3) 第二章 Java语法基础 (4) 第三章面向对象编程 (16) 第四章数组 (40) 第五章高级类特性 (47) 第六章 GUI编程 (53) 第七章集合框架 (64) 第九章集合框架 (80) 第十章 IO流 (84) 第十一章 JDBC访问数据库 (87) 第十二章线程 (88) 第十三章网络编程 (93)

第一章Java语言概述 一、选择题 1-5 ABBBB 6-8 AAB 二、填空题 1. MyClass MyClass.class 2. String数组(String[])一 3. javac A.java java A 三、程序设计题 1、搭建Java运行环境,并写一个Java程序打印输出“开始学习Java程序设计!”。 1)首先安装JDK; 2)配置环境变量path,classpath可配可不配; 3)FirstJava.java public class HelloWorld{ public static void main(String[] args){ System.out.println("开始学习Java程序设计!"); } } 2、修改下面四个Java源文件中的错误,使其能够编译和运行。 Test1.java:TestAnother1类不能再使用public修饰,一个源文件中只能有一个类或者接口用public修饰; Test2.java:源文件中public修饰的类的名字为Testing2,和源文件名字不一致; Test3.java:Test3类的main方法的形参类型为String[]; Test4.java:Test4类的main方法必须使用static关键字修饰。

java2实用教程试题

第1章Java 语言入门 1-1开发与运行Java程序需要经过哪些主要步骤和过程? 1-2怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗? 1-3Java程序是有什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的? 1-4在运行小应用程序的html文件中可以使用codebase属性制定小应用程序的字节码所驻留的目录。如果不使用codebase属性,小应用程序的字节码文件必须和运行它的html在同一目录中,编写一个小应用程序并将它的字节码存放在某个目录中,比如c:\Boy. 把运行该小应用程序的html文件(注意其中的codebase属性): < applet code=你的小程序的字节码wdith=20 height=30 codebase=c:\boy> 存放在另一个目录中(查阅有关编写网页方面的书籍,会有更 详细的关于怎样在一个网页中嵌入一个小应用程序的讲解)。 第2章标识符、关键字和数据类型 2-1上机运行下列程序,注意观察输出的结果。

public class E { public static void main ( string args [ ] ) { for (int i=20302; i<=20302; i++) { System.out. println (( char ) i ); } } 2-2System.out. println (“你好”);可输出字符串值,也可以使用System.out. println()输出变量或表达式的值,只需使用并置 符号:“+”将变量、表达式或一个常数值与一个字符串并置即 可,如System.out. println(“”+x);System.out. println(“:” +123+“大于”+122)等。上机调试下列程序,注意观察结果,特别注意System.out. print()和System.out. println()的区 别。 public class OutputData { public static void main ( string args [ ] ) { int x=234, y=432 ; System.out. println (“:” +x+“<”+2*x); System.out. print (“我输出结果后不回车“); System.out. println (“我输出结果后自动回车到下一行”); } }

Java基础试题

考砸了,把做错的题目重新复习一下对应的知识点 一、单项选择(每题2.5分,20 * 2.5’=50’)A 1.下面哪种情况属于方法重载。 A)方法名相同,参数类型与个数不同 B)方法参数类型相同 C)方法参数个数相同 D)方法名相同,方法参数类型与个数也相同 2.你想用下面的代码查找数组最后一个元素的值,当你编译并运行它的时候,会发 生什么?C public class MyAr{ public static void main(String argv[]){ int[] i = new int[5]; System.out.println(i[5]); } } A).编译通过并输出0 B).编译通过并输出 null C).编译通过但发生运行时错误 D).编译出错 3.JFrame的默认布局管理器是什么?C 4.Frame 的默认布局是FlowLayout 5.JFrame的默认布局是BorderLayout A)FlowLayout B)GridLayout C)BorderLayout D)CardLayout 6.给定下面的类定义D class Base{ Base(int i){} } class DefCon extends Base{ DefCon(int i){ //XX } } 如果将标记//XX 的地方替换为下面的行,哪一行是独立合法的? A).super(); B).this();

C).this(99); D).s uper(99); 7.启动线程方法正确的是___D________。 A)run( )方法 B)suspend( )方法 C)stop( )方法 D)start( )方法 6、在Java中,调用Math.random() 方法可能返回的结果是(B) Math.random 返回的是一个double值此值大于0.0 且小于1.0 A)132.34 B)0.342 C)29.34E10 D) 1.0009 7、下面的哪一个声明是合法的?B A) public protected amethod(int i) B) public void amethod(int i) C) public void amethod(void) D) void public amethod(int i) 8、假设有以下Java代码:C import java.applet.*; import java.awt.*; public class My_Applet extends Applet { … } 如果要在HTML页中嵌入以上Applet,可按下面()方式完成。(选择一项) A) B) C) D) 9、在Java中,要想使只有定义该类所在的包内的类可以访问该类,应该用(A)关 键字。 A)不需要任何关键字 B)private C)final D)protected 10、下述哪些说法是正确的?A

Java2实用教程试题综合

可选试题 判断题 ×1.Java是低级语言 √2.Java是面向对象的程序设计语言 ×3.Java是编译型的计算机语言 √5.Java源程序文件的后缀是.java ×10.一个Java源程序文件中可以有多个public类 √11.一个Java源程序中可以有多个类 ×12.一个Java Applet源程序的主类可以有多个父类 √13.Java应用程序的入口方法是main √14.Java应用程序(Application)的主类中一定要有主方法(main) √16.Java小程序(Applet)的主类的父类必须是类Applet ×17.Java语言中的逻辑变量可以和整型变量相互强制转换 ×18.在程序中可对用final修饰的变量的值进行更改 ×27.双精度数强制转换成单精度数后,其数值精度提高 ×11.方法可以有多个返回值 ×5.重载的方法可以通过它们的返回值类型的不同来区分 √16.定义在方法体中的变量能与定义在方法体外的变量同名 √6.一个对象一定要属于某个类 ×7.构造函数的方法名可由编程人员任意命名 √8.类的构造函数名必须和类名相同 √10.构造函数可以重载 ×11.如果一个类定义中没有定义构造函数,该类就没有构造函数 √12.如果一个类定义中已经定义了构造函数,java不会再给它提供默认的构造函数 ×11.静态属性和静态方法属于类的一个具体对象 √12.static 变量能是private 变量 ×14.static方法能处理非static成员 √15.非static方法能处理static成员 ×16.static方法中能有this引用 ×18.类的私有属性和私有方法能被其子类直接访问 √12.子类的成员变量能与其父类的成员变量同名 ×14.子类可以重新定义从父类继承来的同名方法,并且允许它们有不同类型的返回值 √15.接口支持多继承(extends) √15.一个接口能够继承(extends)多个接口 ×7.抽象类只能做为父类 ×8.可以定义抽象类的对象 √9.抽象方法能被继承 √10.抽象方法只能存在于抽象类或接口中

最新Java基础试题及其答案

Java试题 一单项选择 1)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。() a)protected b)private c)public d)friendly 2)在Java中,下列()语句不能通过编译。(选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 3)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; s.concat(“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 4) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList b) HashSet c) HashMap d) LinkedList 5)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public staticvoid main(String args[]){ int a=5; System.out.println(a%2==1) ?(a+1) /2:a/2) ; } } (选择一项) a)1 b)2 c)2.5 d)3 6)以下Java语句中,String str = “123456789”;str =str.subString(1,3);执行后str中的值为。(选择一项) a) “23” b)“123”

JAVA核心技术基础试题

《JAVA编程初步》测试题 一、选择题 1、关于被私有保护访问控制符private protected修饰的成员变量,以下说确的是()。 A、可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B、可以被两种类访问和引用:该类本身、该类的所有子类 C、只能被该类自身所访问和修改 D、只能被同一个包中的类访问 2、以下代码段将创建()个对象。 String s1="bc"; String s2="bc"; A、0 B、1 C、2 D、3 3、编译并运行以下程序,以下描述哪个选项是正确的() 1:class X{ 2:protected String toString(){ 3:return super.toString();} 4:} A、编译通过运行无异常 B、编译通过但运行时出错 C、行2出错,不能成功编译 D、不能成功编译,行3出错 4、下列关于修饰符混用的说法,错误的是() A、abstract不能与final并列修饰同一个类 B、abstract类中不可以有private的成员 C、abstract方法必须在abstract类中 D、static方法中能处理非static的属性 5、容器Panel和Applet缺省使用的布局编辑策略是() A、BorderLayout B、FlowLayout C、GridLayout D、CardLayout 6、以下标识符中哪项是不合法的( ) A、BigMeaninglessName B、$int C、1 st D、$1 7、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的() A、public static void main() B、public static void main(String[ ] args) C、public static int main(String[ ] arg) D、public void main(String arg[ ]) 8、执行完以下代码int [ ] x = new int[25];后,以下哪项说明是正确的() A、x[24]为0 B、x[24]未定义 C、x[25]为0 D、x[0]为空 9、以下代码段执行后的输出结果为()

java基础测试题_含答案

姓名 一、选择题(每题2分,共30分) 1.请写出标识符的命名规则描述正确的是[多选]( ABCD ) A、由英文字母、数字、_和$组成,长度不限。 B、标识符的第一个字符不能是数字 C、标识符区分大小写。 D、标识符不能包含空格。 2. 下列属于正确标识符的选项有[多选](BDGH) A. int B. $_Count C. 3M D. Hello E. b-7 F. ms#d G. bool H. D9658 3、下列哪一个不属于java的基本类型( B ) A、int B、String C、float D、byte 4、下列那条语句能编译通过( A ) A、String String=”String”; B、float float=””; C、int int = 11; D、int i= ; 5、下列代码的执行结果是: ( D ) public class Test1{ public static void main(String args[]){ float t=; int q=5; }

} A、 40 B、 C、36 D、 6、int长度描述正确的是( A ) A、-2^31到2^31 - 1 B、-2^32到2^32 - 1 C、-2^7到2^7 - 1 D、-2^8到2^8 - 1 7、关于==和equals方法描述不正确的是( D ) A、==是运算符、equals是方法 B、==只比较对象,equals会先比较对象,如果不是一个对象,会对对象的值进行比较。 C、String a= "1"; String b= "1"; 输出结果为:true D、String a=new String("1");String b=new String("1"); 输出结果为:true 8、下列关于哪个不属于java的特性( D ) A、封装 B、继承 C、多态 D、重载 9、某一个子类要继承一个父类,要使用关键字( B ) A、import B、extends C、implements D、java 10、某一个子类要实现一个父接口,要使用关键字( C ) A、import B、extends C、implements D、java 11、以下关于接口和类的说法正确的是( C ) A、接口和类都可以实现多重继承 B、子类可以继承多个父类 C、子类可以实现多个接口 D、一个子类不能同时继承某一个父类和实现某一个接口 12、一个非抽象子类,如果要实现某个接口,则( A ) A、必须实现该接口中的所有抽象方法 B、可以实现部分抽象方法 C、可以不实现任何抽象方法

相关文档
最新文档