资源描述
程序设计—基础篇习题
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、 略
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
展开阅读全文