java基础习题及答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 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 的右端等.
(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(); } } }
程来自百度文库设计—基础篇习题
1.作图. (1) ********* ********* ********* ********* (3) * ** * * * * * * * ** * (5) * * * (2) ********* * ******* *** ***** ***** *** ******* * ********* (4) 1 21 321 4321 54321 654321 7654321 (6) **************** ********* ********* ********* ********* ********* ********* ********* ********* ********* *********
(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)
} 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;
1 121 12321 1234321 123454321 12345654321
(7)杨辉三角形 1 1 1 1 2 1 1 3 3 1 14 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 各分数段的人数.
}
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(); }
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)
{
} }
(3)
}
} System.out.println();
}
if(j-i==9-(i-1)*2||j-i==10-(i-1)*2) System.out.print(" "); else System.out.print("*");
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(); } } }
(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;