很好的编程练习题目含C++、java版答案

合集下载

Java基础编程题(含答案).docx

Java基础编程题(含答案).docx

51道JAVA基础编程练习题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的值,其中d是一个数字。

例如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 )i之间时,高于60万元的部分,可提成1.5%,高于100 )i元时,超过100万元的部分按1%提成, 从键盘输入当月利润I,求应发放奖金总数?13.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?14.输入某年某月某日,判断这一天是这一年的第几天?(变形:输入某一天,输出一千天后是那一天)15.输入三个整数x,y,z,请把这三个数由小到大输出。

编程题库及详解答案

编程题库及详解答案

编程题库及详解答案1. 题目:编写一个程序,计算并输出1到100的整数之和。

答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("1 to 100 sum is: %d\n", sum);return 0;}```2. 题目:实现一个函数,判断一个整数是否为素数。

答案:```pythondef is_prime(n):if n <= 1:return Falsefor i in range(2, int(n0.5) + 1):if n % i == 0:return Falsereturn True# 示例number = 17print(f"{number} is prime: {is_prime(number)}")```3. 题目:使用递归方法实现斐波那契数列的第n项。

答案:```javapublic class Fibonacci {public static int fibonacci(int n) {if (n <= 1) {return n;}return fibonacci(n - 1) + fibonacci(n - 2);}public static void main(String[] args) {int n = 10;System.out.println("Fibonacci of " + n + " is: " + fibonacci(n));}}```4. 题目:编写一个函数,实现字符串的反转。

答案:```javascriptfunction reverseString(str) {return str.split('').reverse().join('');}// 示例const originalStr = "Hello, World!";console.log("Reversed string:",reverseString(originalStr));```5. 题目:实现一个二分查找算法,查找一个元素在排序数组中的位置。

JAVA编程题全集(100题及答案)

JAVA编程题全集(100题及答案)

Java程序设计总复习题1、编写一个Java程序在屏幕上输出“你好!”。

(p13,例1-1)//programme name Helloworld.javapublic class Helloworld {public static void main(String args[]) {System.out.print ("你好!" );}}2. 编写一个Java程序,用if-else语句判断某年份是否为闰年。

// Programme Name LeapYear.javapublic class LeapYear{public static void main(String args[]){int year=2010;if(args.length!=0)year=Integer.parseInt(args[0]);if((year%4==0 && year%100!=0)||(year%400==0))System.out.println(year+" 年是闰年。

");elseSystem.out.println(year+" 年不是闰年。

");}}//if-else语句3、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。

(p64,例2-2)// programme name ForTest.javapublic class ForTest {public static void main( String args[] ) {int i,j,mul,sum=0;for(i=1;i<=10;i++) {mul=1;for(j=1,j<=i;j++) {mul=mul*j;}sum=sum+mul;public class Factorial { //下面的这个方法利用递归的方法求阶乘public intgetFac(int m) { if(m==1) { return 1; } else { return m*getFac(m-1); } } public static void main(String args[]) { Factorial fac=new Factorial(); //System.out.println(fac.getFac(4)); int sum=0; for(int i=1;i<=10;i++) { sum+=fac.getFac(i); } System.out.println("1到10的阶乘的和是:"+sum); } }}System.out.println(“1!+2!+3!+……+10!= ”+sum);}}4. (1)编写一个圆类Circle,该类拥有:①一个成员变量Radius(私有,浮点型);// 存放圆的半径;②两个构造方法Circle( ) // 将半径设为0Circle(double r ) //创建Circle对象时将半径初始化为r③三个成员方法double getArea( ) //获取圆的面积double getPerimeter( ) //获取圆的周长void show( ) //将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。

Java程序设计单元练习题一与答案

Java程序设计单元练习题一与答案

