Java编程题集:斐波那契数列、素数判定与水仙花数探索

版权申诉
0 下载量 138 浏览量 更新于2024-06-25 收藏 100KB DOC 举报
本资源是一份针对自学考试计算机科学与技术专业《Java语言程序设计(一)》课程编写的编程题集,共包含五个实用且具有代表性的Java程序示例。这些题目涵盖了基础的数据结构和算法应用,旨在帮助学习者巩固和提升Java编程技能。 程序1:题目涉及著名的斐波那契数列问题。在Java代码中,通过创建一个名为`lianxi01`的类,程序模拟了兔子繁殖的过程,从第三个月开始每月新增一对兔子,通过循环计算并输出每个月的兔子总数。这是一个递归或动态规划的应用实例,展示了如何使用循环结构实现序列的迭代计算。 程序2:这个题目要求判断101至200之间的素数,并输出它们。`lianxi02`类的`main`方法使用了素数判定的基本算法,即检查每个数是否能被2到其平方根之间的整数整除。这种方法是检验素数的常用技巧,它强调了循环控制和条件判断的重要性。 程序3:涉及到“水仙花数”的计算,这是一种特殊的三位数,其各位数字立方之和等于该数本身。`lianxi03`类实现了这个逻辑,通过遍历101到999范围内的所有三位数,验证是否满足条件,并打印出符合条件的“水仙花数”。 程序4:程序4要求将一个正整数分解质因数。`lianxi04`类通过循环和条件判断,逐步找出输入数字的最小质因数并分解,这展示了分解质因数的常用算法,即试除法。 程序5:最后一个程序展示了Java中条件运算符(三元运算符)的应用,根据输入的成绩范围,使用嵌套的条件判断语句给出相应的等级标识,如'A'、'B'或'C'。 这些程序不仅涵盖了Java的基本语法,还涉及到数据结构(如数组和循环)、算法(如素数检测、斐波那契数列、质因数分解)以及条件表达式的运用,对于理解和掌握Java编程的实战技巧非常有帮助。通过解决这些题目,学习者可以提升逻辑思维能力和解决问题的能力。
2023-05-31 上传
【程序1】 题目:古典问题:有一对兔子,从出生后第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); } } 【程序3】 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。 public class lianxi03 { public static void main(String[] args) { int b1, b2, b3; for(int m=101; m<1000; m++) { b3 = m / 100; b2 = m % 100 / 10; b1 = m % 10; if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) { System.out.println(m+"是一个水仙花数"); } } } } 【程序4】 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第 一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 import java.util.*; public class lianxi04{ public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.print( "请键入一个正整数: "); int n = s.nextInt(); int k=2; System.out.print(n + "=" ); while(k <= n) { if(k == n) {System.out.println(n);break;} else if( n % k == 0) {System.out.print(k + "*");n = n / k; } else k++; } } } 【程序5】 题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60- 89分之间的用B表示,60分以下的用C表示。 import java.util.*; public class lianxi05 { public static void main(String[] args) { int x; char grade; Scanner s = new Scanner(System.in); System.out.print( "请输入一个成绩: "); x = s.nextInt(); grade = x >= 90 ? 'A' : x >= 60 ? 'B' :'C'; System.out.prin
2023-05-31 上传
1、简述java语言的特点? Java语言是目前使用最为广泛的网络编程语言之一 (1分) 具有面向对象 (1分) 与平台无关性 (1分) 多线程性 (1分) 动态性等特点 (1分) 2、 简述Java程序的开发过程 1 使用一个文字编辑器,编写源文件。 (1分) 2 使用java编译器,编译源文件得到字节码文件。 (2分) 3 运行java程序,分两种java应用程序必须通过java解释器来解释执行,java小应用程序 必须使用解释器和浏览器运行程序。 (2分) 3、 java源文件的命名规则是什么? 如果源文件中有多个类,那么只能有一个类是public类 (1分) 如果有一个类是public类,源文件的名字必须与这个类的名字完全相同,扩展名是java (2分) 如果源文件没有public类,源文件的名字只要和某个类的名字相同,并且扩展名是java (2分) 4、 怎样区分应用程序和小应用程序? 一个java应用程序必须且只有一个类含有main方法,这个类称为应用程序的主类,其ma in方法必须被说明为public static void (1分) 一个Java Applet小应用程序不再需要main方法,但必须有一个类扩展了Applet类,即它是Applet 类的主类。 (2.5分) 5、 Java中共有哪些基本数据类型? 基本类型共有8种,分四类分别是 (1分) 逻辑型 (1分) 字符型 (1分) 整型 (1分) 浮点型 (1分) 6、 Java中数据类型分别用什么符号来表示? 逻辑型用boolean 表示 (1分) 字符型用char表示 (1分) 整型共有4种分别是 byte、short、long、int (2分) 浮点型共两种float和double (1分) 7、 简答标示符的概念及定义原则 标示符是用来标识类名、变量名、方法名、类型名等有效字符序列。 (2.5分) Java语言规定标示符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数 字,及java中的关键字不能用作标示符。 (2.5分) 8、 简答什么是强制类型转换及转换格式 当把一种数据类型变量的值赋给另一种数据类型时会用到数据转换。当把在内存中占字 节数较少的变量的值赋给占字节较多的变量时,系统自动完成数据类型的转换 (2.5分) 格式 数据类型名 变量名或表达式 (2.5分) 9、 简答表达式++x和x++的区别 ++x表示在使用x之前,先使x的值加1 (2.5分) x++表示在使用x之后,使x的值加1 (2.5分) 10、 Java中常用的运算符按功能分有哪些 Java运算符按功能分6种,具体如下 (1分) 算术运算符、关系运算符、逻辑运算符 (2分) 位运算符、赋值运算符、条件运算符 (2分) 11、 Java中结构化程序设计有哪三种基本流程及分别对应java中那些语句 结构化程序设计有顺序、分支、循环三种基本流程 (2分) java中的分支语句包括if语句、switch语句 (1分) 循环语句包括while语句、do-while语句、for语句 (1分) 其他如对象、变量定义语句、赋值语句、方法调用语句等都是顺序语句。 (1分) 12、 在一个循环中使用break和continue语句有什么不同的效果? 在循环中使用break语句将使循环终止,流程跳转到break语句所在的循环外面的第一个 语句继续执行 (2.5分) 在循环中使用continue语句将提前结束本次循环,流程跳转到continue语句所在循环的 第一个语句继续执行 (2.5分) 13、 package语句与import语句分别作用是什么? package语句作为java源程序的第一条语句,指明该源文件定义的类所在的包。 (2.5分 ) import语句作用是为了能使用java提供的类,可以使用import语句来引入所需要的类。 (2.5分) 14、 简述编程语言的几个发展阶段 1 面向机器语言 (1分) 2 面向过程语言 (1分) 3 结构化程序设计阶段 (1分) 4 面向对象编程 (1分) 15、 什么是类及类的实现包括什么 类是组成java程序的基本要素 (1分) 类封装了一类对象的状态和方法 (1分) 类是用来定义对象的模板 (1分) 类的实现包括两部分 类声明和类体 (1分) 16、 什么是方法重载 方法重载是指,一个类中可以有多个方法具有相同的名字和类型 (2分) 但这些方法的参数必须不同(1分) 或者是参数个数不同,或者是参数类型不同(1分) 17、 什么是构造方法 构造方法是一种特殊方法 (1分) 它的名字必须与它所在的类的名字完全相同 (1分) 并且不返回任何数据类型,即它是void型 (1分) 18、 什么是实例变量和类变量及他们的区别 用修饰符static