1. 程式人生 > >第三次 過程性考核

第三次 過程性考核

第三次 過程性考核

 碼雲地址:https://gitee.com/ddongqi/1601211701/tree/master

7-1 輸出陣列元素

本題要求編寫程式,對順序讀入的n個整數,順次計算後項減前項之差,並按每行三個元素的格式輸出結果。

 1 import java.util.Scanner;
 2 public class Main{
 3   public static void main(String args[]){
 4         Scanner reader = new Scanner(System.in);
 5         int n = reader.nextInt();
6 int[] a = new int[n]; 7 int i=0; 8 int cnt=0; 9 for(i=0;i<n;i++){ 10 a[i]=reader.nextInt(); 11 } 12 for (i = 0; i < n - 1; i++){ 13 a[i] = a[i + 1] - a[i]; 14 } 15 for (i = 0; i < n - 1; i++){ 16 if
(i == 0){ 17 System.out.printf("%d", a[0]); 18 } 19 else if (cnt == 3){ 20 System.out.printf("\n"); 21 System.out.printf("%d", a[i]); 22 cnt = 0; 23 } 24 else{ 25 System.out.printf(" %d", a[i]);
26 } 27 cnt++; 28 } 29 } 30 }

  程式設計思路:定義一個數組,利用陣列的屬性

  知識點:陣列

 

  

輸入樣例:

10
5 1 7 14 6 36 4 28 50 100

輸出樣例:

-4 6 7
-8 30 -32
24 22 50
 
7-2 字串逆序

輸入一個字串,對該字串進行逆序,輸出逆序後的字串。

 1 import java.util.Scanner;
 2 public class Main{
 3 public static void main (String [] args){
 4 Scanner cin=new Scanner (System.in
 5 
 6 );
 7 String str=cin.nextLine();
 8 StringBuffer sb =new StringBuffer(str);
 9 System.out.print(sb.reverse().toString());
10 }
11 }

  程式設計思路:利用StringBuffer實現翻轉

輸入樣例:

Hello World!

輸出樣例:

!dlroW olleH
7-3 選擇法排序 

本題要求將給定的n個整數從大到小排序後輸出。

 1 import java.util.Scanner;
 2 public class Main{
 3   public static void main(String args[]){
 4     Scanner reader = new Scanner(System.in);
 5       int n = reader.nextInt();
 6       int[] a = new int[n];
 7       int x=0;
 8       for(int i=0;i<n;i++){
 9         a[i]=reader.nextInt();
10       }
11       for(int i=0;i<n;i++){
12         for(int j=1;j<n;j++){
13           if(a[j]>a[j-1]){
14             x=a[j];
15             a[j]=a[j-1];
16             a[j-1]=x;
17           }
18         }
19       }
20       for(int i=0;i<n;i++){
21         System.out.print(a[i]);
22         if(i!=n-1){
23           System.out.print(" ");
24         }
25       }
26   }
27 }

  程式設計思路:利用陣列選擇要排列的項

  知識點:陣列

輸入樣例:

4
5 1 7 6

輸出樣例:

7 6 5 1
7-4 說反話-加強版 

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。

import java.util.Scanner;  
public class Main {  
  public static void main(String[] args) {  
    Scanner scanner = new Scanner(System.in);  
    String str = scanner.nextLine().trim();  
    String[] strs = str.split(" +");  
    for(int i=strs.length-1;i>=0;--i)  
    {  

        System.out.print(strs[i]);  
        if(i!=0)  
          System.out.print(" ");
    }  

  }  
}

  程式設計思路:利用nextLine()方法選擇單詞從而倒序輸出

輸入樣例:

Hello World   Here I Come

輸出樣例:

Come I Here World Hello


7-5 簡化的插入排序 

本題要求編寫程式,將一個給定的整數插到原本有序的整數序列中,使結果序列仍然有序。

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner read=new Scanner(System.in 

);
        int n=read.nextInt();
        int a[]=new int[n+1];
        int i;
        for(i=0;i<n;i++){
            a[i]=read.nextInt();
}
        a[n]=read.nextInt();
        Arrays.sort(a);
        for(i=0;i<=n;i++){
            System.out.print(a[i]+" ");
        }
    }
}

  程式設計思路:利用nextInt()方法把制定整數插入到陣列中

  知識點:陣列 nextInt()方法

輸入樣例:

5
1 2 4 5 7
3

輸出樣例:

1 2 3 4 5 7 
7-6 交換最小值和最大值 (15 分)

本題要求編寫程式,先將輸入的一系列整數中的最小值與第一個數交換,然後將最大值與最後一個數交換,最後輸出交換後的序列。

注意:題目保證最大和最小值都是唯一的。

import java.util.*;
public class Main {
  public static void main(String[] args) {
    Scanner reader=new Scanner(System.in);
    int N=reader.nextInt();
    int a[]=new int[N];
    int b=0,c=0;
    for(int i=0;i<a.length;i++){
      a[i]=reader.nextInt();
    }
    for(int i=0;i<a.length;i++){
      if(a[i]<a[b]){
        b=i;
      }
    }
    int x=a[b];
    a[b]=a[0];
    a[0]=x;
    for(int i=0;i<a.length;i++){
      if(a[i]>a[c]){
        c=i;
      }
    }
    int y=a[c];
    a[c]=a[N-1];
    a[N-1]=y;
    for (int i=0;i<a.length;i++){
      System.out.print(a[i]+" ");
    }
  }
}

  程式設計思路:利用nextInt選擇陣列中要點換位置的數用for迴圈完成位置交換

  知識點: 指標 nextInt方法  for迴圈

輸入樣例:

5
8 2 5 1 4

輸出樣例:

1 2 5 4 8 
7-8 IP地址轉換 (20 分)

一個IP地址是用四個位元組(每個位元組8個位)的二進位制碼組成。請將32位二進位制碼錶示的IP地址轉換為十進位制格式表示的IP地址輸出。

 1 import java.util.*;
 2 public class Main{
 3     public static void main(String[] args){
 4         Scanner read=new Scanner(System.in 
 5 
 6 );
 7         String n=read.nextLine();
 8         String a=n.substring(0,8);
 9         String b=n.substring(8,16);
10         String c=n.substring(16,24);
11         String d=n.substring(24,32);
12         int a1=Integer.parseInt(a,2);
13         int b1=Integer.parseInt(b,2);
14         int c1=Integer.parseInt(c,2);
15         int d1=Integer.parseInt(d,2);
16         System.out.print(a1+"."+b1+"."+c1+"."+d1);
17     }
18 }

    程式設計思路:利用nextLine()方法選取 返回值輸出結果

    知識點:nextLine()方法  substring()方法

輸入樣例:

11001100100101000001010101110010

輸出樣例:

204.148.21.114

總結:第三次過程性考核結束了,一共三次考核,每一次的成績都不是很理想但是真的盡力了。經歷了三次考核,發現自己在java這方面真的不是學的很好,需要參考才能自己有思路,在做題上很慢很多格式上的錯誤都找不出來。課上老師講得有點快很多知識點沒有消化掉這次考核時間有點短所以沒有總結得很好,希望在今後的學習中可以更加努力。

 
學習內容 程式碼(行) 部落格(字)
第一次過程性考核 70 250
第二次過程性考核 80 300
第三次過程性考核 87 300
陣列 70  

運算子,表示式和

語句

100  
類與物件 70  
子類與繼承 180  
常用使用類 80  
合計 737 850