一、单选题1、解释Java源文件,生成字节码文件所用到的命令A.cmd.exeB.java.exeC.javac.exeD.keytool.exe正确答案:C2、Java 源程序文件的后缀是A.cB.classC.txtD.java正确答案:D3、下列特点不是Java语言的特点A.跨平台B.安全性C.面向过程D.多线程正确答案:C4、public class Test{public static void main(String[] args){System.out.println("欢迎参加《Java编程基础》在线课程学习!"); }}该源代码保存的文件名为()A.Text.javaB.Text.classC.Text.java.txtD.Test.txt正确答案:A5、public class Test{public static void main(String[] args){System.out.println("欢迎参加《Java编程基础》在线课程学习!"); }}编译上述文件的命令为()A.java TestB.java Test.javaC.javac TestD.javac Test.java正确答案:D6、public class Test{public static void main(String[] args){System.out.println("欢迎参加《Java编程基础》在线课程学习!"); }}编译后生成的字节码文件名为()A.Test.class.txtB.Test.classC.Test.txtD.Test.java正确答案:B7、下面标识符正确的是A.hello worldB.DemoC.classD.123stu正确答案:B8、执行下面的语句后,a,b,c的值分别()int a=2;int b=(a++)*3;int c=(++a)*3A.4,6,12B.2,6,6C.3,9,9D.4,9,9正确答案:A9、下面的数据类型是float型的是()A.129B.8.6FC.33.8D.89l正确答案:B10、为一个boolean类型变量a赋值时,下列语句正确的是()A.boolean a="false";B.boolean a="真";C.boolean a=1;D.boolean a=(9>=10);正确答案:D11、以下标识符不合法的是()A.x3xB.de$fC.voidD.STRING正确答案:C12、int m=3,n=2,max=0;if(m>n){max=m;}else{max=n;}程序段执行后,max的值为()A.2B.3C.0D.1正确答案:B13、以下代码运行后,i的值和输出内容int i=2;if(i++==3){System.out.println("i==3");}A.i值为2,控制台输出i==3B.i值为2,控制台没有内容输出C.i值为3,控制台没有内容输出D.i值为3,控制台输出i==3正确答案:C14、switch(表达式) {case 值1:语句块1;break; case 值2:语句块2;break; case 值3:语句块3;break;……case 值n:语句块n;break; default:语句块n+1;}语句中“表达式”的类型不能为()A.浮点数类型B.字符串类型C.字符类型D.整数类型正确答案:A15、int i=10;while(i>0){i=i+1;if(i==10){break;}}A.循环一次都不执行B.while循环执行10次C.循环执行一次D.死循环正确答案:D16、如果有以下程序代码for(int i=1;i<10;i++){if(i==5){continue;}System.out.println("i=%d%n",i); }A.显示i=1到4,以及6到9B.显示i=1到9C.显示i=6到9D.显示i=1到4正确答案:A二、判断题1、Java中使用的是英文半角的字符正确答案:√2、可以将一个char类型赋值给int类型正确答案:√3、可以将一个double类型的值赋值给float类型的变量正确答案:×三、填空题1、Java字节码文件的后缀名字是()。

java面向对象编程练习题答案

java面向对象编程练习题答案

java面向对象编程练习题答案一、选择题1. 以下哪个是Java面向对象编程的三个基本特征?A. 封装、继承、多态B. 抽象、封装、继承C. 继承、多态、抽象D. 封装、继承、抽象答案:A2. 在Java中,哪个关键字用于定义类?A. classB. interfaceC. abstractD. final答案:A3. 以下哪个是Java中的访问修饰符?A. publicB. staticC. voidD. main答案:A4. 以下哪个是Java中创建对象的语法?A. new Object();B. new ClassName();C. new ClassName().method();D. ClassName();答案:B5. 在Java中,哪个关键字用于实现多态?A. extendsB. implementsB. overrideD. abstract答案:A二、简答题1. 简述Java面向对象编程中的封装性。

答案:封装性是面向对象编程的一个基本概念,它指的是将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。

封装性有助于提高代码的安全性和可维护性。

2. 什么是继承?继承在Java中是如何实现的?答案:继承是一种机制,允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。

在Java中,继承是通过关键字`extends`来实现的。

3. 什么是多态?Java中如何实现多态?答案:多态是指允许不同类的对象对同一消息做出响应的能力,即同一个接口可以被不同的实例以不同的方式实现。

在Java中,多态主要通过方法重载和方法重写来实现。

三、编程题1. 创建一个名为`Animal`的抽象类,它包含一个抽象方法`makeSound()`。

