返回

程序员也要高考?十年毕业生自拟试卷,考考你还能考几分?

见解分享

毕业十年后,我忍不住出了一份程序员的高考试卷

本文观点: 计算机专业学生的高考,应该考查代码能力和解决问题的能力。

没错,你没看错,程序员也要参加高考!作为一名毕业十年的程序员,我忍不住给现在的计算机专业学生们出了一份高考试卷。这份试卷,将会考查你们最核心的两项能力——代码能力和解决问题的能力。

第一题:代码能力

请用你最擅长的编程语言,编写一个程序,实现以下功能:

  1. 输入一个正整数n
  2. 计算1+2+3+...+n的和
  3. 输出结果

第二题:解决问题能力

有一个100层的摩天大楼,现在有一块玻璃,不知道从哪一层扔下去会碎。已知玻璃杯从某一层楼扔下,刚好碎了。现在,你需要找出这块玻璃从第几层扔下时会碎,并且只能扔两次。

评分标准:

  • 代码能力:满分10分,代码正确且高效,逻辑清晰,命名规范。
  • 解决问题能力:满分10分,思路清晰,算法正确,代码实现完整。

考试时间:

120分钟

考试须知:

  • 请使用你最擅长的编程语言作答。
  • 代码必须运行无错。
  • 请在答题纸上写明你的姓名、学号和专业。

答案解析:

第一题:代码能力

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += i;
        }
        System.out.println(sum);
    }
}

第二题:解决问题能力

从第1层扔下去,如果碎了,说明玻璃杯从第1层扔下去就会碎。如果没碎,说明玻璃杯从第1层扔下去不会碎,那么从第2层扔下去一定会碎。

参考答案:

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int floor = 0;
        for (int i = 1; i <= 2; i++) {
            if (n == 1) {
                floor = 1;
                break;
            } else if (n == 2) {
                floor = 2;
                break;
            } else {
                n = n / 2;
                floor++;
            }
        }
        System.out.println(floor);
    }
}

结语:

这份试卷,不仅仅是一次考试,更是一次对计算机专业学生能力的检验。希望通过这份试卷,能够让同学们意识到自己的不足,并督促自己不断进步。只有拥有过硬的代码能力和解决问题的能力,才能在未来的职业道路上走得更远。