java循环练习及答案

合集下载

java考试编程题库及答案

java考试编程题库及答案

java考试编程题库及答案Java考试编程题库及答案1. 基础语法题- 题目:编写一个Java程序,实现两个整数的加法运算,并打印结果。

- 答案:```javapublic class Addition {public static void main(String[] args) {int num1 = 5;int num2 = 10;int sum = num1 + num2;System.out.println("The sum is: " + sum);}}```2. 控制结构题- 题目:编写一个Java程序,判断一个整数是否为素数,并打印结果。

- 答案:```javapublic class PrimeCheck {public static void main(String[] args) {int number = 29;if (isPrime(number)) {System.out.println(number + " is a primenumber.");} else {System.out.println(number + " is not a prime number.");}}public static boolean isPrime(int n) {if (n <= 1) return false;for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0) return false;}return true;}}```3. 数组与循环题- 题目:编写一个Java程序,打印数组中所有元素的平方。

- 答案:```javapublic class SquareElements {public static void main(String[] args) {int[] numbers = {1, 2, 3, 4, 5};for (int i = 0; i < numbers.length; i++) {int square = numbers[i] * numbers[i];System.out.println("Square of " + numbers[i] + " is " + square);}}}4. 面向对象题- 题目:定义一个名为`Car`的类,包含属性`color`和`speed`,以及一个方法`increaseSpeed(int increment)`来增加速度。

java 关于循环和数组的选择题

java 关于循环和数组的选择题

一、关于循环的选择题1. 下面哪种循环不是Java语言中的循环结构?A. for循环B. if-else循环C. while循环D. do-while循环2. 在Java语言中,以下哪种循环可以在不知道具体循环次数的情况下使用?A. for循环B. if-else循环C. while循环D. do-while循环3. 在Java语言中,以下哪种循环至少会被执行一次?A. for循环B. if-else循环C. while循环D. do-while循环4. 下列哪个语句是正确的?A. for (int i=0; i<10; i++){}B. for (int i=0; i<10; i++){}C. for (i=0; i<10; i++){}D. for (int i=0; i<10, i++){}5. 在Java语言中,以下哪种循环会先执行循环体再判断条件?A. for循环B. if-else循环C. while循环D. do-while循环二、关于数组的选择题1. 在Java语言中,以下哪种声明是正确的数组声明方式?A. int arr[5];B. int[] arr = new int[5];C. arr[5] = new int[];D. int arr[];2. 如何获取数组arr的长度?A. arr.lenB. arr.sizeC. arr.lengthD. arr.count3. 在Java语言中,下列哪种方式是正确的数组初始化方式?A. arr = {1, 2, 3, 4, 5}B. arr = new int[5]{1, 2, 3, 4, 5}C. arr = (1, 2, 3, 4, 5)D. arr = new int[]{1, 2, 3, 4, 5}4. 在Java语言中,以下哪种方式能够遍历数组arr中的元素?A. for (int i=0; i<arr.length; i++){}B. for (int i=0; i<arr.size; i++){}C. for (int i=0; i<arr.count; i++){}D. for (int i=0; i<=arr.length; i++){}5. 在Java语言中,以下哪种操作可以将数组arr中的元素倒序排列?A. Arrays.sort(arr, Collections.reverseOrder());B. Arrays.sort(arr);C. Collections.reverse(Arrays.asList(arr));D. Collections.sort(arr, Collections.reverseOrder());以上就是关于Java语言中循环和数组的一些选择题,请读者认真思考后选择正确的答案。

计算机二级考试《JAVA》备考测试题「带答案」

计算机二级考试《JAVA》备考测试题「带答案」

计算机二级考试《JAVA》备考测试题「带答案」2017计算机二级考试《JAVA》备考测试题「带答案」为确保同学们将所涉及的考点全面复习到位,让大家充满信心的步入考场,以下是店铺搜索整理的一份计算机二级考试《JAVA》备考测试题【带答案】,供参考练习,希望对大家有所帮助!想了解更多相关信息请持续关注我们店铺!1). 下列语句中,可以作为无限循环语句的是( )。

A.for(;;){}B.for(i nt i =0;i <10000;i ++){}C.while(false){}D.do {}while(false)正确答案:A答案解析:B的循环终止条件为10000,CD 的终止条件为常量false ,都不能无限循环。

2). 用下列4种排序方法,对一个已排好序(由小到大)的序列进行由小到大排序时,选择( )方法最好。

A.冒泡排序B.直接选择排序C.直接插入排序D.归并排序正确答案:C答案解析:直接插入排序的基本算法是:当插入第i(i>=l)个对象时,前面的V[O],V[l],…,V[i -i]已经排好序,这时,用V[i]的关键码与V[i一1],[i -2]--的关键码顺序进行比较,找到插入位置即将V[i]插入,原来位置上的对象则向后移。

由此可知,直接插入排序法的关键码比较次数与对象的初始排列有关。

在本题中,序列已经排好序,所以其i的取值达到了最大,也就是序列中元素的个数,其实根本无需比较和交换,所以这种方法是最佳的。

3). 下面叙述中错误的是( )。

A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也被称为DebugD.软件测试应严格执行测试计划,排除测试的随意性正确答案:A答案解析:软件测试的目的是为了发现错误及漏洞而执行程序的过程。

软件测试要严格执行测试计划。

程序调式通常也称Debug ,对被调试的程序进行“错误”定位是程序调试的必要步骤。

java运用循环编程题及答案

java运用循环编程题及答案

1.编写一个数的阶乘和。

eg. Sum=1!+2!+3!+4!+5! publicclass j1_20 {publicstaticvoid main(String[] args) {int a,sum,b=0,i;sum=0;for(b=1;b<=5;b++){a=1;for(i=1;i<=b;i++){a=a*i;}sum+=a;}System.out.println("1到5的结成和"+sum);}}结果2.把一个数组里的数字按照从小到大的顺序排列出来publicclass j_sort {publicstaticvoid main(String[] args) {int a[]=newint[]{12,15,63,56,21,71,91,3,16,43}; for(int i=0;i<10;i++){for(int j=i+1;j<10;j++){if(a[i]>a[j]){int t;t=a[i];a[i]=a[j];a[j]=t;}}}System.out.println("从小到大的顺序为:"); for(int i=0;i<10;i++){System.out.print(a[i]+" ");}}}结果是3.输出一个三角形publicclass j_triangle1 {publicstaticvoid main(String[] args) {int a=5,b=5;for(int i=1;i<5;i++){for(int j=0;j<5-i;j++){System.out.print(" ");}for(int e=1;e<=i;e++){System.out.print(""+" ");}System.out.println("");}System.out.println("-----------");for(int i=1;i<5;i++){for(int j=0;j<5-i;j++){System.out.print(" ");}for(int e=1;e<2*i;e++){System.out.print("");}System.out.println("");}}}结果是4,.输出最小公约数是publicclass j_prime {publicstaticvoid main(String[] args) {int a=3,b=4,i;for(i=1;i>0 ;i++){if(i%a==0&&i%b==0){System.out.print("最小公约数是:"+i); break;}}}}结果是5.最大公约数publicclass j偶数和 {publicstaticvoid main(String[] args) {int a,sum=0;for(a=1;a<=100;a++){if(a%2==0){sum+=a;}}System.out.println("一百以内的偶数和"+sum);}}6.输出99乘法口诀publicclass j99表 {publicstaticvoid main(String[] args) {// 效果1int a,b,sum;for(a=1;a<10;a++){for(b=1;b<=a;b++){char c=(char)a;char d=(char)b;System.out.printf("%d"+"*"+"%d"+"="+a*b+"\t",a,b);}System.out.println(" ");}// //效果2// int i,j,k;// for(i=1;i<=9;i++)// {// for(j=1;j<=i;j++)// {// k=i*j;// System.out.print( " \t" +k);// }// System.out.print( "\n" );// }}}结果是7.统计个位数是 6 ,并且能被 3 整除的 5 位数共有多少个?publicclass j3_6 {publicstaticvoid main(String[] args) {int a,i=1000,sum=0;for(i=1000;i<10000;i++){a=10*i+6;if(a%6==0){sum+=1;}}System.out.print("统计个位数是 6 ,并且能被 3 整除的 5 位数共有:"+sum+"个!");}}结果是8.输出100以内的所有质数publicclass j100内质数 {publicstaticvoid main(String[] args) {int a,b,sum=0;for(a=2;a<=100;a++){boolean flag=true;for(b=2;b<a;b++){if(a%b==0) flag=false;}if(flag){System.out.println(a);sum+=1;}}System.out.println("一共有"+sum+"质数");}}结果是10.输出大于200的最小质数publicclass j4 {publicstaticvoid main(String[] args) {int a=200,b=2;for (a=200; ;a++){boolean flag=true;for(b=2;b<a;b++) {if (a%b==0) flag=false;}if(flag){System.out.println("大于200的最小质数是:"+a); break;}}}}结果是。

Java练习及参考答案

Java练习及参考答案

Java练习及参考答案1,编写程序,判断给定的某个年份是否是闰年。

闰年的判断规则如下:(1)若某个年份能被4整除但不能被100整除,则是闰年。

(2)若某个年份能被400整除,则也是闰年。

import java.util.Scanner;class Bissextile{public static void main(String[] arge){System.out.print("请输入年份");int year; //定义输入的年份名字为“year”Scanner scanner = new Scanner(System.in);year = scanner.nextInt();if (year<0||year>3000){System.out.println("年份有误,程序退出!"); System.exit(0);}if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile");elseSystem.out.println(year+" is not bissextile ");}}2,给定一个百分制的分数,输出相应的等级。

90分以上 A级80~89 B级70~79 C级60~69 D级60分以下 E级import java.util.Scanner;class Mark{public static void main(String[] args){System.out.println("请输入一个分数");//定义输入的分数为“mark”,且分数会有小数double mark;Scanner scanner = new Scanner(System.in);mark = scanner.nextDouble();//判断是否有输入错误。

java循环试题及答案

java循环试题及答案

java循环试题及答案# Java循环试题及答案1. 题目:编写一个Java程序,使用for循环计算1到100之间所有整数的和。

答案:```javapublic class SumOfNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}System.out.println("Sum of numbers from 1 to 100 is: " + sum);}}```2. 题目:使用while循环实现一个Java程序,要求打印出从1开始的前10个奇数。

答案:```javapublic class OddNumbers {public static void main(String[] args) {int count = 1;int number = 1;while (count <= 10) {System.out.println(number);number += 2;count++;}}}```3. 题目:编写一个Java程序,使用do-while循环计算1到100之间所有整数的乘积。

答案:```javapublic class ProductOfNumbers {public static void main(String[] args) {long product = 1;int i = 1;do {product *= i;i++;} while (i <= 100);System.out.println("Product of numbers from 1 to 100 is: " + product);}}```4. 题目:使用for循环编写一个Java程序,打印出2的幂次方直到结果超过1000。

javawhile循环题目

javawhile循环题目

javawhile循环题目一、概述Java while循环是一种常用的控制结构,用于在满足特定条件的情况下重复执行一段代码。

在本篇文章中,我们将通过一些Java while循环的题目来加深对这种控制结构的理解。

二、题目及解答1. 打印三角形要求使用while循环打印一个三角形,每行的星号数量由用户输入。

解答:```javaimport java.util.Scanner;public class PrintTriangle {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入每行星号数量:");int num = input.nextInt();int i = 1;while (i <= num) {int j = 1;while (j <= num - i) {System.out.print(" ");j++;}System.out.print("*");i++;j = 1;while (j <= i) {System.out.print(" ");j++;}System.out.println();}}}```2. 打印斐波那契数列要求使用while循环打印斐波那契数列的前n个数(n由用户输入)。

解答:```javapublic class Fibonacci {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入要打印的斐波那契数列的个数:");int n = input.nextInt();int a = 0, b = 1;int result = 0;while (n > 0) {result += a; // 将前两个数的和加入结果中,并更新下一个数a为b,b为前两个数的和。

JAVA循环语句练习(后面有答案及代码,请在自己答题后再查阅答案)

JAVA循环语句练习(后面有答案及代码,请在自己答题后再查阅答案)

一、选择题1.下列语句序列执行后,m的值是() int a=10,b=3,m=5;if(a==b) m+=a;else m=++a*m;A)15 B)50 C)55 D)52.下列语句序列执行后,k的值是() int i=4,j=5,k=9,m=5;if(i>j||m<k) k++;else k--;A)5 B)10 C)8 D)93.下列语句序列执行后,k的值是() int i=10,j=18,k=30;switch(j-i){case 8: k++;case 9: k+=2;case 10:k+=3;default:k/=j;}A)31 B)32 C)2 D)334.若a和b均是整型变量并已正确赋值,正确的switch语句是()A)switch(a+b);{......}B)switch(a+b*3.0){......}C)switch a{......}D)switch(a%b){......}5.下列语句序列执行后,r的值是()Char ch='8';int r=10;switch(ch+1){case '7': r=r+3;case '8': r=r+5;case '9': r=r+6; break;default: r =r+8;}A)13 B)15 C)16 D)186.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值,正确的switch语句是()A)switch(x+y){......}B)switch(ch+1){......}C)switch ch{......}D)switch(a+b);{......}7.下列语句序列执行后,k的值是() Int x=6,y=10,k=5;switch(x%y){case 0:k=x*y;case 6:k=x/y;case 12:k=x-y;default:k=x*y-x;}A)60 B)5 C)0 D)548.下列语句序列执行后,r的值是() Char ch='A';int r=6;switch(ch+5){case 'A':r=r+3;case 'B':r=r+5;case 'C':r-=6; break;default:r/=2;}A)11B)3 C)2 D)99.以下for循环的执行次数是()for(int x=0;(x==0)&(x>4);x++);A)无限次 B)一次也不执行 C)执行4次 D)执行3次10.下列语句序列执行后,j的值是()int j=1;for(int i=5;i>0;i-=2)j*=i;A)15 B)1 C)60 D)011.以下for循环的执行次数是()for(int x=0;(x==0)&(x<4);x++);A)无限次 B)一次 C)执行4次 D)执行3次12.下列语句序列执行后,j的值是()int j=2;for(int i=7;i>0;i-=2) j*=2;A)15 B)1 C)60 D)3213.以下由for语句构成的循环执行的次数是()for(int i=0;true;i++);A)有语法错,不能执行 B)无限次 C)执行1次 D)一次也不执行14.下列语句序列执行后,i的值是() int s=1,i=1;while(i<=4){s*=i;i++;}A)6 B)4 C)24 D)515.下列语句序列执行后,j的值是() int j=8,i=6;while(i>4)i-=2;--j;A)5 B)6 C)7 D)816.若有循环:int x=5,y=20;do{y-=x;x+=2;}while(x<y);则循环体将被执行()A)2次 B)1次 C)0次 D)3次17.以下由do-while语句构成的循环执行的次数是()int m=8;do{++m;}while(m<8);A)一次也不执行B)执行1次C)8次D)有语法错,不能执行18.下列语句序列执行后,i的值是()int i=10;do{i/=2;}while(i>1);A)1 B)5 C)2 D)019.下列语句序列执行后,i的值是()int i=10;do{i/=2;}while(i-->1);A)1 B)5 C)2 D)-1二、程序填空1、下面是一个java应用程序(Application),它的功能是在屏幕上输出26个小写英文字母,其中每个字母相隔一个制表符,请完成程序填空。

循环练习题(二)及答案

循环练习题(二)及答案

一、选择题1、以下程序段的输出结果是( D )int k, j, s=0;for(k=2;k<6;k++,k++){s = 1;for(j=k;j<6;j++)s+=j;}System.out.print(s);A)9 B)1 C)11 D)102、以下程序段的输出是( C )int i, j, m=0;for(i=1;i<=15;i+=4){for(j=3;j<=19;j+=4)m++;}System.out.print(m);A)12 B)15 C)20 D)253、以下程序段的输出是( A )int i,sum=0;for(i=1;i<6;i++)sum+=i;System.out.print(sum);A)15 B)14 C)不确定D)04、以下程序段的输出是( D )int x=3,y=6,a=0;while(x++!=(y-=1)){a+=1;if(y<x)break;}System.out.print(“x=”+x+”,y=”+y+”,a=”+a);A)x=4,y=4,a=1 B)x=5,y=5,a=1 C)x=5,y=1,a=3 D)x=5,y=4,a=15、定义如下变量:int n = 10 ;则下列循环的输出结果是( B )while(n>7){n-- ;System.out.println(n) ;}A)10 B)9 C)10 D)99 8 9 88 7 8 77 66、以下程序段的输出是( C )int x=3;do{System.out.print(x-=2);}while(--x==0)A)1 B)3 0 C)1 -2 D)死循环7、以下程序段的输出是( B )int a,b;for(a=1,b=1;a<100;a++){if(b>=20) break;if(b%3==1){b+=3;continue;}b-=5;}System.out.print(a);A)7 B)8 C)9 D)108、以下程序段的输出是( C )int num=0;while(num<=2){num++;System.out.print(num);}A)1 B)2 2 C)1 2 3 D)1 2 3 49、以下循环体的执行次数是( C )int i,j ;for(i=0,j=1 ;i<=j+1 ;i+=2,j--)System.out.print(i) ;A)3 B)2 C)1 D)010、设j为int型变量,则下面for循环语句的执行结果是( B )for(j=10 ;j>3 ;j--){if(j%3 !=0)j-- ;--j ;--j ;System.out.print(j) ;}A)6 3 B)7 4 C)6 2 D)7 311、在循环for,while,do-while语句中,用于直接中断内层循环的语句是( C )A)switch B)continue C)break D)if二、填空题1、以下程序段的输出结果是_1024___int k, n, m;n = 10;m = 1;k = 1;while(k<=n){m = m*2;k++;}System.out.print(m);2、以下程序段的输出结果是_10___int x=2;while(x--!=0){System.out.print(x);}3、在循环中,continue语句与break语句的区别是:_continue语句是跳出本次循环,进入下一次循环;break语句是终止某个循环,程序跳转到循环块外的下一条语句。

Java循环练习级答案

Java循环练习级答案

1、100以内所有偶数的和。

publicclass Course{publicstaticvoid main(String[] args){int num=0;for(int i=0;i<=100;i+=2){num+=i;}System.out.println("sum="+num);}}2、9的阶乘。

publicclass Course{publicstaticvoid main(String[] args){int num=1;int i=1;for(;i<10;i++){num*=i;}System.out.println("sum="+num);}}3、从控台输入一个数num与之前定义的数n进行比较,如果num==n提示”找到了”并跳出循环,如果num<n提示”小了”,如果num>n提示”大了”,并让其重新输入,如果4次都没有猜对,则提示”抱歉,已经没有机会了”。

import java.util.Scanner;publicclass Course{publicstaticvoid main(String[] args){int n = 88;boolean f=false;for(int i=1;i<5;i++){System.out.print("输入一个数字:");Scanner s = new Scanner (System.in);int num = s.nextInt();if(num>n){System.out.println("大了,重输入");}elseif(num<n){System.out.println("小了,重输入");}else{System.out.println("ok");f=true;break;}}if(f==false){System.out.print("没机会了");}}}4、登录功能,从控制台输入用户名及密码,如果用户名及密码与所定义的一致,则登陆成功,否则失败。

java-循环结构的例题

java-循环结构的例题

java-循环结构的例题1.从键盘输⼊个数不确定的整数,并判断输⼊的正数和负数的个数,输⼊为0时结束程序。

提⽰:最简单“⽆限”循环格式:while(true),for(;;),⽆限循环存在的原因是因为并不知道要循环多少次,需要根据循环体内部的某些条件,来控制循环的结束。

代码实现:import java.util.Scanner;class ex{public static void main(String[] args){int count1=0;int count2=0;while(true){System.out.println("请输⼊⼀个整数:");Scanner scan=new Scanner(System.in);int n=scan.nextInt();if(n>0){count1++;}else if(n<0){count2++;}elsebreak;}System.out.println("正数的个数为"+count1);System.out.println("负数的个数为"+count2);}} 运⾏结果:2.打印九九乘法表代码实现:class ex{public static void main(String[] args){for(int i=1;i<=9;i++){for(int j=1;j<=i;j++){System.out.print(i+"*"+j+"="+(i*j)+" ");}System.out.println();}}}运⾏结果:3.100000以内的所有质数的输出质数:素数,只能被1和它本⾝整除的⾃然数。

==> 从2开始到n-1结束,都不能被这个数整除。

最⼩的质数:2注意:(1既不是质数也不是合数)代码:实现⽅法⼀代码:(效率差)class ex{public static void main(String[] args){boolean isFlag=true;//定义⼀个标识//获取当前时间距离1970-01-01 00:00:00的毫秒数long start=System.currentTimeMillis();for(int i=2;i<=100000;i++){//遍历10000以内的⾃然数for(int j=2;j<i;j++){if(i%j==0){//能除尽——但这⾥不能⽤break,因为会退出当前循环isFlag=false;//标识设为false}}if(isFlag==true){//如果为true,说明都不能除尽System.out.println(i);}//重置isFlagisFlag=true;}long end=System.currentTimeMillis();System.out.println("所花费的时间为:"+(end-start)+"s");}}运⾏截图:算法优化⼀代码:class ex{public static void main(String[] args){boolean isFlag=true;//定义⼀个标识//获取当前时间距离1970-01-01 00:00:00的毫秒数long start=System.currentTimeMillis();for(int i=2;i<=100000;i++){//遍历100000以内的⾃然数for(int j=2;j<i;j++){//被i去除if(i%j==0){//能除尽——但这⾥不能⽤break,因为会退出当前循环isFlag=false;//标识设为falsebreak;//优化1 遇到了能除尽的,就退出⾥边的循环:只对本⾝⾮质数的⾃然数有效 }}if(isFlag==true){//如果为true,说明都不能除尽System.out.println(i);}//重置isFlagisFlag=true;}long end=System.currentTimeMillis();System.out.println("所花费的时间为:"+(end-start)+"s");}}运⾏截图:算法优化⼆代码:class ex{public static void main(String[] args){boolean isFlag=true;//定义⼀个标识//获取当前时间距离1970-01-01 00:00:00的毫秒数long start=System.currentTimeMillis();for(int i=2;i<=100000;i++){//遍历100000以内的⾃然数for(int j=2;j<=Math.sqrt(i);j++){if(i%j==0){//能除尽——但这⾥不能⽤break,因为会退出当前循环isFlag=false;//标识设为falsebreak;//优化1 遇到了能除尽的,就退出⾥边的循环:只对本⾝⾮质数的⾃然数有效 }}if(isFlag==true){//如果为true,说明都不能除尽System.out.println(i);}//重置isFlagisFlag=true;}long end=System.currentTimeMillis();System.out.println("所花费的时间为:"+(end-start)+"s");}}运⾏截图:算法优化三:代码:class ex{public static void main(String[] args){boolean isFlag=true;//定义⼀个标识//获取当前时间距离1970-01-01 00:00:00的毫秒数long start=System.currentTimeMillis();for(int i=2;i<=100000;i++){//遍历100000以内的⾃然数for(int j=2;j<=Math.sqrt(i);j++){if(i%j==0){//能除尽——但这⾥不能⽤break,因为会退出当前循环isFlag=false;//标识设为falsebreak;//优化1 遇到了能除尽的,就退出⾥边的循环:只对本⾝⾮质数的⾃然数有效}}if(isFlag==true){//如果为true,说明都不能除尽System.out.println(i);//如果不想显⽰,可以统计⼀下质数的个数,在这⾥count++(记得在开头要初始化为0) }//重置isFlagisFlag=true;}long end=System.currentTimeMillis();System.out.println("所花费的时间为:"+(end-start)+"s");}} 运⾏截图:优化⽅法四:(这个⽅法相⽐之前的只是输出的数据少了—注释了⼀条语句,添了⼀条语句,如果你把之前的三种优化⽅法都照着这种改⼀下,都会变快很多)代码:class ex{public static void main(String[] args){boolean isFlag=true;//定义⼀个标识int count=0;//获取当前时间距离1970-01-01 00:00:00的毫秒数long start=System.currentTimeMillis();for(int i=2;i<=100000;i++){//遍历10000以内的⾃然数for(int j=2;j<=Math.sqrt(i);j++){if(i%j==0){//能除尽——但这⾥不能⽤break,因为会退出当前循环isFlag=false;//标识设为falsebreak;//优化1 遇到了能除尽的,就退出⾥边的循环:只对本⾝⾮质数的⾃然数有效}}if(isFlag==true){//如果为true,说明都不能除尽//System.out.println(i);count++;}//重置isFlagisFlag=true;}long end=System.currentTimeMillis();System.out.println("所花费的时间为:"+(end-start)+"s");}}实现⽅式⼆:(运⽤到了continue关键字)class ex{public static void main(String[] args){boolean isFlag=true;//定义⼀个标识int count=0;//获取当前时间距离1970-01-01 00:00:00的毫秒数long start=System.currentTimeMillis();label:for(int i=2;i<=100000;i++){//遍历10000以内的⾃然数for(int j=2;j<=Math.sqrt(i);j++){if(i%j==0){//能除尽——但这⾥不能⽤break,因为会退出当前循环continue label;//优化2 遇到了能除尽的,就退出⾥边的循环:只对本⾝⾮质数的⾃然数有效}}count++;//能执⾏到此步骤的都是质数}long end=System.currentTimeMillis();System.out.println("质数的个数为:"+count);System.out.println("所花费的时间为:"+(end-start)+"s"); }} 运⾏截图:。

Java练习题库(含答案及解析)100题

Java练习题库(含答案及解析)100题

Java练习题库(含答案)一、Java语法基础(1-18)1、在Java中,负责对字节码解释执行的是()。

答案:BA、垃圾回收器B、虚拟机C、编译器D、多线程机制2、下列描述中,正确的是()答案:AA、Java程序的main方法必须写在类里面。

B、Java程序中可以有多个main方法。

C、Java程序中类名必须与文件名一样。

(public修饰的才有这要求)D、Java程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来。

3、下列描述中,正确的是()答案:AA、Java中的标识符是区分大小写的B、源文件名与public类名可以不相同C、Java源文件扩展名为.jarD、Java源文件中public类的数目不限4、下列关于Java中变量命名规范的描述中,正确的是( ) 答案:BA、变量由字母、下划线、数字、$符号随意组成。

(数字不能开头)B、变量不能以数字开头。

C、A和a在java中是同一个变量。

D、不同类型的变量,可以起相同的名字。

5、以下选项中,不是Java合法标识符的是( ) 答案:CA、 VOIDB、 x3xC、 finalD、 abc$def6、在Java中定义一个类时,所使用的关键字是()。

答案:AA、classB、publicC、structD、class 或struct7、下列关于运算符优先级别排序正确的是()答案:AA、由高向低分别是:()、!、算术运算符、关系运算符、逻辑运算符、赋值运算符;B、由高向低分别是:()、关系运算符、算术运算符、赋值运算符、!、逻辑运算符;C、由高向低分别是:()、算术运算符、逻辑运算符、关系运算符、!、赋值运算符;D、由高向低分别是:()、!、关系运算符、赋值运算符、算术运算符、逻辑运算符;8、表达式(15+3*8)/4%3的值是( )答案:AA、 0B、 1C、 2D、 399、已知字符A对应的ASCII码值是65,那么表达式"A" + 1的值是()答案:CA.、66 B、B C、A1 D、非法表达式,编译出错10、下列关于boolean类型的叙述中,正确的是()答案:DA、可以将boolean类型的数值转换为int类型的数值B、可以将boolean类型的数值转换为字符串C、可以将boolean类型的数值转换为char类型的数值D、不能将boolean类型的数值转换为其他基本数据类型11、下面关于for循环的描述正确的是( ) 答案:AA、 for循环体语句中,可以包含多条语句,但要用大括号括起来。

java基础50道经典练习题及答案

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,求其最大公约数和最小公倍数。

【程序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。

循环试题及答案

循环试题及答案

循环试题及答案一、单项选择题(每题2分,共20分)1. 在循环结构中,以下哪个关键字用于控制循环的执行次数?A. ifB. forC. whileD. switch答案:B2. 在for循环中,以下哪个表达式用于初始化循环变量?A. 条件表达式B. 循环体C. 初始表达式D. 终止条件答案:C3. 下列哪个选项是while循环的一般形式?A. while (条件) {循环体}B. for (初始化; 条件; 迭代) {循环体}C. do {循环体} while (条件);D. A和B答案:A4. 在循环中,break语句的作用是什么?A. 继续执行下一个循环B. 跳出当前循环C. 跳转到循环的开始D. 终止程序答案:B5. 下列哪个选项不是循环结构的特点?A. 可以执行0次B. 可以执行有限次C. 可以执行无限次D. 只能执行一次答案:D6. 在for循环中,迭代表达式的作用是什么?A. 用于初始化循环变量B. 用于更新循环变量C. 用于判断循环条件D. 用于执行循环体答案:B7. 下列哪个关键字不是用于循环控制的?A. continueB. breakC. returnD. goto答案:C8. 在while循环中,如果条件表达式始终为真,会发生什么?A. 循环将无限执行B. 循环将执行一次C. 循环将不执行D. 程序将崩溃答案:A9. 下列哪个选项是do-while循环的特点?A. 循环体至少执行一次B. 循环体可能不执行C. 循环体只执行一次D. 循环体执行次数无限答案:A10. 在for循环中,以下哪个表达式用于判断循环是否继续?A. 初始表达式B. 条件表达式C. 迭代表达式D. 循环体答案:B二、填空题(每题2分,共10分)1. 在for循环中,循环变量的初始值由______表达式设定。

答案:初始2. 循环结构通常用于执行______次的操作。

答案:重复3. 使用______语句可以立即退出循环。

JAVA习题集(含答案)

JAVA习题集(含答案)

JAVA习题集(含答案)习题一:1.简述Java的发展过程。

2.什么是软件?3.什么叫做源程序?4.什么叫做编译?5.什么是Java 的byte-codes?它的最大好处是什么?6.机器语言程序、高级语言程序以及可表示成Java字节码的程序之间的区别是什么?7.Java程序可分为哪两种?分别如何运行?8.试简述J2SE、J2ME与J2EE的简单区别。

9.练习使用浏览器查看Java API文档。

10.SDK的编译命令是什么?11.试修改例1-1程序,使其输出的字符串为“I’d like to study Java !”,并在DOS命令行环境下编译与运行该程序。

习题一参考答案:1.答:1991:Sun Microsystems公司进军消费电子产品(IA)市场。

1991.4:Sun 成立“Green”小组,以C++为基础开发新的程序设计语言,并将其命名为Oak。

1992.10:Green小组升格为First Person公司,他们将Oak的技术转移到Web上,并把Oak改名为Java。

1993~1994:Web在Internet上开始流行,致使Java得以迅速发展并获得成功。

1995.5:Sun Microsystems公司正式发表Java与HotJava产品。

1995.10:Netscape与Sun Microsystems合作,在Netscape Nevigator中支持Java。

1995.12:微软(Microsoft)IE加入支持Java的行列。

1996.2:Java Beta测试版结束,Java 1.0版正式诞生。

1997.2:Java发展至1.1版。

Java的第一个开发包JDK(Java Development Kit)发布。

1999.7:Java升级至1.2版。

2000.9:Java升级至1.3版。

2001.7:Java升级至1.4版。

2.答:软件可以理解为程序的另一种名称。

3.答:直接使用高级语言书写的程序代码称为源程序4.答:把用高级语言编写的源程序翻译成可执行(目标)程序的过程称为编译。

JAVA循环语句练习(后面有答案及代码-请在自己答题后再查阅答案)

JAVA循环语句练习(后面有答案及代码-请在自己答题后再查阅答案)

一、选择题1.下列语句序列执行后,m的值是() int a=10,b=3,m=5;if(a==b) m+=a;else m=++a*m;A)15 B)50 C)55 D)52.下列语句序列执行后,k的值是() int i=4,j=5,k=9,m=5;if(i>j||m<k) k++;else k--;A)5 B)10 C)8 D)93.下列语句序列执行后,k的值是() int i=10,j=18,k=30;switch(j-i){case 8: k++;case 9: k+=2;case 10:k+=3;default:k/=j;}A)31 B)32 C)2 D)334.若a和b均是整型变量并已正确赋值,正确的switch语句是()A)switch(a+b);{......}B)switch(a+b*3.0){......}C)switch a{......}D)switch(a%b){......}5.下列语句序列执行后,r的值是()Char ch='8';int r=10;switch(ch+1){case '7': r=r+3;case '8': r=r+5;case '9': r=r+6; break;default: r =r+8;}A)13 B)15 C)16 D)186.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值,正确的switch语句是()A)switch(x+y){......}B)switch(ch+1){......}C)switch ch{......}D)switch(a+b);{......}7.下列语句序列执行后,k的值是() Int x=6,y=10,k=5;switch(x%y){case 0:k=x*y;case 6:k=x/y;case 12:k=x-y;default:k=x*y-x;}A)60 B)5 C)0 D)548.下列语句序列执行后,r的值是() Char ch='A';int r=6;switch(ch+5){case 'A':r=r+3;case 'B':r=r+5;case 'C':r-=6; break;default:r/=2;}A)11B)3 C)2 D)99.以下for循环的执行次数是()for(int x=0;(x==0)&(x>4);x++);A)无限次 B)一次也不执行 C)执行4次 D)执行3次10.下列语句序列执行后,j的值是()int j=1;for(int i=5;i>0;i-=2)j*=i;A)15 B)1 C)60 D)011.以下for循环的执行次数是()for(int x=0;(x==0)&(x<4);x++);A)无限次 B)一次 C)执行4次 D)执行3次12.下列语句序列执行后,j的值是()int j=2;for(int i=7;i>0;i-=2) j*=2;A)15 B)1 C)60 D)3213.以下由for语句构成的循环执行的次数是()for(int i=0;true;i++);A)有语法错,不能执行 B)无限次 C)执行1次 D)一次也不执行14.下列语句序列执行后,i的值是() int s=1,i=1;while(i<=4){s*=i;i++;}A)6 B)4 C)24 D)515.下列语句序列执行后,j的值是() int j=8,i=6;while(i>4)i-=2;--j;A)5 B)6 C)7 D)816.若有循环:int x=5,y=20;do{y-=x;x+=2;}while(x<y);则循环体将被执行()A)2次 B)1次 C)0次 D)3次17.以下由do-while语句构成的循环执行的次数是()int m=8;do{++m;}while(m<8);A)一次也不执行B)执行1次C)8次D)有语法错,不能执行18.下列语句序列执行后,i的值是()int i=10;do{i/=2;}while(i>1);A)1 B)5 C)2 D)019.下列语句序列执行后,i的值是()int i=10;do{i/=2;}while(i-->1);A)1 B)5 C)2 D)-1二、程序填空1、下面是一个java应用程序(Application),它的功能是在屏幕上输出26个小写英文字母,其中每个字母相隔一个制表符,请完成程序填空。

java循环练习及答案

java循环练习及答案

java循环练习及答案1、实现一个课程名称和课程代号的转换器:输入下表中的课程代号,输出课程的名称。

用户可以循环进行输入,如果输入n就退出系统。

(使用do-while循环实现)publicclassa2{publicstaticvoidmain(string[]args){scannerscanner=newscanner(system.in);string ke="";do{system.out.println("请输入代码:");ke=scanner.next();if(ke.equals("1")){system.out.println("采用java语言认知程序逻辑");if(ke.equals("2")){system.out.println("采用html语言研发商业站点");if(ke.equals("3")){system.out.println("采用sqlserver管理和查阅数据");}if(ke.equals("4")){system.out.println("采用c#研发数据库应用程序");if(ke.equals("n")){}}while(true);}system.out.println("失效!");break;2、本金10000元存入银行,年利率是千分之三。

每过1年,将本金和利息相加作为新的本金。

计算5年后,获得的本金是多少?(使用for循环实现)classa3{}publicstaticvoidmain(string[]args){doublemon=10000;for(inti=0;i3、谋整数1~100的递增值,但建议UX21LI2677E所有个位为3的数。

循环能力测试题及答案

循环能力测试题及答案

循环能力测试题及答案
一、单项选择题
1. 在循环结构中,以下哪个选项是正确的?
A. for循环只能用于数组
B. while循环不能用于字符串
C. do-while循环至少执行一次
D. 以上都不对
答案:C
2. 以下哪个循环结构在执行过程中,条件判断失败时会直接退出循环?
A. for循环
B. while循环
C. do-while循环
D. 以上都是
答案:B
二、填空题
1. 在编程中,____循环结构允许在循环体执行完毕后再进行条件判断。

答案:do-while
2. 如果需要对一个数组中的每个元素进行操作,通常会使用____循环
结构。

答案:for
三、判断题
1. 循环结构中的break语句可以用来立即退出循环。

答案:正确
2. 在循环中,continue语句的作用是跳过当前循环的剩余部分,直接进入下一次循环判断。

答案:正确
四、简答题
1. 请简述循环结构中while和do-while的主要区别。

答案:while循环在每次迭代前都会检查条件是否满足,如果不满足则不执行循环体;而do-while循环至少执行一次循环体,然后在每次迭代后检查条件是否满足。

2. 描述for循环的基本结构。

答案:for循环的基本结构为for(初始化表达式;条件表达式;更新表达式){循环体},其中初始化表达式用于设置循环变量的初始值,条件表达式用于判断循环是否继续,更新表达式用于更新循环变量。

结束语:以上是循环能力测试题及答案,希望能够帮助大家更好地理解和掌握循环结构的相关知识。

java中for循环选择题

java中for循环选择题

java中for循环选择题一、简答题1. Java中的for循环可以用于哪些场合?请举出至少三个例子。

答:Java中的for循环可以用于遍历数组、集合和列表等数据结构,以及用于控制循环计数器等场合。

例如,以下代码展示了如何使用for循环遍历一个整数数组:```javaint[] arr = {1, 2, 3, 4, 5};for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}```这段代码会依次输出数组中的每个元素。

2. for循环的基本语法是什么?它由哪三个部分组成?答:for循环的基本语法是:```javafor (初始化表达式; 循环条件; 更新表达式) {// 循环体语句}```其中,初始化表达式在循环开始前执行一次,通常用于初始化循环计数器等变量;循环条件是每次循环开始前执行的判断语句,用于控制循环的执行次数;更新表达式在每次循环结束后执行,通常用于更新循环计数器等变量的值。

二、选择题1. 下列哪个选项不是for循环的三个部分?A. 循环变量名B. 循环计数器初始值C. 循环计数器增量值D. 循环计数器变量类型正确答案:D. 循环计数器变量类型。

在for循环中,通常不需要指定循环计数器的变量类型。

2. 下列哪个选项的for循环语句是错误的?A. for(int i = 0; i < n; i++) { System.out.println(i); } //正确,用于输出0到n-1的整数序列B. for(char c : str) { System.out.println(c); } //正确,用于遍历字符串的每个字符C. for(double d : list) { System.out.println(d); } //错误,不能使用double类型作为for循环的迭代变量D. for(int i = 1; i <= n; k++) { System.out.println(i); } //正确,用于输出1到n-1的整数序列(每次循环计数器i增加k)正确答案:C. for(double d : list) { System.out.println(d); }。

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

循环练习1、实现一个课程名称和课程代号的转换器:输入下表中的课程代号,输出课程的名称。

用户可以循环进行输入,如果输入n就退出系统。

(使用do-while循环实现)public class A2 {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);String ke="";do {S ystem.out.println("请输入代码:");k e=scanner.next();i f(ke.equals("1")){System.out.println("使用Java语言理解程序逻辑");}i f(ke.equals("2")){System.out.println("使用HTML语言开发商业站点");}i f(ke.equals("3")){System.out.println("使用SQL Server管理和查询数据");}i f(ke.equals("4")){System.out.println("使用C#开发数据库应用程序");}i f(ke.equals("n")){System.out.println("出错!");break;}} while (true);}}2、本金10000元存入银行,年利率是千分之三。