然后创建两个类`Dog`和`Cat`,它们继承自`Animal`类,并分别实现`makeSound()`方法。

答案:```javaabstract class Animal {abstract void makeSound();}class Dog extends Animal {public void makeSound() {System.out.println("Woof!");}}class Cat extends Animal {public void makeSound() {System.out.println("Meow!");}}```2. 编写一个Java程序,使用封装性来创建一个名为`Student`的类,该类包含私有属性`name`和`age`,以及相应的公共方法来设置和获取这些属性。

Java基础编程题(含答案)

Java基础编程题(含答案)

50道JAVA基础编程练习题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

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

【程序4】题目:将一个正整数分解质因数。

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

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

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

【程序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次落地时,【程序11】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

JAVA20经典编程题全集及答案

JAVA20经典编程题全集及答案

JAVA20经典编程题全集及答案【程序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(\第\个月的兔子对数: \ } } }【程序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( \素数个数是: \} }【程序3】题目:打印出所有的 \水仙花数 \,所谓 \水仙花数 \是指一个三位数,其各位数字立方和等于该数本身。

java编程练习题及答案

java编程练习题及答案

java编程练习题及答案Java 编程练习题及答案在学习 Java 编程的过程中,进行练习是非常重要的一步。

通过编程练习,可以巩固对 Java 语言的理解,提高编程技巧。

下面我们将提供一些 Java 编程练习题及其答案,供您参考。

一、基本语法练习题1. 编写一个 Java 程序,打印输出 "Hello, World!"。

答案:```public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}```2. 编写一个 Java 程序,求解 1 到 100 的所有偶数之和。

答案:```public class SumOfEvenNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}System.out.println("1 到 100 的所有偶数之和为:" + sum); }}```3. 编写一个 Java 程序,判断一个整数是否为素数。

