第三次过程性考核

时间:2023-01-07 06:28:24

7-5 简化的插入排序

本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。

输入格式:

输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。

输出格式:

在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。

输入样例:

5
1 2 4 5 7
3

输出样例:

1 2 3 4 5 7 

代码如下:

import java.util.*;
public class Five{
    public static void main(String[] args){
        Scanner reader=new Scanner(System.in );
        int N=reader.nextInt();
        int a[]=new int[N+1];
        for(int i=0;i<N;i++){
            a[i]=reader.nextInt();
        }
        a[N]=reader.nextInt();    //要插入的数字
        Arrays.sort(a);         //调用Arrays.sort()将数组a升序排列
        for(int i=0;i<N+1;i++){
            System.out.print(a[i]+" ");   //遍历插入元素后重新排序的数组
        }
    }
}

 

程序的设计思路:先定义一个数组,长度为要输入的序列加上插入的元素的总长度。利用循环输入数组内的元素,再输入要插入的元素,然后将数组升序排序即可。

使用到的知识点:定义数组,控制台输入,Arrays.sort()升序排列

运行结果

第三次过程性考核

 

7-6 交换最小值和最大值

本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。

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

输入格式:

输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。

输出格式:

在一行中顺序输出交换后的序列,每个整数后跟一个空格。

输入样例:

5
8 2 5 1 4

输出样例:

1 2 5 4 8 

代码如下:
import java.util.*;
public class Six{
  public static void main(String args[]){
    Scanner reader=new Scanner(System.in);
    int N=reader.nextInt();
      int a[]=new int[N];
      for(int i=0;i<N;i++){
          a[i]=reader.nextInt();
      }
     int min=0;              //定义一个最小值
     int max=0;              //定义一个最大值
     for(int i=0;i<a.length;i++){
         if(a[i]<a[min]){
             min=i;              //挨个比值,直到比出最小值
          }
     }
     int i1=a[min];
     a[min]=a[0];
     a[0]=i1;             //将最小值跟数组第一个元素互换
     for(int i=0;i<a.length;i++){
         if(a[i]>a[max]){
             max=i;           //挨个比值,直到比出最大值
          }
      }
     int i2=a[max];
     a[max]=a[N-1];
    a[N-1]=i2;            //将最大值跟数组最后一个元素互换
       for(int i=0;i<a.length;i++){
           System.out.print(a[i]+" ");       //遍历数组
        }
      }
    }

程序的设计思路:先定义一个数组,利用循环输入数组内的元素,再通过循环进行比值,定义一个最小值和一个最大值,分别将比出来的最小值 和最大值的地址赋值给他们,在按要求将最小值和第一个元素互换,最大值和最后一个元素互换,在输出互换之后的数组即可。

使用到的知识点:定义数组,引用Scanner类,for循环,if语句。

运行结果:

 第三次过程性考核

 

7-8 IP地址转换

一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。

输入格式:

输入在一行中给出32位二进制字符串。

输出格式:

在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。

输入样例:

11001100100101000001010101110010

输出样例:

204.148.21.114

代码如下:
import java.util.*;
public class Eight{
    public static void main(String[] args){
        Scanner reader=new Scanner(System.in );
        String N=reader.nextLine();
        String a=N.substring(0,8);     //截取第0位到第8位元素
        String b=N.substring(8,16);
        String c=N.substring(16,24);
        String d=N.substring(24,32);
        int a1=Integer.parseInt(a,2);        //转化成十进制
        int b1=Integer.parseInt(b,2);
        int c1=Integer.parseInt(c,2);
        int d1=Integer.parseInt(d,2);
        System.out.print(a1+"."+b1+"."+c1+"."+d1);
    }
}

 

程序的设计思路:引用Scanner类输入一行字符串。再分成四段截取第0位到第8位,第8位到第16位,第16位到第24位,第24位到第32位的内容。再用Integer.parseInt()方法分别将这四段字符串转化成int型,实现十进制格式输出。

使用到的知识点:Scanner类,String类,Integer.parseInt()方法

运行结果:

 第三次过程性考核

7-4 说反话-加强版

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。

输入样例:

Hello World   Here I Come

输出样例:

Come I Here World Hello

代码如下:
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(" ");
      }  
    }  
  }

 

程序的设计思路:引用Scanner类输入一行字符串并调用String类的trim()方法去掉字符串两端的空格。再将字符串分割返回数组,再用for循环实现倒序输出。

使用到的知识点:Scanner类,String类,trim()方法,split()方法,for循环

运行结果:

第三次过程性考核

 

 阶段性总结:并没有付出很多的努力,也没做很多练习,学的也不扎实,智商也不太够。希望以后的自己不要这么懒惰。

 

 建议:我希望以后老师可以多开放点时间给PTA和提交博客,因为完成的时间很仓促。

 

我的码云地址:https://gitee.com/tzy123/projects

 

学习内容 代码(行) 博客(字)
第一次过程性考核 48行 300字
第二次过程性考核 281行 300字
数组 121行  
常用实用类 174行  
第三次过程性考核 73行

300字