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语言中循环和数组的一些选择题,请读者认真思考后选择正确的答案。
循环结构习题有答案

第6章循环结构程序设计1.以下叙述正确的是()A、do-while语句构成的循环不能用其它语句构成的循环代替。
B、d o-while语句构成的循环只能用break语句退出。
C、用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D、用do-while语句构成的循环,在while后的表达式为零时结束循环。
答案:D2.以下程序的输出结果是( )A、10,1 9,2B、9,8 7,6C、10,9 9,0D、10,10 9,1main( ){int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d,%d",x--,y);}答案:D注解:循环执行2次,由x控制循环的执行次数;输出值为两次循环过程中x每次的自减值和y在for语句的第三个表达式中得到的i自增变化后的值。
3.以下程序的输出结果是( )A、2 0B、3 1C、3 2 1D、2 1 0main( ){ int n=4;while(n--) printf("%d ",--n);}答案:A4.以下程序的输出结果是( )A、#*#*#B、#####C、*****D、*#*#*main( ){ int i;for(i=1;i<6;i++){ if(i%2) {printf("#");continue;}printf("*");}printf("\n");}答案:A注解:循环控制变量i的值从1变化到5,i为1、3、5时,i%2为1,if语句的条件为真,则执行if后的子句,输出#,然后执行continue语句,终止本次循环的执行,进入下一轮循环,i为2、4时,i%2为0,if语句的条件为假,则if后的子句并不执行,直接输出*,所以最后的输出为#*#*#。
5.以下程序的输出结果是( )A、编译不通过,无输出B、acegC、acegiD、abcdefghimain( ){ int i;for(i='A';i<'I';i++,i++) printf("%c",i+32);printf(" \n");}答案:B注解:循环控制变量i的取值为A、C、E、G,将它们转化为小写字母的格式输出。
循环结构习题

循环结构习题循环结构一.选择题1.下面程序段int k=2;while (k=0) {printf(“%d”,k);k--;}则下面描述中正确的是。
A)while循环执行10次B)循环是无限循环C)循环题语句一次也不执行D)循环体语句执行一次2.以下程序段的循环次数是。
for (i=2; i==0; ) printf(“%d” , i--) ;A)无限次B)0次C)1次D)2次4.下面程序的输出结果是。
main ( ){ char c=’A’;int k=0;do {switch (c++) {case ‘A’ : k++ ; break ;case ‘B’ : k-- ;case ‘C’ : k+=2 ; break ;case ‘D’ : k%=2 ; continue ;case ‘E’ : k*=10 ; break ;default : k/=3 ;}k++;} while (c<’G’) ;printf (“k=%d”,k) ;}A)k=3 B)k=4 C)k=2 D)k=05.下面程序的输出结果是。
main ( ){ int x=9;for (; x>0; x--) {if (x%3==0) {prin tf(“%d”,--x);continue ;}}}A)741 B)852 C)963 D)8754216.以下不是死循环的程序段是。
A)int i=100; B)for ( ; ; ) ;while (1) {i=i%100+1 ;if (i>100) break ;}C)int k=0; D)int s=36;do { ++k; } while (k>=0); while (s) ; --s ;7.下述程序段的运行结果是。
int a=1,b=2, c=3, t;while (a<b<="" p="" {t="a;">printf(“%d,%d,%d”,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,18.下面程序的功能是从键盘输入一组字符,从中统计大写字母和小写字母的个数,选择填空。
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。
java循环练习题

java循环练习题在学习Java编程语言时,掌握循环结构是非常重要的一部分。
通过练习循环题目,可以加深对循环语句的理解以及提高编程能力。
本文将为您提供一些Java循环练习题,帮助您巩固知识并提升编程技巧。
1. 题目一:计算1到100之间所有偶数的和。
解析:使用for循环遍历1到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("1到100之间所有偶数的和为:" + sum);}}```2. 题目二:输出九九乘法表。
解析:使用嵌套的for循环,外层循环控制行数,内层循环控制列数,通过打印输出实现九九乘法表的展示。
```javapublic class MultiplicationTable {public static void main(String[] args) {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {System.out.print(j + " * " + i + " = " + (j * i) + "\t");}System.out.println();}}}```3. 题目三:判断一个数是否为素数。
解析:使用for循环遍历2到该数之间的所有数字,判断是否存在能整除该数的因子。
若存在,则不为素数;否则,为素数。
```javapublic class PrimeNumber {public static void main(String[] args) {int num = 37;boolean isPrime = true;for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) {isPrime = false;break;}}if (isPrime) {System.out.println(num + "是素数"); } else {System.out.println(num + "不是素数"); }}}```4. 题目四:计算斐波那契数列的前 n 项。
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循环练习级答案

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-循环结构的例题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"); }} 运⾏截图:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A,求1到100以内的素数.要求每10个数换一行。
1.public class SuShu{
2.public static void main(String[] args) { //求1到100的素数,实际就是求2
到99的素数,要知道的知识点是除2以为,所有的偶数都是素数。
3.inti,y;//必须在for语句之前定义,可以不对变量赋值
4.int t=0;
5.for(i=2;i<=99;i++){
6. for( y=2;y<=i;y++)
7. { if(i%y==0)
8. break;
9. }
10.if(y==i){
11.System.out.print(" "+y);
12.t++;
13.}
14. if(t%10==0){
15.System.out.println();
16. }
17.
18.
19.}
20.}
21.}
B,一个自然数是素数,且它的数字位置任意对换后形成的数仍未素数,这种数叫做绝对素数,例如13 和31。
编写一个程序,显示100以内的所有绝对素数。
分析,由题意可以知道必须是两位数字,而且只能有1、3、7、9组合,个位为5的能被5整数,不是素数。
publicclass Demo{
publicstaticvoid main(String[] args) {
for(int i=10;i<=100;i++)
{
if(isSushu(i)&&isSushu(conveter(i)))
{
System.out.print(i+" ");
}
}
}
staticboolean isSushu(int i)//i是否为素数
{
int j=2; //用2到i-1之间的任一整数去整除
for(;j<i;j++)
{
if(i%j==0)returnfalse;
}
returntrue;
}
static int conveter(int i)//个位和十位数转换
{
int ge=i%10; //个位
int shi=i/10;//十位
return ge*10+shi;
}
}
分析代码如下,程序写了三个方法,而且这三个方法都是静态方法,无需对象就可以调用,第一个方法是判断循环遍历的数是否是素数isSushu(int i),
第二个方法是用来进行数字位置任意对换的方法
第三个方法是主方法,也就是程序运行的入门main开始,通过for循环遍历我们需要的数字,关键是if里面的条件要明白
第一个条件isSushu(i)是判断循环遍历的数是素数吗?挑选时是素数的数
第二个条件是一个复合条件,isSushu(conveter(i)),首先通过方法convertre()进行数字位置的对换,对换后,判断对换后的数字是否是素数,如果是,则输出,如果不是,重新判断。
C.一个三位数除以11的商等于他各位数字的平方和
public class PingFanHe {
public static void main(String[] args) {
inti,j,n,s;
for(i=100;i<=999;i++){
n=i;
j=n/11;
s = 0;
while(n!=0){
s=s+(n%10)*(n%10);//第一次求得个位数
n/=10;//第一次循环求得两位数
}
if(j==s){
System.out.print(i+" ");
}
}
}
}
此程序结构有不足之处,请仔细发现。
现在加一个条件一个三位数除以11的商等于他各位数字的平方和且其中至少有两位数字相同。
publicclass Test{
publicstaticvoid main(String[] args) { int n,a,b,c;
for(n=100;n<=999;n++)
{ a=n/100;//求百位
b=n%100/10;//求十位
c=n%10;
/*if(n/11!=a*a+b*b+c*c)
continue;
if(a==b||b==c||a==c)
System.out.print(n+" ");*/
//或者将两个if改写成如下
if(n/11==a*a+b*b+c*c)&&(a==b||b==c||a==c) System.out.print(n+" ");
}
}
}
、。