答案:```public class PrimeNumberChecker {public static void main(String[] args) {int num = 29;boolean isPrime = true;for (int i = 2; i <= num / 2; i++) {if (num % i == 0) {isPrime = false;break;}}if (isPrime && num > 1) {System.out.println(num + " 是素数。

java编程大赛试题及答案

java编程大赛试题及答案

java编程大赛试题及答案# Java编程大赛试题及答案一、选择题(每题5分,共20分)1. 在Java中,下列哪个关键字用于定义一个类?- A. class- B. interface- C. struct- D. enum答案:A2. Java中,用于捕获异常的关键字是?- A. try- B. catch- C. throw- D. finally答案:B3. 下列哪个数据类型在Java中是基本数据类型?- A. String- B. int- C. ArrayList- D. HashMap答案:B4. 在Java中,下列哪个方法用于将字符串转换为整型? - A. toInt()- B. parseInt()- C. toInteger()- D. convertToInt()答案:B二、填空题(每题5分,共20分)1. 在Java中,`System.out.println` 方法用于向控制台输出信息,其中 `System` 是一个_______。

答案:标准类2. Java中的 `==` 用于比较两个对象的_______。

答案:引用3. Java中,`for` 循环的一般形式是:`for (初始化表达式;条件表达式;更新表达式)`,其中初始化表达式用于_______。

答案:初始化循环变量4. Java中,`ArrayList` 类的 `add` 方法用于向列表中_______。

答案:添加元素三、编程题(每题30分,共60分)1. 编写一个Java程序,实现计算并输出100以内所有偶数的和。

```javapublic class EvenSum {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}System.out.println("100以内所有偶数的和是:" + sum); }}```答案:100以内所有偶数的和是:25002. 编写一个Java程序,实现一个简单的计算器,能够进行加、减、乘、除运算。

《面向对象程序设计(Java)》经典编程集(共60题,含答案)

《面向对象程序设计(Java)》经典编程集(共60题,含答案)

《面向对象程序设计(Java)》经典编程集(共60题,含答案)/*一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第5次落地时,共经过多少米?第5次反弹多高?*//*输出7*7口诀*//*求1+2!+3!+...+10!的和*//*有5个人坐在一起,问第五个人多少岁?他说比第4个人大3岁。

问第4个人岁数,他说比第3个人大3岁。

问第三个人,又说比第2人大3岁。

问第2个人,说比第一个人大3岁。

最后问第一个人,他说是10岁。

请问第五个人多大? *//*求0--7所能组成的6位的奇数个数是多少个*//*有1、2、3、4、5、6、7、8、9个数字,能组成多少个互不相同且无重复数字的四位数?程序分析:可填在千位、百位、十位、个位的数字都是1、2、3、4、5、6、7、8、9。

组成所有的排列后再去掉不满足条件的排列。

*//*一个整数,它加上1000后是一个完全平方数,再加上1680又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上1000后再开方,再将该数加上2680后再开方,如果开方后的结果满足如下条件,即是结果。

请看具体分析*//*利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,80-89分之间的用B表示,70-79分之间的用C表示,60-69分之间用D表示,60分以下的用E表示。

(假定输入数字为95,判断等级)*//*题面:编写程序解决如下问题,小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,求可以有多少种不同的借法?将结果打印输出*//*题面:编写程序解决如下问题,某人将一缸金鱼分5次出售,第一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的11条。

问原来的鱼缸中共有几条金鱼?将结果打印输出*//*题面:编写程序,一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数,以十进制输出。

【名师精品】JAVA编程题全集(100题及答案).doc

【名师精品】JAVA编程题全集(100题及答案).doc

Java程序设计总复习题1、编写一个Java程序在屏幕上输出“你好!”。

(p13,例1-1)//pYogYammenameHellowoYld.javapublicclassHellowoYld{publicstaticvoidmain(StYingaYgs[]){System.out.pYint("你好!");}}2.编写一个Java程序,用if-else语句判断某年份是否为闰年。

//PYogYammeNameLeapYeaY.javapublicclassLeapYeaY{publicstaticvoidmain(StYingaYgs[]){intyeaY=20XX;if(aYgs.length!=0)yeaY=IntegeY.paYseInt(aYgs[0]);if((yeaY%4==0&&yeaY%100!=0)||(yeaY%400==0))System.out.pYintln(yeaY+"年是闰年。

");elseSystem.out.pYintln(yeaY+"年不是闰年。

");}}//if-else语句3、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。

(p64,例2-2)//pYogYammenameFoYTest.javapublicclassFoYTest{publicstaticvoidmain(StYingaYgs[]){inti,j,mul,sum=0;foY(i=1;i<=10;i++){mul=1;foY(j=1,j<=i;j++){mul=mulGj;}sum=sum+mul;publicclassFactoYial{//下面的这个方法利用递归的方法求阶乘publicintgetFac(intm){if(m==1){YetuYn1;}else{YetuYnmGgetFac(m-1);}}pu blicstaticvoidmain(StYingaYgs[]){FactoYialfac=newFactoYial();//System .out.pYintln(fac.getFac(4));intsum=0;foY(inti=1;i<=10;i++){sum+=fac.g etFac(i);}System.out.pYintln("1到10的阶乘的和是:"+sum);}}} System.out.pYintln(“1!+2!+3!+……+10!=”+sum);}}4.(1)编写一个圆类CiYcle,该类拥有:①一个成员变量Yadius(私有,浮点型);//存放圆的半径;②两个构造方法CiYcle()//将半径设为0CiYcle(doubleY)//创建CiYcle对象时将半径初始化为Y③三个成员方法doublegetAYea()//获取圆的面积doublegetPeYimeteY()//获取圆的周长voidshow()//将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类CylindeY,它继承于上面的CiYcle类。

java编程练习题及答案

java编程练习题及答案

java编程练习题及答案Java编程练习题及答案一、选择题1. 在Java中,哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A2. 下列哪个是Java中的合法标识符?A. 2variableB. forC. variable2D. class答案:C3. 在Java中,哪个方法用于获取当前对象的引用?A. this()B. super()C. clone()D. new()答案:A4. 以下哪个是Java的访问修饰符?A. publicB. staticC. finalD. abstract答案:A5. 在Java中,哪个关键字用于定义接口?A. classB. interfaceC. abstractD. enum答案:B二、简答题1. 请简述Java中的继承是如何工作的?答案:Java中的继承允许一个类(子类)继承另一个类(父类)的属性和方法。

子类可以扩展或修改父类的行为,实现代码复用。

继承是面向对象编程的核心概念之一。

2. 请解释Java中接口和抽象类的区别?答案:接口定义了一组方法规范,但不提供实现。

任何实现接口的类都必须提供接口中所有方法的具体实现。

抽象类可以包含抽象方法和具体方法,并且可以有成员变量。

抽象类可以作为其他类的基类,但不能被实例化。

三、编程题1. 编写一个Java程序,实现一个简单的计算器,可以进行加、减、乘、除运算。

```javaimport java.util.Scanner;public class SimpleCalculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个数字: ");double num1 = scanner.nextDouble();System.out.print("请选择运算符(+, -, *, /): "); char operator = scanner.next().charAt(0);System.out.print("请输入第二个数字: ");double num2 = scanner.nextDouble();double result = 0;switch (operator) {case '+':result = num1 + num2;break;case '-':result = num1 - num2;break;case '*':result = num1 * num2;break;case '/':if (num2 != 0) {result = num1 / num2;} else {System.out.println("除数不能为0"); }break;default:System.out.println("无效的运算符");}if (result != 0) {System.out.println("结果是: " + result);}scanner.close();}}```2. 编写一个Java程序,实现一个简单的学生管理系统,可以添加学生信息、显示所有学生信息。

