BannerStudio---BannerStudio20级第一阶段考核

这篇博客包含了多个编程题目,包括从1到100中逢3和5的倍数输出特定字符串、生成斐波那契数列前20项、合并并排序两个已排序数组、统计输入字符的各类数量、打印不同形状以及计算特定条件下的数值。这些题目覆盖了基本的数学逻辑、数组操作和条件判断等编程基础知识。
摘要由CSDN通过智能技术生成

考核题

第一题

/**
  *中国朋友们聚会时喜欢玩"逢7过"的游戏,老外有个同样的游戏,
  *FlipFlop,它从1计数到100,顺序输出。当遇到3的倍数就要
  *“Flip”,遇到5的倍数就要说“Flop”,既为3的倍数又为5的倍数
  *则要说“FlipFlop”,说错的话表演节目或罚酒。 
  **/
public class Test01 {
public static void main(String[] args) {
	for(int i=1;i<=100;i++) {
		if(i%3==0&&i%5==0) {
			System.out.println(i+":FlipFlop");
		}
		else if(i%3==0) {
			System.out.println(i+":Flip");
		}
		else if(i%5==0) {
			System.out.println(i+":Flop");
		}
	}
}
}

第二题

/**
  *在数学上有一个著名的斐波那契数列,它的规律为:
  *1,1,2,3,5,8,13,21……,请编程输出其前20个数字。
  */
  public class Test02 {
public static void main(String[] args) {
	int a=0,b=1;
	System.out.print(a+"  "+b+"  ");
	for(int i=0;i<9;i++) {
		a+=b;
		b+=a;
		System.out.print(a+"  "+b+"  ");
	}
}
}

第三题

/**
  *有两个已经排好序的数组,A:{9,28,38,40,56,65,78,82} 
  * B:{13,21,33,38,45},请定义一个新数组,将这两个数组中的数
  * 据合并到新数组中并且保证数据仍然是有序的。
  */
  public class Test03 {
public static void main(String[] args) {
	int[] A= {9,28,38,40,56,65,78,82};
	int[] B= {13,21,33,38,45};
	int[] C=new int [A.length+B.length];
	int a=0,b=0;
	for(int i=0;i<A.length+B.length;i++) {
		if(b<=B.length-1) {
		if(A[a]>B[b]) {
			C[i]=B[b];
			b++;
		}
		else {
			C[i]=A[a];
			a++;
		}
	}
		else {
			C[i]=A[a];
			a++;
		}
	}
	for(int D:C) {
		System.out.print(D+"  ");
	}
}
}

第四题

/**
  *输入一行字符,分别统计出其中英文字母、空格、
  *数字和其它字符的个数。
  */
  import java.util.Scanner;
public class Test04 {
public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	String a=sc.nextLine();
	char[] b=a.toCharArray();
	int zm=0,sz=0,kg=0,ot=0;
	for(int i=0;i<b.length;i++) {
		if((b[i]>='a'&&b[i]<='z')||(b[i]>='A'&&b[i]<='Z')) {
			zm++;
		}
		else if(b[i]>='0'&&b[i]<='9') {
			sz++;
		}
		else if(b[i]==' ') {
			kg++;
		}
		else {
			ot++;
		}
	}
	System.out.print("字母有:"+zm+"\n数字有:"+sz+"\n空格有:"+kg+"\n其他符号有:"+ot);
}
}

第五题

/**
  *输出矩形、空心矩形、等腰三角形、菱形
  *例如这样的等腰三角形与菱形
  *等腰梯形和菱形用数字构成,且每入一行就多加一;
  *矩形用'*'来构成
  */
import java.util.Scanner;
public class Test05 {
public static void main(String[] args) {
	for(int i=1;i<=5;i++) {
		for(int j=1;j<=10;j++) {
			System.out.print("*");
	}
		System.out.println();
	}
	System.out.println("--------------------");
	for(int i=1;i<=5;i++) {
		for(int j=1;j<=10;j++) {
			if((i==1)||(i==5)) {
			System.out.print("*");
			}
			else {
				if(j==1||j==10) {
					System.out.print("*");
				}
				else {
					System.out.print(" ");
				}
			}
		}
		System.out.println();
	}
	System.out.println("--------------------");
	System.out.println("请定义三角形的边长");
	Scanner sc=new Scanner(System.in);
	int side=sc.nextInt();
	int change=1;
	for(int i=1;i<=side;i++) {
		for(int j=side-i;j>0;j--) {
			System.out.print(" ");
		}
		for(int p=1;p<=2*i-1;p++) {
		if(p==1) {
			System.out.print(change);
		}
			else if(p<=i){
				change++;
				System.out.print(change);
		}
			else {
				change--;
				System.out.print(change);
			}
		}
		System.out.println();
}
	System.out.println("--------------------");
	System.out.println("请定义菱形的边长");
	 side=sc.nextInt();
	 change=1;
	for(int i=1;i<=side;i++) {
		for(int j=side-i;j>0;j--) {
			System.out.print(" ");
		}
		for(int p=1;p<=2*i-1;p++) {
		if(p==1) {
			System.out.print(change);
		}
			else if(p<=i){
				change++;
				System.out.print(change);
		}
			else {
				change--;
				System.out.print(change);
			}
		}
		System.out.println();
}
	for(int i=side;i>=1;i--) {
		for(int j=side-i;j>0;j--) {
			System.out.print(" ");
		}
		for(int p=1;p<=2*i-1;p++) {
			if(p==1) {
				System.out.print(change);
			}
			else if(p<=i){
				change++;
				System.out.print(change);
		}
			else {
				change--;
				System.out.print(change);
			}
		}
		System.out.println();
}
}
}