每过1年,将本金和利息相加作为新的本金。

计算5年后,获得的本金是多少?(使用for循环实现)class A3 {public static void main(String[] args) {double mon = 10000;for(int i = 0; i < 5; i++){mon *= 1+0.003;}System.out.println("5年后,获得的本金是"+mon+"元");}}3、求整数1~100的累加值,但要求跳过所有个位为3的数。

(使用for循环实现)public class A4 {public static void main(String[] args) {int i = 0,n=0;for (int a = 0; a < 10; a++) {for (int b = 0; b <= 9; b++) {if (b!=3) {i=a*10+b;n+=i;}}}n+=100;System.out.println(n);}}4、输入一个正整数N,判断该数是不是质数,如果是质数输出“N是一个质数”,否则输出“N不是质数”。

提示:质数的含义:除了1和它本身不能被任何数整除。

(使用for循环实现)import java.util.Scanner;public class A5 {public static void main(String[] args) {int n,m=0;Scanner N=new Scanner(System.in);System.out.println("请输入要判断的数字:");do{n=N.nextInt();for (int i = 2; i < n; i++) {if (n%i==0) {m=1;}}if (m==1) {System.out.println("N不是质数");}e lse {System.out.println("N是质数");}m=0;}while(true);}}5、输入一个正整数,将该数的各位左右反转输出,即输入123,输出321。

