收藏 分销(赏)

-java基础习题及答案.doc

上传人:精**** 文档编号:3107172 上传时间:2024-06-18 格式:DOC 页数:11 大小:57KB 下载积分:8 金币
下载 相关 举报
-java基础习题及答案.doc_第1页
第1页 / 共11页
-java基础习题及答案.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
程序设计—基础篇习题 1.作图. (1) ********* ********* ********* ********* (2) ********* * ******* *** ***** ***** *** ******* * ********* (3) * * * * * * * * * * * * * * * * (4) 1 2 1 3 2 1 4 3 2 1 5 4 3 2 1 6 5 4 3 2 1 7 6 5 4 3 2 1 (5) 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 1 2 3 4 5 6 5 4 3 2 1 (6) **************** ********* ********* ********* ********* ********* ********* ********* ********* ********* ********* (7)杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 2. 输出101--500之间的所有奇数,奇数之和. 3. 输出100--200间不能被3整除的数. 4. 输入初值 ,输出100个不能被3整除的数. 5. 求S=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)的值. 6. 设S=1*2*3*...*n,求S不大于400000时的最大n. 7. 设S=11*22*33*...*nn,求S不大于400000时的最大n. 8. 找出1~1000间的全部”同构数”.如果一个数出现在其平方数右端,则称此数为同构数,如1在12=1的右端,5在52=25的右端,25在252=625的右端等. 9. 百鸡问题。“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?” 10.利用一维数组,统计一个班学生0-9,10-19,..90-99及100各分数段的人数. 11.插入法排序.排序方法: 设有10个数存放在数组A中,分别用A[1],A[2],..,A[10]表示. 先将A[1]与A[2]比较,若A[2]<A[1],则交值这两个元素的值,A[1],A[2]顺序排列. 再将A[3]与A[1],A[2]比较,按照顺序确定A[3]应放的位置,A[1],A[2],A[1]顺序排列. 依次将后面的数一个一个拿来插入排好序的数列中,直到所有的数按顺序排好. 12.2个按升序(从小到大)排列的数列A[1],A[2],....,A[N]和B[1],B[2],...,B[M]中各元素按其大小关系存放到数组c.同时必须注意对数组A或B残余元素的的追加处理。 13.运动员成绩排名.设有一表格记录了10人参加的男子100M决赛成绩,运动员号码和成绩自行确定,设计一程序,将给定的成绩排名输出。 14.知某班学生M(M<100)人,其N(N<4)门课程.度按平均成绩输出学生平均成绩名次表(要求每个学生的信息包括:名次,学号(用整型数),平均成绩等)。 15. 设计计一个同学通信录程序,用户名用学号(整型数)表示,并记录每个人电话号码及QQ号,可以添加,删除查询。 答案: 1、 (1) public class Ex1_1 { public static void main(String[] args){ for(int i=1;i<=4;i++) { for(int j=1;j<=12;j++) { if(i>j) System.out.print(" "); else if(i<=j&&j-i<=7) System.out.print("*"); } System.out.println(); } } } (2) public class Ex1_2 { public static void main(String[] args){ for(int i=1;i<=5;i++) { for(int j=1;j<=16;j++) { if(i>j) System.out.print(" "); else if(i<=j&&j-i<=11) { if(j-i==9-(i-1)*2||j-i==10-(i-1)*2) System.out.print(" "); else System.out.print("*"); } } System.out.println(); } } } (3) public class Ex1_3 { public static void main(String[] args){ for(int i=1;i<=9;i++) { for(int j=1;j<=9;j++) { if(j==6-i||j==4+i||j==i-4||j==14-i) System.out.print("*"); else System.out.print(" "); } System.out.println(); } } } (4) public class Ex1_4 { public static void main(String[] args){ for(int i=1;i<=7;i++) { for(int j=i;j>=1;j--) System.out.print(j+" "); System.out.println(); } } } (5) import java.util.Scanner; public class Ex1_5 { public static void main(String[] args){ Scanner in=new Scanner(System.in); System.out.println("input the line number:"); int n=in.nextInt(); for(int i=1;i<=n;i++){ for(int j=1;j<=n-i;j++) System.out.print(" "); for(int k=1;k<i;k++) System.out.print(k+" "); for(int k=i;k>=1;k--) System.out.print(k+" "); System.out.println(); } } } (6) public class Ex1_6 { public static void main(String[] args){ for(int i=1;i<=6;i++){ for(int j=1;j<=6-i;j++) System.out.print(" "); System.out.print("********"); for(int j=1;j<=2*i-1;j++) System.out.print(" "); System.out.print("********"); System.out.println(); } } } (7) import java.util.Scanner; public class Ex1_7 { public static void main(String[] args){ Scanner in=new Scanner(System.in); System.out.println("please input the line number:"); int n=in.nextInt(); int[][] a=new int[n][n]; a[0][0]=1; for(int i=1;i<n;i++) for(int j=0;j<n;j++){ if(i==j||j==0) a[i][j]=1; else a[i][j]=a[i-1][j-1]+a[i-1][j]; } for(int i=0;i<n;i++){ for(int j=1;j<=n-i;j++) System.out.print(" "); for(int k=0;k<n;k++){ if(a[i][k]==0) System.out.print(""); else if(k==0) System.out.print(a[i][k]+" "); else if(i==k) System.out.print(" "+a[i][k]); else System.out.print(" "+a[i][k]+" "); } System.out.println(); } } } 2、 public class Ex2 { public static void main(String[] args){ /** * 输出101--500之间的所有奇数,奇数之和 */ int sum=0,j=0; for(int i=101;i<=500;i++){ if(i%2!=0){ System.out.print(i+" "); j++; sum+=i; if(j%8==0) System.out.println(); } } System.out.println(sum); } } 3、 public class Ex3 { public static void main(String[] args){ /** * 输出100--200间不能被3整除的数 */ int j=0; for(int i=100;i<=200;i++) { if(i%3!=0) { System.out.print(i+" "); j++; if(j%10==0) System.out.println(); } } } } 4、 题目要求不明 5、 import java.util.Scanner; public class Ex5 { public static void main(String[] args){ /** * 求S=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)的值 */ Scanner in=new Scanner(System.in); System.out.println("please input the n:"); int n=in.nextInt(); int S=0; for(int i=1;i<=n;i++){ for(int j=1;j<=i;j++) S+=j; } System.out.println("S="+S); } } 6、 public class Ex6 { public static void main(String[] args){ /** * 设S=1*2*3*...*n,求S不大于400000时的最大n */ long s=1,i=0; while(s<=400000){ i++; s*=i; } System.out.println(i-1); } } 7、 public class Ex7 { public static void main(String[] args){ /** * 设S=(1^1)*(2^2)*(3^3)*...*(n^n),求S不大于400000时的最大n */ long s=1,i=0; while(s<=400000){ int k=1; i=i+1; for(int j=1;j<=i;j++) k*=i; s*=k; //System.out.println("i:"+i); //System.out.println("s:"+s); } System.out.println(i-1); } } 8、 public class Ex8 { public static void main(String[] args){ /** * 找出1~1000间的全部”同构数”.如果一个数出现在其平方数右端, * 则称此数为同构数,如1在1^2=1的右端,5在5^2=25的右端,25在25^2=625的右端等. */ for(int i=1;i<=1000;i++){ int j=i*i; if(j%10==i||j%100==i||j%1000==i) System.out.println(i); } } } 9、 public class Ex9 { public static void main(String[] args){ /** * 百鸡问题。“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?” */ int i,j,k; for(i=1;i<=20;i++) for(j=1;j<=33;j++) for(k=0;k<=100;k+=3) if(i+j+k==100&&i*5+j*3+k/3==100) System.out.println("i="+i+",j="+j+",k="+k); } } 10、 import java.util.Scanner; public class Ex10 { public static void main(String[] args){ /** * 利用一维数组,统计一个班学生0-9,10-19,..90-99及100各分数段的人数 */ Scanner in=new Scanner(System.in); System.out.println("please input the amount of the students"); int n=in.nextInt(); System.out.println("please input the grades"); int[] a=new int[n]; for(int i=0;i<a.length;i++) a[i]=in.nextInt(); int[] x=new int[11]; for(int i=0;i<a.length;i++){ int y=a[i]/10; x[y]++; } for(int j=0;j<x.length;j++){ System.out.print(x[j]+" "); } } } 11、 import java.util.Arrays; public class Ex11 { public static void main(String[] args){ /** * 插入法排序.排序方法: *设有10个数存放在数组A中,分别用A[1],A[2],..,A[10]表示. * 先将A[1]与A[2]比较,若A[2]<A[1],则交值这两个元素的值,A[1],A[2]顺序排列. * 再将A[3]与A[1],A[2]比较,按照顺序确定A[3]应放的位置,A[1],A[2],A[1]顺序排列. * 依次将后面的数一个一个拿来插入排好序的数列中,直到所有的数按顺序排好. */ int[] a={1,25,18,40,23,80,12,18,100,50}; int temp; for(int i=1;i<a.length;i++) for(int j=i;j>=1;j--){ if(a[j]<a[j-1]){ temp=a[j-1]; a[j-1]=a[j]; a[j]=temp; } } System.out.println(Arrays.toString(a)); } } 12、 import java.util.Arrays; public class Ex12 { public static void main(String[] args){ /** * 2个按升序(从小到大)排列的数列A[1],A[2],....,A[N]和B[1],B[2],...,B[M] * 中各元素按其大小关系存放到数组c.同时必须注意对数组A或B残余元素的的追加处理。 */ int[] a={2,15,23,45,60,65}; int[] b={4,5,15,20,48,70,80}; int[] c=new int[a.length+b.length]; int i=0,j=0,k=0; while(true){ if(a[i]<b[j]){ c[k]=a[i]; k++; if(i<=a.length-2) i++; else{ for(int x=j;x<b.length;x++){ c[k]=b[x]; k++; } break; } } else if(a[i]>=b[j]){ c[k]=b[j]; k++; if(j<=b.length-2) j++; else{ for(int x=i;x<a.length;x++){ c[k]=a[x]; k++; } break; } } } System.out.println(Arrays.toString(c)); } } 13、 略 14、 略 15、 略 (注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服