第六题

/**小蓝给学生们组织了一场考试,卷面总分为100分,
  *每个学生的得分都是一个0到100的整数。
  *请计算这次考试的最高分,最低分和平均分。
  *[输入格式]输入的第一行包含一个整数n,表示考试人数。
  *接下来n 行, 每行包含一个0至100的整数,表示一个学生的得分。
  *[输出格式]输出三行。第一行包含一个整数, 表示最高分。
  *第二行包合一个整数, 表示最低分。
  *第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
  *[样例输入]
  *7
  *80
  *92
  *56
  *74
  *88
  *99
  *10
  *[样例输出]
  *99
  *10
  *71.29
  */
import java.util.Scanner;
public class Test06 {
public static void main(String[] args) {
	System.out.println("输入班里人数:");
	Scanner sc=new Scanner(System.in);
	int num=sc.nextInt();
	System.out.println("输入每一个同学的成绩:");
	int[] a=new int[num];
	for(int i=0;i<num;i++) {
		a[i]=sc.nextInt();
	}
		int temp=0;
		for(int j=0;j<num;j++) {
			if(a[j]>a[temp]) {
				temp=j;
			}
	}
		System.out.println("最高分为:"+a[temp]);
		int temp1=0;
		for(int j=0;j<num;j++) {
			if(a[j]<a[temp1]) {
				temp1=j;
			}
	}
		System.out.println("最低分为:"+a[temp1]);
		double pj=0;
		for(int i=0;i<num;i++) {
			pj+=a[i];
		}
		System.out.println("平均分为:"+String.format("%.2f",pj/num));
}
}

缓考题

第一题

/**
  *从1累加到100,但如果要累加的数据能被3整除,
  *并且也能被7整数,那么就不要累加这个数。
  *最后输出结果。
  */
public class Test07 {
public static void main(String[] args) {
	int a=0;
	for(int i=1;i<=100;i++) {
		if(i%3==0&&i%7==0) {
			continue;
		}
		a+=i;
	}
	System.out.println(a);
}
}

第二题

/**
  *求1+2!+3!+...+20!的和
  */
public class Test08 {
public static void main(String[] args) {
	long a=1,sum=0;
	for(int i=1;i<=20;i++) {
		a*=i;
		sum+=a;
	}
	System.out.println(sum);
}
}

第三题

/**
  *计算1/2+2/3+3/4+.....+19/20的和
  */
public class Test09 {
public static void main(String[] args) {
	float sum=0;
	for(float i=1;i<20;i++) {
		sum+=i/(i+1);
	}
	System.out.println(sum);
}
}

第四题

/**
  *有一个已经排好序的数组[1,3,5,9,11,13]。现输入一个数7,
  *要求按原来的规律将它插入数组中
  */
public class Test10 {
public static void main(String[] args) {
	int[] A= {1,3,5,9,11,13};
	int[] B=new int[A.length+1];
	for(int i=0;i<A.length;i++) {
		B[i]=A[i];
	}
	B[A.length]=7;
	for(int i=0;i<B.length;i++) {
		for(int j=0;j<B.length-1;j++) {
			if(B[j]>B[j+1]) {
				int temp=B[j];
				B[j]=B[j+1];
				B[j+1]=temp;
			}
		}
	}
	for(int C:B) {
		System.out.print(C+"  ");
	}
}
}

第五题

/**
  *小蓝要为一条街的住户制作门牌号。
  *这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。
  *小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,
  *最后根据需要将字符粘贴到门牌上,
  *例如门牌 1017 需要依次粘贴字 符 1、 0、 1、 7,即需要 1 个字符 0, 2 个字符 1, 1 个字符 7。
  *请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
  *打印输出
  */
  public class Test11 {
public static void main(String[] args) {
	int sum=0;
	for(int i=1;i<=2020;i++) {
		int a=i;
		do {
			if(a%10==2) {
				sum++;
			}
		}while((a/=10)>0);
	}
	System.out.print(sum);
}
}

第六题

/**
  *输入一个字符串,输出这个字母和它出现的次数。
  */
import java.util.Scanner;
public class Test12 {
public static void main(String[] args) {
	int max=0;
	Scanner sc=new Scanner(System.in);
	String s=sc.nextLine();
	int[] count=new int[127];
	for(int i=0;i<s.length();i++) {
		char  c=s.charAt(i);
		max=(++count[c]>max)?count[c] :max ;
	}
	System.out.println(max);
}
}

心得体会:

1.学的太浅,当遇到问题时脑海中不能找到相对应的方法去运行。
2.学的太少,在本次考核中有好多没见过的方法,这表明自己还是见到的题少,做的题也少。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值