(使用while循环实现)import java.util.Scanner;public class A6 {public static void main(String[] args) {Scanner input =new Scanner(System.in);System.out.print("请输入一个正整数:");int num = input.nextInt();if(num > 0){System.out.println("反转前:" + num);System.out.print("反转后:");while(num != 0){int temp = num % 10;System.out.print(temp);num /= 10;}}else{System.out.println("您输入的不是一个正整数!");}}}6、在屏幕上打印出n行的金字塔图案,如,若n=5,则图案如下:************************public class A7 {public static void main(String[] args) {for(int i=1;i<=5;i++){for(int j=1;j<=5-i;j++){System.out.print(" ");}for(int k=1;k<=2*i-1;k++){System.out.print("*");}System.out.println();}}}7、打印出100~999之间的所有“水仙花数”。

所谓“水仙花数”,是指一个3位数,其各位数字立方和等于该数本身。

例如:153是一个“水仙花数”,因为153=13+53+33。

public class A8 {public static void main(String[] args) {int a,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++){if((a*a*a+b*b*b+c*c*c)==(100*a+10*b+c)){System.out.println((100*a+10*b+c));}}}}}}8、幸运猜猜猜:游戏随机给出一个0~99(包括0和99)的数字,然后让你猜是什么数字。

你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。

