Java编程练习题
- 格式:doc
- 大小:189.00 KB
- 文档页数:26
java集合编程练习题及答案题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....public class exp2{public static void main{int i=0;forSystem.out.println);}public static int f{ifreturn 1;elsereturn f+f;}}或public class exp2{public static void main{int i=0;math mymath = new math;forSystem.out.println);}}class math{public int f{ifreturn 1;elsereturn f+f;}}题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt,如果能被整除,则表明此数不是素数,反之是素数。
public class exp2{public static void main{int i=0;math mymath = new math;forif==true)System.out.println;}}class math{public int f{ifreturn 1;elsereturn f+f;}public boolean iszhishu{for}if return false; return true; }题目:打印出所有的“水仙花数“,所谓“水仙花数“是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数“,因为153=1的三次方+5的三次方+3的三次方。
1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
大学 —— 学年第 学期 《 Java 程序设计 》课程试题 课程号: √ 考试 □ A 卷 √ 闭卷 □ 考查 □ B 卷 □ 开卷一、单项选择题(20题;每题2分,共40分) 1、Java 语言具有许多的优点和特点,下列的选项___反映了Java 程序并行机制的特点。
A )安全性 B )多线程 C )跨平台 D )可移植 答案: B 知识点: java 基础 难度系数C 2、下列关于JAVA 语言特点的叙述中,错误的是____。
A )Java 是面向过程的编程语言 B )Java 支持分布式计算 C )Java 是跨平台的编程语言 D )Java 支持多线程 答案:A 知识点: java 基础 难度系数C 3、定义私有的成员函数或成员变量,正确的是____。
A )不需要定义,缺省的访问级就是私有级 B )在类的开头部分集中定义 C )成员函数需要定义,而成员变量不需要定义 D )利用private 关键字定义答案: D 知识点: 类成员 难度系数C4、下列语句正确的是________。
A )int a={1,2,3}B )int b=(1,2,3);C )int c[]={1,2,3}D )int []d={1 2 3}(难度系数C )答案:C 知识点:数组班级:姓名: 学号:试题共页加白纸张密封线5、在编写异常处理的Java程序中,每个catch语句块都应该与___语句块对应,使得用该语句块来启动Java的异常处理机制。
A)if – else B)switch C)try D)throw(难度系数B)答案:C知识点:异常6、下列表述中,不正确的是___。
A)标识符区分大小写B)改变变量的值不会改变其存储位置C)常量可以完全大写D)单精度变量赋值常数后面的字母“f”可以省略答案:D知识点:变量难度系数C7、下列陈述正确的是_________。
A)一个组件只能发生一种事件B)一个监听器处理一种事件C)多个事件监听器被注册到一个组件会引起编译错误D)如果多个事件监听器被注册到一个组件上,这些事件监听器一般都会起作用,但各个事件的处理顺序不确定(难度系数A)答案:D知识点:事件处理8、________属于容器的构件。
大学 —— 学年第 学期 Java 程序设计 ?课程试题 课程号: √ 考试 □ A 卷 √ 闭卷 □ 考察 □ B 卷 □ 开卷一、单项选择题〔20题;每题2分, 共40分〕 1.165/2的值是___。
A 〕0 B 〕82 C 〕3 D 〕83 答案: B 〔难度系数 C 〕知识点: 表达式 2.在HTML 中,用________标签来强制显示Applet 。
A 〕 name,height,width B 〕codebase, height,width C 〕 code, name D 〕 code, height,width 答案: D 〔难度系数B 〕 知识点: 小应用程序 3、 在Java Applet 程序用户自定义的Applet 子类中, 一般需要重载父类的_____方法来完成主类实例的初始化工作。
A 〕start( ) B 〕 stop( ) C 〕init( ) D 〕paint( ) 答案: C 〔难度系数C 〕 知识点: 小应用程序 4.创立一个标识有“关闭〞按钮的语句是___。
A 〕 TextField b = new TextField(“关闭〞); B 〕 Label b = new Label(“关闭〞);C 〕 Checkbox b = new Checkbox(“关闭〞);D 〕 Button b = new Button(“关闭〞);答案: D 〔难度系数C 〕 知识点: GUI 编程5、在编写异常处理的Java 程序中, 每个catch 语句块都应该与___语句块对应,使得用该语句块来启动Java 的异常处理机制。
6.以下关于循环语句描述正确的选项是___。
班级:姓名: 学号:试题共页加白纸张密封线A〕for循环不可能产生死循环B〕while循环不可能产生死循环C〕for循环不能嵌套while循环D〕即使条件不满足do……while循环体内的语句也至少执行一次答案: D〔难度系数B〕知识点: 循环7、以下描述正确的选项是___。
java经典编程题目
以下是一些经典的Java编程题目,这些题目可以帮助你提高编程技巧和解决问题的能力:
1.反转字符串:编写一个Java方法,将给定的字符串反转。
2.斐波那契数列:编写一个Java方法,计算并返回斐波那契数列的第n项。
3.查找最大和最小元素:编写一个Java方法,在一个整数数组中查找最大和最小元素。
4.反转数组:编写一个Java方法,将给定的整数数组反转。
5.判断回文:编写一个Java方法,判断给定的字符串是否是回文。
6.计算阶乘:编写一个Java方法,计算给定整数的阶乘。
7.冒泡排序:编写一个Java方法,对给定的整数数组进行冒泡排序。
8.二分查找:编写一个Java方法,在已排序的整数数组中查找指定的元素。
9.合并两个有序数组:编写一个Java方法,将两个已排序的整数数组合并为一个新的已排序数组。
10.实现二叉树:编写一个Java类,实现二叉树数据结构,并实现插入、查找和删除节点的方法。
这些题目可以帮助你掌握Java编程的基础知识和技能,提高你的编程能力和解决问题的能力。
java面向对象练习题# Java面向对象练习题一、选择题1. 在Java中,以下哪个关键字用于定义类的访问权限为“仅包内可见”?- A. public- B. private- C. protected- D. 默认(不写访问修饰符)2. 以下哪个是Java中的构造方法?- A. 与类名相同,没有返回类型的方法- B. 与类名不同,没有返回类型的方法- C. 与类名相同,有返回类型的方法- D. 与类名不同,有返回类型的方法3. 在Java中,哪个关键字用于实现类的继承?- A. extends- B. implements- C. override- D. abstract4. 以下哪个是Java中类的成员变量?- A. 局部变量- B. 实例变量- C. 静态变量- D. 方法参数5. 以下哪个是Java中的多态性?- A. 接口- B. 继承- C. 封装- D. 抽象类二、简答题1. 解释Java中的封装性,并给出一个封装的类的例子。
2. 描述Java中接口和抽象类的区别。
3. 什么是Java中的继承?请举例说明如何使用继承。
三、编程题1. 创建一个名为`Person`的类,包含姓名(name)、年龄(age)和性别(gender)三个属性。
为每个属性提供getter和setter方法。
2. 编写一个名为`Student`的类,它继承自`Person`类,并添加一个名为`studentID`的属性。
为`studentID`提供getter和setter方法,并重写`toString`方法以返回学生的详细信息。
3. 创建一个接口`Movable`,包含一个方法`move()`。
然后创建一个名为`Car`的类实现该接口,并提供`move`方法的具体实现。
四、综合应用题1. 设计一个简单的银行账户系统,包含以下类:- `Account`:基本账户类,包含账户ID、账户余额和存款(deposit)与取款(withdraw)方法。
专题1初识Java一、填空题1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。
2.环境变量的设置,若JDK安装在“D:JDK”,则应设置Path为()、classpath为()。
3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。
4.如果Java源文件中有多个类,那么只能有一个类是()类。
二、选择题1.作为Java应用程序入口的main方法,其声明格式是()A.publicstaticintmain(Stringargs[])B.publicstaticvoidmain(Stringargs[]) C.publicvoidmain(Stringargs[])D.publicintmain(Stringargs[])2.下面命令正确的是()A.javaAppFirst.javaB.javaAppFirstC.javaappfirst.classD.javacAppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为()A.javaFirstAppletB.javacFirstApplet.javaC.appletviewerFirstApplet.javaD.appletviewerFirstApplet.html4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。
A.binB.jreC.includeD.doc5.Java语言是一种__语言。
A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是__。
A.函数B.过程C.变量D.类三、简答题(十分重要)1.Java语言有哪些特点?2.JDK安装完成后,如何设置环境变量?4.简述Java应用程序的开发过程专题2标识符、表达式、数据类型一、填空题1.Java逻辑常量有两个:()和()。
面向对象编程基本知识练习一、判断题1.不需要定义类,就能创建对象。
()2.构造方法用于给类的private 实例变量赋值。
()3.对象一经声明就可以立即使用。
()4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。
()5.Java 程序中的参数传递都是把参数值传递给方法定义中的参数。
()6.在类定义中,成员访问权限修饰符不能多次出现。
()7.new 操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。
()8.类的方法通常设为public,而类的实例变量一般也设为public。
()9.构造方法在创建对象时被调用。
()10.通过点运算符与类对象的引用相连,可以访问此类的成员。
()11.声明为protected 的类成员只能被此类中的方法访问。
()12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。
()13.类的成员变量可以放在类体的任意位置。
()14.声明为protected 的类成员可以被此类作用域中的任何对象访问。
()15.没有返回值的方法可以用void 来表示,也可以不加。
()二、选择题1. 下面对对象概念描述错误的是:( )A 操作是对象的动态属性B 任何对象都必须有继承性C 对象间的通讯靠消息传递D 对象是属性和方法的封装体2.编译并运行下面的程序,运行结果为:( )public class A{public static void main(String[] args){A a=new A();a.method(8);}void method(int i){System.out.println(“int:“+i);}void method(long i){System.out.println(“long:“+i);}}A 程序可以编译运行,输出结果为int:8B 程序可以编译运行,输出结果为long:8C 程序有编译错误,因为两个method()方法必须定义为静态(static)的D 程序可以编译运行,但没有输出3.下面关于类的说法不正确的是:()A 类是Java 语言中的一种复合数据类型B 类中不包含数据变量和方法C 类是对所有具有一定共性的对象的抽象D Java 语言的类只支持单继承4.能作为类及其成员的修饰符是:()A interfaceB classC protectedD public5.设x、y 均为已定义的类名,下列声明对象x1 的语句不可能正确的是:()A public x xl=new y();B public y xl=new x();C x xl=new x();D x xl=x();6.面向对象程序设计技术的特点是:()A 可重用性B 可维护性C 表示方法的一致性D 可重用性、可维护性、表示方法的一致性7.下列方法定义中,方法头不正确的是:()A public static x(double a){…}B public static int x(double y){…}C void x(double d)D public int x(){…}8.设已声明了一个类A 的两个对象al、a2,为了初始化a1 和a2,下面语句正确的是:()A al=new(); a2=new();B al=A new(); a2=A new();C al,a2=new A();D al=new A(); a2=new A();9.构造方法何时被调用?()A 类定义时B 使用对象的变量时C 调用对象方法时D 创建对象时10.下列哪个类声明是正确的?()A public abstract class Car{…}B abstract private move(){…}C protected private number;D abstra ct final class Hl{…}11.下列不属于面向对象程序设计的基本特征的是:()B 封装C 继承D 静态12.请看下面的程序段class Person {String name,department;int age;public Person(String n) { name = n; }public Person(String n,int a) { name = n; age = a; }public Person(String n,String d,int a) {//doing the same as two arguments version of constructer//including assignment name=n,age=a}}下面那一选项可以添加到“//doing the same……”处:()A Person(n,a)B this(Person(n,a))C this(n,a)D this(name.age)13.()是一个特殊的方法,用于对类的实例变量进行初始化。
1.制作一个电子词典程序,配合词库能实现查询修改删除的功能。
2.编写一个小程序,能够从txt文件中读取数据,并统计每种字符出现的次数。
3.现有雇员类及其子类经理类,雇员类包含私有成员变量name,salary;经理类还有自己的私有变量bonus;雇员类包括方法getname()和getsalary(),经理类除继承上述方法外,还有自己的setbonus方法,现需创建一个经理并设置其奖金金额,另建立员工数组(经理作为其一个元素),要求打印输出该员工数组的姓名和薪水信息。
4.编码随机生成100个位于[20,1000]区间的整数。
5.编写一个三角形类,将求面积,周长,内切圆,外接圆等方法放入类中,并验证。
6.从1到100的100个整数,以某种随机的方式进行排列,然将它们挨个放到一个整数数组中,此数组只能容纳99个整数,因此必定会有一个整数会丢弃。
编写一个函数,接受一个包容99个整数的数组作为参数,找出被丢弃的是哪个整数?另外,你如何保证此函数接收的数组满足以下预设的条件?条件如下:①数组包容99个整数;②数组中的整数均在[1,100]的范围之内;③数组中不包含两个相同的整数;如果函数接收到的数据不满足上述要求,你打算如何处理?写出你的处理策略。
7.编写代码实现此图形。
8.编程求一个整数数组的最大值、最小值、平均值和所有数组元素的和。
9.使用if…else语句构造分支,判断某一年是否为闰年。
10.编程输出99乘法表。
11.设计一个能随机产生100个大写英文字母的方法,在该方法中统计产生了多少元音字母,并且输出这个数字。
12.编写一个矩形类Rect,包含:两个protected属性:矩形的宽(width)和高(height)。
两个构造方法:①一个带有两个参数的构造器方法,用于将width和height属性初始化;②一个不带参数的构造器,将矩形初始化为宽和高都为10。
两个方法:①area()求矩形面积;②perimeter()求矩形周长;13.编写一个Java源程序,在程序中建立一个含10个整型(int)元素的一维数组,对数组中的每个元素赋值,然后按下标的逆序输出。
51道JAV A基础编程练习题1. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?2. 判断101-200之间有多少个素数,并输出所有素数。
3. 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
4. 将一个正整数分解质因数。
例如:输入90,打印出90=2*3*3*5。
5. 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
6. 输入两个正整数m和n,求其最大公约数和最小公倍数。
7. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
8. 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
9. 一个数如果恰好等于它的因子之和,这个数就称为"完数"。
例如6=1+2+3.编程找出1000以内的所有完数。
10. 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?11. 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?12. 企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?13. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?14. 输入某年某月某日,判断这一天是这一年的第几天?(变形:输入某一天,输出一千天后是那一天)15. 输入三个整数x,y,z,请把这三个数由小到大输出。
java 接口练习题Java接口练习题在Java编程中,接口是一种重要的概念,用于定义一组功能的规范。
通过练习接口的使用,可以巩固对Java接口的理解和应用。
本文将给出一些Java接口的练习题,帮助读者提高编程能力。
以下是一些具体的练习题目:练习题一:图形计算接口请定义一个名为Shape的接口,用于表示各种图形的计算。
该接口需要包含以下方法:- `double getArea()`:用于计算图形的面积。
- `double getPerimeter()`:用于计算图形的周长。
请定义一个圆形类Circle,实现Shape接口,并根据需要提供其他的属性和方法。
同样,再定义一个矩形类Rectangle,实现Shape接口,并提供适当的属性和方法。
最后,编写一个测试类,创建一个圆形和一个矩形对象,并调用它们的getArea()和getPerimeter()方法,输出计算结果。
练习题二:数据存储接口请定义一个名为DataStorage的接口,用于表示数据的存储和读取。
该接口需要包含以下方法:- `void saveData(String data)`:用于将数据保存到存储设备中。
- `String loadData()`:用于从存储设备中读取数据,并返回读取的结果。
请定义一个名为FileDataStorage的类,实现DataStorage接口,并使用文件系统实现数据的存储和读取。
编写一个测试类,创建一个FileDataStorage对象,并测试saveData()和loadData()方法的功能是否正常。
练习题三:图像处理接口请定义一个名为ImageProcess的接口,用于表示图像的处理。
该接口需要包含以下方法:- `void loadImage(String imagePath)`:用于加载图像。
- `void processImage()`:用于对图像进行处理。
- `void saveImage(String imagePath)`:用于保存处理后的图像。
Java编程练习题 一、简单问题: 1. 编程求下列式子的值, y=1-1/2+1/3-1/4+…+1/99-1/100 并将结果输出,格式为: 1-1/2+1/3-1/4+…+1/99-1/100 = 表达式的值 public class Prog1 { public static void main(String[] args) { double sum=0; for(double i=1;i<=100;i++) { sum=sum+ (Math.pow(-1, i+1))*(1/i); } System.out.print("1-1/2+1/3-1/4+…+1/99-1/100="+sum); } } 运行结果:
2. 请编程实现:由键盘输入的任意一组字符,统计其中大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。 import java.util.Scanner; public class Prog1 { public static void main(String[] args) { Scanner cin=new Scanner(System.in ); String Str =cin.nextLine(); int m=0,n=0; for(int i=0;i{ char c=Str.charAt(i); if(c>='a'&&c<='z') n++; else if(c>='A'&&c<='Z') m++; } if(n>m) System.out.print(n); else System.out.print(m); } }
运行结果: 3. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于
该数。如:153 = 13 + 53+ 33。 import java.util.Scanner; public class Prog1 { public static void main(String[] args) { int b=0,c=0,d=0; for(int i=100;i<1000;i++) { d=i%10; c=(i/10)%10; b=(i/100)%10; if(i==b*b*b+c*c*c+d*d*d) { System.out.println(i); } } } }
4. 请编制程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。 import java.util.Scanner; public class Prog1 { public static void main(String[] args) { Scanner cin=new Scanner(System.in ); System.out.println("请输入一个正整数:"); int a=cin.nextInt(); if(a%7==0&&a%5==0) { System.out.println("YES"); } else System.out.println("NO"); } }
5. 请编程实现:对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80—89分为‘B’,70—79分为‘C’,60—69分为‘D’,60分以下为‘E’ 。 import java.util.Scanner; public class Prog1 { public static void main(String[] args) { Scanner cin=new Scanner(System.in ); System.out.println("请输入成绩:"); int a=cin.nextInt(); if(a>=90) {System.out.println("A");} else if(a>=80) {System.out.println("B");} else if(a>=70) {System.out.println("C");} else if(a>=60) {System.out.println("D");} else {System.out.println("E");} } }
6. 输入一行字符,将其中的字母变成其后续的第3个字母,输出。例:a→d,x → a;y → b;编程实现。 import java.util.Scanner; public class Prog1 { public static void main(String[] args) { Scanner cin=new Scanner(System.in ); String str=cin.nextLine(); char[] c=new char[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c'}; for(int i=0;i{ char[] c1=new char[str.length()]; c1[i]=str.charAt(i); for(int j=0;j<26;j++) { if(c1[i]==c[j]) {char zc=c[j+3]; System.out.print(zc);} } } } }
7. 编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词. 例如:1转换成Monday,7转换成Sunday. import java.util.Scanner; public class Prog1 { public static void main(String[] args) { Scanner cin=new Scanner(System.in ); System.out.println("输入任意一个1~7之间的整数:"); int s=cin.nextInt(); switch(s) { case 1:{ System.out.print("Monday"); break; } case 2:{ System.out.print("Tuesday"); break; } case 3:{ System.out.print("Wednesday"); break; } case 4:{ System.out.print("Thursday"); break; } case 5:{ System.out.print("Friday"); break; } case 6:{ System.out.print("Saturday"); break; } case 7:{ System.out.print("Sunday"); break; } default :{ } } } }
连续输出: import java.util.Scanner; public class Prog1 { public static void main(String[] args) { Scanner cin=new Scanner(System.in ); while(true) {System.out.println("输入任意一个1~7之间的整数:"); int s=cin.nextInt(); switch(s) { case 1:{ System.out.println("Monday"); break; } case 2:{ System.out.println("Tuesday"); break; } case 3:{ System.out.print("Wednesday"); break; } case 4:{ System.out.println("Thursday"); break; } case 5:{ System.out.println("Friday"); break; } case 6:{ System.out.println("Saturday"); break; } case 7:{ System.out.println("Sunday"); break; } default :{ } } } } }
8. 输入三角形的三边a, b, c,判断能否构成三角形. 若能,计算周长. import java.util.Scanner; public class Prog1 { public static void main(String[] args) { Scanner cin=new Scanner(System.in ); int a=cin.nextInt(); int b=cin.nextInt(); int c=cin.nextInt(); int l=0; if(a+b>c&&a+c>b) {l=a+b+c; System.out.print(l);} else { System.out.print("不能构成三角形"); } } }