java集合编程练习题及答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

java集合编程练习题及答案
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....
public class exp2{
public static void main{
int i=0;
for
System.out.println);
}
public static int f
{
if
return 1;
else
return f+f;
}
}

public class exp2{
public static void main{
int i=0;
math mymath = new math;
for
System.out.println);
}
}
class math
{
public int f
{
if
return 1;
else
return f+f;
}
}
题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt,如果能被整除,
则表明此数不是素数,反之是素数。

public class exp2{
public static void main{
int i=0;
math mymath = new math;
for
if==true)
System.out.println;
}
}
class math
{
public int f
{
if
return 1;
else
return f+f;
}
public boolean iszhishu
{
for
}if return false; return true; }
题目:打印出所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

public class exp2{
public static void main{
int i=0;
math mymath = new math;
for
if==true)
System.out.println;
}
}
class math
{
public int f
{
if
return 1;
else
return f+f;
}
public boolean iszhishu
{
for
if
return false;
return true;
}
public boolean shuixianhua
{
int i=0,j=0,k=0;
i=x / 100;
j= /10;
k=x % 10;
if
return true;
else
return false;
}
}
题目:将一个正整数分解质因数。

例如:输入90,打
印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

如果n k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。

如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

public class exp2{
public exp2{}
public void fengjie{
for{
if{
System.out.print;
fengjie;
}
}
System.out.print;
System.exit;///不能少这句,否则结果会出错
}
public static void main{
String str=““;
expc=new exp2;
str=javax.swing.JOptionPane.showInputDialog;
int N;
N=0;
try{
N=Integer.parseInt;
}catch{
e.printStackTrace;
}
System.out.print;
c.fengjie;
}
}
题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

1.程序分析:?a:b这是条件运算符的基本例子。

import javax.swing.*;
public class ex{
public static void main{
String str=““;
str=JOptionPane.showInputDialog;
int N;
N=0;
try{
N=Integer.parseInt;
}
catch{
e.printStackTrace;
}
str=);
System.out.println;
}
}
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

最大公约数:
public class CommonDivisor{
public static void main
{
commonDivisor;
}
static int commonDivisor
{
if
{
System.out.println;
return -1;
}
if
{
System.out.println;
return M;
}
return commonDivisor;
}
}
最小公倍数和最大公约数:
import java.util.Scanner; public class CandC
{
//下面的方法是求出最大公约数 public static int gcd
{
while
{
if == 0)
return n;
if == 0)
return m;
}
}
public static void main throws Exception
{
//取得输入值
//Scanner chin = new Scanner; //int a = chin.nextInt, b = chin.nextInt;
int a=23; int b=32;
int c = gcd;
System.out.println;
}
}
经典算法
public static int gongyue {
while {
int temp = m % n;
m = n;
n = temp;
}
return n;
}
//求m和n的最小公倍数
public static int gongbei {
return m * n / gongyue;
}
}
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1.程序分析:利用while语句,条件为输入的字符不为‘\n ‘.
import java.util.Scanner;
public class ex{
public static void main {System.out.println;Scanner scan=new Scanner;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
{ arrStr[i]=String.valueOf;}for { if ) { countH++; } if ) { countE++; }}System.out.println;System.out.printl n; } }
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222,几个数相加有键盘控制。

1.程序分析:关键是计算出每一项的值。

import java.io.*;
public class Sumloop {
public static void main throws IOException
{
int s=0;String output=““;BufferedReader stadin = new BufferedReader);System.out.println;String input =stadin.readLine;for;i++)
Java编程题集合
题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
import java.util.Scanner;
public class lianxi3{
public static void main { int N =10;
int[] a = new int[N];
Scanner s = new Scanner; System.out.println;
for {
a[i] = s.nextInt;
}
System.out.print;
for {
System.out.print;
}
System.out.print;
int m = s.nextInt;
int[] b = new int[m];
for {
b[i] = a[N-m+i];
}
for {
a[i] = a[i-m];
}
for {
a[i] = b[i];
}
System.out.print;
for {
System.out.print;
}
}
}
题目:有n个人围成一圈,顺序排号。

从第一个人开始报数,凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

import java.util.Scanner;
public class lianxi3{
public static void main {
Scanner s = new Scanner;
System.out.print;
int n = s.nextInt;
boolean[] arr = new boolean[n];
for {
arr[i] = true;
}
int leftCount = n;
int countNum = 0;
int index = 0;
while {
if {
countNum ++;
if {
countNum =0;
arr[index] = false;
leftCount --;
}
}
index ++;
if {
index = 0;
}
}
for {
if {
System.out.println+”位的人留下了。

”); }
}
}
}
题目:写一个函数,求一个字符串的长度,在main 函数中输入字符串,并输出其长度。

