考核题
第一题
/**
*中国朋友们聚会时喜欢玩"逢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.学的太少,在本次考核中有好多没见过的方法,这表明自己还是见到的题少,做的题也少。