Java编程题集合三.docx
- 文档编号:8218050
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:10
- 大小:18.76KB
Java编程题集合三.docx
《Java编程题集合三.docx》由会员分享,可在线阅读,更多相关《Java编程题集合三.docx(10页珍藏版)》请在冰豆网上搜索。
Java编程题集合三
Java编程题集合(三)
【程序36】
题目:
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
importjava.util.Scanner;
publicclasslianxi36{
publicstaticvoidmain(String[]args){
intN=10;
int[]a=newint[N];
Scanners=newScanner(System.in);
System.out.println("请输入10个整数:
");
for(inti=0;i a[i]=s.nextInt(); } System.out.print("你输入的数组为: "); for(inti=0;i System.out.print(a[i]+""); } System.out.print("\n请输入向后移动的位数: "); intm=s.nextInt(); int[]b=newint[m]; for(inti=0;i b[i]=a[N-m+i]; } for(inti=N-1;i>=m;i--){ a[i]=a[i-m]; } for(inti=0;i a[i]=b[i]; } System.out.print("位移后的数组是: "); for(inti=0;i System.out.print(a[i]+""); } } } 【程序37】 题目: 有n个人围成一圈,顺序排号。 从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 importjava.util.Scanner; publicclasslianxi37{ publicstaticvoidmain(String[]args){ Scanners=newScanner(System.in); System.out.print("请输入排成一圈的人数: "); intn=s.nextInt(); boolean[]arr=newboolean[n]; for(inti=0;i arr[i]=true; } intleftCount=n; intcountNum=0; intindex=0; while(leftCount>1){ if(arr[index]==true){ countNum++; if(countNum==3){ countNum=0; arr[index]=false; leftCount--; } } index++; if(index==n){ index=0; } } for(inti=0;i if(arr[i]==true){ System.out.println("原排在第"+(i+1)+"位的人留下了。 "); } } } } 【程序38】 题目: 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。 /*……………… *……题目意思似乎不能用length()函数 */ importjava.util.*; publicclasslianxi38{ publicstaticvoidmain(String[]args){ Scanners=newScanner(System.in); System.out.println("请输入一个字符串: "); Stringstr=s.nextLine(); System.out.println("字符串的长度是: "+str.length()); } } 【程序39】 题目: 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数) //没有利用指针函数 importjava.util.*; publicclasslianxi39{ publicstaticvoidmain(String[]args){ Scanners=newScanner(System.in); System.out.print("请输入一个正整数n="); intn=s.nextInt(); System.out.println("相应数列的和为: "+sum(n)); } publicstaticdoublesum(intn){ doubleres=0; if(n%2==0){ for(inti=2;i<=n;i+=2){ res+=(double)1/i; } }else{ for(inti=1;i<=n;i+=2){ res+=(double)1/i; } } returnres; } } 【程序40】 题目: 字符串排序。 publicclasslianxi40{ publicstaticvoidmain(String[]args){ intN=5; Stringtemp=null; String[]s=newString[N]; s[0]="matter"; s[1]="state"; s[2]="solid"; s[3]="liquid"; s[4]="gas"; for(inti=0;i for(intj=i+1;j if(compare(s[i],s[j])==false){ temp=s[i]; s[i]=s[j]; s[j]=temp; } } } for(inti=0;i System.out.println(s[i]); } } staticbooleancompare(Strings1,Strings2){ booleanresult=true; for(inti=0;i if(s1.charAt(i)>s2.charAt(i)){ result=false; break; }elseif(s1.charAt(i) result=true; break; }else{ if(s1.length() result=true; }else{ result=false; } } } returnresult; } } 【程序41】 题目: 海滩上有一堆桃子,五只猴子来分。 第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。 第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? publicclasslianxi41{ publicstaticvoidmain(String[]args){ inti,m,j=0,k,count; for(i=4;i<10000;i+=4) {count=0; m=i; for(k=0;k<5;k++) { j=i/4*5+1; i=j; if(j%4==0) count++; elsebreak; } i=m; if(count==4) {System.out.println("原有桃子"+j+"个"); break;} } } } 【程序42】 题目: 809*? ? =800*? ? +9*? ? +1 其中? ? 代表的两位数,8*? ? 的结果为两位数,9*? ? 的结果为3位数。 求? ? 代表的两位数,及809*? ? 后的结果。 //题目错了! 809x=800x+9x+1这样的方程无解。 去掉那个1就有解了。 publicclasslianxi42{ publicstaticvoidmain(String[]args){ inta=809,b,i; for(i=10;i<13;i++) {b=i*a; if(8*i<100&&9*i>=100) System.out.println("809*"+i+"="+"800*"+i+"+"+"9*"+i+"="+b);} } } 【程序43】 题目: 求0—7所能组成的奇数个数。 //组成1位数是4个。 //组成2位数是7*4个。 //组成3位数是7*8*4个。 //组成4位数是7*8*8*4个。 //...... publicclasslianxi43{ publicstaticvoidmain(String[]args){ intsum=4; intj; System.out.println("组成1位数是"+sum+"个"); sum=sum*7; System.out.println("组成2位数是"+sum+"个"); for(j=3;j<=9;j++){ sum=sum*8; System.out.println("组成"+j+"位数是"+sum+"个"); } } } 【程序44】 题目: 一个偶数总能表示为两个素数之和。 //由于用除sqrt(n)的方法求出的素数不包括2和3, //因此在判断是否是素数程序中人为添加了一个3。 importjava.util.*; publicclasslianxi44{ publicstaticvoidmain(String[]args){ Scanners=newScanner(System.in); intn,i; do{ System.out.print("请输入一个大于等于6的偶数: "); n=s.nextInt(); }while(n<6||n%2! =0); //判断输入是否是>=6偶数,不是,重新输入 funfc=newfun(); for(i=2;i<=n/2;i++){ if((fc.fun(i))==1&&(fc.fun(n-i)==1)) {intj=n-i; System.out.println(n+"="+i+"+"+j); }//输出所有可能的素数对 } } } classfun{ publicintfun(inta) //判断是否是素数的函数 { inti,flag=0; if(a==3){flag=1;return(flag);} for(i=2;i<=Math.sqrt(a);i++){ if(a%i==0){flag=0;break;} elseflag=1;} return(flag);//不是素数,返回0,是素数,返回1 } } //解法二 importjava.util.*; publicclasslianxi44{ publicstaticvoidmain(String[]args){ Scanners=newScanner(System.in); intn; do{ System.out.print("请输入一个大于等于6的偶数: "); n=s.nextInt(); }while(n<6||n%2! =0); //判断输入是否是>=6偶数,不是,重新输入 for(inti=3;i<=n/2;i+=2){ if(fun(i)&&fun(n-i)){ System.out.println(n+"="+i+"+"+(n-i)); }//输出所有可能的素数对 } } staticbooleanfun(inta){ //判断是否是素数的函数 booleanflag=false; if(a==3){flag=true;return(flag);} for(inti=2;i<=Math.sqrt(a);i++){ if(a%i==0){flag=false;break;} elseflag=true;} return(flag); } } 【程序45】 题目: 判断一个素数能被几个9整除 //题目错了吧? 能被9整除的就不是素数了! 所以改成整数了。 importjava.util.*; publicclasslianxi45{ publicstaticvoidmain(String[]args){ Scanners=newScanner(System.in); System.out.print("请输入一个整数: "); intnum=s.nextInt(); int tmp=num; intcount=0; for(inti=0;tmp%9==0;){ tmp=tmp/9; count++; } System.out.println(num+"能够被"+count+"个9整除。 "); } } 【程序46】 题目: 两个字符串连接程序 importjava.util.*; publicclasslianxi46{ publicstaticvoidmain(String[]args){ Scanners=newScanner(System.in); System.out.print("请输入一个字符串: "); Stringstr1=s.nextLine(); System.out.print("请再输入一个字符串: "); Stringstr2=s.nextLine(); Stringstr=str1+str2; System.out.println("连接后的字符串是: "+str); } } 【程序47】 题目: 读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。 importjava.util.*; publicclasslianxi47{ publicstaticvoidmain(String[]args){ Scanners=newScanner(System.in); intn=1,num; while(n<=7){ do{ System.out.print("请输入一个1--50之间的整数: "); num=s.nextInt(); }while(num<1||num>50); for(inti=1;i<=num;i++) {System.out.print("*"); } System.out.println(); n++; } } } 【程序48】 题目: 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。 importjava.util.*; publicclasslianxi48 { publicstaticvoidmain(Stringargs[]){ Scanners=newScanner(System.in); intnum=0,temp; do{ System.out.print("请输入一个4位正整数: "); num=s.nextInt(); }while(num<1000||num>9999); inta[]=newint[4]; a[0]=num/1000;//取千位的数字 a[1]=(num/100)%10;//取百位的数字 a[2]=(num/10)%10;//取十位的数字 a[3]=num%10;//取个位的数字 for(intj=0;j<4;j++) { a[j]+=5; a[j]%=10; } for(intj=0;j<=1;j++) { temp=a[j]; a[j]=a[3-j]; a[3-j]=temp; } System.out.print("加密后的数字为: "); for(intj=0;j<4;j++) System.out.print(a[j]); } } 【程序49】 题目: 计算字符串中子串出现的次数 importjava.util.*; publicclasslianxi49{ publicstaticvoidmain(Stringargs[]){ Scanners=newScanner(System.in); System.out.print("请输入字符串: "); Stringstr1=s.nextLine(); System.out.print("请输入子串: "); Stringstr2=s.nextLine(); intcount=0; if(str1.equals("")||str2.equals("")) { System.out.println("你没有输入字符串或子串,无法比较! "); System.exit(0); } else { for(inti=0;i<=str1.length()-str2.length();i++) { if(str2.equals(str1.substring(i,str2.length()+i))) //这种比法有问题,会把"aaa"看成有2个"aa"子串。 count++; } System.out.println("子串在字符串中出现: "+count+"次"); } } } 【程序50】 题目: 有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件"stud"中。 importjava.io.*; importjava.util.*; publicclasslianxi50{ publicstaticvoidmain(String[]args){ Scannerss=newScanner(System.in); String[][]a=newString[5][6]; for(inti=1;i<6;i++){ System.out.print("请输入第"+i+"个学生的学号: "); a[i-1][0]=ss.nextLine(); System.out.print("请输入第"+i+"个学生的姓名: "); a[i-1][1]=ss.nextLine(); for(intj=1;j<4;j++){ System.out.print("请输入该学生的第"+j+"个成绩: "); a[i-1][j+1]=ss.nextLine(); } System.out.println("\n"); } //以下计算平均分 floatavg; intsum; for(inti=0;i<5;i++){ sum=0; for(intj=2;j<5;j++){ sum=sum+Integer.parseInt(a[i][j]); } avg=(float)sum/3; a[i][5]=String.valueOf(avg); } //以下写磁盘文件 Strings1; try{ Filef=newFile("C: \\stud"); if(f.exists()){ System.out.println("文件存在"); }else{ System.out.println("文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 编程 集合