| 学习指南 EN
A-Level · cie-9618 · A-Level Computer Science · Programming Fundamentals / 编程基础 · 阅读约 15 分钟 · 更新于 2026-05-06

编程基础 (Programming Fundamentals) — A-Level Computer Science 学习指南

适合谁:A-Level Computer Science 参加 A-Level Computer Science 的考生。

覆盖内容:变量类型与运算符、分支循环控制结构、过程函数参数与作用域、一维/二维数组、字符串操作五大编程基础核心考点。

前置知识:基础编程概念;Python / Java / VB 任一种。

关于练习题:下文「练习题」一节的所有题目均为我们按 A-Level Computer Science 风格编写的原创题目 (original problems),仅用于教学。它们不是 Cambridge International 真题的复制,措辞、数值或语境可能不同。请把它们当作练手用;评分细则请对照 Cambridge 官方 mark scheme。


1. 什么是编程基础?

编程基础是A-Level Computer Science计算机科学的核心入门模块,对应考纲9618_4知识点,是后续算法设计、数据结构、面向对象编程等模块的底层支撑,主要考察你将现实问题的逻辑拆解、转化为可执行代码的能力。该模块知识点在Paper 2、Paper 4的编程题中占比约25%,同时会融入所有代码相关的考题中,是拿到A/A*必须完全掌握的基础内容。

2. 变量、数据类型与运算符 (Variables, types, operators)

变量 (variable) 是存储可变数据的内存占位符,每个变量都有对应的数据类型 (data type),A-Level考纲要求掌握的基础类型包括:整数型 (integer)、浮点型 (float)、布尔型 (Boolean)、字符串 (string)。 运算符分为三类:

  1. 算术运算符:+-*/%(取余)、**(幂运算)
  2. 比较运算符:==(等于)、!=(不等于)、><>=<=
  3. 逻辑运算符:and(与)、or(或)、not(非)

范例:计算圆的面积,公式为

PI = 3.14159 # 常量 (constant),值不可修改
radius: float = 5.2 # 浮点型变量存储半径
area: float = PI * radius ** 2
print(round(area, 2)) # 输出84.95

考点提醒:输入函数默认返回字符串类型,考官常考类型转换,比如接收数字输入时必须加int()float()转换,否则会出现运算报错。

3. 控制结构:分支与循环 (Control structures — if/else, loops)

控制结构用于改变代码的执行顺序,分为两类:

  1. 分支结构 (selection structure):通过if/elif/else判断条件,选择执行不同代码块,适合多条件判断场景(比如成绩等级划分)。
  2. 循环结构 (iteration structure):for循环适合固定次数的迭代(比如遍历长度已知的数组),while循环适合次数不确定的迭代(比如直到输入合法值才停止)。

范例:判断输入的成绩对应的等级

score = int(input("Enter score: "))
if score >= 90:
 print("A*")
elif score >= 80:
 print("A")
elif score >= 70:
 print("B")
else:
 print("Below B")

考点提醒while循环必须设置可到达的终止条件,否则会出现死循环,是考试中常见的丢分点。

4. 过程与函数:参数与作用域 (Procedures and functions — parameters and scope)

函数 (function) 是封装了特定功能的可复用代码块,有返回值;无返回值的函数称为过程 (procedure)。函数定义时的参数叫形参 (parameter),调用时传入的具体值叫实参 (argument)。 作用域 (scope) 指变量的有效范围:

  • 全局作用域 (global scope):定义在函数外的变量,全代码有效
  • 局部作用域 (local scope):定义在函数内的变量,仅函数内有效

范例:定义计算两个数乘积的函数

def multiply(a: int, b: int) -> int: # a、b是形参
 return a * b

result = multiply(3, 5) # 3、5是实参,result=15

考点提醒:考官常考按值传递 (pass by value) 和按引用传递 (pass by reference) 的区别:基础类型(int、str等)按值传递,函数内修改不会影响外部变量;数组、对象按引用传递,函数内修改会同步到外部变量。

5. 一维与二维数组 (Arrays (1D and 2D))

数组 (array) 是存储同类型数据的有序集合,元素通过索引访问:

  1. 一维数组 (1D array):适合存储单列数据,比如5个学生的考试成绩scores = [78, 85, 92, 67, 89],访问第三个元素用scores[2](Python索引从0开始)。
  2. 二维数组 (2D array):可看作矩阵,适合存储表格类数据,比如3个学生的3门课成绩class_scores = [[75, 82, 90], [68, 79, 85], [92, 88, 76]],访问第2行第3列的元素用class_scores[1][2]

考点提醒:注意编程语言的索引规则,Python默认从0开始,VB可设置从1开始,千万不要越界访问(比如长度为5的数组访问索引5),否则会触发运行时错误。