经过几次猜测与提示后,最终推出答案。

在游戏过程中,记录你最终猜对时所需要的次数,游戏结束后公布结果。

积分对照表猜测次数最多20次。

提示:(1)产生0~99之间的随机数字:int number = (int)(Math.random()*100)(2)使用for循环结构,其中循环计数器counter同时也记录你猜测的次数(3)计算积分可以使用switch结构import java.util.Scanner;public class A9 {public static void main(String[] args) {int s=0;int number = (int)(Math.random()*100);Scanner scanner=new Scanner(System.in);System.out.println("请输入一个0~99(包括0和99)的数字:");do {int i=scanner.nextInt();s++;if(i==number){if(s==1){System.out.println("您太有才了!");System.out.println("这次游戏,您共用了"+s+"次,就猜对了!");break;}if(s<=6&&s>=2){System.out.println("这么快就猜出来了,您真聪明!");System.out.println("这次游戏,您共用了"+s+"次,就猜对了!");break;}if(s>=7){System.out.println("恭喜您,猜对了!");System.out.println("这次游戏,您共用了"+s+"次,就猜对了!");break;}break;}else{if(i>number){System.out.println("对不起,您猜大了!");}if(i<number){System.out.println("对不起,您猜小了!");}}}while(s<20);System.out.println("欢迎您下次再玩儿!");}}9、将一个数组中的元素倒排过来,不能新开一个数组的临时存储空间,只能在原数组上改public class BubbleSortDEmo {public static void main(String[] args) {int[] sum = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };int temp;int len = sum.length;for (int i = 0; i < len / 2; i++) {temp = sum[i];sum[i] = sum[sum.length - 1 - i];sum[sum.length - 1 - i] = temp;}System.out.println("排序后:");for(int i=0;i<sum.length;i++){System.out.println(sum[i]);}}}10、输入3个整数x,y,z 把三个数从小到大输出import java.util.Scanner;public class NumSort {public static void main(String [] args){int x,y,z;Scanner scanner=new Scanner(System.in);System.out.println("请输入x变量的值:");x=scanner.nextInt();System.out.println("请输入y变量的值:");y=scanner.nextInt();System.out.println("请输入z变量的值:");z=scanner.nextInt();int temp;if(x>y){temp=x;x=y;y=temp;}}}11、输入2组数据分别是年月日求他们相差多少天?import java.util.Scanner;public class ClacYearDay {public static void main(String[] args){int[] date_one=new int[3];int[] date_two=new int[3];Scanner scanner=new Scanner(System.in);System.out.println("请输入年:");date_one[0]=scanner.nextInt();System.out.println("请输入月:");date_one[1]=scanner.nextInt();System.out.println("请输入日:");date_one[2]=scanner.nextInt();System.out.println("请输入年:");date_two[0]=scanner.nextInt();System.out.println("请输入月:");date_two[1]=scanner.nextInt();System.out.println("请输入日:");date_two[2]=scanner.nextInt();int after=ClacDay(date_one[0], date_one[1], date_one[2]);int before=ClacDay(date_two[0], date_two[1], date_two[2]);if(after>before){System.out.println("两个日期之间相差:"+(after-before)+"天");}else {System.out.println("两个日期之间相差:"+(before-after)+"天");}}/**** @param year 年* @param month 月* @param day 日* @return*/public static int ClacDay(int year, int month, int day) {int total = 0;int init;int[] monthday = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };for (init = 1; init < year; init++) {if (init % 4 == 0 && init % 100 != 0 || init % 400 == 0) {total += 366;} else {total += 365;}}if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {monthday[2] = 29;}for (int i =0; i < month; i++) {total += monthday[i];}total += day;return total;}}。

相关文档
最新文档