java复习题集及答案(精选9篇)
1.java复习题集及答案 篇一
1. 小李有一次出差去办事,提早了回来,看见隔壁的小楼同自己的妻子睡在床上,小李为什么不生气?答案:小楼是女的
2. 小明从来没去过美国,他想去美国,至少应花多少钱?答案:光想是不用花钱的。
3. 什么饼不能吃答案:铁饼
4. 什么数字减去一半等于零答案:
5. 盒子里有四块蛋糕,有四个小朋友都分到一块,但盒子里还留下一块,为什么?答案:其中一块让小朋友连盒子一块拿走了
6. 一百个男人无法抬起的物体,却有一女子可单手举起,此物体究竟为何答案:一颗鸡蛋(仅仅一个鸡蛋,个人没法抬)
7. 什么能够击倒世界拳击冠军答案:磕睡
8. 什么车子寸步难行?(除了坏车子)答案:风车
9. 有一天,警察眼见一黑人小偷逃进一白人的宴会,追进去后,却发现全是白人,为什么?答案:因为小偷的脸吓白了
10. 个人吃份快餐需分钟,个人吃份快餐需几分钟答案:分钟
11. 《狼来了》这个故事给人什么启示?答案:谎话不要重复说两次
12. 三位兄弟分食一罐重达克的凤梨罐头。因为不易平均分成三等分,所以二位哥哥各吃克,剩下的克全部分给弟弟,但是正想去吃的弟弟突然变得十分生气。究竟这是为什么答案:因为两个哥哥吃的是克凤梨片,剩下的是克汤水
13. 一斤棉花和一斤铁块哪一样比较重?答案:一样重
14. 有爷俩,娘俩和兄妹俩,只有个烧饼,但却每人分得了两个,这是为什么?答案:他们只有三个人:儿子、母亲、舅舅
15. 一次宴会上,一对夫妻同客人共握手次,问这次宴会上共有几人?答案:人
16. 小明读小学二年级,他的家住在楼,他每次去学校都是乘电梯下去的,但放学后,乘电梯只能乘到楼为什么答案:小明不够高,按不到这个按钮
17. 袋鼠和猴子参加跳高比赛,为什么猴子一开始就赢了答案:袋鼠双脚起跳,犯规
18. 最后冒出来的牙齿是哪一颗?答案:假牙
19. “东张西望”“左顾右盼”“瞻前瞻后”这几个成语用在什么时候最合适?答案:过马路的时候
20. 一只公鸡加一只母鸡,猜三个字。答案:三只鸡
2.java基础教程试题答案 篇二
java基础教程试题答案
1. 什么是JVM?
为什么称Java为跨平台的编程语言?Java虚拟机(Java Virtual Machine)是可以执行Java字节码的虚拟机,每个Java源文件将被编译成字节码文件,然后在JVM中执行。Java之所以被设计成可以在任意的平台运行,而不需要重写或者在不同的平台下重新编译,这些都要归功于Java虚拟机(JVM),因为JVM非常了解特定的指令的长度以及底层硬件平台的特殊性。
2. JDK和JRE之间的差异是什么?
Java运行环境(Java Runtime Enviroment) 是运行Java程序的基本的Java虚拟机,包括执行applet的浏览器插件。JDK (Java Development Kit) 是为了开发,编译和执行Java应用程序,针对Java的全功能的软件开发包,包含了JRE,编译器和工具(比如说 JavaDoc 和Java Debugger)。
3.Java面向对象编程的几个特征及具体的特性?
Java面向对象编程有其非常明显的特性,比如说封装,继承,多态和抽象。
1)封装,提供的对象隐藏内部特性和行为的一种能力,每个对象提供了一些方法,其他的对象可以访问并改变其内部数据。在Java中,提供了三种访问修饰符: 公有的,私有的以及保护的。每个修饰符都设定了不同的访问权限,这个权限设置不会因为包的不同而有差异,可以通过链接访问博为峰网校的Java面向对象教程查看关于封装更多的细节和实例。
2)多态,就是针对不同的基础数据类型呈现相同接口的一种能力,多态类型就是其操作可以适用于不同类型值的一种类型。
3)继承,提供了一个对象从基类获取字段和方法的一种能力.继承提供了代码的.重用性,并且在不更改现有类的情况下,对现有类增加额外的功能。
4)抽象,是从具体的实例中分离想法的过程,根据他们各自的功能而非具体的实现来开发类. Java中支持创建和存在暴露接口的抽象类, 而没有包括方法的具体实现。抽象方法的宗旨就是将类的行为和具体实现分离开。
4. 在静态方法里可以访问非静态变量吗?
Java 中的 static 变量归相应的类所有,它的值对于类的所有实例都是相同的。static 变量是在 JVM 加载类的时候初始化的。如果代码试图访问非静态的变量,而且不是通过类的实例去访问,编译器会报错,因为这些非静态变量还没有被创建呢,并且它们没有与实例相关联。
5. 在Java中什么是方法的 Override(覆盖) 和 Overload(重载)?
Java中方法的 overload 发生的条件是,同一个类里,有两个或以上的方法名称完全相同,但参数列表不同。另一方面,方法的 override 是指,子类重定义了父类里的同一个方法。Override 的方法必须方法名、参数列表和返回类型都完全相同。Override 的方法不会限制原方法的访问权限。
6.Java支持多继承吗?
Java不支持多继承,每个类只允许继承一个类,但是可以实现多个接口。
7.进程与线程的区别?
进程是一个程序的执行(即正在运行的程序), 然而线程是在进程中独立的执行序列. 一个进程可以包含很多线程. 线程有时被称为轻量级的进程.
8. Java中垃圾回收的目的是什么, 它什么时候被使用 ?
垃圾回收用于识别和丢弃程序不再需要的对象, 以便回收和复用资源.
9. finalize()什么时候被调用 ?
它的目的是什么 ?finallize方法是在释放该对象内存前由gc(垃圾回收器)调用. 通常建议在这个方法中释放该对象持有的资源.
10.如果一个对象的引用被设置为null, gc会立即释放该对象的内存么?
3.Java经典面试题-带答案 篇三
一、单项选择题
1.Java是从()语言改进重新设计。
A.Ada
B.C++
C.Pasacal
D.BASIC
答案:B
2.下列语句哪一个正确()
A. Java程序经编译后会产生machine code
B.Java程序经编译后会产生byte code(字节码)
C.Java程序经编译后会产生DLL
D.以上都不正确
答案:B
3.下列说法正确的有()
A.class中的constructor不可省略
B. constructor必须与class同名,但方法不能与class同名
C.constructor在一个对象被new时执行(构造器)
D.一个class只能定义一个constructor
答案:C
4.提供Java存取数据库能力的包是()
A.Java.sql /sql/数据库 还有 Oracle 也是一种数据库
B.java.awt
C.java.lang
D.java.swing
答案:A
5.下列运算符合法的是()
A.&&
B.<>
C.if
D.:=
答案:A
6.执行如下程序代码
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
后,C的值是()
A.0
B.1
C.-1
D.死循环
答案:C
7.下列哪一种叙述是正确的()
A.abstract修饰符可修饰字段、方法和类
B.抽象方法的body部分必须用一对大括号{}包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号
答案:D
8.下列语句正确的是()
A.形式参数可被视为localvariable
B.形式参数可被字段修饰符修饰
C.形式参数为方法被调用时,真正被传递的参数
D.形式参数不可以是对象
答案:A
9.下列哪种说法是正确的()
A.实例方法可直接调用超类的实例方法
B.实例方法可直接调用超类的类方法
C.实例方法可直接调用其他类的实例方法
D.实例方法可直接调用本类的类方法
答案:D
二、多项选择题
1.Java程序的种类有()
A.类(Class)
B.Applet
C.Application
D.Servlet
2.下列说法正确的有()
A.环境变量可在编译sourcecode时指定
B.在编译程序时,所能指定的环境变量不包括class path
C.javac一次可同时编译数个Java源文件
D.javac.exe能指定编译结果要置于哪个目录(directory)
答案:BCD
3.下列标识符不合法的有()
A.new
B.$Usdollars
C.1234
D.car.taxi
答案:ACD
4.下列说法错误的有()
A.数组是一种对象
B.数组属于一种原生类
C.intnumber=[]={31,23,33,43,35,63}
D.数组的大小可以任意改变
答案:BCD
5.不能用来修饰interface的有()
A.private
B.public
C.protected
D.static
答案:ACD
6.下列正确的有()
A. call byvalue不会改变实际参数的数值
B. call by reference能改变实际参数的参考地址
C. call byreference不能改变实际参数的参考地址
D. call byreference能改变实际参数的内容
答案:ACD
7.下列说法错误的有()
A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
答案:ACD
8.下列说法错误的有()
A.Java面向对象语言容许单独的过程与函数存在 B. Java面向对象语言容许单独的方法存在
C.Java语言中的方法属于类中的成员(member)
D.Java语言中的方法必定隶属于某一类(对象),调用方法与过程或函数相同
答案:ABC
9.下列说法错误的有()
A.能被java.exe成功运行的javaclass文件必须有main()方法
B. J2SDK就是Java API
C.Appletviewer.exe可利用jar选项运行.jar文件
D.能被Appletviewer成功运行的javaclass文件必须有main()方法
答案:BCD
三、判断题
1.Java程序中的起始类名称必须与存放该类的文件名相同。()
答案:正确
2.Unicode是用16位来表示一个字的。()
答案:正确
3.原生类中的数据类型均可任意转换。()
答案:错误
1.分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。
答案:
BOOL : if(!a)orif(a)
int : if(a == 0)
float : const EXPRESSION EXP = 0.000001
if(a < EXP && a >-EXP)
pointer : if(a!=NULL)or if(a == NULL)
2.请说出const与#define 相比,有何优点?
答案:1)const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会产生意料不到的错误。
2)有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。
3.简述数组与指针的区别?
数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。
(1)修改内容上的差别
char a[]= “hello”;
a[0] = „X‟;
char *p = “world”;// 注意p 指向常量字符串
p[0] = „X‟;// 编译器不能发现该错误,运行时错误
(2)用运算符sizeof 可以计算出数组的容量(字节数)。sizeof(p),p为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。C++/C语言没有办法知道指针所指的内存容量,除非在申请内存时记住它。注意当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。
char a[] =“hello world”;
char *p = a;
cout<< sizeof(a)<< endl;// 12字节
cout<< sizeof(p)<< endl;// 4 字节
计算数组和指针的内存容量
voidFunc(char a[100])
{
cout<< sizeof(a)<< endl;// 4 字节而不是100字节
}
4.类成员函数的重载、覆盖和隐藏区别?
答案:
a.成员函数被重载的特征:
(1)相同的范围(在同一个类中);
(2)函数名字相同;
(3)参数不同;
(4)virtual 关键字可有可无。
b.覆盖是指派生类函数覆盖基类函数,特征是:
(1)不同的范围(分别位于派生类与基类);
(2)函数名字相同;
(3)参数相同;
(4)基类函数必须有virtual 关键字。
c.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:
(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。
(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual 关键字。此时,基类的函数被隐藏(注意别与覆盖混淆)
5.There are two int variables: a and b, don‟t use “if”, “? :”, “switch”orother judgement statements, find out the biggest one of the two numbers.答案:((a + b)+ abs(ai-1;j++){ if(data[j] > data[j+1]){ tag = true;int temp = data[j];data[j] = data[j+1];data[j+1] = temp;} } if(!tag)break;} } void main(void){ vectordata;ifstreamin(“c:data.txt”);if(!in){ cout<<“file error!”;exit(1);} int temp;while(!in.eof()){ in>>temp;data.push_back(temp);
}
in.close();//关闭输入文件流
Order(data);
ofstream out(“c:result.txt”);
if(!out)
{
cout<<“fileerror!”;
exit(1);
}
for(i = 0;i < data.size();i++)
out< 10.链表题:一个链表的结点结构 struct Node { int data; Node *next; }; typedef struct Node Node; (1)已知链表的头结点head,写一个函数把这个链表逆序(Intel) Node * ReverseList(Node*head)//链表逆序 { if(head == NULL || head->next == NULL) returnhead; Node *p1 = head; Node *p2 = p1->next; Node *p3 =p2->next; p1->next = NULL; while(p3!= NULL) { p2->next = p1; p1 = p2; p2 = p3; p3 = p3->next; } p2->next = p1; head = p2; return head; } 2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。(保留所有结点,即便大小相同) Node *Merge(Node *head1 , Node *head2) { if(head1 == NULL) return head2; if(head2 == NULL) return head1; Node *head = NULL; Node*p1 = NULL; Node *p2 = NULL; if(head1->data < head2->data) { head = head1; p1 = head1->next; p2 = head2; } else { head = head2; p2 = head2->next; p1 = head1; } Node *pcurrent = head; while(p1!= NULL && p2!= NULL) { if(p1->data <= p2->data) { pcurrent->next = p1; pcurrent = p1; p1 = p1->next; } else { pcurrent->next = p2; pcurrent = p2; p2 = p2->next; } } if(p1!= NULL) pcurrent->next = p1; if(p2!= NULL) pcurrent->next = p2; return head; } (3)已知两个链表head1 和head2各自有序,请把它们合并成一个链表依然有序,这次要求用递归方法进行。(Autodesk) 答案: Node *MergeRecursive(Node *head1 , Node *head2) { if(head1 == NULL)return head2;if(head2 == NULL)return head1;Node *head =NULL;if(head1->data < head2->data){ head = head1;head->next = MergeRecursive(head1->next,head2);} else { head = head2;head->next = MergeRecursive(head1,head2->next);} return head;} Substring charAt 大小写转换 熟练使用dbcp、c3p0 druid 解释get和post的区别? 1、安全性、如果使用get方式发送到服务器数据会拼接到url的后面,这样的话会完全暴露出发送到服务器的数据,因此不安全,而post会把发送到服务器的数据放到请求体中,相对来说比较安全 2、get方式发送到服务器的数据有限制,而post的方式发送到服务器原则上是没有限制 介绍tcp和upd的区别 Tcp:传输控制协议 Udp---user data protocol:用户数据报协议 共同点:都是用来在2台设备直接传递数据的协议 不同点: Tcp协议会在传递数据之前要3次握手,之后建立连接。这样的话就可以传递数据。是一种可靠的传输协议,就是说可以保证百分百把数据传递到对方设备,传输效率低 Udp:不可靠传输,不能保证把数据百分百把数据传输到对方设备上,传输效率高 表:销售表,客户表。两个表的关系,一个卖一个买共同的产物表:ID name 单子表 一、单项选择题 (1)Web应用程序的运行机制是(B) A.服务器向客户端发送请求 B.客户端向服务器端发送请求 C.客户端向服务器发送响应 D.服务器向客户端自动发送响应 (2)关于Web服务器的说法正确的是(C) A.只是用来存储信息 B.IIS、Tomcat、Eclipse都是Web服务器 C.负责处理用户的请求,并把请求的处理结果返回给用户 D、Web服务器必须运行在Internet上 (3)JSP是(A) A.动态网页开发语言 B.内容和显示集成在一起 C.必须运行在Tomcat服务器上 D.JSP第一次运行的效率是最高的(4)C/S结构和B/S结构的区别(C) A.B/S结构的系统用户界面必须通过IE浏览器查看 B.C/S结构的系统不能运行在Internet上 C.B/S结构的系统具有很好的重用性 D.C/S结构的系统不需要操作系统的支撑 (5)JSP和JDK的关系(A) A、JSP的编译需要JDK的支持 B、JSP的运行不需要JDK C、JDK的运行需要JSP D、JDK的编译需要JSP的支持 (6)JSP程序的运行机制(D) A.客户端发送信息给服务器 B.服务器端发送信息给客户端 C.服务器端定时传递信息给客户端 D.客户端发出请求,服务器反馈一个响应 (7)JSP中客户端的注释是(B) A.<%----%>B. C. 二、程序设计题 (1)利用javabean设计一个游戏平台的用户登录页 (gamelogin.jsp),当用户登录时把用户的名称、金钱、攻击力、法力、等级存放起来供游戏中使用。Javabean程序清单: gamelogin.jsp程序清单: (2)新建一个MySQL数据库Student,并在其中建立一个 users表,表的结构如下: 字段类型说明 IDvarchar(10)学号 loginNamevarchar(10)登录名 realNamenvarchar(10)真实名 Mobilevarchar(20)手机号 表的测试数据如下 20090701zs张三*** 20090702ls李四*** 1.使用Java语言编写的源程序保存时的文件扩展名是( )。 (A).class (B).java (C).cpp (D).txt 2.设int a=-2,则表达式a>>>3的值为( )。 (A)0 (B)3 (C)8 (D)-1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( )。 (A)a[0]; (B)a[a.length-1]; (C)a[3]; (D)int i=1; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( )。 (A)封装 (B)继承 (C)覆盖 (D)重载 5.在类的定义中构造函数的作用是( )。 (A)保护成员变量 (B)读取类的成员变量 (C)描述类的特征 (D)初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( )。 (A)try (B)break (C)catch (D)finally 7.类与对象的关系是( )。 (A)类是对象的抽象 (B)对象是类的抽象 (C)对象是类的子类 (D)类是对象的具体实例 8.下面哪一个是Java中不合法的标识符( )。 (A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( )。 (A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 11.Java源文件和编译后的文件扩展名分别为( ) (A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java 12.在Java Applet程序用户自定义的`Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。 (A) start( ) (B) stop( ) (C) init( ) (D) paint( ) 13.对于一个Java源文件,import, class定义以及package正确的顺序是: (A) package,import,class (B) class,import,package (C) import,package,class (D) package,class,import 14.下面哪个是非法的: (A) int I = 32; (B) float f = 45.0; (C) double d = 45.0; (D) char c = ‘u’; //符号错 15.Java语言使用的字符码集是 (A) ASCII (B) BCD (C) DCB (D) Unicode 16. 如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是 (A) public (B) protected (C) private (D) static 17.下面关于main方法说明正确的是 (A) public main(String args[ ]) (B) public static void main(String args[ ]) (C) private static void main(String args[ ]) (D) void main 18.哪个关键字可以对对象加互斥锁?( ) (A) transient (B) synchronized (C) serialize (D) static 19.关于抽象方法的说法正确的是( ) (A)可以有方法体 (B) 可以出现在非抽象类中 (C) 是没有方法体的方法 (D) 抽象类中的方法都是抽象方法 20.java.io包的File类是 (A)字符流类 (B) 字节流类 (C) 对象流类 (D) 非流类 21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( ) A、 String args B、String args[] C、Char arg D、StringBuffer args[] 22.以下代码段执行后的输出结果为( ) int x=-3; int y=-10; System.out.println(y%x); A、 -1 B、2 C、1 D、3 23.以下关于继承的叙述正确的是( )。 A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口 C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承 24. 若有定义:byte[] x={11,22,33,-66}; 其中0≤k≤3,则对x数组元素错误的引用是( ) A)x[5-3] B)x[k] C)x[k+5] D)x[0] 25.paint()方法使用哪种类型的参数? ( ) A、Graphics B、Graphics2D C、String D、Color 26.以下哪个不是Java的原始数据类型( ) A、int B、Boolean C、float D、char 27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( ) A) 隐藏 B) 重写 C) 重载 D) Java不支持此特性 28. 以下有关构造方法的说法,正确的是:( ) A. 一个类的构造方法可以有多个 B. 构造方法在类定义时被调用 C. 构造方法只能由对象中的其它方法调用。 D. 构造方法可以和类同名,也可以和类名不同 29.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( )。 A、init() B、start() C、destroy() D、stop() 30.给出下面代码,关于该程序以下哪个说法是正确的?( ) public class Person{ static int arr[] = new int[5]; public static void main(String a[]) { System.out.println(arr[0]); } } A、编译时将产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空 31、有以下方法的定义,请选择该方法的返回类型( )。 ReturnType method(byte x, double y) { return (short)x/y*2; } A、byte B、short C、int D、double 32.下列类定义中哪些是合法的抽象类的定义?( ) A、abstract Animal{abstract void growl();} B、class abstract Animal{abstract void growl();} C、abstract class Animal{abstract void growl();} D、abstract class Animal{abstract void growl(){System.out.println(“growl”);};} 33.有以下程序片段,下列哪个选项不能插入到行1。( ) 1. 2.public class Interesting{ 3.//do sth 4. } A、import java.awt.*; B、package mypackage; C、class OtherClass{ } D、public class MyClass{ } 34. 设有下面两个赋值语句: a = Integer.parseInt(“12”); b = Integer.valueOf(“12”).intValue(); 下述说法正确的是( )。 A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。 C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。 35.在编写Java Applet程序时,需在程序的开头写上( )语句。 A、import java.awt.* ; B、import java.applet.Applet ; C、import java.io.* ; D、import java.awt.Graphics ; 36.下列哪一项不属于Swing的顶层容器?( ) A)JApplet B)JTree C)JDialog D)JFrame 37. 为了使包ch4在当前程序中可见,可以使用的语句是( )。 A)import ch4.*; B)package ch4.*; C)ch4 import; D)ch4 package; 38. 请问所有的异常类皆继承哪一个类?( )。 A)java.io.Exception B)ng.Throwable C)ng.Exception D)ng.Error 39.进行Java基本的GUI设计需要用到的包是( )。 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21…. public class exp2{ public static void main(String args[]){ int i=0; for(i=1;i<=20;i++) System.out.println(f(i)); } public static int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); }}或public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math; for(i=1;i<=20;i++) System.out.println(mymath.f(i)); }}class math{ public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); }} 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数, 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=2;i<=200;i++) if(mymath.iszhishu(i)==true) System.out.println(i); }}class math{ public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false; return true; }} 【程序3】题目:打印出所有的 “水仙花数 “,所谓 “水仙花数 “是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 “水仙花数 “,因为153=1的三次方+5的三次方+3的三次方。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 public class exp2{ public static void main(String args[]){ int i=0; math mymath = new math(); for(i=100;i<=999;i++) if(mymath.shuixianhua(i)==true) System.out.println(i); }}class math{ public int f(int x) { if(x==1 || x==2) return 1; else return f(x-1)+f(x-2); } public boolean iszhishu(int x) { for(int i=2;i<=x/2;i++) if (x % 2==0 ) return false; return true; } public boolean shuixianhua(int x) { int i=0,j=0,k=0; i=x / 100; j=(x % 100) /10; k=x % 10; if(x==i*i*i+j*j*j+k*k*k) return true; else return false; }} 【程序4】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 public class exp2{ public exp2(){} public void fengjie(int n){ for(int i=2;i<=n/2;i++){if(n%i==0){ System.out.print(i+“*”); fengjie(n/i); } } System.out.print(n); System.exit(0);///不能少这句,否则结果会出错 } public static void main(String[] args){ String str=“”; exp2 c=new exp2(); str=javax.swing.JOptionPane.showInputDialog(“请输入N的值(输入exit退出):”); int N; N=0; try{ N=Integer.parseInt(str); }catch(NumberFormatException e){ e.printStackTrace(); }System.out.print(N+“分解质因数:”+N+“=”);c.fengjie(N); } } 【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 1.程序分析:(a> b)?a:b这是条件运算符的基本例子。 import javax.swing.*;public class ex5 { public static void main(String[] args){ String str=“”; str=JOptionPane.showInputDialog(“请输入N的值(输入exit退出):”); int N; N=0; try{ N=Integer.parseInt(str); } catch(NumberFormatException e){ e.printStackTrace(); } str=(N>90?“A”:(N>60?“B”:“C”)); System.out.println(str); } } 【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数, 1.程序分析:利用辗除法。 最大公约数:public class CommonDivisor{ public static void main(String args[]) { commonDivisor(24,32); } static int commonDivisor(int M, int N) { if(N<0||M<0) {System.out.println(“ERROR!”);return -1; } if(N==0) {System.out.println(“the biggest common divisor is :”+M);return M; } return commonDivisor(N,M%N); }}最小公倍数和最大公约数:import java.util.Scanner; public class CandC { //下面的方法是求出最大公约数public static int gcd(int m, int n) { while (true) { if ((m = m % n) == 0) return n; if ((n = n % m) == 0) return m; } } public static void main(String args[]) throws Exception { //取得输入值//Scanner chin = new Scanner(System.in); //int a = chin.nextInt(), b = chin.nextInt(); int a=23; int b=32;int c = gcd(a, b); System.out.println(“最小公倍数:” + a * b / c + “n最大公约数:” + c); } } 【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1.程序分析:利用while语句,条件为输入的.字符不为 ‘n ‘. import java.util.Scanner;public class ex7 { public static void main(String args[]) { System.out.println(“请输入字符串:”); Scanner scan=new Scanner(System.in); String str=scan.next(); String E1=“[u4e00-u9fa5]”; String E2=“[a-zA-Z]”; int countH=0; int countE=0; char[] arrChar=str.toCharArray(); String[] arrStr=new String[arrChar.length]; for (int i=0;i 【程序8】题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。 import java.io.*;public class Sumloop { public static void main(String[] args) throws IOException { int s=0; String output=“”; BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in)); System.out.println(“请输入a的值”); String input =stadin.readLine(); for(int i =1;i<=Integer.parseInt(input);i++) { output+=input; int a=Integer.parseInt(output); s+=a; } System.out.println(s); }}另解:import java.io.*;public class Sumloop { public static void main(String[] args) throws IOException { int s=0; int n; int t=0; BufferedReader stadin = new BufferedReader(new InputStreamReader(System.in)); String input = stadin.readLine(); n=Integer.parseInt(input); for(int i=1;i<=n;i++){ t=t*10+n; s=s+t; System.out.println(t); } System.out.println(s); }} 【程序9】题目:一个数如果恰好等于它的因子之和,这个数就称为 “完数 “。例如6=1+2+3.编程 找出1000以内的所有完数。 public class Wanshu { public static void main(String[] args) { int s; for(int i=1;i<=1000;i++) { s=0; for(int j=1;j 【程序10】 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高? A.1 B.2 C.3 D.4 28.要串行化某些类的对象,这些类必须实现()。 A.Serializable接口 B.java.i0.Exceptionlizable接口 C.java.i0.Datalnput接口 D.DataOutput接口 29.关于集合类描述正确的是()。 Ⅰ.集合类中容纳的都是指向Object类对象的指针 Ⅱ.集合类容纳的对象都是Object的类例 Ⅲ.只能容纳对象 IV.只能容纳基本数据类型 A.Ⅰ、Ⅱ、Ⅲ B.Ⅰ、Ⅱ C.Ⅰ、Ⅲ D.Ⅰ、Ⅱ、Ⅲ、IV 30.下列组件不能添加进Frame主窗口的是()。 A.Panel B.CheckBox C.Dialog D.Choice 31.下面程序段的输出结果为()。 packagetest; publicclassClassA { intx=20: staticinty=6; publicstaticvoidmain(Stringargs[]) { ClassBb=newClassB(); b.go(10); System.out.println(“x=”+b.x); } } classClassB { intX; voidgo(inty) { ClassAa=newClassA(); x=a.Y; } } A.x=10 B.x=20 C.x=6 D.编译不通过 32.下面程序段的输出结果为()。 publicclassTest { inta,b; Test() { a=100; b=200: } Test(intX,inty) { a=x: b=y; } publicstaticvoidmain(Stringargs[]) { TestObjl=newTest(12,45); System.OUt.println(“a=”+Objl.a+“b=”+Objl. b); TestObj2=newTest(); System.out.println(“fl=”+Obj2.a+“b=”+Obj2. b); } } A.a=100b=200 a=12b=45 B.a=12b=45 a=100b=200 C.a=12b=200 a=100b=45 D.a=100b=45 a=12b=200 33.在匹配器(Matcher)类中,用于寻找下一个模式匹配串的方法是()。 A.staticbooleanmatches() B.booleanmatcher.find() C.intmatcher.start() D.intmatcher.end() 34.下列说法正确的是()。 A.共享数据的所有访问都必须作为临界区 B.用synchronized保护的共享数据可以是共有的 C.Java中对象加锁不具有可重人性 D.对象锁不能返回 35.在JavaApplet程序中,如果对发生的事件做出响应 和处理的时候,应该使用下列()语句。 A.importjava.awt.event.*; B.importjava.io.*; C.importjava.awt.*; D.importjava.applet.*; 36.在一个容量为32的循环队列中,若头指针front一 3,尾指针rear=2,则该循环队列中共有元素个数为()。 A.29 B.30 C.31 D.32 37.Java语言中如果要使用某个包中的类时,需要使用()导人。 A.inport B.outport C.import D.input 38.执行下面程序段的输出结果为()。 publicclassQ { publicstaticvoidmain(Stringargv[]) { intanar[]一newint[5]; System.out.println(anar[0]); } } A.0 B.1 C.2 D.5 39.使得线程放弃当前分得的CPU时间,但不使线程阻塞,即线程仍处于可执行状态,随时可能再次分得CPU时间的方法是()。 A.time() B.yield() C.load() D.min() 40.以下程序计算1+1/3+1/5+…+1/(2N+1),直至1/(2N+1)小于0.00001,横线处应补充的程序是()。 publicclassSun{ publicstaticvoidmain(Stringargs[]){ intn=1: doubleterm,sum=1.0: do{ n=__; term=1.0/n; sum=sum+term; } while(term>=0.00001); System.out.println(n); 一、填空: 1.排球运动与(1895)年起源于美国,由(威廉·摩根)发明的? 2.(1947)年国际排球联合会在(法国巴黎)成立。3.我国与(1994)年加入国际排球联合会。4.当前国际排球大赛有:世界杯排球赛、(世界排球锦标赛)和(奥运会排球赛)。5.正式国际比赛,场地边线外无障碍区至少(5)米,端线外至少(8)米。6.目前排球比赛的球网高度:成人男子为(2.43)米,成人女子为(2.24)米。7.排球网上有(标志杆)和(标志带)装置。 8.队长胸前有一条长(8)厘米,宽(2)厘米带状标志。 9.在比赛中,第一裁判员的判定是(最终)判定,他(有权)改判其他裁判的错误判定。10.每局比赛中,每队最多请求(2)次暂停和(6)次换人。11.第一部排球规则是由(摩根)制定的。12.(1897)年美国出版发行了第一部排球规则用书。13.第一部排球规则用书共有(10)条规则。 14.自(1999)年(1)月(1)日开始实施每球得分制。15.排球运动于(1905)年传入我国。16.中国排球运动先后经历了(16)人制,(12)人制,(9)人制和(6)人制的发展过程。 17.第一裁判鸣哨允许发球后(8)秒后必须将球发出。 18.国际排联世界性比赛应采用(三)球制,设(6)名捡球员。19.标志杆长为(1.8)米,标志杆必须高出球网上沿(0.80)米。20.排球场边线为(18)米,端线为(9)米。 21.排球场所有划线宽度均为(0.05)米。 22.发球区宽为(9)米,发球区两侧的短线长为(15)厘米。 二、判断题 1.比赛前裁判员检查网高时,应以边线上空的球网高度为标准。(×)2.第一裁判员鸣哨允许发球后5秒内,发球队员必须将球发出。(×)3.发球队员击球时可以踏踩端线,只要不越过端线就行。 (×)4.跳起发球,击球后落入场内是允许的。(√) 5.第一裁判员可以允许一名或多名运动员不穿鞋进行比赛。(√)6.第二裁判员对背向第一裁判员的明显连击或持球应果断鸣哨。(×) 7、比赛中只有场上队长在死球时可以和裁判员讲话。(√) 8、接发球队获得发球权后,由“一”号队员发球。(×) 9、发球队员击球时的犯规与对方位置错误同时发生,判发球犯规。(√) 10、发球队员击球后的犯规与对方位置错误同时发生,判接发球队犯规。(√) 11、轮转次序出现错误不判罚,恢复到正确位置即可。(×) 12、队员的一只脚或一只手(两只脚或两只手)一部分越过中线,其余部分还接触中线或置于中线上空是允许的。(√) 13、球在甲方上空,甲乙双方同时击球,判乙方过网击球犯规。(×) 14、每局每队最多可替换六人次,每次最多可替换两人次。(×) 15、第一次被替换下场的正式队员再次上场比试,可以替换任何一名队员。(×) 16、替补队员每局只能上场比赛一次。(√) 17、同一队没有经过比赛过程再次请求换人是允许的。(×) 18、比赛中出现任何外界干扰都应停止比赛,该球重新比赛。(√) 19、每次暂停时间为1分钟,局间休息为2分钟。(×) 20、决胜局中其队获得7分时双方交换场区,休息30秒后继续比赛。(×) 21、自由防守队员不能担任队长和场上队长。(√) 22、队员可以带眼镜参加比赛,但风险自负。(√) 23、比赛中,球触及标志杆为界外球。(√) 24、排球场地边线、端线的宽度均属于场地面积。(√) 25、自1999年1月1日起实施每球得分制。(√) 26、自1999年1月1日起取消了“发球试图”,改发球时间为8秒。(√) 27、自由防守队员只允许换后排6号位队员。(×)28、1897年美国出版发行了第一部排球规则用书。(√) 三、问答题: 1、何为过网击球犯规? 2、后排队员拦网犯规的具体条件? 3、何为过网拦网犯规? 4、后排队员进攻性击球的犯规条件有那些? 5、如何判断发球集体掩护? 6、制定排球竞赛规则的目的、意义是什么? 7、第一裁判员的职责有那些? 8、第二裁判员的职责有那些? 9、比赛中,第二裁判员发现进攻队员在靠近他的一侧有明显的连击或持球动作,他能鸣哨吗?他应如何处理? 10、1999年以来规则修改的主要条款有那些? 四、实际应用题 1、编写1份我校区学生排球赛规程。 2、计算出6只球队参加单循环比赛轮次、场数并以逆时针轮转法编排出各轮的对阵顺序表。3、8个队第一阶段利用分组循环,第二阶段交叉淘汰方法进行比赛,请计算出全部比赛场数。并简述或图示第二阶段产生前四名的过程。 4、画出8个队单淘汰制对阵表及附加赛对阵表(决出1-8名)。 5、如何确定排球竞赛成绩与名次,并写出Z值、C值计算公式。 基本数据类型有四类八种 整形:byte short int long 浮点型:float double 字符型:char 布尔型:boolean 2.编码转换,把GB2312的字符串转换成ISO8859-1。 String str = “abcd”; str = new String(str.getBytes(“GB2312”), “ISO8859_1”); 3.String和StringBuffer有什么区别,“==”和equals有什么区别。 char能不能放下一个中文字符,为什么? (1)本质上的区别是:String是不可变类(immutable),而StringBuffer是可变类。 StringBuffer是可以改变字符串长度的,用append(“str”)的方法可以不断增加内容, 而String则不可以,并且相同的字符串对象是相同的地址引用, 若要String改变值,需要改变String变量的引用(指向新的对象)。 (2)== 是对引用进行判断,对内存地址的判断 equals()是判断引用的值是否相等,对实际存储的值的判断 内存地址相同的值一定相同,但值相同的内存地址就不一定相同 (3)char可以放下一个中文字符,因为java采用的是unicode编码,一个字符为两个字节。 4.写一个字符串反转的方法,把“abcdefg”转换成“gfedcba”。 String str = “abcdefg”; //方法一:利用StringBuffer的reverse()方法实现 public static String reverse2(String str) { StringBuffer sb = new StringBuffer(str); sb.reverse().toString(); return sb.toString(); } //方法二: public static String reverse(String str) { if (str == null) { throw new NullpointerException(); } return (new StringBuffer(str)).reverse().toString(); } //方法三:参照StringBuffer的reverse()方法 public static String reverse(String s){ int length=s.length(); StringBuffer result=new StringBuffer(length); for(int i=length-1;i>=0;i--) result.append(s.charAt(i)); return result.toString(); } 5.替换字符串,把“abc.abc.abc”替换成“abc/abc/abc”。 String rep = “abc.abc.abc”; String rep2 = rep.replaceAll(“.”, “/”); //由于.是特殊字符,需要加上转义,否则全部转换成/了 6.类型转换,把int类型的“123456”转换成String后再转换为int,方法越多越好。 int i = 123456; 将整数i转换成字串 s 1.) String s = String.valueOf(i); 2.) String s = Integer.toString(i); 3.) String s = “” + i; 将字串 s 转换成整数 i 1.)int i = Integer.parseInt(s); 2.)int i = Integer.parseInt(s,10);//int radix为进制 3.)int i = Integer.valueOf(s).intValue(); 注: double, float, long 转换的方法大同小异. 7.日期处理,取得从1970到现在的毫秒数,格式为yyyy-MM-dd-HH:mm:ss再转换成String输出。 //获取当前系统的时间new java.util.Date date = new java.util.Date(); //取得从1970年到现在的毫秒数 long now = date.getTime(); //格式化日期 java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”); //转为字符串 String dateStr = df.format(date); 8.io文件操作,指定一个文件夹,C:temptest,4.Java Web复习 篇四
5.JAVA期末考试复习试题 篇五
6.java复习题集及答案 篇六
7.java复习题集及答案 篇七
8.排球裁判复习题答案 篇八
9.经典java面试题及答案 篇九