6. 字符串操作 (String manipulation)

字符串 (string) 是字符的有序序列,A-Level考纲要求掌握的常用操作包括:

  • 长度计算:len(s)返回字符串的字符数
  • 索引与切片:s[0]取第一个字符,s[a:b]取从索引a到b-1的子串
  • 拼接:用+连接两个字符串
  • 类型判断:isdigit()判断是否是数字,isalpha()判断是否是字母
  • 大小写转换:lower()转小写,upper()转大写

范例:提取字符串中的考试代码

s = "A-Level Computer Science"
exam_code = s[4:8] # 结果为"A-Level Computer Science"

考点提醒:Python中字符串是不可变类型,直接修改某一位字符会报错,需要生成新的字符串完成修改。

7. 常见陷阱 (Common Pitfalls)

  1. 错误做法:直接将输入的字符串参与算术运算,比如a = input("输入数字:")后执行a + 5原因:忘记输入函数默认返回字符串类型,未做类型转换。正确做法:接收数值输入时加int()float()转换,比如a = int(input("输入数字:"))
  2. 错误做法while循环中忘记更新计数变量,导致死循环。原因:忽略了循环终止条件的触发逻辑。正确做法:循环体末尾必须加计数变量更新语句,比如i += 1
  3. 错误做法:函数内修改全局变量未加global声明,导致全局变量实际未修改。原因:混淆局部和全局作用域的优先级,函数内直接给同名变量赋值会创建新的局部变量。正确做法:修改全局变量前加global 变量名声明。
  4. 错误做法:二维数组访问时行列顺序写反,比如要访问第2行第3列写成arr[2][1]原因:记错数组索引先行后列的规则,以及索引从0开始的设定。正确做法arr[行索引][列索引],第2行对应索引1,第3列对应索引2,应写为arr[1][2]

8. 练习题 (A-Level Computer Science 风格)

第1题

题干:编写Python代码,输入一个正整数n,用while循环计算1到n所有偶数的和并输出。 解答

n = int(input("Enter a positive integer: "))
i = 1
sum_even = 0
while i <= n:
 if i % 2 == 0:
 sum_even += i
 i += 1
print(sum_even)

评分点:输入类型转换1分,变量初始化1分,循环条件正确1分,偶数判断1分,循环变量更新1分,输出正确1分。

第2题

题干:二维数组marks = [[75, 82, 90], [68, 79, 85], [92, 88, 76]]存储3个学生的3门课成绩,编写代码计算每个学生的平均成绩,输出格式为学生X的平均成绩为Y,保留1位小数。 解答

marks = [[75, 82, 90], [68, 79, 85], [92, 88, 76]]
for idx, student in enumerate(marks):
 avg = sum(student) / 3
 print(f"学生{idx+1}的平均成绩为{avg:.1f}")

输出结果

学生1的平均成绩为82.3
学生2的平均成绩为77.3
学生3的平均成绩为85.3

第3题

题干:输入一个字符串,统计其中数字字符的个数并输出,比如输入CIE96182024输出6。 解答

s = input("Enter a string: ")
count = 0
for c in s:
 if c.isdigit():
 count += 1
print(count)

9. 速查表 (Quick Reference Cheatsheet)

知识点分类 核心规则
变量与类型 常用类型:int、float、bool、str;输入默认是str,算术运算前必须转数值类型
控制结构 if分支按优先级从高到低判断;for用于固定次数迭代,while用于不定次数迭代;循环必须有可到达的终止条件
函数与作用域 形参是定义时的参数,实参是调用时传入的值;局部变量优先级高于全局变量,修改全局变量需加global声明
数组 1D数组访问:arr[索引],2D数组访问:arr[行索引][列索引];Python索引从0开始,注意不要越界
字符串操作 常用方法:len()求长度、+拼接、[a:b]切片、isdigit()判断数字、lower()转小写

10. 接下来怎么学

本模块是A-Level Computer Science后续算法设计、数据结构(链表、栈、队列)、面向对象编程、文件操作等模块的基础,你只有完全掌握本模块的语法规则和逻辑拆解方法,才能顺利应对复杂的编程大题。编程题在Paper 2和Paper 4中占比超过40%,建议你学完本指南后多刷历年真题的编程题,熟悉考纲的评分规则,减少不必要的丢分。 如果你在练习过程中遇到代码报错、逻辑梳理不清的问题,随时到小欧提问,我们会为你提供针对性的解题指导和错题分析。

本指南内容对齐 CIE 剑桥国际 AS & A Level 计算机科学 9618 考纲。OwlsAi 与 Cambridge Assessment International Education 无附属关系。

← 返回章节主页

某道题卡住了?
拍照或粘贴题目 — 小欧(我们的 AI 学习助手)会一步步讲解并配示意图。
免费试用小欧 →