Java入门基础编程题(含答案)

Java入门基础编程题(含答案)

50道JA V A基础编程练习题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....public class Prog1{public static void main(String[] args){int n = 10;System.out.println("第"+n+"个月兔子总数为"+fun(n));}private static int fun(int n){if(n==1 || n==2)return 1;elsereturn fun(n-1)+fun(n-2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

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

public class Prog2{public static void main(String[] args){int m = 1;int n = 1000;int count = 0;//统计素数个数for(int i=m;i<n;i++){if(isPrime(i)){count++;System.out.print(i+" ");if(count%10==0){System.out.println();}}}System.out.println();System.out.println("在"+m+"和"+n+"之间共有"+count+"个素数");}//判断素数private static boolean isPrime(int n){boolean flag = true;if(n==1)flag = false;else{for(int i=2;i<=Math.sqrt(n);i++){if((n%i)==0 || n==1){flag = false;break;}elseflag = true;}}return flag;}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

java面向对象编程练习题答案

java面向对象编程练习题答案

java面向对象编程练习题答案1. 面向对象编程中的三大特性是什么?A. 封装、继承、多态B. 抽象、封装、多态C. 封装、继承、抽象D. 继承、多态、抽象2. 在Java中,以下哪个关键字用于声明一个类?A. classB. interfaceC. enumD. struct3. 以下哪个是Java中正确的构造方法定义?A. public void MyClass()B. public int MyClass()C. public MyClass()D. public MyClass(int value)4. 在Java中,以下哪个关键字用于实现封装?A. publicB. privateC. protectedD. static5. 以下哪个是Java中正确的继承方式?A. class Child extends ParentB. class Child extends ChildC. class Parent extends ChildD. class Child extends6. 多态在Java中是如何实现的?A. 通过继承B. 通过接口C. 通过重载D. 通过重写7. 在Java中,以下哪个关键字用于定义一个接口?A. classB. interfaceC. abstractD. enum8. 以下哪个是Java中正确的抽象类定义?A. public class MyClass {}B. public abstract class MyClass {}C. public abstract void MyClass()D. public abstract class MyClass { public abstract void method(); }9. 以下哪个是Java中正确的接口实现方式?A. class MyClass implements MyInterface {}B. class MyClass extends MyInterface {}C. interface MyInterface implements MyClass {}D. class MyClass implements MyClass {}10. 在Java中,以下哪个关键字用于定义一个静态方法?A. staticB. abstractC. finalD. synchronized11. 以下哪个是Java中正确的方法重载示例?A. public void display(int a, int b)B. public int display(int a, int b)C. public void display(int a)D. All of the above12. 在Java中,以下哪个关键字用于定义一个方法的返回类型?A. returnB. voidC. intD. method13. 以下哪个是Java中正确的方法重写示例?A. public void display() { super.display(); }B. public void display(int a) { super.display(a); }C. public void display() { System.out.println("Hello"); }D. public void display() {}14. 在Java中,以下哪个关键字用于定义一个类变量?A. staticB. finalC. privateD. protected15. 以下哪个是Java中正确的类变量访问方式?A. MyClass.variableB. new MyClass().variableC. MyClass().variableD. variable16. 在Java中,以下哪个关键字用于定义一个不可变变量?A. staticB. finalC. volatileD. transient17. 以下哪个是Java中正确的类方法定义?A. public void method() {}B. public static void method() {}C. public void MyClass.method() {}D. public static MyClass method()18. 在Java中,以下哪个关键字用于实现单例模式?A. synchronizedB. finalC. staticD. private19. 以下哪个是Java中正确的单例模式实现方式?A. public class Singleton { private static Singleton instance = new Singleton(); }B. public class Singleton { public static Singleton getInstance() { return new Singleton(); } }C. public class Singleton { private static Singleton instance; public static synchronized Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; } }D. All of the above20. 在Java中,以下哪个关键字用于定义一个枚举类型?A. enumB. classC. interfaceD. struct答案:1. A2. A3. C4. B5. A6. D7. B8. D9. A10. A11. D12. B13. A14. A15. A16. B17. B18. D19. C20. A。

JAVA55道编程题(含答案)

JAVA55道编程题(含答案)

【程序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】题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。

很好的编程练习题目含C++、JAVA版答案

很好的编程练习题目含C++、JAVA版答案
if(p%10!=num[i--])return 0;// ABCDE * ?=EDCBA p/=10; } return 1; } int main() { int i,j; for(i=10000;i<max;++i)//five different number from (10000,100000), for(j=2;j<10;j++)//? from[2,9]
1. 如果出现连号,不管升序还是降序,都加 5 分。例如:5678,4321 都满足加分标准。 2. 前三个数字相同,或后三个数字相同,都加 3 分。例如:4888,6665,7777 都满足加 分的标准。注意:7777 因为满足这条标准两次,所以这条规则给它加了 6 分。 3. 符合 AABB 或者 ABAB 模式的加 1 分。例如:2255,3939,7777 都符合这个模式,所以 都被加分。注意:7777 因为满足这条标准两次,所以这条标准给它加了 2 分。 4. 含有:6,8,9 中任何一个数字,每出现一次加 1 分。例如 4326,6875,9918 都符合 加分标准。其中,6875 被加 2 分;9918 被加 3 分。 尾号最终得分就是每条标准的加分总和! 要求程序从标准输入接收数据,在标准输出上输出结果。 输入格式为:第一行是一个整数 n(<100),表示下边有多少输入行,接下来是 n 行 4 位一组的数据,就是等待计算加分的手机尾号。 输出格式为:n 行整数。 例如,输入: 14 3045
operator(result[i],i); for(int j = 12;j>=0;j--) {
if(order[j] == 'T') {
System.out.print("10,"); continue; } System.out.print(order[j]+","); } } } 结果: 7,A,Q,2,8,3,J,4,9,5,K,6,10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

蓝桥杯试题编译环境:dev c++、NetBeans IDE 7.1.21.古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。

请你利用计算机的优势,找到破解的答案。

把ABCDE 所代表的数字写出来。

#include<iostream>#define max 100000using namespace std;int judge(int n,int m){int num[5],i,j,p=n;i=0;while(p){num[i++]=p%10;//num[0] to num[4] are ABCDEp/=10;}//until p=0for(i=0;i<4;i++)for(j=i+1;j<5;++j)if(num[i]==num[j]) return 0;//get five different number p=n*m;// ABCDE * ?if(p/max) return 0;//if ABCDE * ?>100000 then not equals EDCBAi=4;while(p){if(p%10!=num[i--])return 0;// ABCDE * ?=EDCBAp/=10;}return 1;}int main(){int i,j;for(i=10000;i<max;++i)//five different number from (10000,100000), for(j=2;j<10;j++)//? from[2,9]if(judge(i,j)) cout<<i<<endl;getchar();getchar();return 0;}巧妙之处在如何获取五个互不相同的数字。

思路:用五位数的每一位分别代表ABCDE,这样查找范围就是(10000,100000),同样要满足ABCDE*?=EDCBA,ABCDE*?的范围同样是(10000,100000)。

而?代表的数字不可能是1,范围是[2,10)。

1、定义一个长度为五的数组nums,mums[0]代表E,nums[4]代表A,从(10000,100000)中取一个数字,先把这个五位数的每一位上的值赋给这个数组;2、检验这个数组中的数字是否满足两两互不相同,若满足则继续第三步,若不满足则跳回第一步;3、从[2,10)中取一个数字跟满足条件的五位数相乘,检验ABCDE*?是否超过100000,如果超过则再在[2,10)中找下一个数字检验,如果不超过则继续下一步;4、判断ABCDE*?=EDCBA,如果相等则找到符合条件的等式,若不相等则调回第一步。

Java版public class ABCDE_to_EDCBA {public static final int Max=100000;public static boolean judge(int m,int n)//m代表每位上数字都不相同的五位数,n代表?{int []nums = new int[5];int i = 0;int p = m;while(p!=0){nums[i++] = p%10;p/=10;}for(int x = 0 ;x<4;x++)//获得此五位数即ABCDEfor(int y = x+1;y<5;y++)if(nums[x]==nums[y])return false;p = m*n;if(p/Max!=0)//ABCDE*?不能超过五位数return false;//判断ABCDE*?=EDCBAint k = 4;while(k!=0){if(nums[k]!=p%10)return false;p/=10;k--;}return true;}public static void main(String[] args) {for(int i = 10000;i<Max;i++){for(int j = 2 ;j<10;j++){if(judge(i,j))System.out.println(i+"*"+j+"="+i*j);}}}}结果:21978*4=87912类似题目:下列乘法算式中:每个汉字代表1个数字(1~9)。

相同的汉字代表相同的数字,不同的汉字代表不同的数字。

赛软件 * 比赛 = 软件比拼试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。

【参考结果】465 * 14 = 65102. 巧排扑克牌小明刚上小学,学会了第一个扑克牌“魔术”,到处给人表演。

魔术的内容是这样的:他手里握着一叠扑克牌:A,2,....J,Q,K 一共13张。

他先自己精心设计它们的顺序,然后正面朝下拿着,开始表演。

只见他先从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是A;然后再从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是2;......如此循环直到手中只有一张牌,翻开放桌子上,刚好是K。

这时,桌上牌的顺序是:A,2,3,4,5,6,7,8,9,10,J,Q,K请你计算一下,小明最开始的时候手里牌的顺序是怎样的。

把结果写出来,逗号分割,小明“魔术”开始时,最下面的那张牌输出为第一个数据。

//第四题巧排扑克牌#include<iostream>using namespace std;int operate(char *seq,char card,int len){if(len==0){seq[0]=card;return 1;}int i;seq[len]=card;card=seq[0];for(i=0;i<len;++i)seq[i]=seq[i+1];seq[len]=card;len++;seq[len]='/0';return len;}int print(char *s,int len){int i;for(i=0;i<len;++i){if(s[i]=='T'){cout<<10<<' ';continue;}cout<<s[i]<<' ';}cout<<endl;return 0;}int main(){char seq[15]="KQJT98765432A",result[15];int i;for(i=0;i<13;++i)operate(result,seq[i],i);print(result,13);getchar();getchar();return 0;}//倒推法,翻开一张牌的顺序是:先把它前面的那张牌放在队尾然后它在翻开放在队尾,这样如果逆过来就是它先到队尾,再让它前面那张牌到队尾。

最后一张肯定是K,第一张是A这样逆转过来的顺序便是从K到A。

Java版:public class Card_Order {public static char [] result,order = new char[13];public static void operator(char c,int len){order[len] = c;c = order[0];for(int i=0;i<len;i++)order[i] = order[i+1];order[len] = c;}public static void main(String[] args) {result = new char[]{'K','Q','J','T','9','8','7','6','5','4','3','2','A'};for(int i = 0;i<13;i++)operator(result[i],i);for(int j = 12;j>=0;j--){if(order[j] == 'T'){System.out.print("10,");continue;}System.out.print(order[j]+",");}}}结果:7,A,Q,2,8,3,J,4,9,5,K,6,103. 手机尾号30年的改革开放,给中国带来了翻天覆地的变化。

2011全年中国手机产量约为11.72亿部。

手机已经成为百姓的基本日用品!给手机选个好听又好记的号码可能是许多人的心愿。

但号源有限,只能辅以有偿选号的方法了。

这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分。

其规则如下:1. 如果出现连号,不管升序还是降序,都加5分。

例如:5678,4321都满足加分标准。

2. 前三个数字相同,或后三个数字相同,都加3分。

例如:4888,6665,7777都满足加分的标准。

注意:7777因为满足这条标准两次,所以这条规则给它加了6分。

3. 符合AABB或者ABAB模式的加1分。

例如:2255,3939,7777都符合这个模式,所以都被加分。

注意:7777因为满足这条标准两次,所以这条标准给它加了2分。

4. 含有:6,8,9中任何一个数字,每出现一次加1分。

例如4326,6875,9918都符合加分标准。

其中,6875被加2分;9918被加3分。

尾号最终得分就是每条标准的加分总和!要求程序从标准输入接收数据,在标准输出上输出结果。

输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行4位一组的数据,就是等待计算加分的手机尾号。

输出格式为:n行整数。

例如,输入:1430450211234565437777888878787788668824242244991867898866则输出:5681233511385#include<fstream>#include<iostream>using namespace std;int rule1(char *num){int i;for(i=0;i<3;++i)if((int)(num[i+1]-num[i])!=1)break;if(i==3) return 5;for(i=0;i<3;++i)if((int)(num[i]-num[i+1])!=1)break;if(i==3) return 5;}int rule2(char *num){int score=0;int i;for(i=0;i<2;++i)if(num[i]!=num[i+1]) break;if(i==2) score+=3;for(i=1;i<3;++i)if(num[i]!=num[i+1]) break;if(i==3) score+=3;return score;}int rule3(char *num){int score=0;if(num[0]==num[1]&&num[2]==num[3])score++;if(num[0]==num[2]&&num[1]==num[3])score++;return score;}int rule4(char *num){int i;int score=0;for(i=0;i<4;++i)if(num[i]=='6'||num[i]=='8'||num[i]=='9')score++;return score;}int main(){//ifstream cin("手机号码.txt");int n,i,score;char num[6];loop:cin>>n;if(n==0) return 0;for(i=0;i<n;++i){cin>>num;//score=0;cout<<rule1(num)+rule2(num)+rule3(num)+rule4(num)<<endl;//cout<<score<<endl;}goto loop;//getchar();getchar();//fflush(stdin);return 0;}Java版:import java.util.*;public class Phone_Score {public static int get_score(int x){int score = 0;int a,b,c,d;a = x/1000;b = (x-a*1000)/100;c = (x-a*1000-b*100)/10;d = x%10;if((a+1==b&&b+1==c&&c+1==d)||(a-1==b&&b-1==c&&c-1==d))//1、连号score += 5;if(a==b&&b==c)score += 3;if(b==c&&c==d)score += 3;if(a==b&&c==d)score += 1;if(a==c&&b==d)score += 1;if(a==6||a==8||a==9)score += 1;if(b==6||b==8||b==9)score += 1;if(c==6||c==8||c==9)score += 1;if(d==6||d==8||d==9)score += 1;return score;}public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入电话号码的个数!");int count = input.nextInt();//获得电话号码的个数System.out.println("请以此输入电话号码的尾数,以行隔开!");int []nums = new int[count];for(int i = 0 ; i<count;i++)nums[i] = input.nextInt();//获得电话号码System.out.println("手机尾号打分结果如下:");for(int j = 0 ;j<count;j++)System.out.println(get_score(nums[j]));}}结果:请输入电话号码的个数!14请以此输入电话号码的尾数,以行隔开!30450211234565437777888878787788668824242244991867898866手机尾号打分结果如下:5681233511385类似题目:信用卡号验证当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。

相关文档
最新文档