/*………………
*……题目意思似乎不能用length函数 */
import java.util.*;
public class lianxi3{
public static void main {
Scanner s = new Scanner;
System.out.println;
String str = s.nextLine;
System.out.println);
}
}
★第一章 Java语言概论★第二章 Java语言基础★第三章面向对象程序设计★第四章 Java小应用程序★第五章异常处理★第六章图形与用户界面技术
★第七章多线程★第八章多媒体编程★第
九章输入与输出流
★第十章网络通讯与编程★第十一章 Java语言的
数据库访问技术
第一章 JAVA语言概论
一、选择题
1. 下列不属于java语言鲁棒性特点的是:
A. java能检查程序在编译和运行时的错误
B.java 能运行虚拟机实现跨平台
C.java 自己操纵内存减少了内存出错的可能性
D. java 还实现了真数组,避免了覆盖数据的可能
2. java语言的执行模式是:
A. 全编译型
B.全解释型
C.半编译和半解释型
D. 同脚本语言的解释模式
3. 下列关于虚拟机说法错误的是:
A. 虚拟机可以用软件实现
B.虚拟机不可以用硬件实现
C.字节码是虚拟机的机器码
D. 虚拟机把代码程序与各操作系统和硬件分开
4. java语言是1995年由公司发布的
A. Sun
B.Microsoft
C.Borland
D. Fox Software
5. 下列不是虚拟机执行过程特点的是
A. 双线程
B.多线程
C.动态链接
D. 异常处理
6. java以JVM为基础,最下层是移植接口,由适配器和组成
A. 网卡
B.Java os
C.Java基本类
D. Java 应用程序和applet小程序
7. java程序的执行过程中用到一套JDK工具,其中javac.exe指
A. java语言编译器
B.java字节码解释器
C.java文档生成器
D. java类分解器
8. java的API结构中,不属于类库主要包括的核心包的是
A. java包
B.javax
C.javadoc包
D. org扩展包
9. 每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有类或者界面是公共的
A. 一个
B.两个
C.四个
D. 任意多个
10.在当前的java实现中,每个编译单元就是一个以为后缀的文件
A. java
B.class
C.doc
D. exe
二、填空题
1. 1991年,SUN公司的Jame Gosling和Bill Joe 等人,为电视、控制烤面包机等家用电器的交互操作开发了一个____软件,它是java的前身。

2. java是一个网络编程语言,简单易学,利用了____的技术基础,但又独立于硬件结构,具有可移植性、健壮性、安全性、高性能。

3. java可以跨平台的原因是____
4. JVM的执行过程有三个特点:多线程,_____,异常处理;
5. JAVA程序的安全性体现在多个层次上,在_____,有语法检查;在解释层上,有字节码校验器、测试代码段格式和规则检查,访问权限和类型转换和法性检查,操作数堆栈的上溢或下溢,代码参数类型合法性等;在平台层上,通过配置策略,可设定访问资源域,而无需区分本地或远程。

6. JAVA的产品主流操作系统平台是Solaris、_____和Macintosh.
7. JAVA系统运行时,通过______机制周期性的释放无用对象所使用的内存,完成对象的清除。

8. 在JAVA语言中,将后缀名为______的源代码文件编译后形成后缀名为.class的字节码文件。

9. JAVA语言的执行模式是半编译和______。

10. JAVA类库具有_____的特点,保证了软件的可移植性。

11. 在编写执行JAVA程序的过程中需要用到一些工具,SUN公司为我们提供了一套JDK工具,它主要包括:javac.exe、java.exe、_____、javap.exe、jkb.exe
12. JAVA程序包括源代码、______、由归档工具jar 生成的.jar文件、对象状态序列化.ser文件。

13. 在JAVA语言中,为将源代码翻译成______文件
时产生的错误称为编译错误。

而将程序在运行中产生的错误称为运行错误。

14. Java Application应用程序的编写和执行分3步进行:编写源代码、编译源代码、_____。

15. 每个java应用程序可以包括许多方法,但必须有且只能有一个_____方法。

16. JAVA源文件中最多只能有一个_____类,其它类的个数不限。

17. JAVA的体系结构中,最下层是移植接口,上面一层是虚拟机,虚拟机的上层是_____和基本API,它们都是具有可扩展性。

18. 类库主要包括核心JAVA包、_____和org扩展包。

19. JAVA解释器采用生成与体系结构无关的______指令的技术,只需安装JAVA运行系统,就可保证JAVA程序可以在网络的任何地方运行。

20. JAVA的体系结构中,最下层是_____,由适配器和JAVA OS组成,保证JAVA体系结构可以跨平台。

第二章 Java语言基础
一选择题
1. 下列java标识符,错误的是
_sys_varl
$change
User_name
1_file
下列不属于简单数据类型的是
整数类型

符点数类型
布尔类型
下列属于JAVA关键词的是
TRUE
goto
float
NULL
下列声明和赋值语句错误的是
double w=3.1415;
String strl=”bye”;
float z=6.74567
boolean truth=true;
java中,八进制数以______开头。

0x
0X
08
自定义类型转换是由按优先关系从低级数据转换为高级数据,优先次序为
char-int-long-float-double
int-long-float-double-char
long-float-int-double-char
以上都不对。

相关文档
最新文档