[
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "本课程实验1「Python程序设计基础实验」推荐使用的开源数据科学平台是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Photoshop",
   "B. Anaconda",
   "C. Office",
   "D. 仅机器语言汇编器"
  ],
  "answer": "B",
  "analysis": "** 课程以 Anaconda 作为 Python 编程环境。它是广泛使用的开源数据科学平台，集成 Conda、Spyder 和 Jupyter Notebook，不是图像处理软件或办公软件。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "Spyder 的用户工作区主要包括：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅浏览器 Web 主页",
   "B. 程序编辑区和 IPython 控制台",
   "C. 仅 Anaconda Prompt",
   "D. 仅服务器终端"
  ],
  "answer": "B",
  "analysis": "** 课程指出 Spyder 工作区主要包括程序编辑区和 IPython 控制台，可交互执行代码或运行 `.py` 文件。浏览器 Web 主页和服务器终端属于 Jupyter Notebook。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "本实验在 Anaconda 中重点使用的三个工具是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. Anaconda Prompt",
   "B. Spyder",
   "C. Jupyter Notebook",
   "D. Photoshop"
  ],
  "answer": "ABC",
  "analysis": "** 课程将 Anaconda Prompt、Spyder、Jupyter Notebook 列为三个常用工具。Prompt 用于包管理，Spyder 用于编写与运行程序，Jupyter 用于网页交互式编程。Photoshop 不属于本实验环境。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "启动 Jupyter Notebook 后会出现服务器终端和浏览器 Web 主页；使用期间可以随时关闭服务器终端，网页工作界面不受影响。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调服务器终端显示服务器信息，使用期间不能关闭。关闭后服务中断，浏览器中的工作界面将无法继续运行。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "在 Anaconda Prompt 中安装第三方库 jieba，下列哪条命令符合本实验要求？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `conda list jieba`",
   "B. `pip install jieba`",
   "C. `python jieba`",
   "D. `import jieba`"
  ],
  "answer": "B",
  "analysis": "** 第三方库安装命令为 `pip install 库名` 或 `conda install 库名`。课程示例为 `pip install jieba`、`pip install wordcloud`。`conda list` 用于查看已安装包，`import` 是导入而非安装。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "使用模块前必须先导入。下列属于课程给出的导入方式的是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `import math`",
   "B. `from math import cos, pi`",
   "C. `from math import *`",
   "D. `from random import randint as rand`"
  ],
  "answer": "ABCD",
  "analysis": "** 四种方式分别是：导入整个模块、导入指定对象、导入全部内容、给模块或对象起别名。A、B、C、D 均为课程实例。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "`file.write()` 可以直接把整数、浮点数写入文件，并且会自动在末尾换行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程明确 `write()` 只能写入字符串，整数和浮点数须先转换成字符串；它不会自动换行，需要手动添加 `\\n`。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "定义无参函数时，函数名后面的圆括号可以省略。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 无参函数没有形式参数，但定义时函数名后的圆括号不能省略，否则会出现语法错误。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "下列打开文件的写法中，能避免 Windows 路径里 `\\t` 被当成转义字符的是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `fw = open(\"d:\\test.txt\", \"wt\")`",
   "B. `fw = open(r\"d:\\test.txt\", \"wt\")`",
   "C. `fw = open(d:\\test.txt, \"wt\")`",
   "D. `fw = write(\"d:\\test.txt\")`"
  ],
  "answer": "B",
  "analysis": "** 课程示例为 `fw = open(r\"d:\\test.txt\", \"wt\")`。前缀 `r` 表示原始字符串，使 `\\t` 不被识别为转义。A 会因转义导致路径错误；C 不是合法字符串；D 不是打开文件的方法。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "在 Spyder 中运行下列程序，输出结果是： ```python def modifyList(b): for i in range(len(b)): b[i] *= b[i] print('b =', b) a = [4, 5, 6] modifyList(a) print('a =', a) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `b = [16, 25, 36]` 换行后 `a = [4, 5, 6]`",
   "B. `b = [16, 25, 36]` 换行后 `a = [16, 25, 36]`",
   "C. `b = [4, 5, 6]` 换行后 `a = [4, 5, 6]`",
   "D. 程序报错，列表不能作为函数参数"
  ],
  "answer": "B",
  "analysis": "** 列表是可变对象，作实参时向形参传递的是内存地址，形参与实参共用同一存储。函数内把各元素改为平方后，实参 `a` 也会变成 `[16, 25, 36]`。这是本实验函数调用部分的核心原理。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "实验作业要求：读取一个文本文件，将内容全部转为大写后写入另一个文件。请写出一段可运行的 Python 程序（可用 `with` 语句），并说明文件操作的三个步骤。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：写出打开、读写、关闭三步；程序语法正确、可运行；使用 `upper()` 转大写；读写中文时指定 `encoding='utf-8'`；用 `with` 或显式 `close()`。漏写关闭或 `write()` 直接写非字符串应扣分。"
 },
 {
  "cat": "实验篇/实验1",
  "title": "Python程序设计基础实验",
  "q": "结合本实验操作，完成下列两问： （1）写出定义并调用两数求和函数的可运行代码； （2）说明标准库与第三方库在安装、导入上的区别，并各举课程中的一个例子。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：函数定义含 `def`、形参、`return`，并有调用与输出；区分“不必安装”与“先安装再导入”；例子须来自课程（math/random 与 jieba/wordcloud/requests）。代码不能运行或把标准库当成必须 `pip install` 的对象不得满分。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "本课程实验1「Python程序设计基础实验」推荐使用的开源数据科学平台是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Photoshop",
   "B. Anaconda",
   "C. Office",
   "D. 仅机器语言汇编器"
  ],
  "answer": "B",
  "analysis": "** 课程以 Anaconda 作为 Python 编程环境。它是广泛使用的开源数据科学平台，集成 Conda、Spyder 和 Jupyter Notebook，不是图像处理软件或办公软件。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "Spyder 的用户工作区主要包括：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅浏览器 Web 主页",
   "B. 程序编辑区和 IPython 控制台",
   "C. 仅 Anaconda Prompt",
   "D. 仅服务器终端"
  ],
  "answer": "B",
  "analysis": "** 课程指出 Spyder 工作区主要包括程序编辑区和 IPython 控制台，可交互执行代码或运行 `.py` 文件。浏览器 Web 主页和服务器终端属于 Jupyter Notebook。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "本实验在 Anaconda 中重点使用的三个工具是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. Anaconda Prompt",
   "B. Spyder",
   "C. Jupyter Notebook",
   "D. Photoshop"
  ],
  "answer": "ABC",
  "analysis": "** 课程将 Anaconda Prompt、Spyder、Jupyter Notebook 列为三个常用工具。Prompt 用于包管理，Spyder 用于编写与运行程序，Jupyter 用于网页交互式编程。Photoshop 不属于本实验环境。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "启动 Jupyter Notebook 后会出现服务器终端和浏览器 Web 主页；使用期间可以随时关闭服务器终端，网页工作界面不受影响。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调服务器终端显示服务器信息，使用期间不能关闭。关闭后服务中断，浏览器中的工作界面将无法继续运行。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "在 Anaconda Prompt 中安装第三方库 jieba，下列哪条命令符合本实验要求？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `conda list jieba`",
   "B. `pip install jieba`",
   "C. `python jieba`",
   "D. `import jieba`"
  ],
  "answer": "B",
  "analysis": "** 第三方库安装命令为 `pip install 库名` 或 `conda install 库名`。课程示例为 `pip install jieba`、`pip install wordcloud`。`conda list` 用于查看已安装包，`import` 是导入而非安装。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "使用模块前必须先导入。下列属于课程给出的导入方式的是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `import math`",
   "B. `from math import cos, pi`",
   "C. `from math import *`",
   "D. `from random import randint as rand`"
  ],
  "answer": "ABCD",
  "analysis": "** 四种方式分别是：导入整个模块、导入指定对象、导入全部内容、给模块或对象起别名。A、B、C、D 均为课程实例。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "`file.write()` 可以直接把整数、浮点数写入文件，并且会自动在末尾换行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程明确 `write()` 只能写入字符串，整数和浮点数须先转换成字符串；它不会自动换行，需要手动添加 `\\n`。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "定义无参函数时，函数名后面的圆括号可以省略。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 无参函数没有形式参数，但定义时函数名后的圆括号不能省略，否则会出现语法错误。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "下列打开文件的写法中，能避免 Windows 路径里 `\\t` 被当成转义字符的是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `fw = open(\"d:\\test.txt\", \"wt\")`",
   "B. `fw = open(r\"d:\\test.txt\", \"wt\")`",
   "C. `fw = open(d:\\test.txt, \"wt\")`",
   "D. `fw = write(\"d:\\test.txt\")`"
  ],
  "answer": "B",
  "analysis": "** 课程示例为 `fw = open(r\"d:\\test.txt\", \"wt\")`。前缀 `r` 表示原始字符串，使 `\\t` 不被识别为转义。A 会因转义导致路径错误；C 不是合法字符串；D 不是打开文件的方法。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "在 Spyder 中运行下列程序，输出结果是： ```python def modifyList(b): for i in range(len(b)): b[i] *= b[i] print('b =', b) a = [4, 5, 6] modifyList(a) print('a =', a) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `b = [16, 25, 36]` 换行后 `a = [4, 5, 6]`",
   "B. `b = [16, 25, 36]` 换行后 `a = [16, 25, 36]`",
   "C. `b = [4, 5, 6]` 换行后 `a = [4, 5, 6]`",
   "D. 程序报错，列表不能作为函数参数"
  ],
  "answer": "B",
  "analysis": "** 列表是可变对象，作实参时向形参传递的是内存地址，形参与实参共用同一存储。函数内把各元素改为平方后，实参 `a` 也会变成 `[16, 25, 36]`。这是本实验函数调用部分的核心原理。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "实验作业要求：读取一个文本文件，将内容全部转为大写后写入另一个文件。请写出一段可运行的 Python 程序（可用 `with` 语句），并说明文件操作的三个步骤。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：写出打开、读写、关闭三步；程序语法正确、可运行；使用 `upper()` 转大写；读写中文时指定 `encoding='utf-8'`；用 `with` 或显式 `close()`。漏写关闭或 `write()` 直接写非字符串应扣分。"
 },
 {
  "cat": "实验篇/实验2",
  "title": "NumPy数值分析库实验",
  "q": "结合本实验操作，完成下列两问： （1）写出定义并调用两数求和函数的可运行代码； （2）说明标准库与第三方库在安装、导入上的区别，并各举课程中的一个例子。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：函数定义含 `def`、形参、`return`，并有调用与输出；区分“不必安装”与“先安装再导入”；例子须来自课程（math/random 与 jieba/wordcloud/requests）。代码不能运行或把标准库当成必须 `pip install` 的对象不得满分。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "本课程实验1「Python程序设计基础实验」推荐使用的开源数据科学平台是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Photoshop",
   "B. Anaconda",
   "C. Office",
   "D. 仅机器语言汇编器"
  ],
  "answer": "B",
  "analysis": "** 课程以 Anaconda 作为 Python 编程环境。它是广泛使用的开源数据科学平台，集成 Conda、Spyder 和 Jupyter Notebook，不是图像处理软件或办公软件。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "Spyder 的用户工作区主要包括：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅浏览器 Web 主页",
   "B. 程序编辑区和 IPython 控制台",
   "C. 仅 Anaconda Prompt",
   "D. 仅服务器终端"
  ],
  "answer": "B",
  "analysis": "** 课程指出 Spyder 工作区主要包括程序编辑区和 IPython 控制台，可交互执行代码或运行 `.py` 文件。浏览器 Web 主页和服务器终端属于 Jupyter Notebook。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "本实验在 Anaconda 中重点使用的三个工具是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. Anaconda Prompt",
   "B. Spyder",
   "C. Jupyter Notebook",
   "D. Photoshop"
  ],
  "answer": "ABC",
  "analysis": "** 课程将 Anaconda Prompt、Spyder、Jupyter Notebook 列为三个常用工具。Prompt 用于包管理，Spyder 用于编写与运行程序，Jupyter 用于网页交互式编程。Photoshop 不属于本实验环境。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "启动 Jupyter Notebook 后会出现服务器终端和浏览器 Web 主页；使用期间可以随时关闭服务器终端，网页工作界面不受影响。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调服务器终端显示服务器信息，使用期间不能关闭。关闭后服务中断，浏览器中的工作界面将无法继续运行。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "在 Anaconda Prompt 中安装第三方库 jieba，下列哪条命令符合本实验要求？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `conda list jieba`",
   "B. `pip install jieba`",
   "C. `python jieba`",
   "D. `import jieba`"
  ],
  "answer": "B",
  "analysis": "** 第三方库安装命令为 `pip install 库名` 或 `conda install 库名`。课程示例为 `pip install jieba`、`pip install wordcloud`。`conda list` 用于查看已安装包，`import` 是导入而非安装。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "使用模块前必须先导入。下列属于课程给出的导入方式的是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `import math`",
   "B. `from math import cos, pi`",
   "C. `from math import *`",
   "D. `from random import randint as rand`"
  ],
  "answer": "ABCD",
  "analysis": "** 四种方式分别是：导入整个模块、导入指定对象、导入全部内容、给模块或对象起别名。A、B、C、D 均为课程实例。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "`file.write()` 可以直接把整数、浮点数写入文件，并且会自动在末尾换行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程明确 `write()` 只能写入字符串，整数和浮点数须先转换成字符串；它不会自动换行，需要手动添加 `\\n`。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "定义无参函数时，函数名后面的圆括号可以省略。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 无参函数没有形式参数，但定义时函数名后的圆括号不能省略，否则会出现语法错误。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "下列打开文件的写法中，能避免 Windows 路径里 `\\t` 被当成转义字符的是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `fw = open(\"d:\\test.txt\", \"wt\")`",
   "B. `fw = open(r\"d:\\test.txt\", \"wt\")`",
   "C. `fw = open(d:\\test.txt, \"wt\")`",
   "D. `fw = write(\"d:\\test.txt\")`"
  ],
  "answer": "B",
  "analysis": "** 课程示例为 `fw = open(r\"d:\\test.txt\", \"wt\")`。前缀 `r` 表示原始字符串，使 `\\t` 不被识别为转义。A 会因转义导致路径错误；C 不是合法字符串；D 不是打开文件的方法。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "在 Spyder 中运行下列程序，输出结果是： ```python def modifyList(b): for i in range(len(b)): b[i] *= b[i] print('b =', b) a = [4, 5, 6] modifyList(a) print('a =', a) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `b = [16, 25, 36]` 换行后 `a = [4, 5, 6]`",
   "B. `b = [16, 25, 36]` 换行后 `a = [16, 25, 36]`",
   "C. `b = [4, 5, 6]` 换行后 `a = [4, 5, 6]`",
   "D. 程序报错，列表不能作为函数参数"
  ],
  "answer": "B",
  "analysis": "** 列表是可变对象，作实参时向形参传递的是内存地址，形参与实参共用同一存储。函数内把各元素改为平方后，实参 `a` 也会变成 `[16, 25, 36]`。这是本实验函数调用部分的核心原理。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "实验作业要求：读取一个文本文件，将内容全部转为大写后写入另一个文件。请写出一段可运行的 Python 程序（可用 `with` 语句），并说明文件操作的三个步骤。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：写出打开、读写、关闭三步；程序语法正确、可运行；使用 `upper()` 转大写；读写中文时指定 `encoding='utf-8'`；用 `with` 或显式 `close()`。漏写关闭或 `write()` 直接写非字符串应扣分。"
 },
 {
  "cat": "实验篇/实验3",
  "title": "pandas数据分析库实验",
  "q": "结合本实验操作，完成下列两问： （1）写出定义并调用两数求和函数的可运行代码； （2）说明标准库与第三方库在安装、导入上的区别，并各举课程中的一个例子。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：函数定义含 `def`、形参、`return`，并有调用与输出；区分“不必安装”与“先安装再导入”；例子须来自课程（math/random 与 jieba/wordcloud/requests）。代码不能运行或把标准库当成必须 `pip install` 的对象不得满分。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "本课程实验1「Python程序设计基础实验」推荐使用的开源数据科学平台是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Photoshop",
   "B. Anaconda",
   "C. Office",
   "D. 仅机器语言汇编器"
  ],
  "answer": "B",
  "analysis": "** 课程以 Anaconda 作为 Python 编程环境。它是广泛使用的开源数据科学平台，集成 Conda、Spyder 和 Jupyter Notebook，不是图像处理软件或办公软件。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "Spyder 的用户工作区主要包括：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅浏览器 Web 主页",
   "B. 程序编辑区和 IPython 控制台",
   "C. 仅 Anaconda Prompt",
   "D. 仅服务器终端"
  ],
  "answer": "B",
  "analysis": "** 课程指出 Spyder 工作区主要包括程序编辑区和 IPython 控制台，可交互执行代码或运行 `.py` 文件。浏览器 Web 主页和服务器终端属于 Jupyter Notebook。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "本实验在 Anaconda 中重点使用的三个工具是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. Anaconda Prompt",
   "B. Spyder",
   "C. Jupyter Notebook",
   "D. Photoshop"
  ],
  "answer": "ABC",
  "analysis": "** 课程将 Anaconda Prompt、Spyder、Jupyter Notebook 列为三个常用工具。Prompt 用于包管理，Spyder 用于编写与运行程序，Jupyter 用于网页交互式编程。Photoshop 不属于本实验环境。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "启动 Jupyter Notebook 后会出现服务器终端和浏览器 Web 主页；使用期间可以随时关闭服务器终端，网页工作界面不受影响。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调服务器终端显示服务器信息，使用期间不能关闭。关闭后服务中断，浏览器中的工作界面将无法继续运行。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "在 Anaconda Prompt 中安装第三方库 jieba，下列哪条命令符合本实验要求？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `conda list jieba`",
   "B. `pip install jieba`",
   "C. `python jieba`",
   "D. `import jieba`"
  ],
  "answer": "B",
  "analysis": "** 第三方库安装命令为 `pip install 库名` 或 `conda install 库名`。课程示例为 `pip install jieba`、`pip install wordcloud`。`conda list` 用于查看已安装包，`import` 是导入而非安装。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "使用模块前必须先导入。下列属于课程给出的导入方式的是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `import math`",
   "B. `from math import cos, pi`",
   "C. `from math import *`",
   "D. `from random import randint as rand`"
  ],
  "answer": "ABCD",
  "analysis": "** 四种方式分别是：导入整个模块、导入指定对象、导入全部内容、给模块或对象起别名。A、B、C、D 均为课程实例。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "`file.write()` 可以直接把整数、浮点数写入文件，并且会自动在末尾换行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程明确 `write()` 只能写入字符串，整数和浮点数须先转换成字符串；它不会自动换行，需要手动添加 `\\n`。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "定义无参函数时，函数名后面的圆括号可以省略。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 无参函数没有形式参数，但定义时函数名后的圆括号不能省略，否则会出现语法错误。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "下列打开文件的写法中，能避免 Windows 路径里 `\\t` 被当成转义字符的是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `fw = open(\"d:\\test.txt\", \"wt\")`",
   "B. `fw = open(r\"d:\\test.txt\", \"wt\")`",
   "C. `fw = open(d:\\test.txt, \"wt\")`",
   "D. `fw = write(\"d:\\test.txt\")`"
  ],
  "answer": "B",
  "analysis": "** 课程示例为 `fw = open(r\"d:\\test.txt\", \"wt\")`。前缀 `r` 表示原始字符串，使 `\\t` 不被识别为转义。A 会因转义导致路径错误；C 不是合法字符串；D 不是打开文件的方法。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "在 Spyder 中运行下列程序，输出结果是： ```python def modifyList(b): for i in range(len(b)): b[i] *= b[i] print('b =', b) a = [4, 5, 6] modifyList(a) print('a =', a) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `b = [16, 25, 36]` 换行后 `a = [4, 5, 6]`",
   "B. `b = [16, 25, 36]` 换行后 `a = [16, 25, 36]`",
   "C. `b = [4, 5, 6]` 换行后 `a = [4, 5, 6]`",
   "D. 程序报错，列表不能作为函数参数"
  ],
  "answer": "B",
  "analysis": "** 列表是可变对象，作实参时向形参传递的是内存地址，形参与实参共用同一存储。函数内把各元素改为平方后，实参 `a` 也会变成 `[16, 25, 36]`。这是本实验函数调用部分的核心原理。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "实验作业要求：读取一个文本文件，将内容全部转为大写后写入另一个文件。请写出一段可运行的 Python 程序（可用 `with` 语句），并说明文件操作的三个步骤。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：写出打开、读写、关闭三步；程序语法正确、可运行；使用 `upper()` 转大写；读写中文时指定 `encoding='utf-8'`；用 `with` 或显式 `close()`。漏写关闭或 `write()` 直接写非字符串应扣分。"
 },
 {
  "cat": "实验篇/实验4",
  "title": "百度AI开放平台人工智能能力体验",
  "q": "结合本实验操作，完成下列两问： （1）写出定义并调用两数求和函数的可运行代码； （2）说明标准库与第三方库在安装、导入上的区别，并各举课程中的一个例子。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：函数定义含 `def`、形参、`return`，并有调用与输出；区分“不必安装”与“先安装再导入”；例子须来自课程（math/random 与 jieba/wordcloud/requests）。代码不能运行或把标准库当成必须 `pip install` 的对象不得满分。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "本课程实验1「Python程序设计基础实验」推荐使用的开源数据科学平台是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Photoshop",
   "B. Anaconda",
   "C. Office",
   "D. 仅机器语言汇编器"
  ],
  "answer": "B",
  "analysis": "** 课程以 Anaconda 作为 Python 编程环境。它是广泛使用的开源数据科学平台，集成 Conda、Spyder 和 Jupyter Notebook，不是图像处理软件或办公软件。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "Spyder 的用户工作区主要包括：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅浏览器 Web 主页",
   "B. 程序编辑区和 IPython 控制台",
   "C. 仅 Anaconda Prompt",
   "D. 仅服务器终端"
  ],
  "answer": "B",
  "analysis": "** 课程指出 Spyder 工作区主要包括程序编辑区和 IPython 控制台，可交互执行代码或运行 `.py` 文件。浏览器 Web 主页和服务器终端属于 Jupyter Notebook。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "本实验在 Anaconda 中重点使用的三个工具是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. Anaconda Prompt",
   "B. Spyder",
   "C. Jupyter Notebook",
   "D. Photoshop"
  ],
  "answer": "ABC",
  "analysis": "** 课程将 Anaconda Prompt、Spyder、Jupyter Notebook 列为三个常用工具。Prompt 用于包管理，Spyder 用于编写与运行程序，Jupyter 用于网页交互式编程。Photoshop 不属于本实验环境。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "启动 Jupyter Notebook 后会出现服务器终端和浏览器 Web 主页；使用期间可以随时关闭服务器终端，网页工作界面不受影响。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调服务器终端显示服务器信息，使用期间不能关闭。关闭后服务中断，浏览器中的工作界面将无法继续运行。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "在 Anaconda Prompt 中安装第三方库 jieba，下列哪条命令符合本实验要求？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `conda list jieba`",
   "B. `pip install jieba`",
   "C. `python jieba`",
   "D. `import jieba`"
  ],
  "answer": "B",
  "analysis": "** 第三方库安装命令为 `pip install 库名` 或 `conda install 库名`。课程示例为 `pip install jieba`、`pip install wordcloud`。`conda list` 用于查看已安装包，`import` 是导入而非安装。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "使用模块前必须先导入。下列属于课程给出的导入方式的是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `import math`",
   "B. `from math import cos, pi`",
   "C. `from math import *`",
   "D. `from random import randint as rand`"
  ],
  "answer": "ABCD",
  "analysis": "** 四种方式分别是：导入整个模块、导入指定对象、导入全部内容、给模块或对象起别名。A、B、C、D 均为课程实例。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "`file.write()` 可以直接把整数、浮点数写入文件，并且会自动在末尾换行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程明确 `write()` 只能写入字符串，整数和浮点数须先转换成字符串；它不会自动换行，需要手动添加 `\\n`。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "定义无参函数时，函数名后面的圆括号可以省略。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 无参函数没有形式参数，但定义时函数名后的圆括号不能省略，否则会出现语法错误。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "下列打开文件的写法中，能避免 Windows 路径里 `\\t` 被当成转义字符的是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `fw = open(\"d:\\test.txt\", \"wt\")`",
   "B. `fw = open(r\"d:\\test.txt\", \"wt\")`",
   "C. `fw = open(d:\\test.txt, \"wt\")`",
   "D. `fw = write(\"d:\\test.txt\")`"
  ],
  "answer": "B",
  "analysis": "** 课程示例为 `fw = open(r\"d:\\test.txt\", \"wt\")`。前缀 `r` 表示原始字符串，使 `\\t` 不被识别为转义。A 会因转义导致路径错误；C 不是合法字符串；D 不是打开文件的方法。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "在 Spyder 中运行下列程序，输出结果是： ```python def modifyList(b): for i in range(len(b)): b[i] *= b[i] print('b =', b) a = [4, 5, 6] modifyList(a) print('a =', a) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `b = [16, 25, 36]` 换行后 `a = [4, 5, 6]`",
   "B. `b = [16, 25, 36]` 换行后 `a = [16, 25, 36]`",
   "C. `b = [4, 5, 6]` 换行后 `a = [4, 5, 6]`",
   "D. 程序报错，列表不能作为函数参数"
  ],
  "answer": "B",
  "analysis": "** 列表是可变对象，作实参时向形参传递的是内存地址，形参与实参共用同一存储。函数内把各元素改为平方后，实参 `a` 也会变成 `[16, 25, 36]`。这是本实验函数调用部分的核心原理。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "实验作业要求：读取一个文本文件，将内容全部转为大写后写入另一个文件。请写出一段可运行的 Python 程序（可用 `with` 语句），并说明文件操作的三个步骤。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：写出打开、读写、关闭三步；程序语法正确、可运行；使用 `upper()` 转大写；读写中文时指定 `encoding='utf-8'`；用 `with` 或显式 `close()`。漏写关闭或 `write()` 直接写非字符串应扣分。"
 },
 {
  "cat": "实验篇/实验5",
  "title": "基于百度AI开放平台的文字识别应用开发",
  "q": "结合本实验操作，完成下列两问： （1）写出定义并调用两数求和函数的可运行代码； （2）说明标准库与第三方库在安装、导入上的区别，并各举课程中的一个例子。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：函数定义含 `def`、形参、`return`，并有调用与输出；区分“不必安装”与“先安装再导入”；例子须来自课程（math/random 与 jieba/wordcloud/requests）。代码不能运行或把标准库当成必须 `pip install` 的对象不得满分。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "本课程实验1「Python程序设计基础实验」推荐使用的开源数据科学平台是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Photoshop",
   "B. Anaconda",
   "C. Office",
   "D. 仅机器语言汇编器"
  ],
  "answer": "B",
  "analysis": "** 课程以 Anaconda 作为 Python 编程环境。它是广泛使用的开源数据科学平台，集成 Conda、Spyder 和 Jupyter Notebook，不是图像处理软件或办公软件。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "Spyder 的用户工作区主要包括：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅浏览器 Web 主页",
   "B. 程序编辑区和 IPython 控制台",
   "C. 仅 Anaconda Prompt",
   "D. 仅服务器终端"
  ],
  "answer": "B",
  "analysis": "** 课程指出 Spyder 工作区主要包括程序编辑区和 IPython 控制台，可交互执行代码或运行 `.py` 文件。浏览器 Web 主页和服务器终端属于 Jupyter Notebook。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "本实验在 Anaconda 中重点使用的三个工具是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. Anaconda Prompt",
   "B. Spyder",
   "C. Jupyter Notebook",
   "D. Photoshop"
  ],
  "answer": "ABC",
  "analysis": "** 课程将 Anaconda Prompt、Spyder、Jupyter Notebook 列为三个常用工具。Prompt 用于包管理，Spyder 用于编写与运行程序，Jupyter 用于网页交互式编程。Photoshop 不属于本实验环境。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "启动 Jupyter Notebook 后会出现服务器终端和浏览器 Web 主页；使用期间可以随时关闭服务器终端，网页工作界面不受影响。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调服务器终端显示服务器信息，使用期间不能关闭。关闭后服务中断，浏览器中的工作界面将无法继续运行。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "在 Anaconda Prompt 中安装第三方库 jieba，下列哪条命令符合本实验要求？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `conda list jieba`",
   "B. `pip install jieba`",
   "C. `python jieba`",
   "D. `import jieba`"
  ],
  "answer": "B",
  "analysis": "** 第三方库安装命令为 `pip install 库名` 或 `conda install 库名`。课程示例为 `pip install jieba`、`pip install wordcloud`。`conda list` 用于查看已安装包，`import` 是导入而非安装。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "使用模块前必须先导入。下列属于课程给出的导入方式的是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `import math`",
   "B. `from math import cos, pi`",
   "C. `from math import *`",
   "D. `from random import randint as rand`"
  ],
  "answer": "ABCD",
  "analysis": "** 四种方式分别是：导入整个模块、导入指定对象、导入全部内容、给模块或对象起别名。A、B、C、D 均为课程实例。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "`file.write()` 可以直接把整数、浮点数写入文件，并且会自动在末尾换行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程明确 `write()` 只能写入字符串，整数和浮点数须先转换成字符串；它不会自动换行，需要手动添加 `\\n`。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "定义无参函数时，函数名后面的圆括号可以省略。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 无参函数没有形式参数，但定义时函数名后的圆括号不能省略，否则会出现语法错误。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "下列打开文件的写法中，能避免 Windows 路径里 `\\t` 被当成转义字符的是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `fw = open(\"d:\\test.txt\", \"wt\")`",
   "B. `fw = open(r\"d:\\test.txt\", \"wt\")`",
   "C. `fw = open(d:\\test.txt, \"wt\")`",
   "D. `fw = write(\"d:\\test.txt\")`"
  ],
  "answer": "B",
  "analysis": "** 课程示例为 `fw = open(r\"d:\\test.txt\", \"wt\")`。前缀 `r` 表示原始字符串，使 `\\t` 不被识别为转义。A 会因转义导致路径错误；C 不是合法字符串；D 不是打开文件的方法。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "在 Spyder 中运行下列程序，输出结果是： ```python def modifyList(b): for i in range(len(b)): b[i] *= b[i] print('b =', b) a = [4, 5, 6] modifyList(a) print('a =', a) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `b = [16, 25, 36]` 换行后 `a = [4, 5, 6]`",
   "B. `b = [16, 25, 36]` 换行后 `a = [16, 25, 36]`",
   "C. `b = [4, 5, 6]` 换行后 `a = [4, 5, 6]`",
   "D. 程序报错，列表不能作为函数参数"
  ],
  "answer": "B",
  "analysis": "** 列表是可变对象，作实参时向形参传递的是内存地址，形参与实参共用同一存储。函数内把各元素改为平方后，实参 `a` 也会变成 `[16, 25, 36]`。这是本实验函数调用部分的核心原理。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "实验作业要求：读取一个文本文件，将内容全部转为大写后写入另一个文件。请写出一段可运行的 Python 程序（可用 `with` 语句），并说明文件操作的三个步骤。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：写出打开、读写、关闭三步；程序语法正确、可运行；使用 `upper()` 转大写；读写中文时指定 `encoding='utf-8'`；用 `with` 或显式 `close()`。漏写关闭或 `write()` 直接写非字符串应扣分。"
 },
 {
  "cat": "实验篇/实验6",
  "title": "基于百度AI开放平台的人脸识别考勤应用开发",
  "q": "结合本实验操作，完成下列两问： （1）写出定义并调用两数求和函数的可运行代码； （2）说明标准库与第三方库在安装、导入上的区别，并各举课程中的一个例子。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：函数定义含 `def`、形参、`return`，并有调用与输出；区分“不必安装”与“先安装再导入”；例子须来自课程（math/random 与 jieba/wordcloud/requests）。代码不能运行或把标准库当成必须 `pip install` 的对象不得满分。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "“人工智能”概念的提出者，并将人工智能概括为“制造智能机器的科学与工程”的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 帕特里克·温斯顿",
   "B. 约翰·麦卡锡",
   "C. 霍华德·加德纳",
   "D. 赫伯特·西蒙"
  ],
  "answer": "B",
  "analysis": "** 语料明确指出约翰·麦卡锡是“人工智能”概念的提出者，其定义为“人工智能是制造智能机器的科学与工程。”温斯顿给出的是另一表述；加德纳、西蒙不属于本小节定义来源。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "一般认为，人工智能是用（ ）来模拟人类智能行为的科学。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 物理过程",
   "B. 计算机",
   "C. 生物器官",
   "D. 机械装置"
  ],
  "answer": "B",
  "analysis": "** 当前人工智能方法都是通过计算实现的，计算机是基本工具。一般认为，人工智能是用计算机来模拟人类智能行为的科学。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "目前人工智能没有统一的定义，但学科的基础任务是明确的，即让机器拥有人的智慧。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料指出目前没有统一的定义，但基础任务明确，即让机器拥有人的智慧。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "基于物理过程实现的功能，一般也作为人工智能的主要研究对象。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 当前人工智能方法都通过计算实现，基于物理过程实现的功能一般不作为人工智能的研究对象。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "下列属于人工智能核心特征的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自主性",
   "B. 智能性",
   "C. 交互性",
   "D. 适应性"
  ],
  "answer": "ABCD",
  "analysis": "** 本课程将核心特征概括为自主性、智能性、交互性和适应性四个方面，四项均正确。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "麻省理工学院帕特里克·温斯顿对人工智能的表述是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 制造智能机器的科学与工程",
   "B. 研究如何使计算机做过去只有人才能做的智能工作",
   "C. 用物理过程实现人类全部智能",
   "D. 专门研究芯片与传感器的工程"
  ],
  "answer": "B",
  "analysis": "** 温斯顿的表述是“人工智能就是研究如何使计算机做过去只有人才能做的智能工作。”A项是麦卡锡的定义。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "人工智能起源于对人类思维的模拟，其所关注的“智能行为”包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 感知",
   "B. 记忆",
   "C. 动作",
   "D. 推理"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将需要“动脑子”才能完成的工作称为智能行为，并列举感知、记忆、动作、推理等。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "人工智能的“自主性”是指系统能够根据环境的变化和新的数据输入，调整自身的行为和策略。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 题干所述是适应性。自主性是指系统在没有人类直接干预的情况下，根据预设的规则或目标自主地进行决策和行动。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "简述人工智能的四个核心特征及其含义。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点为四点名称齐全、含义与语料一致；漏点或把自主性与适应性写反应扣分。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "某智能客服可在无人值守时按预设规则自动答复常见问题，能根据新的对话数据调整答复策略，并以自然语言与用户沟通。该系统主要体现的核心特征是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 仅智能性",
   "B. 自主性、适应性与交互性",
   "C. 基于物理过程的实现",
   "D. 仅存储能力"
  ],
  "answer": "B",
  "analysis": "** 无人值守按预设规则自动答复对应自主性；根据新数据调整策略对应适应性；自然语言沟通对应交互性。该系统以计算方式实现，并非基于物理过程；D项不是本小节所讲的核心特征。"
 },
 {
  "cat": "人工智能概述/1.1.1",
  "title": "人工智能的定义与核心特征",
  "q": "试从“计算机”与“智能行为”两个关键词出发，说明人工智能的一般定义，并指出其研究对象的边界。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点包括：给出一般定义；分别解释两个关键词；明确“物理过程实现的功能一般不作为研究对象”。只复述麦卡锡或温斯顿原话而未扣住两个关键词，给部分分。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "提出“多元智能理论”的美国心理学家是（ ）。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 约翰·麦卡锡",
   "B. 帕特里克·温斯顿",
   "C. 霍华德·加德纳",
   "D. 赫伯特·西蒙"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，多元智能理论由美国心理学家霍华德·加德纳提出。麦卡锡是“人工智能”概念的提出者，温斯顿给出过人工智能的一种定义，西蒙是符号主义代表人物，均与该理论无关。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "通俗地理解，“智能”是指人类的（ ）。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 感觉灵敏度",
   "B. 思考的能力",
   "C. 肌肉爆发力",
   "D. 单纯的记忆容量"
  ],
  "answer": "B",
  "analysis": "** 课程指出，通俗地理解，“智能”是指人类“思考的能力”，包括推理、计划、解决问题、抽象思维、表达意念以及语言和学习等能力。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "多元智能理论认为，人的智能是单一的，每个人擅长的智能活动基本相同。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 加德纳的多元智能理论认为，人的智能不是单一的，是由多个侧面组成的，每个人擅长的智能活动是不同的。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "按照课程的通俗理解，人类“思考的能力”包括（ ）。",
  "type": "多选题",
  "diff": "易",
  "opts": [
   "A. 推理、计划",
   "B. 解决问题、抽象思维",
   "C. 表达意念以及语言和学习",
   "D. 仅指算术运算的速度"
  ],
  "answer": "ABC",
  "analysis": "** 课程将“智能”理解为思考的能力，并列举推理、计划、解决问题、抽象思维、表达意念以及语言和学习等。D把智能窄化为运算速度，不符合课程表述。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "随着技术不断进步，人工智能在某些领域已经超越人类智能，具体表现包括（ ）。",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算能力：能够处理和分析海量数据，速度和精度远超人类",
   "B. 存储能力：拥有巨大数据存储能力，可以记住并快速检索大量信息",
   "C. 持续学习：通过机器学习等技术持续从数据中学习并优化自身性能",
   "D. 特定任务优化：针对特定任务高度优化，比人类更高效、更准确地执行"
  ],
  "answer": "ABCD",
  "analysis": "** 课程从计算能力、存储能力、持续学习和特定任务优化四个方面概括了人工智能对人类智能的超越，四项均属于课程所列的具体表现。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "人工智能系统能够持续从数据中学习并优化自身性能，主要依靠（ ）。",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 一次性写死的固定规则表",
   "B. 人工逐条改写全部程序",
   "C. 机器学习等技术",
   "D. 单纯提高处理器时钟频率"
  ],
  "answer": "C",
  "analysis": "** 课程强调，通过机器学习等技术，人工智能系统能够持续从数据中学习并优化自身性能，这种学习能力是部分人类难以企及的。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "人工智能的初衷是模拟人类智能的某些方面，并且已经在所有智能侧面全面超越人类。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 前半句正确：人工智能的初衷是模拟人类智能的某些方面。后半句错误：课程的表述是“在某些领域已经超越”，表现为计算、存储、持续学习和特定任务优化，并非覆盖多元智能的全部侧面。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "简述霍华德·加德纳“多元智能理论”的核心观点，并列出其所总结的9种智能。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点包括：①指出提出者为美国心理学家霍华德·加德纳；②写出“非单一、多侧面、个体差异”这一核心判断；③完整列出9种智能，并能区分自然智能与存在智能的含义。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "什么是“智能”？人工智能如何模拟人类智能，又在哪些方面表现出对人类智能的超越？",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：能准确给出“思考的能力”及主要构成；能说明模拟的对象是“某些方面/智能行为”而非全部心智；能完整写出四类超越表现，并点明“某些领域”这一限定，避免写成全面超越。"
 },
 {
  "cat": "人工智能概述/1.1.2",
  "title": "人工智能对人类智能的模拟与超越",
  "q": "根据多元智能理论，下列对应关系正确的是（ ）。",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 自然智能是指对人类存在意义等重大问题的思考能力",
   "B. 存在智能是指利用自然的能力",
   "C. 存在智能是指对人类存在意义等重大问题的思考能力",
   "D. 自省智能是指利用自然的能力"
  ],
  "answer": "C",
  "analysis": "** 课程对后两种智能有明确释义：自然智能是利用自然的能力，存在智能是对人类存在意义等重大问题的思考能力。A、B把二者对调，D把自省智能误说成利用自然的能力。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "1955年9月2日，在向洛克菲勒基金会的申请中首次提出“人工智能”概念的学者是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 帕特里克·温斯顿",
   "B. 约翰·麦卡锡",
   "C. 爱德华·费根鲍姆",
   "D. 杰弗里·辛顿"
  ],
  "answer": "B",
  "analysis": "** 约翰·麦卡锡联合香农、闵斯基、罗切斯特提出申请，并在申请中首次提出“人工智能”概念。费根鲍姆是专家系统之父，辛顿与反向传播、深度学习相关。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "标志着人工智能作为独立学科诞生的达特茅斯会议大约开始于（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 1955年9月",
   "B. 1956年6月",
   "C. 1965年",
   "D. 1974年"
  ],
  "answer": "B",
  "analysis": "** 会议大约开始于1956年6月18日，差不多8月17日结束。1955年9月2日是提出申请的时间，不是会议召开时间。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "达特茅斯会议使人工智能第一次作为一门独立研究的学科登上历史舞台。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料明确指出，达特茅斯会议确立了以后几十年研究的根本问题和基本方法，是学科独立登场的标志。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "自达特茅斯会议以来，人工智能一直持续高涨，没有出现低谷。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 人工智能已经经历了两次潮起潮落，目前处于第三次高潮之中。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "黄金十年（1956—1974）的代表性成果包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 定理证明",
   "B. 基于模板的对话机器人",
   "C. 感知器模型",
   "D. AlphaGo战胜人类棋手"
  ],
  "answer": "ABC",
  "analysis": "** 黄金十年的代表性成果包括定理证明、基于模板的对话机器人以及感知器模型。AlphaGo属于2011年以后的迅猛发展阶段。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "自达特茅斯会议以来，人工智能三次高潮分别对应的特征是（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于规则的智能",
   "B. 基于经验的智能",
   "C. 基于学习的智能",
   "D. 基于量子计算的智能"
  ],
  "answer": "ABC",
  "analysis": "** 三次高潮分别对应基于规则的智能、基于经验的智能、基于学习的智能。语料未提及基于量子计算的智能。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "世界上第一个专家系统程序DENDRAL由爱德华·费根鲍姆等人合作开发于（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 1956年",
   "B. 1965年",
   "C. 1980年",
   "D. 1997年"
  ],
  "answer": "B",
  "analysis": "** 1965年，费根鲍姆和遗传学家约书亚·莱德伯格等人开发出第一个专家系统程序DENDRAL。1980年前后是专家系统走向舞台的回暖期，1997年是IBM深蓝战胜卡斯帕罗夫。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "罗德尼·布鲁克斯认为实现感知、移动、交互等基础能力更为现实迫切，这一思潮后来被称为“行为主义”。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 布鲁克斯在《大象不下棋》中提出上述主张，认为这些任务与符号逻辑并无必然联系；这一思潮后来被称为行为主义。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "简述自达特茅斯会议以来人工智能发展的主要阶段及其时间范围。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点为六个阶段名称与起止年份对应正确；漏写阶段或年份张冠李戴应扣分。可补充三次高潮分别对应基于规则、基于经验和基于学习的智能。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "下列关于人工智能发展历程的叙述，正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 黄金十年的典型方法是深度神经网络，启发式搜索尚未出现",
   "B. 专家系统知识库易于维护、新知识可随时加入，因此没有再次陷入低谷",
   "C. 2012年辛顿团队在ImageNet上将错误率降低了10%，深度学习随后成为众多模式识别任务的首选方法",
   "D. 行为主义主张“认知即计算”，代表人物是艾伦·纽厄尔和赫伯特·西蒙"
  ],
  "answer": "C",
  "analysis": "** A项错，黄金十年典型方法是符号方法，启发式搜索是典型算法，深度神经网络属于2011年后。B项错，专家系统维护困难、新知识难加入、老知识易冲突，因而在1987—1993年再次低潮。D项错，“认知即计算”是符号主义观点，代表人物是纽厄尔和西蒙。"
 },
 {
  "cat": "人工智能概述/1.2",
  "title": "人工智能的发展历程",
  "q": "简述人工智能三大流派的基本思想，并指出当前各流派关系的变化。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点为三派名称、基本思想正确，并说明融合趋势；把符号主义与行为主义代表人物或主张写反应扣分。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "人工智能产业作为新兴产业，其结构主要可以分为（ ）三个核心部分。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 感知层、网络层、平台层",
   "B. 基础层、技术层、应用层",
   "C. 硬件层、软件层、数据层",
   "D. 符号层、连接层、行为层"
  ],
  "answer": "B",
  "analysis": "** 语料明确指出，人工智能产业结构主要可以分为基础层、技术层和应用层三个核心部分。D项是人工智能的主要流派，不是产业结构划分。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "人工智能产业发展的基石是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 基础层",
   "B. 技术层",
   "C. 应用层",
   "D. 服务层"
  ],
  "answer": "A",
  "analysis": "** 基础层是人工智能产业发展的基石，为人工智能系统提供硬件平台和基础设施支撑。技术层是核心驱动力，应用层最终体现价值。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "芯片作为人工智能技术的核心部件，其计算能力、能效比和成本控制直接影响着人工智能应用的性能和市场接受度。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料对基础层中芯片的作用有上述明确表述。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "基础层、技术层和应用层共同构成了人工智能产业生态的完整链条。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 三层是产业结构的三个核心部分，共同构成人工智能产业生态的完整链条。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "下列属于人工智能产业基础层主要内容的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 高性能芯片",
   "B. 传感器",
   "C. 数据中心",
   "D. 人脸识别智能监控系统"
  ],
  "answer": "ABC",
  "analysis": "** 基础层主要包括高性能芯片、传感器、数据中心等硬件设备，以及提供运算能力、存储空间和网络连接的云服务。D项是应用层在安防领域的典型应用，不属于基础层。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "技术层是人工智能产业发展的核心驱动力，它依赖于（ ），进行大规模的识别训练、机器学习建模等关键任务。",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅传感器采集",
   "B. 计算平台和数据资源",
   "C. 仅人脸识别与行为分析",
   "D. 仅病历与医学影像"
  ],
  "answer": "B",
  "analysis": "** 技术层依赖于计算平台和数据资源。A项是基础层传感器的功能；C、D项分别对应安防、医疗等应用层场景，不是技术层所依赖的条件。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "下列关于人工智能产业结构的表述正确的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 技术层的主要任务包括数据预处理、特征提取、模型训练、评估与优化",
   "B. 机器学习是技术层的关键技术之一",
   "C. 应用层主要应用于安防、金融、医疗、交通等领域",
   "D. 基础层不包含云服务"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C均与语料一致。基础层还包括为硬件设备提供运算能力、存储空间和网络连接的云服务，故D错误。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "传感器作为人工智能技术的核心部件，其计算能力、能效比和成本控制直接影响着人工智能应用的性能和市场接受度。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 题干把芯片的作用安到了传感器上。芯片才是核心部件，其计算能力、能效比和成本控制影响应用性能和市场接受度；传感器的职责是采集现实世界中的数据，为人工智能系统提供输入。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "简述人工智能产业结构中基础层、技术层、应用层各自的定位。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点为三层名称齐全，并分别点出“基石”“核心驱动力”“与场景融合/体现价值”；若只列名称而无定位，给部分分。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "某医院上线人工智能辅助诊断系统，通过分析病历和医学影像提高诊断精准度；支撑该系统运行的芯片、数据中心与云服务由基础设施提供商交付，算法团队则基于数据完成模型训练与优化。下列理解最准确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 辅助诊断系统属于技术层，芯片属于应用层",
   "B. 辅助诊断系统属于应用层，芯片与云服务属于基础层，模型训练属于技术层",
   "C. 三者都属于应用层",
   "D. 模型训练属于基础层，云服务属于应用层"
  ],
  "answer": "B",
  "analysis": "** 辅助诊断系统是医疗场景中的应用，属于应用层；芯片、数据中心与云服务属于基础层；模型训练与优化属于技术层任务。该题考查三层划分及它们在同一系统中的分工。"
 },
 {
  "cat": "人工智能概述/1.3",
  "title": "人工智能的产业结构",
  "q": "结合基础层、技术层和应用层，说明人工智能产业结构三层之间的相互作用与关系。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点包括：①指出三层构成完整链条；②基础层如何支撑技术层；③技术层如何赋能应用层；④应用层如何体现价值并反向牵引。只分别解释三层定义而未写相互作用，给部分分。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "机器学习赋予计算机系统从数据中自动学习并改进自身性能的能力，其突出特点是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 必须由程序员写出全部决策规则",
   "B. 无须进行明确的编程指令",
   "C. 只能处理符号逻辑推理",
   "D. 完全不需要数据"
  ],
  "answer": "B",
  "analysis": "** 语料指出机器学习赋予系统从数据中自动学习并改进性能的能力，而无须进行明确的编程指令；学习过程必须以数据为基础。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "构造一个机器学习系统可以大致分为四个步骤，正确顺序是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 模型训练、模型设计、模型测试、模型选择",
   "B. 模型设计、模型训练、模型测试、模型选择",
   "C. 模型选择、模型设计、模型训练、模型测试",
   "D. 模型测试、模型训练、模型设计、模型选择"
  ],
  "answer": "B",
  "analysis": "** 语料明确四个步骤为模型设计、模型训练、模型测试、模型选择。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "机器学习本身就是从数据中学习规律的方法，整个学习过程必须以数据为基础。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料强调数据在上述所有步骤中都占有重要地位，学习过程必须以数据为基础。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "只要模型在训练集上表现很好，就可以认为它已经学到了真实规律，不必再用新数据测试。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 测试应基于独立于训练集的测试集。训练集上很好、测试集上很差的现象称为过拟合。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "按照学习的信息源来分，机器学习方法可分为（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 监督学习",
   "B. 无监督学习",
   "C. 强化学习",
   "D. 符号演算学习"
  ],
  "answer": "ABC",
  "analysis": "** 语料按信息源将机器学习分为监督学习、无监督学习和强化学习三类。D项不属于本小节的分类。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "奥卡姆剃刀准则在模型选择中的含义是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模型越复杂，学习能力越强，因此应优先选择复杂模型",
   "B. 如果两个模型具有类似的性能，那么应该选择更简单的那个",
   "C. 只根据训练集准确率选择模型",
   "D. 任何任务都应固定使用神经网络"
  ],
  "answer": "B",
  "analysis": "** 奥卡姆剃刀准则（若无必要，勿增实体）要求：两个模型性能相近时选择更简单的那个；复杂模型虽学习能力更强，也更容易过拟合。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "机器学习所需要的优质数据应满足的要求包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 保证一定的数量",
   "B. 达到一定的质量标准",
   "C. 具有代表性",
   "D. 必须全部由模型自动生成、无需任何人工标注"
  ],
  "answer": "ABC",
  "analysis": "** 语料从数量、质量、代表性三方面说明优质数据。当前大多数系统仍需要人为标注的数据，D项错误。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "无监督学习的目标是对数据进行分类或预测，因此必须事先给出人为标注。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 无监督学习的目标不是为了对数据进行标记（分类或预测），而是发现数据本身的分布规律（如聚类性），不需要对数据进行人为标注。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "什么是过拟合？其根本原因是什么？应如何评估机器学习系统的真实性能？",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：准确说明过拟合现象；点明“细节/噪声当规律”或“个例当规律”；强调独立测试集。只举“死记硬背”的比喻而未点出原因，给部分分。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "某模型为照顾训练集中一个“个头较大而颜色偏黄”的特殊苹果，把分类面弯折得很复杂；在测试集上却把许多类似的桔子错分成苹果。对该现象的正确理解是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 模型过简单，学习能力不足",
   "B. 把个例当成了规律，发生了过拟合",
   "C. 说明复杂模型一定优于简单模型",
   "D. 应继续只用训练集来评价该模型"
  ],
  "answer": "B",
  "analysis": "** 语料用该例子说明：更复杂的蓝色实线模型照顾了训练集中的特例苹果，却在测试集上出错，本质是把个例当成规律，属于过拟合。A项描述的是欠拟合式的过简模型；C、D与奥卡姆剃刀及独立测试集要求相反。"
 },
 {
  "cat": "人工智能概述/1.4.1",
  "title": "机器学习",
  "q": "简述监督学习、无监督学习和强化学习的区别，并各举一类典型任务或方法。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三类均点明信息源/是否需要标注；监督学习写出回归与分类之一即可；无监督学习写出聚类或流形学习；强化学习写出“奖励/价值最大化”及典型应用。漏类或把无监督说成必须标注，应扣分。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "知识图谱以（ ）的形式存储和表示知识。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 线性表",
   "B. 图结构",
   "C. 纯文本段落",
   "D. 固定长度向量"
  ],
  "answer": "B",
  "analysis": "** 语料明确指出，知识图谱以图结构的形式存储和表示知识，旨在构建由实体、关系、属性等要素组成的语义网络。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "构成知识图谱语义网络的基本要素是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 像素、卷积核、通道",
   "B. 训练集、测试集、验证集",
   "C. 实体、关系、属性",
   "D. 芯片、传感器、云服务"
  ],
  "answer": "C",
  "analysis": "** 知识图谱旨在构建一个由实体、关系、属性等要素组成的语义网络。A项属于卷积神经网络，B项属于机器学习流程，D项属于产业结构中的基础层。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "实体是构成知识的基本单元。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料指出，在知识图谱中，实体是构成知识的基本单元，可以是人、地点、组织、概念等各种具体或抽象的事物。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "知识图谱的应用范围非常广泛，几乎涵盖了人工智能的所有领域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料原文即如此表述，并随后列举了自然语言处理、信息检索、智能推荐等典型应用。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "下列可以作为知识图谱中实体的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人",
   "B. 地点",
   "C. 组织",
   "D. 概念"
  ],
  "answer": "ABCD",
  "analysis": "** 语料说明实体可以是人、地点、组织、概念等各种具体或抽象的事物，四项均正确。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "课程中图1-4所展现的知识图谱构建环节包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 信息抽取",
   "B. 实体识别",
   "C. 关系抽取",
   "D. 属性填充"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，图1-4针对知识图谱本身构建知识图谱，展现了信息抽取、实体识别、关系抽取、属性填充等多个环节。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "在信息检索方面，知识图谱的主要作用是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 替代搜索引擎的全部索引结构",
   "B. 帮助搜索引擎更好地理解用户的查询意图，提供更加准确和相关的搜索结果",
   "C. 只用于图像检索，不用于文本检索",
   "D. 仅负责存储用户密码"
  ],
  "answer": "B",
  "analysis": "** 语料明确：在信息检索方面，知识图谱可以帮助搜索引擎更好地理解用户的查询意图，提供更加准确和相关的搜索结果。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "属性用于连接不同的实体，关系则只用来描述实体的年龄、性别、位置等特征。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 关系用于连接不同的实体，描述它们之间的相互作用或属性；属性才是对实体特征的进一步描述，如年龄、性别、位置等。题干把二者作用写反了。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "简述知识图谱中实体、关系、属性的含义。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点为三要素名称齐全、含义与语料一致；漏写“图组织/语义信息”可酌情扣分，把关系与属性写反应明显扣分。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "关于知识图谱在人工智能学派中的位置，下列说法正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 知识图谱是行为主义学派的典型工具，只能用于机器人控制",
   "B. 知识图谱是符号主义学派的典型工具，且在训练和推理时开始大量使用神经网络和贝叶斯方法",
   "C. 知识图谱属于连接主义，因此不再需要实体和关系",
   "D. 各学派必须固守封地，知识图谱不能与神经网络结合"
  ],
  "answer": "B",
  "analysis": "** 语料在学派融合部分指出，知识图谱是符号学派的典型工具，在训练和推理时开始大量使用神经网络和贝叶斯方法；各学派已不再固守封地。A、C、D均与语料不符。"
 },
 {
  "cat": "人工智能概述/1.4.2",
  "title": "知识图谱",
  "q": "简述知识图谱的构建过程，并说明自然语言处理和机器学习在其中的作用。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点包括：三个步骤顺序正确；点出信息抽取、实体识别、关系抽取、属性填充等环节；说明 NLP 与机器学习用于提高抽取和关系识别的准确性与效率。只列举应用领域而未写构建过程，不给满分。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 语料将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的理论和方法。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅知识图谱可视化"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，知识图谱是另一项核心技术。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程将其定位为计算机科学和人工智能领域的关键研究方向，也是人工智能的核心技术之一。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "自然语言处理只涉及计算机科学，与语言学、心理学和统计学无关。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "下列属于自然语言处理基础任务的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 文本清洗",
   "B. 分词",
   "C. 词性标注",
   "D. 芯片制程优化"
  ],
  "answer": "ABC",
  "analysis": "** 文本清洗、分词、词性标注是基础任务，此外还有命名实体识别、依存句法分析。芯片属于产业基础层硬件，不是自然语言处理任务。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "经验主义时代（1990年代至2000年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 只研究音素，不处理文本",
   "B. 基于机器学习和大量数据的方法开始占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 完全放弃统计模型"
  ],
  "answer": "B",
  "analysis": "** 经验主义时代的特征是机器学习和大量数据的方法开始占据主导。Transformer主要对应2010年代的深度学习与大模型时代。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "下列属于自然语言处理常见应用的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 机器翻译",
   "B. 智能问答（聊天机器人）",
   "C. 内容审核",
   "D. 高性能芯片流片"
  ],
  "answer": "ABC",
  "analysis": "** 常见应用包括语言理解与生成、机器翻译、内容审核、个性化推荐和智能问答等。芯片流片属于基础层，不是自然语言处理应用。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "务实与复苏阶段（1993—2010）研究者才开始重视数据与统计模型，此前自然语言处理没有任何理论探索。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 该阶段确实日益重视数据与统计模型，并在自然语言处理等领域取得突破；但1950—60年代已有早期探索，1970—80年代还有逻辑、规则与随机范式，并非此前空白。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点为给出定义，并完整写出三大目标及各自含义；只列名称未解释，给部分分。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "某系统要从病历文书中识别患者姓名、医院和疾病名称，并据此开展诊疗问答。该需求主要对应（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 仅文本清洗，不涉及其他任务",
   "B. 命名实体识别，并服务于语言理解与智能问答",
   "C. 仅卷积神经网络的卷积核共享",
   "D. 仅传感器硬件采集"
  ],
  "answer": "B",
  "analysis": "** 从文本中识别人名、机构名等属于命名实体识别；理解病历并问答对应语言理解与智能问答，也符合医疗病历分析辅助诊断的应用。卷积核共享是卷积神经网络机制，传感器属于基础层。"
 },
 {
  "cat": "人工智能概述/1.4.3",
  "title": "自然语言处理",
  "q": "结合人工智能发展历程，说明自然语言处理为何被列为人工智能核心技术，并列举其主要应用方向。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点包括：阶段脉络与第1章发展节点对应；说明其作为核心技术的地位及与深度学习、知识图谱的关系；应用方向不少于四类。只谈应用或只谈定义，给部分分。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "简单来说，计算机视觉就是让计算机能够像人一样理解和处理图像与视频内容，这一过程常被概括为让计算机（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 听懂语音",
   "B. “看懂”世界",
   "C. 构造知识图谱",
   "D. 完成符号演算"
  ],
  "answer": "B",
  "analysis": "** 课程将计算机视觉概括为让计算机像人一样理解和处理图像与视频内容，“看懂”世界。A项属智能语音，C项属知识图谱，D项属符号主义方法。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "图像分类的主要目标是根据图像特征将图像划分到预定义类别，它主要解决的问题是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 对象“是什么”（What）",
   "B. 对象“在哪里”（Where）",
   "C. 像素属于哪一实例",
   "D. 语音对应哪段文本"
  ],
  "answer": "A",
  "analysis": "** 图像分类让计算机识别并分类图像上的对象，主要解决“是什么”。位置问题由检测与定位回答；实例区分属于分割范畴；D项不是视觉任务。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "计算机视觉是人工智能领域的一个重要分支。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料明确指出，计算机视觉是人工智能领域的重要分支，本课程第1章亦将其列为核心技术之一。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "图像处理与计算机视觉是同一概念，二者没有区别。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像处理通常关注改善图像质量或提取基本特征，是计算机视觉的前提；计算机视觉更侧重于识别对象、理解内容，实现从图像数据到高层信息的转换。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "本课程将计算机视觉的基本任务概括为（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 图像分类",
   "B. 目标检测与定位",
   "C. 图像分割",
   "D. 语音合成"
  ],
  "answer": "ABC",
  "analysis": "** 基本任务为图像分类、目标检测与定位、图像分割。语音合成属于智能语音技术，不是计算机视觉的基本任务。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "2012年，辛顿团队利用深度神经网络模型在ImageNet大规模图像识别任务上取得重大突破，其直接效果是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 将错误率一举降低了10%",
   "B. 首次提出感知器模型",
   "C. 发明LISP语言",
   "D. 召开达特茅斯会议"
  ],
  "answer": "A",
  "analysis": "** 语料记载，2012年辛顿团队在ImageNet上将错误率降低10%，此后深度学习成为众多模式识别任务的首选方法。其余选项分属更早的人物或事件，与该突破无关。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "下列属于计算机视觉典型应用的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动驾驶中的障碍物检测和交通信号识别",
   "B. 安防监控中的人脸识别与行为分析",
   "C. 医学影像辅助诊断",
   "D. 依存句法分析"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C均为课程所列视觉应用。依存句法分析属于自然语言处理的基本任务，不是计算机视觉应用。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "卷积神经网络特别适合具有局部特征且这些特征在空间上具有不变性的数据，因而常用于识别图片中的人脸。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程在介绍卷积神经网络时指出，它是强大的局部特征提取器，适合处理具有空间不变性的任务，如识别图片中的人脸；无论目标出现在画面何处，类别并不改变。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "简述计算机视觉的定义，并说明图像分类、目标检测与定位、图像分割分别主要解决什么问题。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：准确定义（模拟人类视觉；识别、理解、解释图像或视频）；三项任务名称齐全；分别对应“是什么”“是什么、在哪里（边界框）”“像素级理解”。只列举名称未说明所解问题，给部分分。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "关于计算机视觉与相关领域的关系，下列说法最准确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 图像处理已经完成从图像到高层语义的转换，因而可以替代计算机视觉",
   "B. 模式识别只能处理图像，不能处理其他类型的数据",
   "C. 图像处理是计算机视觉的前提；模式识别可用于多种数据，更侧重由特征空间到类别空间的变换；计算机视觉更关注整幅图像或视频内容的理解",
   "D. 计算机视觉不使用机器学习，只依靠人工规则"
  ],
  "answer": "C",
  "analysis": "** 语料区分三者：图像处理改善质量、提取基本特征，为后续理解做准备；模式识别不限于图像，侧重特征到类别的变换；计算机视觉关注整幅图像或视频的理解，并广泛使用机器学习。A、B、D均与上述界定冲突。"
 },
 {
  "cat": "人工智能概述/1.4.4",
  "title": "计算机视觉",
  "q": "简述计算机视觉系统的典型处理流程，并说明它与图像处理、模式识别的联系与区别。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：流程需包含采集/预处理、分割、特征、模型训练与评估、分析解释等关键环节；能说明图像处理是前提、模式识别是组成部分；能指出图像处理与视觉在“质量/特征 vs 高层理解”、模式识别与视觉在“数据范围与任务侧重”上的区别。只写流程或只写区别，给部分分。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "人机交互是人工智能与人类用户之间进行（ ）的技术。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 芯片制造与云服务部署",
   "B. 信息交流和控制",
   "C. 仅图像像素级标注",
   "D. 仅股票价格回归预测"
  ],
  "answer": "B",
  "analysis": "** 课程将人机交互定义为人工智能与人类用户之间进行信息交流和控制的技术，并强调其桥梁作用。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "人机交互的核心在于实现人与机器之间（ ）的沟通。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅单向指令下达",
   "B. 有效、高效且直观",
   "C. 完全脱离感知的纯符号演算",
   "D. 仅硬件散热管理"
  ],
  "answer": "B",
  "analysis": "** 语料明确指出，人机交互的核心在于实现人与机器之间有效、高效且直观的沟通。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "人机交互扮演着连接人类用户与智能系统之间信息交流的桥梁角色。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程强调人机交互是连接人类用户与智能系统的信息交流桥梁。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "人机交互方式至今仍仅限于键盘、鼠标等物理输入设备。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 交互方式已从键盘、鼠标等物理输入，演变到语音识别与合成、手势识别、眼神追踪以及VR、AR等更自然、沉浸式的方式。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "下列属于课程所列、较传统键盘鼠标更为自然和沉浸式的人机交互方式的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 语音识别与语音合成",
   "B. 手势识别",
   "C. 眼神追踪",
   "D. 虚拟现实（VR）与增强现实（AR）"
  ],
  "answer": "ABCD",
  "analysis": "** 上述方式均被课程列为由传统物理输入演进而来的自然、沉浸式交互方式。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "在人机交互技术的发展过程中，最为典型的代表是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅高性能芯片流片",
   "B. 智能语音助手",
   "C. 仅数据中心制冷",
   "D. 仅专家系统知识库维护"
  ],
  "answer": "B",
  "analysis": "** 语料指出，智能语音助手是人机交互技术发展过程中最为典型的代表。芯片、数据中心属于产业基础层，专家系统属于发展历程中的知识型系统。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "用户通过自然语言与智能语音助手对话，课程明确列举的功能包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 查询天气",
   "B. 播放音乐",
   "C. 设定闹钟",
   "D. 控制智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 四项均为课程列举的智能语音助手典型功能，体现自然、便捷的互动。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "人机交互仅仅是一种技术，而不是一种理念。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程明确：人机交互不仅仅是一种技术，更是一种理念，旨在使智能系统更自然地融入日常生活与工作。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "简述人机交互的定义，并说明其核心是什么。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点为准确定义（信息交流与控制、桥梁角色），点出“技术+理念”，并写出“有效、高效且直观”的核心表述；只写定义或只写核心，给部分分。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "某用户对着智能音箱说“把客厅灯调暗一点”，系统完成语音识别与合成，并控制灯光。对该过程最恰当的理解是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 人机交互与智能语音、智能家居相结合，体现自然、便捷的互动",
   "B. 该过程只属于基础层芯片制造，与交互无关",
   "C. 必须放弃语音通道，只能使用键盘鼠标",
   "D. 人机交互已被排除在人工智能核心技术之外"
  ],
  "answer": "A",
  "analysis": "** 语音控制家居正是智能语音助手与智能家居结合的典型场景；人机交互是核心技术之一，且交互方式已不限于键盘鼠标。芯片制造属于产业基础层。"
 },
 {
  "cat": "人工智能概述/1.4.5",
  "title": "人机交互",
  "q": "结合人工智能其他核心技术，说明人机交互如何实现更自然的沟通，并指出应用中需注意的风险。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点包括：核心技术定位与交互性；至少两点支撑技术（自然语言处理/智能语音/计算机视觉或VR、AR等）；典型代表或应用；隐私与数据安全风险。只谈定义或只谈应用，给部分分。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "本节作为主要领域介绍的人工智能应用不包括下列哪一项？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 制造",
   "B. 农业",
   "C. 物流",
   "D. 安防"
  ],
  "answer": "B",
  "analysis": "** 语料明确介绍制造、家居、金融、零售、交通、安防、医疗、教育、物流九大领域，未将农业列为本节主要领域。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "智能家居实现家居环境智能化控制和管理，主要借助的设备是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 智能音箱、智能灯光、智能安防",
   "B. 工业机器人、智能制造系统",
   "C. 智能投顾、智能风控",
   "D. 智能仓储、智能配送"
  ],
  "answer": "A",
  "analysis": "** 家居领域的典型设备是智能音箱、智能灯光、智能安防；B属制造，C属金融，D属物流。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "自动驾驶技术实现车辆自主驾驶的主要方式是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 人脸识别、行为分析、智能监控",
   "B. 感知环境、规划路径、控制车辆",
   "C. 分子筛选、作用机制预测、基因检测",
   "D. 自动调整生产计划、优化资源配置"
  ],
  "answer": "B",
  "analysis": "** 交通领域中，自动驾驶通过感知环境、规划路径、控制车辆实现自主驾驶，从而减轻驾驶员负担、降低事故风险。A为安防，C接近医疗，D为制造。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "人工智能在金融领域的主要应用手段包括？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 智能风控",
   "B. 智能投顾",
   "C. 智能仓储",
   "D. 学习分析技术"
  ],
  "answer": "AB",
  "analysis": "** 金融领域通过智能风控、智能投顾提升服务智能化水平；智能仓储属于物流，学习分析技术属于教育。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "人工智能在医疗领域提高服务精准度和效率的手段包括？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 辅助诊断",
   "B. 辅助药物研发",
   "C. 个性化治疗",
   "D. 智能推荐"
  ],
  "answer": "ABC",
  "analysis": "** 医疗领域手段为辅助诊断、辅助药物研发、个性化治疗；智能推荐是零售领域的应用手段。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "下列关于各领域应用的对应关系，正确的有？",
  "type": "多选题",
  "diff": "难",
  "opts": [
   "A. 零售——智能推荐、库存管理、顾客行为分析",
   "B. 教育——智能教学系统、学习分析技术",
   "C. 物流——智能仓储、智能配送",
   "D. 安防——智能投顾、智能风控"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C均与语料一致。D错误：智能投顾与智能风控属于金融；安防领域的手段是人脸识别、行为分析和智能监控。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "在制造业中，机器人能够完成繁重、危险、精细化的生产任务，从而减轻工人劳动强度、提高生产安全性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料明确指出机器人承担此类任务，并强调其在减轻劳动强度和提高安全性方面的作用。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "零售领域的智能推荐系统能够根据顾客的购买历史和浏览行为推荐合适的商品，提高交易成功率。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是零售领域智能推荐的标准表述，目的是提升成交率与顾客体验。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "智能仓储系统只负责实时跟踪库存状态，并不规划货物存储位置和出入库路径。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 智能仓储不仅跟踪库存，还能自动规划货物存储位置和出入库路径，以提高仓库利用率和出库速度。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "简述人工智能在交通领域的两方面主要应用及其作用。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：须同时答出自动驾驶与智能交通管理；自动驾驶须点出感知、规划、控制；智能交通管理须点出监测流量/路况、优化信号、缓解拥堵。"
 },
 {
  "cat": "人工智能概述/1.5",
  "title": "人工智能的应用领域",
  "q": "应用层是人工智能技术与具体场景相融合、最终体现其价值的环节。请结合安防、医疗、教育三个领域，分别说明其典型技术手段及所解决的实际问题。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：先点明应用层含义；三个领域都要写出“手段+要解决的问题”，缺领域或把金融/物流手段张冠李戴应扣分；能对应到报警/辅助诊断/个性化学习等实际效果者给满分。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "随着人工智能技术的快速发展和广泛应用，其潜在风险可以从哪四个维度进行分析？（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 硬件、软件、数据和算法",
   "B. 技术、经济、社会和法律",
   "C. 基础层、技术层和应用层",
   "D. 制造、金融、医疗和交通"
  ],
  "answer": "B",
  "analysis": "** 语料明确指出，这些风险可以从技术、经济、社会和法律四个维度进行分析。C项是产业结构分层，D项是应用领域。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "下列属于人工智能技术风险的一组是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 就业冲击、市场垄断、经济不平等加剧",
   "B. 数据安全、算法偏见、技术失控",
   "C. 隐私侵犯、伦理道德挑战、社会信任危机",
   "D. 法律滞后、责任归属不明确、跨国法律问题"
  ],
  "answer": "B",
  "analysis": "** 技术风险包括数据安全、算法偏见和技术失控。A为经济风险，C为社会风险，D为法律风险。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "人工智能在带来巨大便利和效益的同时，也伴随着一系列潜在的风险和挑战。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料开篇即指出，技术快速发展与广泛应用在带来便利和效益的同时，也伴随潜在风险和挑战。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "人工智能会催生新的就业机会，因此不会对劳动力市场造成冲击。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语料指出广泛应用可能导致大量传统岗位消失；虽然同时会催生新就业机会，但转型过程中的阵痛和不确定性不容忽视。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "下列属于人工智能经济风险的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 就业冲击",
   "B. 市场垄断",
   "C. 经济不平等加剧",
   "D. 技术失控"
  ],
  "answer": "ABC",
  "analysis": "** 经济风险包括就业冲击、市场垄断和经济不平等加剧。技术失控属于技术风险。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "下列属于人工智能法律风险的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 法律滞后",
   "B. 责任归属不明确",
   "C. 跨国法律问题",
   "D. 算法偏见"
  ],
  "answer": "ABC",
  "analysis": "** 法律风险包括法律滞后、责任归属不明确和跨国法律问题。算法偏见属于技术风险。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "人工智能系统的决策和预测往往基于历史数据，若其中蕴含的偏见和歧视未被有效识别并纠正，可能导致不公平的决策结果。这一风险称为（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 数据安全",
   "B. 算法偏见",
   "C. 技术失控",
   "D. 市场垄断"
  ],
  "answer": "B",
  "analysis": "** 算法偏见强调历史数据中的偏见与歧视若未被纠正，会影响社会公正。数据安全侧重泄露、非法获取或滥用；技术失控侧重系统脱离人类控制；市场垄断属于经济风险。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "在人工智能系统应用中若出现损害或纠纷，责任通常可以明确且仅归属于开发者一方。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 语料指出责任归属往往难以明确，这涉及开发者、使用者、监管者等多方利益主体之间的复杂关系，并非仅归开发者。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "简述人工智能社会风险的三个方面及其含义。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点为三点名称齐全、含义与语料一致；漏点或把隐私侵犯写成技术风险中的数据安全、把“取代医生”仅写成就业冲击，应扣分。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "某自动驾驶汽车在紧急情况下需在不同保护对象之间作出选择，同时有人担心人工智能辅助诊断会取代医生。按本课程对风险的分类，这些问题主要属于（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 技术风险中的技术失控",
   "B. 经济风险中的就业冲击",
   "C. 社会风险中的伦理道德挑战",
   "D. 法律风险中的法律滞后"
  ],
  "answer": "C",
  "analysis": "** 语料将“自动驾驶汽车在面对紧急情况时如何决策”“人工智能系统在医疗领域的应用是否会取代医生”明确列为伦理道德挑战的例子，属于社会风险。B项虽看似与“取代医生”相关，但课程将其归入伦理问题而非就业冲击。"
 },
 {
  "cat": "人工智能概述/1.6",
  "title": "人工智能的风险",
  "q": "试从技术、经济、社会、法律四个维度概述人工智能的主要风险，并说明为何需要在实际应用中识别和管理这些风险。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个维度名称正确；每维能举出语料中的主要子类；能说明识别与管理的必要性。只罗列名称而无含义、或编造语料未提及的法规与专家观点，应扣分。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "程序设计语言是人与计算机交流的工具。下列哪一项属于高级程序设计语言？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器语言",
   "B. 汇编语言",
   "C. Python",
   "D. 操作码"
  ],
  "answer": "C",
  "analysis": "** 课程指出编程时通常使用机器语言、汇编语言和高级编程语言（如 C++、Java、Python）。Python 属于高级语言；操作码是指令的组成部分，不是一种语言。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "Python 是一种功能强大且易于使用的编程语言。下列哪一项是其主要特点？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 只能在 Windows 上运行",
   "B. 源代码就是 CPU 可直接执行的机器指令",
   "C. 简洁易读",
   "D. 不提供标准库和第三方库"
  ],
  "answer": "C",
  "analysis": "** 课程列出的主要特点包括简洁易读、跨平台支持、动态类型、多范式支持、丰富的标准库和第三方库、强大的社区支持。A、B、D 均与这些特点相反。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "根据课程内容，Python 的主要特点包括：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 简洁易读",
   "B. 跨平台支持",
   "C. 动态类型",
   "D. 只能使用某一种编程范式"
  ],
  "answer": "ABC",
  "analysis": "** Python 的主要特点为简洁易读、跨平台支持、动态类型、多范式支持、丰富的标准库和第三方库、强大的社区支持。D 错误，因为课程明确提到“多范式支持”，而不是只支持一种范式。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "Python 是一种解释型语言，代码在运行时会被逐行解释执行，而不是像 C 或 C++ 那样先被编译成机器语言。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程对运行原理的概括正是：Python 为解释型语言，运行时逐行解释执行，这与 C、C++ 等编译型语言不同。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "在计算机硬件层面，指令由 CPU 直接执行。每条指令通常包含哪两部分？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 变量名和函数名",
   "B. 操作码（Opcode）和操作数（Operand）",
   "C. 标准库和第三方库",
   "D. 交互方式和文件方式"
  ],
  "answer": "B",
  "analysis": "** 指令是计算机能够直接识别并执行的操作命令，通常包含操作码和操作数。CPU 从内存读取指令，解码操作码以确定操作，再根据操作数执行。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "Python 具有跨平台支持的特点，可以在不同操作系统上运行。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** “跨平台支持”是课程列出的 Python 主要特点之一。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "Python 程序的运行原理可以概括为下列哪一顺序？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 编写代码 → 直接生成机器指令 → CPU 执行 → 输出结果",
   "B. 编写代码 → 解释器将代码编译成字节码 → Python 虚拟机执行字节码 → 输出结果",
   "C. 编写代码 → 汇编器翻译为汇编语言 → 输出结果",
   "D. 编写代码 → 必须先全部编译为可执行文件，运行时不再解释"
  ],
  "answer": "B",
  "analysis": "** 课程原文将运行原理概括为：编写代码 → 解释器将代码编译成字节码 → Python 虚拟机执行字节码 → 输出结果。Python 源码不是 CPU 直接执行的机器指令。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "编程时通常使用下列哪些方式编写程序，这些程序最终会被编译或解释成计算机可以直接执行的指令序列？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 机器语言",
   "B. 汇编语言",
   "C. 高级编程语言（如 C++、Java、Python）",
   "D. 日常使用的自然语言（如汉语、英语）"
  ],
  "answer": "ABC",
  "analysis": "** 课程明确列出机器语言、汇编语言和高级编程语言。自然语言没有严格的指令语法，不能直接作为程序设计语言被编译或解释执行。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "Python 的“动态类型”是指：变量一旦赋值，其类型在整个程序运行期间都不能再改变。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 动态类型指类型在运行时确定，一般不必事先声明。它并不意味着类型“永久锁定”；把类型写死、运行期完全不能改变，更接近静态类型语言的常见印象，与“动态类型”这一特点不符。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "请简述 Python 的主要特点（至少写出四点）。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：能准确复述课程列出的特点，不把“只能面向对象”“必须先编译”等错误说法当作特点。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "为什么说 Python 比机器语言、汇编语言更易于使用？请结合程序设计语言的作用，写出课程中“计算两个数的和”的示例程序，并说明该程序运行后的输出。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①说明三种语言在可读性上的差异；②代码语法正确、与课程示例一致；③输出含空格，写成 `结果是：3` 不得满分；④点明高级语言仍需编译或解释。"
 },
 {
  "cat": "Python基础/2.1.1",
  "title": "Python简介",
  "q": "运行下列程序，输出结果是什么？ ```python # 计算两个数的和 a = 1 b = 2 result = a + b print(\"结果是：\", result) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `结果是：3`",
   "B. `结果是： 3`",
   "C. `3`",
   "D. 程序因注释无法运行而报错"
  ],
  "answer": "B",
  "analysis": "** `#` 开头的行为注释，解释器不执行。`result` 的值为 `1 + 2` 即 `3`。`print` 将多个参数以空格分隔后输出，因此“结果是：”与 `3` 之间有一个空格，得到 `结果是： 3`。A 漏了空格，C 丢掉了提示文字，D 误把注释当成语法错误。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "本课程推荐的开源数据科学平台 Anaconda，其主要定位是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 一种 Python 基本数据类型",
   "B. 广泛使用的开源数据科学平台，集成众多工具和库",
   "C. 只能编写机器语言的汇编器",
   "D. 计算机的中央处理器（CPU）"
  ],
  "answer": "B",
  "analysis": "** 课程指出 Anaconda 是广泛使用的开源数据科学平台，集成众多工具和库，方便科学计算、数据可视化和深度学习。它不是数据类型，也不是 CPU 或汇编器。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "Jupyter Notebook 是一种基于什么的交互式开发工具？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅命令行窗口",
   "B. 网页",
   "C. 仅汇编语言",
   "D. 仅机器语言"
  ],
  "answer": "B",
  "analysis": "** 课程明确说明 Jupyter Notebook 是基于网页的交互式开发工具，支持多种编程语言，尤其以 Python 为主。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "根据课程内容，Anaconda 的主要能力包括：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 提供包管理器 Conda，用于安装、更新、卸载和管理库与依赖项",
   "B. 内置 Spyder 和 Jupyter Notebook",
   "C. 方便进行科学计算、数据可视化和深度学习等任务",
   "D. 只能用来编写机器语言程序"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均直接来自课程对 Anaconda 的介绍。D 错误，Anaconda 面向 Python 数据科学与开发，不是机器语言编程环境。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "在 Anaconda Prompt 中输入 `conda --version` 或 `conda -v`，如果显示版本号，则表示 conda 已经正确安装。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程给出的验证方法正是在 Anaconda Prompt 中执行上述命令，显示 Anaconda/conda 版本号即表示安装成功。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "在 Anaconda Prompt 中要安装一个包，应使用下列哪条命令？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `conda list`",
   "B. `conda install [package-name]`",
   "C. `conda remove [package-name]`",
   "D. `python`"
  ],
  "answer": "B",
  "analysis": "** 课程给出的包管理命令为：`conda install [package-name]` 安装，`conda list` 查看已安装包，`conda remove [package-name]` 卸载。`python` 用于进入解释器，不是安装包命令。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "启动 Jupyter Notebook 后会出现服务器终端和浏览器 Web 主页两个界面；使用期间可以随时关闭服务器终端，网页工作界面不受影响。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调启动后一个是服务器终端，显示服务器信息，使用期间不能关闭；另一个才是浏览器中的用户工作界面。关闭服务器终端会导致网页无法继续工作。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "Spyder 的用户工作区主要包括：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅浏览器 Web 主页",
   "B. 程序编辑区和 IPython 控制台",
   "C. 仅 Anaconda Prompt",
   "D. 仅服务器终端"
  ],
  "answer": "B",
  "analysis": "** 课程指出 Spyder 的用户工作区主要包括程序编辑区和 IPython 控制台。浏览器 Web 主页和服务器终端属于 Jupyter Notebook 的界面。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "本课程在 Anaconda 中重点介绍的三个工具是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. Anaconda Prompt",
   "B. Spyder",
   "C. Jupyter Notebook",
   "D. Photoshop"
  ],
  "answer": "ABC",
  "analysis": "** 课程将 Anaconda Prompt、Spyder、Jupyter Notebook 列为 Anaconda 中的三个常用工具并分别演示。Photoshop 是图像处理应用软件，不属于本小节编程环境。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "安装 Anaconda 时，如果不勾选“自动将 Anaconda3 添加到我的 PATH 环境变量”，则需要手动配置环境变量。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程在安装注意事项中明确：关于将该选项加入 PATH，如果不勾选，则需要手动配置环境变量。未加入 PATH 时，普通 cmd 中可能无法直接使用 `python`。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "请写出验证 Anaconda 是否安装成功的两种方法。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：两种方法都要写到（conda 版本检查、python 进入交互提示符）；命令与课程一致；漏写 `>>>` 或把 `conda -v` 写成无关命令应酌情扣分。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "比较 Anaconda Prompt、Spyder、Jupyter Notebook 的用途和启动方式，并说明 Jupyter Notebook 启动后为什么不能关闭服务器终端。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个工具的用途与启动方式齐全；点明 Jupyter 的双界面；正确解释服务器终端不可关闭。只罗列名称未说明用途不得满分。"
 },
 {
  "cat": "Python基础/2.1.2",
  "title": "Python编程环境",
  "q": "在 Spyder 的 IPython 控制台或 `.py` 文件中运行下列程序，输出结果是什么？ ```python a = 20 b = 10 print(a + b) print(a - b) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `30`",
   "B. `10`",
   "C. ```",
   "D. 程序无法运行，因为交互方式不允许使用 `print`"
  ],
  "answer": "C",
  "analysis": "** 该程序语法正确，可直接运行。`a + b` 为 30，`a - b` 为 10；两条 `print` 默认各占一行，因此先输出 `30` 再输出 `10`。课程在 Spyder 交互方式中也使用了 `a = 20`、`b = 10` 这一组数据。A、B 只给出了其中一次运算；D 错误，交互方式和文件方式都可以使用 `print`。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "基本数据类型用于存储单个值。下列哪一项属于 Python 的基本数据类型？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 列表",
   "B. 字典",
   "C. 布尔值",
   "D. 集合"
  ],
  "answer": "C",
  "analysis": "** 课程将基本数据类型概括为整型、浮点型、复数、布尔值和字符串。列表、字典、集合属于组合数据类型，用于把若干个值组合成一个数据项。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "Python 中布尔值仅有两个值，分别用什么表示？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. true 和 false",
   "B. True 和 False",
   "C. 1 和 0",
   "D. YES 和 NO"
  ],
  "answer": "B",
  "analysis": "** 课程明确：布尔值仅有两个值，真和假，用 `True` 和 `False` 表示。大小写必须与此一致，写成 `true`/`false` 不是布尔字面量。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "根据课程内容，下列关于 Python 变量命名规则的说法正确的是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 变量名只能包含字母、数字和下划线",
   "B. 变量名不能以数字开头",
   "C. 变量名区分大小写",
   "D. 变量名可以使用 Python 的保留关键字"
  ],
  "answer": "ABC",
  "analysis": "** 课程列出的规则是：只能含字母、数字和下划线；不能以数字开头；区分大小写；不能使用保留关键字。D 与最后一条相反。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "在 Python 中，不但可以改变变量的值，还可以改变它的类型。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程实例先执行 `a = 4`，再执行 `a = [2, 5, 7]`，说明同一变量名既可以改值，也可以改成另一种类型。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "执行 `\"Hello, world!\".find(\"world\")` 和 `\"Hello, world!\".find(\"你好\")`，返回值分别是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 7 和 0",
   "B. 7 和 -1",
   "C. 6 和 None",
   "D. True 和 False"
  ],
  "answer": "B",
  "analysis": "** `find()` 返回子字符串首次出现位置的索引；`\"world\"` 从下标 7 开始。子串不存在时返回 `-1`，而不是 `0`、`None` 或布尔值。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "在 Python 中，字符串是不可变的：一旦创建了字符串对象，其内容就无法被修改。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程强调字符串不可变，没有增加或删除元素的方法；任何试图修改内容的操作都会生成新的字符串对象。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "下列哪一种写法可以避免 `\\t` 被识别成转义字符，从而表示合法的 Windows 路径？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `'D:\\test\\exer'`",
   "B. `r'D:\\test\\exer'`",
   "C. `'D:/t/exer'`（不使用盘符后的反斜杠）",
   "D. `format('D:\\test\\exer')`"
  ],
  "answer": "B",
  "analysis": "** 课程指出：在字符串前面加上 `r` 或 `R`，表示其中字符都不转义。`r'D:\\test\\exer'` 因此可表示合法路径。普通字符串中 `\\t` 会被当成制表符。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "关于字符串的界定符号，下列说法正确的是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 一对单引号可以生成单行字符串，如 `'广东'`",
   "B. 一对双引号可以生成单行字符串，如 `\"广州\"`",
   "C. 一对三单引号或三双引号可以生成多行字符串",
   "D. 三引号只能用来写注释，不能表示字符串"
  ],
  "answer": "ABC",
  "analysis": "** 课程说明界定符号可以是单引号、双引号、三单引号及三双引号；单/双引号生成单行字符串，三引号可生成多行字符串。三引号也可表示注释，但并非“只能”作注释。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "执行 `list = [3, 4, 5]` 之后，再执行 `list('abc')` 仍然能得到 `['a', 'b', 'c']`。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 第一个语句把 `list` 定义成变量，它不再是内置函数。再写 `list('abc')` 会报 `TypeError: 'list' object is not callable`。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "请写出 Python 变量的命名规则，并说明关键字 `del` 的作用。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四条强制规则写全；能指出覆盖内置名的后果；能说明 `del` 删除后不可再访问。漏写“不能用关键字”或把 `del` 说成只删列表，酌情扣分。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "请编写一段可直接运行的 Python 程序，完成以下操作并打印结果：（1）用 `format()` 生成字符串「身高170厘米，年龄28岁」，要求使用位置参数，且年龄对应参数序号 0、身高对应参数序号 1；（2）对 `'93,85,90,88'` 按逗号分割；（3）用 `'+'` 把 `['语文', '数学', '英语']` 连接成一个字符串。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①代码语法正确、可直接运行；②`format` 必须用 `{1}` 对应 170、`{0}` 对应 28，写成按左右顺序的 `\"身高{}厘米，年龄{}岁\".format(170, 28)` 不得满分；③`split(',')` 得到字符串列表而非整数列表；④`join` 是用分隔符去调用，写成 `['语文', '数学', '英语'].join('+')` 不得分。"
 },
 {
  "cat": "Python基础/2.1.3",
  "title": "Python基本数据类型",
  "q": "运行下列程序，输出结果是什么？ ```python print(\"Pi保留3位小数是: {:.3f}\".format(3.141592653)) print(\"Hello, world!\".find(\"world\")) print(\" Hello, World! \".strip()) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. ```",
   "B. ```",
   "C. ```",
   "D. ```"
  ],
  "answer": "B",
  "analysis": "** `{:.3f}` 将圆周率保留三位小数并四舍五入，得到 `3.142` 而不是截断后的 `3.141`。`\"world\"` 在 `\"Hello, world!\"` 中首次出现的索引是 7。`strip()` 删除的是开头和结尾的空白，中间空格保留，结果为 `'Hello, World!'`，行首不会留下空格。D 误把 `find` 当成找不到。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "组合数据类型将若干个值组合成一个单一的数据项。根据课程内容，组合数据类型主要包括：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 整型、浮点型、复数、布尔值",
   "B. 列表、元组、字典、集合",
   "C. 字符串、字节、文件、模块",
   "D. 操作码、操作数、指令、程序"
  ],
  "answer": "B",
  "analysis": "** 课程明确指出组合数据类型主要有列表、元组、字典、集合。A 是基本数据类型，C、D 不属于本小节所讲的组合数据类型。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "下列关于列表的说法正确的是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 列表无序且不可变",
   "B. 列表有序且可变，元素可以是任意类型",
   "C. 列表只能存放整数",
   "D. 创建列表只能使用 `list()`，不能使用 `[]`"
  ],
  "answer": "B",
  "analysis": "** 列表是有序且可变的集合，元素可为数字、字符串甚至其他列表。创建列表有 `[]` 和 `list()` 两种方法。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "元组是一种有序且不可变的集合，一旦创建，元组的内容就无法更改。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程指出元组有序、不可变，元素可为任意类型，但创建后不能增删元素或改变元素值，因而又称轻量级列表。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "执行 `{2, 3, 3, 4}` 得到的集合仍是 `{2, 3, 3, 4}`，因为花括号会保留重复元素。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 集合自动去除重复元素。`{2, 3, 3, 4}` 的结果是 `{2, 3, 4}`。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "下列关于列表的说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可用方括号 `[]` 定义，元素之间用逗号分隔",
   "B. `list()` 可由一个可迭代对象构造列表，如 `list('abc')` 得到 `['a', 'b', 'c']`",
   "C. 列表可以嵌套，如 `[[4, 5], [6, 7]]`",
   "D. 列表一旦创建就不能增加或删除元素"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均与课程示例一致。D 描述的是元组的不可变特性，列表是可变的，可用 `append`、`remove` 等方法增删元素。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "运行下列程序，输出结果是什么？ ```python myList = [10, 20, 30, 40, 50] print(myList[1:4]) print(myList[:3]) print(myList[2:]) print(myList[::2]) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `[20, 30, 40]` / `[10, 20, 30]` / `[30, 40, 50]` / `[10, 30, 50]`",
   "B. `[10, 20, 30]` / `[10, 20, 30]` / `[20, 30, 40, 50]` / `[20, 40]`",
   "C. `[20, 30, 40, 50]` / `[10, 20, 30]` / `[30, 40, 50]` / `[10, 20, 30, 40, 50]`",
   "D. `[20, 30]` / `[10, 20, 30]` / `[30, 40]` / `[10, 30, 50]`"
  ],
  "answer": "A",
  "analysis": "** 切片含 `start`、不含 `stop`。`[1:4]` 取下标 1、2、3；`[:3]` 从开头取到下标 2；`[2:]` 从下标 2 取到末尾；`[::2]` 步长为 2，得到 `[10, 30, 50]`。切片不修改原列表。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "运行下列程序，输出结果是什么？ ```python a = [1, 2, 3] a.append(4) a.extend([5, 6]) a.insert(1, 0) print(a) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `[1, 2, 3, 4, [5, 6], 0]`",
   "B. `[1, 0, 2, 3, 4, 5, 6]`",
   "C. `[0, 1, 2, 3, 4, 5, 6]`",
   "D. `[1, 2, 3, 4, 5, 6, 0]`"
  ],
  "answer": "B",
  "analysis": "** `append(4)` 在末尾添加一个元素，得到 `[1, 2, 3, 4]`；`extend([5, 6])` 把 5、6 拆开追加，得到 `[1, 2, 3, 4, 5, 6]`；`insert(1, 0)` 在索引 1 处插入 0，原有元素后移，得到 `[1, 0, 2, 3, 4, 5, 6]`。若误把 `extend` 当成 `append`，会把整个列表当作一个元素，从而错选 A。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "对列表 `a = [1, 2, 3, 2, 4]` 执行 `a.remove(2)` 后，列表中两个 `2` 都会被删除。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `remove()` 只删除第一次出现的指定元素。执行后 `a` 变为 `[1, 3, 2, 4]`，后面那个 `2` 仍然保留。若元素不存在，会引发 `ValueError`。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "字典的键必须是不可变类型，且每个键必须唯一。下列可以作为字典键的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 字符串，如 `\"姓名\"`",
   "B. 整数，如 `25`",
   "C. 元组，如 `(1, 2)`",
   "D. 列表，如 `[1, 2]`"
  ],
  "answer": "ABC",
  "analysis": "** 课程指出字典的键必须是不可变类型，例如字符串、整数或元组。列表是可变对象，不能作为字典的键。值则可以是任意类型。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "请从“是否有序、是否可变、如何创建、典型用途”四个方面，比较列表、元组、字典和集合。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四种类型都写到；有序/可变判断正确；创建方式与课程一致；指出单元素元组的逗号、空 `{}` 是字典、集合用于去重中的至少两点。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "运行下列程序，输出结果是什么？ ```python a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] squares = [x**2 for x in range(10)] evens = [x for x in range(10) if x % 2 == 0] print(a[1][2]) print(squares) print(evens) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `6` / `[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]` / `[0, 2, 4, 6, 8]`",
   "B. `5` / `[1, 4, 9, 16, 25, 36, 49, 64, 81]` / `[2, 4, 6, 8]`",
   "C. `6` / `[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]` / `[1, 3, 5, 7, 9]`",
   "D. `[4, 5, 6]` / `[0, 1, 4, 9]` / `[0, 2, 4, 6, 8, 10]`"
  ],
  "answer": "A",
  "analysis": "** 二维列表用 `a[行索引][列索引]` 访问，`a[1][2]` 是第 2 行第 3 列的 `6`。`range(10)` 为 0 到 9，平方后含 `0` 和 `81`、不含 `100`。`x % 2 == 0` 筛出偶数，含 `0` 不含 `10`。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "要用字典统计字符串中每个字母出现的次数（不区分大小写）。请写出完整可运行的程序，统计 `\"Banana\"` 的结果，并说明为什么不能写成 `dct[c] = dct[c] + 1`。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①使用 `s.lower()`；②用 `get(c, 0)` 累加；③代码可直接运行；④正确解释 `KeyError`；⑤结果中三个字母的次数正确。漏写 `lower()` 或未说明 `get` 的作用应扣分。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "运行下列程序，关于各对象类型的判断哪一项正确？ ```python x = (1213,) y = (1213) z = {} w = set() print(type(x), type(y), type(z), type(w)) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `x` 与 `y` 都是元组，`z` 与 `w` 都是集合",
   "B. `x` 是元组，`y` 是整数，`z` 是字典，`w` 是集合",
   "C. `x` 是元组，`y` 是元组，`z` 是字典，`w` 是字典",
   "D. `x` 是列表，`y` 是整数，`z` 是集合，`w` 是集合"
  ],
  "answer": "B",
  "analysis": "** 单元素元组必须带逗号，`(1213,)` 才是元组，`(1213)` 只是整数 1213。空 `{}` 创建的是空字典，空集合必须用 `set()`。这是组合数据类型里最容易混淆的两处写法。"
 },
 {
  "cat": "Python基础/2.1.4",
  "title": "Python组合数据类型",
  "q": "下列操作会直接修改原列表对象的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `a.append(4)`",
   "B. `a.extend([4, 5])`",
   "C. `a.sort()`",
   "D. `b = a[1:4]`"
  ],
  "answer": "ABC",
  "analysis": "** `append`、`extend`、`sort` 都在原列表上操作：`append`/`extend` 增加元素，`sort()` 原地重排。切片返回一个新序列，不修改原始列表，因此 D 不正确。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "下列关于 Python 内置函数的说法，正确的是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 使用前必须先 `import builtins`",
   "B. 解释器预先提供，无需导入模块即可直接调用",
   "C. 只能用于数学运算，不能做类型转换",
   "D. 全部都是用户自定义函数"
  ],
  "answer": "B",
  "analysis": "** 内置函数由解释器预先提供，可直接调用。A 不是本课程要求；C 忽略了类型转换、序列操作、输入输出等类别；D 把内置函数与自定义函数混淆。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "执行 `int(3.45)` 的结果是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 3.45",
   "B. 3",
   "C. 4",
   "D. `'3.45'`"
  ],
  "answer": "B",
  "analysis": "** `int()` 可以把实数转换成整数，转换时截去小数部分，结果为 3，不是四舍五入。课程明确指出：将实数转换为整数会造成信息丢失。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "根据课程内容，下列哪些属于数学运算类内置函数？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `abs()`",
   "B. `round()`",
   "C. `max()` 和 `min()`",
   "D. `input()`"
  ],
  "answer": "ABC",
  "analysis": "** 课程将 `abs()`（取绝对值）、`round()`（四舍五入）、`max()` 和 `min()`（求最大值和最小值）归为数学运算函数。`input()` 属于输入输出函数。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "`input()` 无论用户输入什么内容，返回值都是字符串；若需要整数或实数，要用 `int()` 或 `float()` 再转换。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程指出：程序运行时 `input()` 会暂停并等待用户输入，按下回车后以字符串形式返回。因此读取数值时必须再转换。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "`str([2, 5, 7])` 的结果是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `[2, 5, 7]`（列表对象，不是字符串）",
   "B. `'2, 5, 7'`",
   "C. `'[2, 5, 7]'`",
   "D. `'257'`"
  ],
  "answer": "C",
  "analysis": "** `str()` 把组合数据类型等对象转换成字符串，得到的是带方括号和逗号空格的文本 `'[2, 5, 7]'`，类型是字符串，不是原来的列表。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "`int()` 将实数转换为整数时会造成信息丢失。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程原文指出：`int(3.45)` 得到整数 3，将实数转换为整数会造成信息丢失。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "运行下列程序，输出结果是什么？ ```python print(len('Thank you!')) print(sum([3, 4, 5])) print(max([2.1, 5.4, 3.8])) print(round(3.25632, 2)) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `9` / `12` / `5.4` / `3.25`",
   "B. `10` / `12` / `5.4` / `3.26`",
   "C. `10` / `12` / `3.8` / `3.26`",
   "D. `11` / `345` / `2.1` / `3.3`"
  ],
  "answer": "B",
  "analysis": "** `'Thank you!'` 含空格和感叹号，共 10 个字符；`sum([3, 4, 5])` 为 12；`max([2.1, 5.4, 3.8])` 为 5.4；`round(3.25632, 2)` 四舍五入到 2 位小数得 3.26。A 漏计空格且 round 错；C 把 max 当成 min；D 多项均错。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "关于 `print()` 的说法，正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可以接受多个参数，并把它们转换成字符串后输出",
   "B. 默认以空格符分隔输出项，以换行结束",
   "C. 可用 `sep` 指定分隔符，用 `end` 指定结束符",
   "D. 参数只能是字符串，不能是数字或列表"
  ],
  "answer": "ABC",
  "analysis": "** 课程指出 `print()` 可将任意数量、不同数据类型（字符串、数字、列表等）的对象输出；默认空格分隔、换行结束；`sep` 与 `end` 分别控制分隔符和结束符。D 与课程相反。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "Python 强制规定变量名不能使用内置函数名；因此 `list = [3, 4, 5]` 这种写法在语法上是不允许的。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程说明：变量命名没有强制不能使用内置函数，但是此后不能再使用该内置函数。`list = [3, 4, 5]` 语法合法，只是随后 `list('abc')` 会报 `TypeError: 'list' object is not callable`。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "简述 `range()` 的语法格式及三个参数的含义，并写出 `list(range(5))` 与 `list(range(0, 10, 2))` 的结果。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①写出三参数语法；②说明 start 默认 0、stop 必填且不含该值、step 默认 1；③两个列表结果正确，尤其不能把 5 或 10 写进结果。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "请编写一个可直接运行的 Python 程序，至少使用三个内置函数，完成：把字符串 `\"123\"` 转为整数、把 `3.25632` 四舍五入到 2 位小数、求列表 `[3, 4, 5]` 的长度与求和，并打印这些结果。同时说明 `input()` 若要得到整数应如何写。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①代码语法正确、可直接运行；②至少三个内置函数且结果与课程示例一致；③能说明 `input()` 需经 `int()` / `float()` 转换。"
 },
 {
  "cat": "Python基础/2.1.5",
  "title": "内置函数",
  "q": "运行下列程序，输出结果是什么？ ```python print(\"Python\", \"is\", \"fun!\", sep='---', end=' ') print('I love it!') ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `Python is fun! I love it!`",
   "B. `Python---is---fun! I love it!`",
   "C. `Python---is---fun!`（换行）`I love it!`",
   "D. `Python---is---fun!I love it!`"
  ],
  "answer": "B",
  "analysis": "** 第一条 `print` 用 `sep='---'` 把三个单词连成 `Python---is---fun!`，又用 `end=' '` 使结尾为空格而不是换行；第二条 `print` 接着在同一行输出 `I love it!`。因此结果是 `Python---is---fun! I love it!`。A 未使用自定义分隔符；C 误以为仍换行；D 漏掉了 `end=' '` 产生的空格。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "Python 提供了丰富的运算符类型。下列哪一项属于课程所列的五类运算符之一？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 循环运算符",
   "B. 成员运算符",
   "C. 缩进运算符",
   "D. 注释运算符"
  ],
  "answer": "B",
  "analysis": "** 课程明确列出五类：算术运算符、关系运算符、逻辑运算符、赋值运算符和成员运算符。循环、缩进、注释都不是运算符类型。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "使用关系运算符（也称比较运算符）比较两个值时，运算结果的类型是什么？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 整数",
   "B. 字符串",
   "C. 布尔值 True 或 False",
   "D. 列表"
  ],
  "answer": "C",
  "analysis": "** 关系运算符用于判断相等或大小关系，结果为布尔值 True 或 False。例如 `a = 87` 时，`a >= 60` 的结果是 True。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "当只有一个运算对象时，`-` 是求该对象的相反数；当有两个运算对象时，`-` 是减法运算。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是课程对算术运算符中减号的说明：一元减号求相反数，二元减号做减法。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "复合赋值运算符中，`a += b` 相当于 `a = a + b`。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程给出的运算规则就是：`a += b` 相当于 `a = a + b`，即先做加法再把结果写回 `a`。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "`//` 和 `%` 常用于整数之间。运行下列程序，输出依次是什么？ ```python print(17 // 5) print(17 % 5) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `3.4` 和 `2`",
   "B. `3` 和 `2`",
   "C. `2` 和 `3`",
   "D. `3` 和 `3.4`"
  ],
  "answer": "B",
  "analysis": "** `//` 计算两整数相除的商，`%` 计算余数。17 = 5×3 + 2，故商为 3、余数为 2。A、D 把真除法的小数结果混进来了；C 把商和余数写反了。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "算术运算符用于执行基本数学运算。下列属于算术运算的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 加、减、乘、除",
   "B. 取整除法、求余、幂运算",
   "C. 判断某个值是否在列表中",
   "D. 把右侧表达式的结果赋给左侧变量"
  ],
  "answer": "AB",
  "analysis": "** 课程指出算术运算符包括加、减、乘、除、取整除法、求余、幂运算。C 是成员运算符 `in` 的作用，D 是赋值运算符 `=` 的作用。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "运行下列程序后，哪些表达式的值为 True？ ```python font = {'字体': '宋', '字号': 14, '颜色': '黑色'} print('abc' in 'abc def') print(3 in [3, 6, 9]) print('字体' in font) print('宋' in font) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `'abc' in 'abc def'`",
   "B. `3 in [3, 6, 9]`",
   "C. `'字体' in font`",
   "D. `'宋' in font`"
  ],
  "answer": "ABC",
  "analysis": "** `'abc'` 是 `'abc def'` 的子串，`3` 在列表 `[3, 6, 9]` 中，故 A、B 为 True。对字典，`in` 只测键、不测值：`'字体'` 是键，为 True；`'宋'` 是值，为 False。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "对字典使用成员运算符 `in` 时，既可以测试某个键是否在字典中，也可以测试某个值是否在字典中。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调：`in` 可以测试一个键是否在字典中，而不能测试一个值是否在字典中。例如 `'字体' in font` 为 True，`'宋' in font` 为 False。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "设 `a = 87`。下列哪一种写法不能正确表达“变量 a 的值为 60～100”？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `(a>=60) and (a<=100)`",
   "B. `60<=a<=100`",
   "C. `(a>=60) or (a<=100)`",
   "D. `(a >= 60) and (a <= 100)`"
  ],
  "answer": "C",
  "analysis": "** 课程用 `and` 连接两个关系运算，也可以写成链式比较 `60<=a<=100`。`or` 是“或”，`a>=60` 或 `a<=100` 对绝大多数实数都为真，并不能表示“同时落在 60～100”。A 与 D 只是空格不同，语义相同。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "请写出 Python 的五类运算符，并各用一句话说明其作用。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：五类名称齐全；作用与课程一致。漏写“对字典只测键”或把成员运算写成循环，酌情扣分。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "什么是表达式？课程给出的运算符优先级从高到低大致是怎样的？为什么建议使用括号？请写出判断“a 在 100～200 且为偶数”的带括号表达式，并用一段可直接运行的程序验证 `a = 150` 时结果为 True。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①给出表达式定义；②优先级顺序与课程一致；③说明括号用于明确顺序和提高可读性；④表达式与课程示例一致且代码可运行；⑤输出为 True。"
 },
 {
  "cat": "Python基础/2.1.6",
  "title": "运算符与表达式",
  "q": "运行下列程序，输出结果是什么？ ```python a = 5 b = a + 3 a += 3 font = {'字体': '宋', '字号': 14, '颜色': '黑色'} print(a) print(b) print('字体' in font) print('宋' in font) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `5`、`8`、`True`、`True`",
   "B. `8`、`8`、`True`、`False`",
   "C. `8`、`8`、`False`、`True`",
   "D. `5`、`8`、`True`、`False`"
  ],
  "answer": "B",
  "analysis": "** `b = a + 3` 只把和 8 赋给 `b`，此时 `a` 仍为 5；随后 `a += 3` 把 `a` 改为 8。对字典 `in` 只测键：`'字体'` 是键，为 True；`'宋'` 是值，为 False。因此四行输出依次为 8、8、True、False。A 忽略了复合赋值会改写 `a`；C 把键和值测反了；D 漏掉了 `a += 3`。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "双分支条件语句的一般形式中，条件1和 `else` 后面必不可少的是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 分号",
   "B. 逗号",
   "C. 冒号",
   "D. 括号"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，条件1和 `else` 后面的冒号必不可少。Python 用冒号引出代码块，而不是用分号或括号。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "双分支条件语句的执行过程是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 先执行代码块1，再根据条件决定是否执行代码块2",
   "B. 先计算条件1，若为真则执行代码块1，否则执行代码块2",
   "C. 条件1为真时同时执行代码块1和代码块2",
   "D. 必须把两个代码块都执行一遍"
  ],
  "answer": "B",
  "analysis": "** 要素是条件1、代码块1和代码块2。执行过程为：先计算条件1，若为真则执行代码块1，否则执行代码块2，二者只走其中一条。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "条件语句必须带有 `else` 分支，否则会出现语法错误。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 特殊情况下可以没有 `else`，形成单分支条件语句，只在条件为真时执行代码块。例如求绝对值时，仅当 `a < 0` 才改写 `a`。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "在嵌套的分支结构中，保持代码缩进整齐是关键；不正确的缩进会导致语法错误或逻辑错误。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程强调 Python 依赖缩进来区分代码块，嵌套时缩进不齐既可能无法运行，也可能运行结果与预期不符。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "根据课程内容，条件语句可以写成下列哪些结构？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 双分支（`if-else`）",
   "B. 单分支（只有 `if`）",
   "C. 多分支（`if-elif-else`）",
   "D. 嵌套分支（分支内部再写条件语句）"
  ],
  "answer": "ABCD",
  "analysis": "** 课程依次介绍了一般双分支、无 `else` 的单分支、`elif` 多分支，以及嵌套分支，四项都属于条件语句的合法结构。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "判断输入成绩是否及格，下列写法与课程示例一致的是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `if a > 60:`",
   "B. `if a >= 60:`",
   "C. `if a > 59.5:`",
   "D. `if a == 60:`"
  ],
  "answer": "B",
  "analysis": "** 课程示例为 `if a >= 60:`，60 分算及格。A 把刚好 60 分判为不及格；C、D 不是课程给出的判定条件。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "下列条件写法与课程实例一致的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `'A' <= a <= 'Z'` 判断是否为大写英文字母",
   "B. `x.find('中国') >= 0` 判断字符串是否包含“中国”",
   "C. `x in course` 判断所选课程是否在合法列表中",
   "D. `x.find('中国') == -1` 表示字符串包含“中国”"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均来自条件语句实例。`find()` 找到子串时返回下标（大于等于 0），找不到时返回 `-1`，因此“包含中国”应写 `>= 0`，D 把含义写反了。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "成年人 BMI 分类程序中，`bmi = 24` 会输出“正常”。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 程序按顺序判断：`< 18.5` 偏瘦，`< 24` 正常，`< 28` 超重，否则肥胖。24 不满足 `< 24`，但满足 `< 28`，应输出“超重”。多分支是“前面为真才进入，否则继续往后”。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "运行下列程序，输出结果是什么？ ```python grades = [85, 90, 38, 52, 88, 41, 63] average = sum(grades) / len(grades) if average >= 60: print(\"平均成绩及格。\") else: print(\"平均成绩不及格。\") ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `平均成绩及格。`",
   "B. `平均成绩不及格。`",
   "C. `65`",
   "D. 程序报错，因为列表中有不及格分数"
  ],
  "answer": "A",
  "analysis": "** 这是课程例2-1。成绩之和为 457，人数为 7，平均分约为 65.29，满足 `average >= 60`，输出“平均成绩及格。”。列表里存在不及格分数不影响“平均分是否及格”的判断。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "运行下列程序，输出结果是什么？ ```python year = 2000 month = 2 if month == 1 or month == 3 or month == 5 or month == 7 or month == 8 or month == 10 or month == 12: print(\"{} 月有 31 天\".format(month)) elif month == 4 or month == 6 or month == 9 or month == 11: print(\"{} 月有 30 天\".format(month)) elif month == 2: if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): print(\"{} 月有 29 天 (闰年)\".format(month)) else: print(\"{} 月有 28 天\".format(month)) else: print(\"输入的月份不合法\") ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `2 月有 28 天`",
   "B. `2 月有 29 天 (闰年)`",
   "C. `2 月有 31 天`",
   "D. `输入的月份不合法`"
  ],
  "answer": "B",
  "analysis": "** 对应课程例2-3 的嵌套结构。`month == 2` 进入闰年判断。2000 能被 400 整除，满足 `(year % 400 == 0)`，是闰年，2 月有 29 天。若误以为“能被 100 整除就不是闰年”而忽略 400 的例外，会错选 A。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "什么是单分支条件语句？请结合“输入一个实数，计算并输出它的绝对值”说明何时需要计算、何时不需要，并写出可直接运行的示例程序（用变量赋值代替键盘输入）。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①说明可以没有 `else`；②分清 `a >= 0` 不计算、`a < 0` 取相反数；③代码语法正确，`print` 不缩进到 `if` 内部；④能说明输出结果。"
 },
 {
  "cat": "Python基础/2.2.1",
  "title": "条件语句",
  "q": "编写程序：给定月份数字，输出该月所在季节。规则为 3–5 月春季、6–8 月夏季、9–11 月秋季、12 月到 2 月冬季；其他数字提示不合法。请写出可直接运行的完整程序（可用变量赋值代替 `input`），并说明 `elif` 按什么顺序判断。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①季节区间与课程例2-2 一致；②冬季写成 12 月或 1–2 月，不能只写 `12 <= month <= 2`（该链式比较恒为假）；③`else` 处理非法月份；④代码可运行；⑤说明 `elif` 按顺序、短路。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "Python 中可以用下列哪两种语句实现循环结构？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `if` 和 `else`",
   "B. `for` 和 `while`",
   "C. `break` 和 `continue`",
   "D. `try` 和 `except`"
  ],
  "answer": "B",
  "analysis": "** 课程明确指出：Python 中可以用 `for` 和 `while` 实现循环结构，称为循环语句。`break`/`continue` 是循环内部的控制语句，不是实现循环结构的语句。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "关于 `for` 循环，下列说法正确的是：",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 通常用于迭代次数未知的情况",
   "B. 必须手动管理循环计数器，否则会形成无限循环",
   "C. 通常用于已知迭代次数的情况，例如遍历可迭代对象，无须手动管理循环计数器",
   "D. 不能用来遍历字符串"
  ],
  "answer": "C",
  "analysis": "** `for` 循环依次访问可迭代对象中的每个元素，无须手动管理循环计数器。A、B 描述的是 `while` 循环的特点；字符串是可迭代对象，可以用 `for` 遍历。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "`while` 循环必须手动设置和更新循环条件，让循环趋向于结束，否则会形成无限循环。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程对 `while` 的说明正是：适用于迭代次数未知，根据条件决定是否继续；需要手动更新循环条件，否则会形成无限循环。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "执行到 `break` 时，会发生什么？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 跳过当前循环的剩余代码，立即开始下一次循环",
   "B. 当前循环立即停止，程序跳出循环体，继续执行循环之后的代码",
   "C. 程序直接结束，不再执行循环之后的任何代码",
   "D. 只跳过下一行语句，循环本身继续"
  ],
  "answer": "B",
  "analysis": "** `break` 用于提前终止循环：当前循环立即停止，跳出循环体，继续执行循环之后的代码。A 是 `continue` 的作用。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "下列哪些对象可以用 `for` 循环直接遍历？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 列表 `[\"apple\", \"banana\", \"cherry\"]`",
   "B. 字符串 `\"hello\"`",
   "C. 字典（可通过 `person.items()` 同时取出键和值）",
   "D. 只有事先用计数器算出长度的对象"
  ],
  "answer": "ABC",
  "analysis": "** 课程分别给出了遍历列表、字符串、字典的 `for` 示例。`for` 的特点正是无须手动管理循环计数器，D 错误。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "`continue` 语句会终止整个循环，使程序跳出循环体。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `continue` 只跳过当前这一轮循环体中尚未执行的代码，然后进入下一次循环判断；提前终止并跳出循环体的是 `break`。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "下列程序的功能是求 1 到 100 的和。循环体中 `i += 1` 的作用是什么？ ```python i = 1 s = 0 while i <= 100: s += i i += 1 print('1到100的和是：', s) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 可有可无，删掉后结果不变",
   "B. 改变循环变量 `i` 的值，让循环趋向于结束",
   "C. 把 `s` 清零",
   "D. 使 `i` 永远保持为 1，形成无限循环"
  ],
  "answer": "B",
  "analysis": "** 变量 `i` 是循环变量。课程强调循环体中 `i += 1` 必不可少，作用是改变循环变量的值，让循环趋向于结束。若删掉它，`i` 一直为 1，条件 `i <= 100` 恒真，将形成无限循环。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "关于循环嵌套，下列说法正确的是：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 一个循环的代码块内又包含另一个循环，就形成循环嵌套",
   "B. 外层循环每执行一次，内层循环会完整运行一遍",
   "C. 常用于处理表格、矩阵、多维数组等场景",
   "D. 对 4 行 4 列矩阵，内层循环的代码只需执行 4 次"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 与课程表述一致。4 行 4 列时内层循环要执行 4×4=16 次，D 错误。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "简述 `for` 循环与 `while` 循环的适用场景及关键差异。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①点明 `for` 适合已知次数/遍历、无须手动计数；②点明 `while` 适合未知次数、必须更新条件；③提到无限循环风险。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "运行下列程序，输出结果是什么？ ```python a = [8000, 9500, 12000, 15000] for v in a: if v > 10000: print(v) break ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `8000`",
   "B. `12000`",
   "C. `12000` 和 `15000` 各占一行",
   "D. 没有任何输出"
  ],
  "answer": "B",
  "analysis": "** 与课程例 2-4 相同：找到第一个大于 10000 的工资后立即 `break`，后续元素不再访问。8000、9500 不满足条件；12000 满足，打印后退出，15000 不会被输出。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "运行下列程序，输出结果是什么？ ```python a = [501, 800, 1001, 1200] for v in a: if v % 2 == 1: continue v //= 2 print(v) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. ```",
   "B. ```",
   "C. ```",
   "D. ```"
  ],
  "answer": "B",
  "analysis": "** 与课程例 2-5 相同：奇数执行 `continue`，跳过减半和 `print`。501、1001 为奇数被跳过；800、1200 为偶数，整除 2 后打印 400 和 600。注意打印的是减半后的循环变量，不是原列表中的偶数本身。"
 },
 {
  "cat": "Python基础/2.2.2",
  "title": "循环语句",
  "q": "二维列表 `a` 表示 4 行 4 列矩阵。请写出按行输出全部元素（元素之间用空格分隔）的嵌套循环程序，并说明内层循环代码的执行次数。给定： ```python a = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]] ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①嵌套 `for` 且用 `a[i][j]`；②`end=' '` 实现空格分隔，内层结束后 `print()` 换行；③执行次数为 16；④代码可直接运行。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "内置函数 `map()` 接受两个参数，这两个参数依次是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 一个可迭代对象和一个整数",
   "B. 一个函数和一个可迭代对象",
   "C. 两个列表的长度",
   "D. 一个字典和一个字符串"
  ],
  "answer": "B",
  "analysis": "** 语料明确指出：`map()` 接受两个参数——一个函数和一个可迭代对象，并将该函数应用于可迭代对象中的每个元素。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "内置函数 `zip()` 的作用是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 将可迭代对象压缩成 zip 文件",
   "B. 将一个函数作用于可迭代对象的每个元素",
   "C. 将两个或多个可迭代对象中对应位置的元素配对，形成一个元组",
   "D. 求可迭代对象的长度"
  ],
  "answer": "C",
  "analysis": "** `zip()` 接收两个或多个可迭代对象，把对应位置的元素配成元组，再把这些元组作为可迭代对象的元素返回。B 项是 `map()` 的作用。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "`map()`、`zip()` 返回的对象本身就是列表，直接 `print` 就能看到其中的全部序列值。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 二者返回的是可迭代对象而不是列表。课程示例都是先写成 `print(list(mapped))`、`print(list(zipped))`，转换成列表后才能输出其中的内容。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "`enumerate()` 在遍历可迭代对象时，可以同时获取元素的索引和值。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料指出：`enumerate()` 在遍历时同时获取元素的索引和值，返回一个包含索引和值的元组，常用于需要在循环中同时访问元素和其索引的场景。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "根据课程内容，Python 遍历可迭代对象的三种方法包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 用 `for...in` 遍历",
   "B. 使用 `enumerate()` 内置函数",
   "C. 依次遍历可迭代对象的索引（`while` 和 `for...in` 均可）",
   "D. 只能使用 `while`，不能使用 `for...in`"
  ],
  "answer": "ABC",
  "analysis": "** 课程明确给出三种方法。D 错误：第三种方法用 `while` 和 `for...in` 均可，常见写法是 `for i in range(len(a))`。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "例 2-8 用 `enumerate()` 输出学生序号与成绩时写成 `print(i+1, v)`。其中对索引 `i` 加 1 的原因是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 列表的长度必须加 1 才能遍历完",
   "B. 第一个元素的索引是 0，加 1 后用来表示学号",
   "C. `enumerate()` 默认从 1 开始编号，必须再加 1",
   "D. 不加 1 程序会报错"
  ],
  "answer": "B",
  "analysis": "** 用 `enumerate` 遍历时同时得到索引 `i` 和值 `v`。第一个元素的索引是 0，给它加 1 以表示学号。`enumerate()` 并非默认从 1 开始。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "关于 `map()` 和 `zip()`，下列说法正确的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `map()` 将一个函数应用于可迭代对象中的每个元素，并返回新的可迭代对象",
   "B. `zip()` 只能接收一个可迭代对象",
   "C. `zip()` 接收两个或多个可迭代对象作为参数",
   "D. 二者返回的都是可迭代对象，常用 `list()` 转换后再查看内容"
  ],
  "answer": "ACD",
  "analysis": "** A、C、D 与语料一致。B 错误：`zip()` 接收两个或多个可迭代对象，不是只能接收一个。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "执行 `for v in a: v *= 2` 之后，列表 `a` 中的每个元素都会变成原来的 2 倍。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 用 `for...in` 或 `enumerate()` 时，修改遍历变量不能作用于原来的列表。`v *= 2` 只把变量 `v` 变成原来的 2 倍，并没有改变列表中的元素。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "简述 Python 遍历可迭代对象的三种方法，并说明各自更适合什么场合。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三种方法名称齐全；能指出 `enumerate()` 同时提供索引与值；能指出“改原列表须走索引”。漏第三种或把 `map`/`zip` 误当成第三种遍历方法，应扣分。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "运行下列程序，输出结果是什么？ ```python a = [1, 2, 3] for v in a: v *= 2 print(a) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `[2, 4, 6]`",
   "B. `[1, 2, 3]`",
   "C. 程序报错",
   "D. `[1, 2, 3, 2, 4, 6]`"
  ],
  "answer": "B",
  "analysis": "** `for v in a` 时，`v` 只是当前元素的一个副本（循环变量）。`v *= 2` 只改变 `v`，不改写 `a` 中的元素，因此 `print(a)` 仍为 `[1, 2, 3]`。若要真正加倍，应写成 `for i in range(len(a)): a[i] *= 2`。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "例 2-9 要求将一个整数列表中的每个元素变成原来的 2 倍。请说明写法 `for v in a: v *= 2` 为什么达不到目的，并写出一段语法正确、可直接运行的正确程序（可用固定列表代替随机数）。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 准确说明“改循环变量 ≠ 改原列表”；② 代码使用 `range(len(a))` 与 `a[i] *= 2`，缩进正确、可运行；③ 能说明运行结果。只写 `enumerate` 再改 `v` 仍不得满分。"
 },
 {
  "cat": "Python基础/2.2.3",
  "title": "可迭代对象的遍历方法",
  "q": "运行下列程序，输出结果是什么？ ```python a = [12, 15, 7, 9, 20] t = 0 for v in a: if v % 3 == 0: t += 1 print('3的倍数数量是：', t) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `3的倍数数量是：3`",
   "B. `3的倍数数量是： 3`",
   "C. `3`",
   "D. `4`"
  ],
  "answer": "B",
  "analysis": "** `for...in` 依次取出 12、15、7、9、20，其中 12、15、9 能被 3 整除，`t` 为 3。`print` 多个参数时默认以空格分隔，因此冒号与 3 之间有一个空格，得到 `3的倍数数量是： 3`。A 漏了空格，C 丢掉提示文字，D 把 20 也误算进去了。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "异常处理机制的主要作用是什么？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 让程序运行得更快",
   "B. 捕获错误并做出相应处理，提高稳健性和容错能力",
   "C. 把 Python 源码编译成 CPU 可直接执行的机器指令",
   "D. 自动给变量命名"
  ],
  "answer": "B",
  "analysis": "** 课程指出：异常处理机制用于捕获错误并做出相应的处理，从而提高程序的稳健性和容错能力，提升用户体验。A、C、D 都不是异常处理的作用。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "Python 提供哪种结构来实现异常处理？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. if-else",
   "B. for-in",
   "C. try-except",
   "D. def-return"
  ],
  "answer": "C",
  "analysis": "** 课程明确：Python 提供 try-except 结构来实现异常处理。if-else 是条件语句，for-in 用于遍历，def-return 用于函数定义。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "将执行代码块放在 try 块中，如果在执行过程中发生异常，程序会跳到对应的 except 异常处理代码块进行处理。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是课程对 try-except 执行过程的直接表述。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "异常处理可以提高程序的稳健性和容错能力，从而提升用户体验。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程将稳健性、容错能力和用户体验并列为异常处理的目的。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "关于 try-except 结构，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. try 后面必须写冒号",
   "B. except 后面必须写冒号",
   "C. try 与 except 下面的代码块必须缩进，且同一级缩进一致",
   "D. except 代码块必须写在 try 代码块之前"
  ],
  "answer": "ABC",
  "analysis": "** 课程给出的一般形式是先 try、后 except，二者后面都有冒号，代码块靠缩进划分。D 颠倒了顺序，语法不正确。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "运行下列程序，输出结果是什么？ ```python try: result = 10 / 0 except: print(\"除零错误\") ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `0`",
   "B. `10`",
   "C. `除零错误`",
   "D. 程序崩溃且没有任何输出"
  ],
  "answer": "C",
  "analysis": "** 这是课程实例。`10 / 0` 在 try 中引发异常，程序跳到 except，执行 `print(\"除零错误\")`，因此输出为“除零错误”，程序不会因此直接崩溃。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "下列操作在运行时可能引发异常、因而适合放入 try 中捕获的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 访问已被 `del` 删除的变量",
   "B. 用列表的 `remove()` 删除一个列表中不存在的元素",
   "C. 用方括号读取字典中不存在的键",
   "D. 计算 `1 + 1`"
  ],
  "answer": "ABC",
  "analysis": "** 课程前文指出：删除变量后再访问会引发 NameError；`remove()` 找不到元素会引发 ValueError；用 `[]` 访问不存在的键会引发 KeyError。`1 + 1` 是正常运算，不会引发异常。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "用字典的 `get()` 方法读取一个不存在的键时，会引发 KeyError。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调：用方括号访问不存在的键会引发 KeyError；`get()` 在键不存在时返回 None 或指定的默认值，正是为了避免这种情况。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "运行下列程序，输出结果是什么？ ```python try: print(\"开始\") result = 10 / 0 print(\"计算完成\") except: print(\"除零错误\") print(\"结束\") ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 三行依次为：开始 / 计算完成 / 结束",
   "B. 三行依次为：开始 / 除零错误 / 结束",
   "C. 仅一行：除零错误",
   "D. 两行依次为：开始 / 结束"
  ],
  "answer": "B",
  "analysis": "** try 中先输出“开始”，随后 `10 / 0` 引发异常，`print(\"计算完成\")` 被跳过；程序转入 except，输出“除零错误”；try-except 之后的 `print(\"结束\")` 仍会执行。因此三行依次为：开始、除零错误、结束。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "请简述异常处理的作用，并说明 try-except 的执行过程。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①写出捕获错误、稳健性/容错/用户体验中至少两点；②说明“有异常则进 except、无异常则跳过 except”。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "按要求写出两段可直接运行的程序：（1）课程中的除零示例；（2）尝试以只读方式打开当前目录下不存在的文件 `not_exist.txt`，捕获异常后输出“无法打开文件”。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①两段均使用 try-except，冒号与缩进正确，可直接运行；②除零示例与课程一致，输出“除零错误”；③`open` 放在 try 中，except 中有明确提示。若 `not_exist.txt` 恰好已存在，第（2）段可能不进入 except，评阅时以结构是否正确为主。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "下列哪一项在运行时会引发异常？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `'字体' in {'字体': '宋', '字号': 14}`",
   "B. 创建集合 `{2, 3, 3, 4}`",
   "C. `[1, 2, 3].remove(5)`",
   "D. `\"Hello, world!\".find(\"你好\")`"
  ],
  "answer": "C",
  "analysis": "** `remove()` 找不到指定元素会引发 ValueError。A 用 `in` 判断键是否存在，结果为 True，不异常；B 集合自动去重得到 `{2, 3, 4}`；D 的 `find()` 找不到子串时返回 -1，不会引发异常。"
 },
 {
  "cat": "Python基础/2.2.4",
  "title": "异常处理",
  "q": "只要把整个程序都写进 try 块，即使某一行漏写了冒号导致语法错误，except 也能捕获该错误并让程序继续运行。",
  "type": "判断题",
  "diff": "难",
  "opts": [],
  "answer": "×",
  "analysis": "** 漏写冒号属于语法错误，解释器在解析源程序时就会失败，try-except 尚未开始执行，因而捕获不到。此外，try 块也不应无节制地包裹全部代码：一旦发生异常，try 中尚未执行的语句会被跳过，反而更难排查。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "Python 中定义函数使用的关键字是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. function",
   "B. def",
   "C. func",
   "D. define"
  ],
  "answer": "B",
  "analysis": "** 课程明确指出，函数定义的关键字是 `def`。`function`、`func`、`define` 都不是 Python 定义函数的关键字。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "函数定义的三个要素是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 模块名、包名、库名",
   "B. 函数名、形式参数列表、函数体",
   "C. 实参、文件名、异常类型",
   "D. 类名、对象名、方法名"
  ],
  "answer": "B",
  "analysis": "** 课程将函数定义的要素概括为函数名、形式参数列表和函数体。模块与包属于后续小节，不是定义函数的三要素。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "定义无参函数时，函数名后面的圆括号可以省略。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 函数可以没有参数，称为无参函数；但定义无参函数时，函数名后面的圆括号也不能省略。正确写法如 `def sayHello():`。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "函数也可以没有返回值，这时可以不写 return 语句。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程明确指出：函数也可以没有返回值，这时可以不写 `return` 语句。例如 `sayHello()` 只负责打印问候语。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "关于下列函数定义，说法正确的有（ ） ```python def add(a, b): s = a + b return s ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 函数名为 `add`",
   "B. 形式参数是 `a` 和 `b`",
   "C. 调用 `add(3, 4)` 得到 `7`",
   "D. 该函数没有函数体"
  ],
  "answer": "ABC",
  "analysis": "** 这是课程中的 `add` 示例：两个参数 `a`、`b`，函数体计算二者之和并 `return`。`add(3, 4)` 的结果为 `7`。D 错误，`s = a + b` 与 `return s` 就是函数体。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "下列哪一项是无参函数的正确定义？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `def sayHello:`",
   "B. `def sayHello():`",
   "C. `function sayHello():`",
   "D. `def sayHello[]:`"
  ],
  "answer": "B",
  "analysis": "** 无参函数仍须保留圆括号。A 漏写括号，属于语法错误；C 误用其他语言的关键字；D 误用方括号。课程示例为 `def sayHello():`。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "下列关于 `return` 的说法正确的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `return` 用于返回函数的结果",
   "B. 当函数执行到 `return` 语句时，函数会立即终止",
   "C. 一个函数可以包含多个 `return` 语句",
   "D. 多个 `return` 会按书写顺序全部执行一遍"
  ],
  "answer": "ABC",
  "analysis": "** `return` 既返回结果也结束函数执行，因此多个 `return` 用于不同条件分支，不会相互干扰，更不会全部执行。D 与“立即终止”矛盾。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "Python 函数一次只能返回一个值，不能同时返回列表的最小值和最大值。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** Python 函数可以返回多个值：将多个值依次放在 `return` 后面并以逗号分隔。课程中的 `getMinMax(alist)` 就同时返回最小值和最大值。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "写出 Python 函数定义的基本形式，并说明各部分含义。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①写出与课程一致的基本形式；②说明 `def`、函数名、形参、函数体、`return` 的含义；③点明无参时圆括号仍不可省、`return` 可省略。只写示例函数而未给一般形式，给部分分。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "运行下列程序，输出结果是什么？ ```python def getMinMax(alist): minValue = min(alist) maxValue = max(alist) return minValue, maxValue print(getMinMax([3, 1, 4, 1, 5, 9])) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `1`",
   "B. `9`",
   "C. `(1, 9)`",
   "D. `[1, 9]`"
  ],
  "answer": "C",
  "analysis": "** `min` 得到 `1`，`max` 得到 `9`，`return minValue, maxValue` 一次返回两个值，调用结果是元组 `(1, 9)`。`print` 打印元组时带圆括号，元素之间有逗号和空格。A、B 只取了其中一个值；D 误写成列表。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "为什么一个函数可以写多个 `return` 而它们不会相互干扰？请写出课程中按从大到小返回两个参数的 `sort` 函数，并给出调用 `sort(3, 8)` 与 `sort(9, 2)` 的完整可运行程序及输出。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①说明“执行到 return 立即终止”；②代码与课程 `sort` 逻辑一致且可运行；③两次调用结果分别为 `(8, 3)` 和 `(9, 2)`，顺序为从大到小。写成从小到大或漏写 `else` 分支，不得满分。"
 },
 {
  "cat": "Python基础/2.3.1",
  "title": "函数定义",
  "q": "运行下列程序，输出结果是什么？ ```python def add(a, b): s = a + b return s print('不会执行') print(add(3, 4)) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `7` 和 `不会执行` 两行",
   "B. `7`",
   "C. `不会执行`",
   "D. 因 `return` 后面还有语句而报错"
  ],
  "answer": "B",
  "analysis": "** `add(3, 4)` 中 `s` 为 `7`，执行 `return s` 后函数立即终止，其后的 `print('不会执行')` 不会运行，也不构成语法错误。外层 `print` 打印返回值 `7`。A 误以为 `return` 之后的语句仍会执行。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "函数调用的一般形式是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `def 函数名([形式参数列表]):`",
   "B. `函数名([实际参数列表])`",
   "C. `call 函数名`",
   "D. `函数名[]`"
  ],
  "answer": "B",
  "analysis": "** 课程指出，函数调用通过函数名和传递的参数进行，形式为 `函数名([实际参数列表])`。A 是函数定义形式，不是调用形式。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "执行 `x = add(5, 4)` 时，若函数定义为 `def add(a, b):`，则实际参数与形式参数的对应关系是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 5 传给 b，4 传给 a",
   "B. 5 传给 a，4 传给 b",
   "C. 两个实参都传给 a",
   "D. 必须写成 `add(a=5, b=4)` 才能调用"
  ],
  "answer": "B",
  "analysis": "** 位置参数按位置一一对应：实参 5、4 分别传递给形参 a、b。不必使用关键字参数。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "当有的参数没有默认值、有的参数具有默认值时，默认值参数必须放在非默认值参数的后面。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程明确规定：默认值参数必须放在非默认值参数后面。正确写法如 `def default(x, y=3):`。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "按关键字参数传递时，实际参数与形式参数必须遵循函数定义中的参数顺序。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 关键字参数允许在调用时明确指定参数名和对应值，不必遵循定义中的参数顺序，还可以跳过某些具有默认值的参数。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "关于实参向形参传递值的方式，下列说法正确的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 位置参数按位置一一对应进行传递",
   "B. 默认值参数在调用未提供该参数时使用预设默认值",
   "C. 关键字参数可以改变参数顺序，也可以跳过某些默认值参数",
   "D. 关键字参数后面还可以继续写位置参数"
  ],
  "answer": "ABC",
  "analysis": "** 课程介绍了位置参数、默认值参数和关键字参数三种方式。D 错误：关键字参数后面不能再有位置参数，如 `keyParameter(1, y=2, 3)` 是错误格式。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "运行下列程序，输出结果是什么？ ```python def default(x, y=3): s = x + y print('Sum of x and y is:', s) default(2) default(2, 4) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `Sum of x and y is: 5` 和 `Sum of x and y is: 7`",
   "B. `Sum of x and y is: 5` 和 `Sum of x and y is: 6`",
   "C. `Sum of x and y is: 2` 和 `Sum of x and y is: 6`",
   "D. 因第一次调用少传参数而报错"
  ],
  "answer": "B",
  "analysis": "** `default(2)` 只给 x 传 2，y 使用默认值 3，和为 5；`default(2, 4)` 把 4 传给 y，和为 6。第一次调用合法，不会报错。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "下列属于不可变数据类型的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 整型",
   "B. 浮点型",
   "C. 字符串型和元组",
   "D. 列表、字典和集合"
  ],
  "answer": "ABC",
  "analysis": "** 课程指出：整型、浮点型、字符串型和元组属于不可变数据类型；列表、字典和集合是可变数据类型。不可变是指不能修改原内存单元里的数据，改值时内存地址也会改变。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "不可改变对象作为实参时，在函数内部改变形参的值，不会导致实参的值发生改变。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程以 `modify(y)` 为例：y 是不可改变对象，函数内把形参 x 改为平方后，调用结束时 y 仍为 5。可变对象则相反，形参与实参共用存储空间。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "简述位置参数、默认值参数、关键字参数的传递规则，并说明为什么 `keyParameter(1, y=2, 3)` 是错误调用。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①三种方式的规则与课程一致；②点明默认值参数位置限制；③明确指出“关键字参数后面不能再有位置参数”。只举例子不说规则，给部分分。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "运行下列程序，输出结果是什么？ ```python def keyParameter(x, y=3, z=4): s = x + y + z print('Sum of x, y and z is:', s) keyParameter(z=3, y=2, x=1) keyParameter(x=1, z=2) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `Sum of x, y and z is: 6` 两行",
   "B. `Sum of x, y and z is: 6` 和 `Sum of x, y and z is: 7`",
   "C. `Sum of x, y and z is: 10` 和 `Sum of x, y and z is: 6`",
   "D. 第二次调用因缺少 y 而报错"
  ],
  "answer": "A",
  "analysis": "** 第一次按关键字改变顺序：x=1、y=2、z=3，和为 6。第二次跳过默认值参数 y（仍为 3），z 改为 2，x=1，和仍为 6。跳过具有默认值的参数是合法的。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "为什么把整数 y=5 传入 `modify` 后 y 不变，把列表 a=[4, 5, 6] 传入 `modifyList` 后 a 会变成各元素的平方？请写出与课程一致、可直接运行的完整程序及输出。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①区分不可变/可变及“传值 vs 传地址”；②代码与课程 `modify`、`modifyList` 逻辑一致且可运行；③输出中 y 仍为 5、a 变为 `[16, 25, 36]`。只说结论不写程序，或把列表误当成不可变，不得满分。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "运行下列程序，输出结果是什么？ ```python def local(b): a = 3 b = 5 print(\"a = {}, b = {}\".format(a, b)) def fun(): print('fun内 b=', b) b = 4 local(b=b) fun() ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `a = 3, b = 5` 和 `fun内 b= 5`",
   "B. `a = 3, b = 5` 和 `fun内 b= 4`",
   "C. `a = 3, b = 4` 和 `fun内 b= 4`",
   "D. `fun` 中访问 b 会引发 NameError"
  ],
  "answer": "B",
  "analysis": "** `b = 4` 是全局变量。`local(b=b)` 中第一个 b 是形参、第二个 b 是实参，二者同名但是两个变量；函数内 `a = 3`、`b = 5` 改的是局部变量，故打印 `a = 3, b = 5`。`fun` 中的 b 访问的是全局 b，仍为 4。局部赋值不会改掉全局 b。"
 },
 {
  "cat": "Python基础/2.3.2",
  "title": "函数调用",
  "q": "运行下列程序，输出结果是什么？ ```python t = [19, 72, -52, 44, -26, 20, 43, 99] t.sort(key=lambda y: y * y) print(t) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `[19, 20, -26, 43, 44, -52, 72, 99]`",
   "B. `[-52, -26, 19, 20, 43, 44, 72, 99]`",
   "C. `[99, 72, -52, 44, 43, -26, 20, 19]`",
   "D. `[19, 72, -52, 44, -26, 20, 43, 99]`（顺序不变）"
  ],
  "answer": "A",
  "analysis": "** lambda 表达式 `lambda y: y * y` 创建匿名函数，表达式的值就是返回值，此处作为 `sort` 的 `key` 参数。列表按元素平方从小到大排序，负数平方后仍为正，因此 `-26` 排在 `43` 前面、`-52` 排在 `72` 前面，结果与课程例 2-11 一致。B 是按原值从小到大；C 是按绝对值从大到小。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "在 Python 中，模块指的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 一个包含 `__init__.py` 文件的目录",
   "B. 一个包含 Python 代码的文件",
   "C. 必须用 pip 才能使用的第三方工具",
   "D. 只能存放函数、不能存放常量的文件夹"
  ],
  "answer": "B",
  "analysis": "** 课程对模块的定义是“一个包含 Python 代码的文件”。A 是包的定义；第三方库的安装属于下一小节，不是模块的定义。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "在 Python 中，包指的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 任意一个文件夹",
   "B. 一个 `.py` 源文件",
   "C. 一个包含 `__init__.py` 文件的目录",
   "D. 只能用 `import *` 导入的对象"
  ],
  "answer": "C",
  "analysis": "** 课程明确：包是一个包含 `__init__.py` 文件的目录。单个 `.py` 文件是模块，不是包。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "编程时如需使用某个模块，首先要使用 import 语句将该模块导入。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程指出，使用模块前必须先导入。未导入就直接使用其中的对象，通常会引发 `NameError`。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "执行 `import math` 之后，可以直接写 `pi` 来使用圆周率，不必写成 `math.pi`。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 导入整个模块的使用格式是 `模块名.函数名`（常量同样要加模块名前缀）。正确写法是 `math.pi`。直接写 `pi` 是 `from math import pi` 这类导入后的用法。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "课程给出的模块导入方式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 导入整个模块",
   "B. 导入模块中的指定对象",
   "C. 导入模块中的所有内容",
   "D. 给导入的模块或对象起别名"
  ],
  "answer": "ABCD",
  "analysis": "** 四种方式分别为：`import 模块名`；`from 模块名 import 对象名列表`；`from 模块名 import *`；`import 模块名 as 别名` 或 `from 模块名 import 对象名 as 别名`。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "执行 `from math import cos, pi` 之后，下列哪一种调用写法是正确的？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `math.cos(math.pi / 4)`",
   "B. `cos(pi/4)`",
   "C. `math.cos(pi/4)`",
   "D. `cos(math.pi / 4)`"
  ],
  "answer": "B",
  "analysis": "** 导入指定对象后，直接使用导入的对象名，不加模块名。此时命名空间中有 `cos` 和 `pi`，没有模块名 `math`，因此 A、C、D 都会因找不到 `math` 而出错。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "下列关于起别名的说法正确的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 格式可以是 `import 模块名 as 别名`",
   "B. 格式可以是 `from 模块名 import 对象名 as 别名`",
   "C. 使用简短的别名代替模块名",
   "D. 课程示例 `from random import randint as rand` 之后，应写 `randint(10, 20)` 而不能写 `rand(10, 20)`"
  ],
  "answer": "ABC",
  "analysis": "** 起别名后用别名代替原名。示例中 `randint` 被起别名为 `rand`，应写 `rand(10, 20)`。D 把原名和别名用反了。数据科学中常见的 `import numpy as np`、`import pandas as pd` 也属于这种方式。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "执行 `from math import *` 之后，可以直接写 `sqrt(16.0)`，结果为 `4.0`，不必写成 `math.sqrt(16.0)`。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 导入模块中的所有内容后，可以使用模块中的所有对象，而不加模块名。课程示例正是 `from math import *` 后调用 `sqrt(16.0)`，输出 `4.0`。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "写出课程中的四种模块导入格式，并各用一句话说明导入后应如何调用。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①四种格式与课程一致；②每种都说明调用写法（是否加模块名前缀、是否用别名）。只写格式不写用法，给部分分。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "运行下列程序，输出结果是什么？ ```python import math print(math.pi) print(math.sin(math.pi / 2)) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 第一行是大约 `3.14` 的浮点数，第二行是 `1.0`",
   "B. `pi` 和 `1`",
   "C. 因未写 `from math import *` 而报错",
   "D. 第二行输出 `0.0`"
  ],
  "answer": "A",
  "analysis": "** `import math` 后必须用 `math.` 前缀。`math.pi` 为 `3.141592653589793`，`math.sin(math.pi / 2)` 为 `1.0`。C 混淆了两种导入方式；D 把 `sin(π/2)` 误记成 `sin(0)` 或 `cos(π/2)`。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "分别用“导入整个模块”和“导入指定对象”两种方式，编写可直接运行的程序：计算 `cos(π/4)` 并打印结果。说明两种写法在命名空间上的差别，并给出运行后的输出。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①两段代码语法正确、可运行；②输出为课程中的 `0.7071067811865476`（或同一浮点值）；③说明“模块名前缀 / 直接使用对象名”与命名空间的对应关系。写成 `from math import *` 只能算第三种方式，不得满分。"
 },
 {
  "cat": "Python基础/2.3.3",
  "title": "模块与包的使用",
  "q": "关于下列程序，说法正确的是（ ） ```python from random import randint, random, uniform print(randint(20, 60), end=' ') print(random(), end=' ') print(uniform(3, 4)) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `random` 不是标准库模块，必须先 `pip install random`",
   "B. `randint(20, 60)` 的结果一定是闭区间 \\([20, 60]\\) 上的整数",
   "C. 每次运行三行输出的数字都与教材演示完全相同，分别为 `38`、`0.4775563536570093`、`3.5772165060646866`",
   "D. 程序因 `end=' '` 不是合法参数而无法运行"
  ],
  "answer": "B",
  "analysis": "** `random` 是标准库模块，导入即可使用，不必 pip 安装。`randint(20, 60)` 生成该闭区间上的随机整数。`random()`、`uniform(3, 4)` 生成随机浮点数，每次运行通常不同，教材数字只是某一次演示。【例2-12】正是用 `end=' '` 把多个结果打在同一行，语法合法。A、C、D 均错误。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "课程中“库”指的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 只能由 CPU 直接执行的机器指令集合",
   "B. 一个功能集合，通常是开发者预先编写的一组工具、函数或类，供其他开发者调用和使用",
   "C. 计算机的内存硬件",
   "D. 必须写在同一个 `.py` 文件里、不能单独安装的代码"
  ],
  "answer": "B",
  "analysis": "** 课程对库的定义是：一个功能集合，通常是开发者预先编写的一组工具、函数或类，供其他开发者调用和使用。库以模块或包的形式安装后，通过导入来使用，不是硬件，也不是机器指令。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "用 pip 安装第三方库的命令格式是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `python install 库名`",
   "B. `pip install 库名`",
   "C. `import 库名`",
   "D. `conda list 库名`"
  ],
  "answer": "B",
  "analysis": "** 课程给出的安装格式为 `pip install 库名` 和 `conda install 库名`。`import` 是安装之后的导入语句，不能代替安装；`conda list` 用于查看已安装的包。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "库以模块或者包的形式安装到计算机上，用户采用导入模块或者包的方法就可以使用第三方库。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是课程对第三方库“安装—导入—使用”关系的原话。只安装不导入，程序里仍然无法直接调用该库中的函数或类。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "jieba 是一个中文分词库，专门用于处理中文文本的分词任务。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程明确介绍 jieba 用于中文分词。词云库是 wordcloud，二者分工不同，中文词云常常先用 jieba 分词再交给 wordcloud。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "关于 jieba 与 wordcloud，下列说法正确的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. jieba 专门用于处理中文文本的分词任务",
   "B. wordcloud 用于生成词云图",
   "C. 词云图通过不同词语的大小、颜色来表示其在文本中出现的频率",
   "D. jieba 和 wordcloud 都属于 Python 标准库，安装 Python 后即可直接使用，无需安装"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均来自课程对这两个第三方库的说明。D 错误：二者是第三方库，课程要求先 `pip install jieba`、`pip install wordcloud`，再导入使用。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "课程中安装 jieba 的命令是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `pip install jieba`",
   "B. `import jieba`",
   "C. `pip uninstall jieba`",
   "D. `python jieba`"
  ],
  "answer": "A",
  "analysis": "** 课程实例演示的安装命令就是 `pip install jieba`（以及 `pip install wordcloud`）。`import jieba` 是安装成功之后在程序中导入，不是安装命令。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "下列哪些命令可以用来安装第三方库？（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `pip install 库名`",
   "B. `conda install 库名`",
   "C. `pip install jieba`",
   "D. `from 库名 import *`"
  ],
  "answer": "ABC",
  "analysis": "** 课程给出的安装格式是 `pip install 库名` 和 `conda install 库名`，jieba 的安装即 `pip install jieba`。D 是导入模块中所有内容的写法，属于“使用”，不是“安装”。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "把连续的中文段落直接交给 wordcloud 的 `generate()`，一般就能按中文词语正确绘制词云。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** wordcloud 默认按空白切分词语。英文单词之间已有空格，可直接 `generate`；中文必须先用 `jieba.lcut` 分词，再用 `' '.join(...)` 拼成空格分隔的字符串，并指定 `font_path`，否则切分错误或出现方框。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "请写出安装 jieba、wordcloud 的命令，并说明安装后如何在程序中使用第三方库。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①写出与课程一致的 pip 安装命令（写出 conda 格式也可给分）；②点明“先安装、再导入、再调用”；只写 `import` 或只写安装命令，给部分分。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "中文词云在分词之后，需要把词语列表拼成空格分隔的字符串。运行下列程序，输出是什么？ ```python spacestring = ' '.join(['励学', '首在', '立志']) print(spacestring) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `励学首在立志`",
   "B. `励学 首在 立志`",
   "C. `['励学', '首在', '立志']`",
   "D. `励学,首在,立志`"
  ],
  "answer": "B",
  "analysis": "** `' '.join(列表)` 用空格连接各元素，得到 `'励学 首在 立志'`。这正是课程中 `spacestring = ' '.join(jieba.lcut(string))` 的作用：把分词结果变成 wordcloud 能按空白切分的文本。A 未加空格；C 是列表本身；D 误用了逗号。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "对比英文词云与中文词云的绘制步骤，并写出两段语法正确、可直接运行结构完整的示例程序（英文程序保存为 `d:\\ying.png`，中文程序保存为 `d:\\zhong.png`）。说明中文为什么必须分词并指定字体。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①对比“英文可直接 generate / 中文需分词+字体”；②英文代码含 `WordCloud(background_color='white', width=800, height=600)`、`generate`、`to_file(r'd:\\ying.png')`；③中文代码含 `jieba.lcut`、空格 `join`、`font_path`、`to_file(r'd:\\zhong.png')`；④路径使用原始字符串。漏写分词或字体不得满分。"
 },
 {
  "cat": "Python基础/2.3.4",
  "title": "第三方库的安装与使用",
  "q": "课程用 `to_file(r'd:\\ying.png')` 保存词云，路径前的 `r` 表示原始字符串。运行下列程序，输出结果是什么？ ```python print(len(r'd:\\test.txt')) print(len('d:\\test.txt')) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 两行都是 `11`",
   "B. 第一行 `11`，第二行 `10`",
   "C. 第一行 `10`，第二行 `11`",
   "D. 因路径非法而报错"
  ],
  "answer": "B",
  "analysis": "** `r'd:\\test.txt'` 中每个字符都按字面计算，共 11 个字符（`d:\\test.txt`）。普通字符串 `'d:\\test.txt'` 里的 `\\t` 是制表符，实际是 `d:` + 制表符 + `est.txt`，长度为 10。这与课程强调的“不加 r 会因转义而不能表示合法路径”一致。该程序只计算字符串长度，不访问磁盘，可直接运行。 文件位置： - `知识库/第2章 Python程序设计基础/2.3.4-第三方库的安装与使用.md` - `问答库/第2章 Python程序设计基础/2.3.4-第三方库的安装与使用.md`"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "Python 文件操作主要包含哪 3 个步骤？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 创建变量、运算、输出",
   "B. 打开文件、读/写文件、关闭文件",
   "C. 导入模块、定义函数、安装第三方库",
   "D. 编译、链接、执行"
  ],
  "answer": "B",
  "analysis": "** 课程明确：文件操作主要包含 3 个步骤：（1）打开文件；（2）读、写文件；（3）关闭文件。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "操作文件前一定要先打开文件。打开文件使用的内置函数是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `close()`",
   "B. `read()`",
   "C. `open()`",
   "D. `write()`"
  ],
  "answer": "C",
  "analysis": "** 课程指出：操作文件前一定要先打开文件，内置函数 `open()` 可打开文件。`read()`/`write()` 用于读写，`close()` 用于关闭。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "文件是存储数据的基本单位，通过文件名和路径来定位和访问。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程开篇即给出这一定义，并说明文件通常由扩展名（如 `.txt`、`.jpg`、`.mp3`）标识类型。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "`write()` 方法把字符串写入文本文件时会自动换行。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程强调：`write()` 写字符串到文件中时不会自动换行，需要在一行的末尾手动加上换行符 `\\n`。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "关于关闭文件，下列说法正确的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 文件使用过后一定要注意及时关闭",
   "B. 可以用文件对象的 `close()` 方法关闭",
   "C. 可以用 `with` 关键字确保使用后正确关闭",
   "D. 只要调用过 `open()`，程序结束前都不必关闭"
  ],
  "answer": "ABC",
  "analysis": "** `close()` 和 `with` 是课程给出的两种常用关闭方式。D 错误：文件使用后必须及时关闭，不能依赖“程序迟早会结束”。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "关于 `write()`，下列说法正确的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可以将字符串写入文本文件",
   "B. 要将整数和浮点数写入文本文件，需要先转换成字符串再写入",
   "C. 写字符串时不会自动换行",
   "D. 会自动在每条数据后面加上逗号"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均为课程原文要点。D 不是 `write()` 的行为；例 2-15 用空格分隔数据，换行也需程序自己加 `\\n`。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "当前目录下 `log.txt` 的内容为“广东金融学院互联网金融与信息工程学院”。执行 `name = file.read(6)` 后，`name` 的值是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `广东`",
   "B. `广东金融学院`",
   "C. `广东金融学院互联网金融与信息工程学院`",
   "D. `广东金融`"
  ],
  "answer": "B",
  "analysis": "** 这是例 2-13。`read(6)` 按字符数读取 6 个字符，“广东金融学院”恰好 6 个汉字，即学校名称。A 只读了 2 个字，C 是全文，D 是 4 个字。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "`readlines()` 一次性读取文件中的所有行，返回一个列表；每个元素是对应一行的字符串，包含行尾换行符 `\\n`，文件的最后一行没有换行符。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是课程对按行读的完整说明。因此用 `readlines()` 得到的行在做 `split()` 或数值转换前，通常应先 `strip()`。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "简述 Python 文件操作的三个步骤，写出 `open()` 的格式，并说明关闭文件的两种常用方式。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①三个步骤与课程一致且顺序正确；②写出 `open(文件名，文件模式，编码方式)`；③同时提到 `close()` 和 `with`。只写其中一种关闭方式，给部分分。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "运行下列程序，输出结果是什么？ ```python with open('log.txt', 'w', encoding='utf-8') as f: f.write('广东金融学院互联网金融与信息工程学院') with open('log.txt', encoding='utf-8') as file: name = file.read(6) print(name) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `广东`",
   "B. `广东金融学院`",
   "C. `广东金融学院互联网金融与信息工程学院`",
   "D. 因文件不存在而报错"
  ],
  "answer": "B",
  "analysis": "** 第一段 `with` 按课程例 2-13 的内容写入 `log.txt`，保证程序可直接运行。第二段以默认读模式打开（课程示例同样指定 `encoding='utf-8'`），`read(6)` 读出 6 个字符“广东金融学院”。A 字数不够；C 是 `read()` 不带参数时才会得到的全文；文件已被创建，不会走 D。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "按教案要求，写出一段完整、可直接运行的程序：先将文本 `Hello Python` 写入当前目录下的 `in.txt`，再读取该文件，把内容全部转为大写后写入 `out.txt`，最后打印 `out.txt` 的内容。要求使用 `with` 打开文件。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①用 `with` 完成打开与关闭；②写入 `in.txt`、读出后再 `upper()` 写入 `out.txt`；③代码可运行且最终打印 `HELLO PYTHON`。未转大写、未关闭/未用 `with`、或读写文件名颠倒，不得满分。"
 },
 {
  "cat": "Python基础/2.3.5",
  "title": "文件操作",
  "q": "运行下列程序，输出结果是什么？ ```python with open('demo.txt', 'w', encoding='utf-8') as f: f.write('Hello') f.write('Python') with open('demo.txt', 'r', encoding='utf-8') as f: print(f.read()) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 两行，分别为 `Hello` 和 `Python`",
   "B. `Hello Python`",
   "C. `HelloPython`",
   "D. 因 `write()` 不能连续调用而报错"
  ],
  "answer": "C",
  "analysis": "** `write()` 不会自动换行，也不会自动插入空格，两次写入的字符串在文件中首尾相接，因此读回结果是 `HelloPython`。A 误以为每次 `write` 都会换行；B 误以为会像 `print` 那样用空格分隔；D 错误，可以多次调用 `write()`。若需要分行，应自行写入 `\\n`。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "执行下列代码后，`a.ndim`的值是多少？ ```python import numpy as np a = np.array([1, 2, 3, 4]) print(a.ndim) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 0",
   "B. 1",
   "C. 2",
   "D. 4"
  ],
  "answer": "",
  "analysis": "** 当`array()`的参数是一维列表时，创建的是一维数组，因此`ndim`为1。元素个数4并不等于维度。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "下列代码的输出结果是什么？ ```python import numpy as np c = np.arange(0, 10, 2) print(c) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `[0 2 4 6 8 10]`",
   "B. `[0 2 4 6 8]`",
   "C. `[1 3 5 7 9]`",
   "D. `[0 1 2 3 4 5 6 7 8 9]`"
  ],
  "answer": "",
  "analysis": "** `arange()`用法与`range()`相同，包含`start=0`、不包含`stop=10`，步长`step=2`，因此得到`0, 2, 4, 6, 8`。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "`np.random.randint(1, 10)`在未指定`size`时，生成的是形状为`(1,)`的一维数组。 ```python import numpy as np x = np.random.randint(1, 10) print(x) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "",
  "analysis": "** 未指定`size`参数时，该方法生成一个随机整数，而不是形状为`(1,)`的一维数组。指定`size=(5,)`才会生成一维数组。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "使用NumPy前的导入惯例是`import numpy as np`。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "",
  "analysis": "** 课程明确给出导入惯例为`import numpy as np`，后续均通过别名`np`调用数组创建等接口。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "关于本节介绍的数组创建方法，下列说法正确的是？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `np.array()`可以把现有的列表或元组转换为NumPy数组",
   "B. `np.arange()`需要`start`、`stop`、`step`三个参数，生成的是numpy数组",
   "C. `np.random.rand(3)`生成区间`[0, 1]`上的3个随机整数",
   "D. `np.random.randint(1, 10, size=(5,))`生成长度为5的一维随机整数数组"
  ],
  "answer": "",
  "analysis": "** C错误：`rand`生成的是`[0, 1)`范围内均匀分布的随机小数，不是随机整数，且右端点1取不到。A、B、D与课程用法一致。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "下列代码创建的数组形状是什么？ ```python import numpy as np a = np.arange(12).reshape(2, -1) print(a.shape) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `(2, 6)`",
   "B. `(6, 2)`",
   "C. `(12,)`",
   "D. `(2, -1)`"
  ],
  "answer": "",
  "analysis": "** `np.arange(12)`共12个元素，`reshape(2, -1)`指定第一维为2，`-1`表示由系统自动推断第二维，`12 / 2 = 6`，故形状为`(2, 6)`。`-1`不会作为最终维度值保留。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "`np.random.rand(2, 4)`通过两个位置参数指定形状，生成形状为`(2, 4)`、取值在`[0, 1)`的二维随机数组。 ```python import numpy as np a = np.random.rand(2, 4) print(a.shape) ```",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** `rand`的数组形状通过参数数量指定：指定两个参数时生成二维数组。取值范围为`[0, 1)`上的均匀分布。上面代码中`a.shape`为`(2, 4)`。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "说明`np.array()`在参数为一维列表和二维列表时分别创建什么数组，以及如何查看数组维度。请结合下面代码说明输出含义。 ```python import numpy as np a = np.array([1, 2, 3, 4]) b = np.array([[1, 2, 3], [4, 5, 6]]) print(a.ndim) print(b.ndim) ```",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①点明一维列表/元组对应一维数组、二维列表/元组对应二维数组；②写出用`ndim`查看维度；③能解释示例中1和2的含义。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "关于下列代码与数组创建的说法，正确的是？ ```python import numpy as np d = np.arange(12).reshape((2, 6)) r = np.random.randint(1, 10, size=(2, 5)) print(d.shape) print(d) print(r.shape) print(np.arange(12).reshape(2, -1).shape) ```",
  "type": "多选题",
  "diff": "难",
  "opts": [
   "A. `d`的形状为`(2, 6)`，元素为0到11的连续整数",
   "B. `reshape((2, 6))`要求原数组恰好有12个元素，否则无法按该形状变形",
   "C. `r`中的元素可以取到10",
   "D. 若写成`np.arange(12).reshape(2, -1)`，得到的形状同样是`(2, 6)`"
  ],
  "answer": "",
  "analysis": "** A正确：`arange(12)`生成0至11，再变成2行6列。B正确：`reshape`前后元素总数必须相等。C错误：`randint(x, y, size)`的区间是`[x, y)`，即`[1, 10)`，取不到10。D正确：`-1`会推断为6，形状仍为`(2, 6)`。"
 },
 {
  "cat": "NumPy分析/3.1.1",
  "title": "NumPy数组创建",
  "q": "分别说明`np.random.randint`与`np.random.rand`在取值范围、形状指定方式及未给出形状参数时的行为差异；并指出`reshape`使用`-1`时的含义与限制。请结合下面代码中的形状结果作答。 ```python import numpy as np print(np.random.randint(1, 10, size=(2, 5)).shape) print(np.random.rand(2, 4).shape) print(np.arange(12).reshape(2, -1).shape) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①对比二者取值范围（整数`[x,y)`对小数`[0,1)`）；②对比形状参数（`size=`对位置参数个数）；③对比缺省行为（一个随机整数对一个随机小数）；④说明`-1`为自动推断、只能有一个、且元素总数必须匹配，并能解释`(2, 6)`。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "下列代码中，数组`a`的`ndim`属性值是多少？ ```python import numpy as np a = np.arange(8).reshape(2, 4) print(a.ndim) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 1",
   "B. 2",
   "C. 4",
   "D. 8"
  ],
  "answer": "",
  "analysis": "** `reshape(2, 4)`得到二维数组，有轴0和轴1两条轴，因此`ndim`为2。课程示例中`a.ndim`的输出就是2。不要把某一维的长度4或元素个数8误当成维数。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "下列代码中，数组`a`的`size`属性值是多少？ ```python import numpy as np a = np.arange(8).reshape(2, 4) print(a.size) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2",
   "B. 4",
   "C. 6",
   "D. 8"
  ],
  "answer": "",
  "analysis": "** `size`表示数组中元素的总个数。`np.arange(8)`一共有8个元素，`reshape(2, 4)`只改变形状，不改变元素个数，因此`size`为8，也等于`2×4`。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "一维数组的转置仍然是一维数组。 ```python import numpy as np a = np.arange(4) print(a) print(a.T) print(a.T.shape) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "",
  "analysis": "** 课程明确指出：一维数组的转置还是一维数组。对`np.arange(4)`取`.T`，结果仍为`array([0, 1, 2, 3])`，`shape`仍是`(4,)`，不会变成`(4, 1)`或`(1, 4)`。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "根据课程表3-1，NumPy数组的常用属性包括哪些？",
  "type": "多选题",
  "diff": "易",
  "opts": [
   "A. ndim",
   "B. size",
   "C. shape",
   "D. reshape"
  ],
  "answer": "",
  "analysis": "** 表3-1给出的常用属性包括`ndim`、`size`、`shape`、`dtype`和`T`。`reshape`是用来改变数组形状的函数（既可作为`np.reshape()`，也可作为数组的成员函数），不属于本节所列的结构属性。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "下列代码执行后，`a.T`的`shape`是什么？ ```python import numpy as np a = np.arange(8).reshape(2, 4) print(a.T) print(a.T.shape) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. (2, 4)",
   "B. (4, 2)",
   "C. (8,)",
   "D. (1, 8)"
  ],
  "answer": "",
  "analysis": "** `a`的形状是`(2, 4)`，转置交换轴0与轴1，`shape`变为`(4, 2)`。课程中`a.T`的输出为`array([[0, 4], [1, 5], [2, 6], [3, 7]])`，即4行2列。转置后`size`仍为8，`ndim`仍为2，但形状已经互换。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "对下列数组`a`，说法正确的有哪些？ ```python import numpy as np a = np.arange(8).reshape(2, 4) print(a.ndim) print(a.size) print(a.shape) print(a.T.shape) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `a.ndim`的值为2",
   "B. `a.size`的值为8",
   "C. `a.shape`的值为`(2, 4)`",
   "D. `a.T.shape`的值为`(2, 4)`"
  ],
  "answer": "",
  "analysis": "** 二维数组`ndim`为2，元素个数`size`为8，`shape`为`(2, 4)`。转置后形状变为`(4, 2)`，因此D错误。记住：`.T`改变的是各轴长度的排列顺序，不改变元素总数。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "`dtype`属性给出的是数组对象本身的类型，而不是数组元素的数据类型。 ```python import numpy as np a = np.arange(8).reshape(2, 4) print(a.dtype) b = np.arange(6, dtype=np.int16) print(b.dtype) ```",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** `dtype`表示数组元素的数据类型，不是`a`这个对象的类型。课程示例中`a.dtype`输出为`dtype('int32')`，指每个元素为整型。创建时若不指定`dtype`，将由系统自动确定；也可以像`b`那样用参数指定，例如`dtype=np.int16`。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "结合下列代码，分别说明`ndim`、`size`、`shape`、`dtype`、`T`的含义，并写出各属性对应的结果。 ```python import numpy as np a = np.arange(8).reshape(2, 4) print(a.ndim) print(a.size) print(a.shape) print(a.dtype) print(a.T) ```",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分时核对五个属性的含义与结果是否对应。`reshape`不改变`size`。`dtype`因运行环境可能为`int32`或`int64`，能说明“它是元素类型、未指定则由系统自动确定”即可给分。转置必须指出交换行列后新`shape`为`(4, 2)`，或写出课程中的具体数组。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "下列代码执行后，输出的四个值依次是什么？ ```python import numpy as np a = np.arange(12).reshape(2, -1) b = a.T print(b.shape, b.ndim, b.size, a.shape) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. (6, 2) 2 12 (2, 6)",
   "B. (2, 6) 2 12 (2, 6)",
   "C. (6, 2) 6 12 (6, 2)",
   "D. (12,) 1 12 (2, 6)"
  ],
  "answer": "",
  "analysis": "** `np.arange(12)`共12个元素，`reshape(2, -1)`指定第一维为2，`-1`表示按元素总数自动推断第二维为6，故`a.shape`为`(2, 6)`。`b = a.T`后`b.shape`为`(6, 2)`，仍是二维所以`ndim`为2，元素个数不变所以`size`为12。不要把`-1`理解成变成一维，也不要把某一维的长度6误写成`ndim`。原数组`a`的形状不会因为对`b`转置而改变。"
 },
 {
  "cat": "NumPy分析/3.1.2",
  "title": "NumPy数组属性",
  "q": "为什么一维数组取`T`后形状不变，而二维数组取`T`后行、列互换？请从“数组的轴”出发说明，并对照下列两段代码写出各自的`ndim`、`shape`与转置结果。 ```python import numpy as np a = np.arange(4) print(a.ndim, a.shape) print(a.T) print(a.T.ndim, a.T.shape) b = np.arange(8).reshape(2, 4) print(b.ndim, b.shape) print(b.T) print(b.T.ndim, b.T.shape) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点有三。第一，能指出一维只有轴0、二维有轴0和轴1。第二，能说明`T`的本质是交换轴，而不是把数组“竖过来变成两维”。第三，两段代码的`ndim`、`shape`与转置结果正确。只背“一维转置还是一维”而不讲轴，或把一维转置写成`(4, 1)`，都应扣分。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "执行下列代码后，表达式 `a[0][-1]` 的值是多少？ ```python import numpy as np a = np.arange(8).reshape(2, 4) print(a[0][-1]) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 3",
   "B. 4",
   "C. 7",
   "D. 0"
  ],
  "answer": "A",
  "analysis": "** `a` 的形状为 `(2, 4)`，内容为 `[[0, 1, 2, 3], [4, 5, 6, 7]]`。`a[0]` 取出第0行 `[0, 1, 2, 3]`，`[-1]` 为负索引，取该行最后一个元素 3。索引用法与Python可迭代对象相同，同时支持正索引和负索引。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "通过索引访问Numpy数组元素时，只能使用从0开始的正索引，不能使用负索引。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语料明确指出，通过索引访问数组元素的方法与Python访问可迭代对象的方法相同，有正索引和负索引两种。例如 `a[0][-1]` 中的 `-1` 就是负索引。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "执行下列代码时，`a[:, 1:3]` 的含义是什么？ ```python import numpy as np a = np.arange(12).reshape(3, 4) print(a[:, 1:3]) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 按行切片，取出第1行和第2行的全部元素",
   "B. 按列切片，用冒号指定所有行，取出第1列和第2列",
   "C. 取出位于第1行第3列的单个元素",
   "D. 同时对行和列切片，取出右下角 2×2 子阵"
  ],
  "answer": "B",
  "analysis": "** 二维及以上数组可对每个轴切片。第一个位置的冒号表示选取所有行，`1:3` 表示列方向取到第1、2列（切片右端点不包含）。按行切片应写 `a[1:3]`，同时切行和列应写 `a[1:3, 1:3]`，访问单个元素应写 `a[1, 2]`。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "执行下列代码后，原数组 `a` 保持不变，运算结果保存在新数组 `b` 中。 ```python import numpy as np a = np.arange(6) b = a + 3 print(a) print(b) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 数组与数进行运算时，数组的每一个元素会与该数进行运算，运算结果保存到一个新数组，原数组保持不变。因此 `a` 仍为 `array([0, 1, 2, 3, 4, 5])`，`b` 为 `array([3, 4, 5, 6, 7, 8])`。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "执行下列代码后，打印结果是什么？ ```python import numpy as np a = np.arange(12).reshape(3, 4) print(a[1:3, 1:3]) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `array([[5, 6], [9, 10]])`",
   "B. `array([[4, 5, 6], [8, 9, 10]])`",
   "C. `array([[1, 2], [5, 6]])`",
   "D. `array([[5, 6, 7], [9, 10, 11]])`"
  ],
  "answer": "A",
  "analysis": "** `a` 为 3 行 4 列，元素按行排列为 0 到 11。`1:3` 取第1、2行，`1:3` 取第1、2列，对应元素是 5、6 与 9、10。B 漏切了列的右边界理解，C 是前两行前两列的错位结果，D 把切片右端点误当成包含。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "与Python可迭代对象切片相比，Numpy数组切片的不同之处包括哪些？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对于二维及以上，Numpy数组对每个轴都可以切片",
   "B. 支持布尔索引，可用布尔数组或布尔列表选出索引值为真的元素",
   "C. numpy引入了视图，切片结果可能与原数组共享数据",
   "D. 切片得到的视图不再具有维度、形状、大小等属性"
  ],
  "answer": "ABC",
  "analysis": "** 语料指出切片与Python的三点不同正是：可对每个轴切片、支持布尔索引、引入视图。D 错误：尽管视图与原数组共享数据，它们仍是独立对象，各自有自己的维度、形状、大小等属性。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "执行下列代码后，数组 `e` 的结果是什么？ ```python import numpy as np a = np.arange(6) d = np.array([True, False, True, False, False, True]) e = a[d] print(e) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `array([0, 2, 5])`",
   "B. `array([0, 2, 3, 5])`",
   "C. `array([1, 3, 4])`",
   "D. `array([True, False, True])`"
  ],
  "answer": "A",
  "analysis": "** 布尔索引选出索引值为真的元素并生成新数组。`d` 中为 `True` 的位置是 0、2、5，对应 `a` 中的 0、2、5。B 是用布尔列表 `[True, False, True, True, False, True]` 索引时的结果，不能与本题的布尔数组混淆。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "关于下列代码的运算，说法正确的有哪些？ ```python import numpy as np a = np.arange(1, 4) b = np.arange(4, 7) print(a * b) print(a < b) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `a * b` 的结果为 `array([4, 10, 18])`",
   "B. `a < b` 的结果为 `array([True, True, True])`",
   "C. 两数组形状相同，对应位置上的元素分别相乘或比较",
   "D. `a * b` 的结果是一个标量 32，表示两数组的点积"
  ],
  "answer": "ABC",
  "analysis": "** `a` 为 `[1, 2, 3]`，`b` 为 `[4, 5, 6]`，形状均为 `(3,)`。数组与数组运算要求形状相同，对应位置元素执行相应运算：1×4=4，2×5=10，3×6=18；比较则全部为 `True`。D 把逐元素乘法误当成点积，点积不是本节数组基本运算的结果形式。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "什么是视图？执行下列代码后，数组 `a` 的内容是什么？请说明原因，并指出视图与原数组是否为同一个对象。 ```python import numpy as np a = np.arange(6) b = a[1:4] b[0] = -1 print(a) print(b.shape) print(a.shape) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①准确给出视图定义（共享相同数据的不同数组对象）；②写出 `a` 的正确结果；③说明切片产生视图、修改互相影响；④指出二者仍是独立对象并能用 shape 等属性区分。作用是避免不必要的数据复制、节省内存。"
 },
 {
  "cat": "NumPy分析/3.1.3",
  "title": "NumPy数组基本操作",
  "q": "结合下列代码，分别说明 `b`、`d`、`f` 是视图还是新数组，修改它们是否会改变对应的原数组，并写出四处 `print` 的输出。 ```python import numpy as np a = np.arange(6) b = a[1:4] b[0] = -1 print(a) c = np.arange(6) d = c[c > 3] d[0] = 100 print(c) e = np.arange(6) f = e + 3 print(e) print(f) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①切片→视图，共享数据、修改联动；②布尔索引→新数组，选出索引值为真的元素，不改原数组；③数组与数运算→新数组，原数组保持不变；④四处输出数值全部正确。本题综合考查切片、布尔索引与运算三类基本操作的副作用差异。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "NumPy函数的使用形式有两种，下列说法正确的是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 只能写成np.函数名()，不能写成数组对象.函数名()",
   "B. 只能写成数组对象.函数名()，不能写成np.函数名()",
   "C. 一种是numpy模块的函数np.函数名()，另一种是numpy数组的成员函数数组对象.函数名()",
   "D. 模块函数与成员函数必须同时调用才能生效"
  ],
  "answer": "",
  "analysis": "** 课程语料明确给出两种使用形式：numpy模块的函数写作np.函数名()，数组的成员函数写作数组对象.函数名()。二者是并列的调用方式，不是只能用其中一种，也不需要同时调用。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "数组的sort()会对数组进行原地排序，即直接修改数组本身，使其元素按照升序排列。 ```python import numpy as np a = np.array([40, 7, 8, 48, 13, 49]) a.sort() print(a) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "",
  "analysis": "** sort()是原地排序：上例执行后a变为array([7, 8, 13, 40, 48, 49])，原数组已被改写，元素按升序排列。该方法的返回值是None，不要把它理解成“返回一个新数组、原数组不变”。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "NumPy数组没有降序排序的功能。若要对一维数组实现降序，正确做法是？ ```python import numpy as np a = np.array([40, 7, 8, 48, 13, 49]) a.sort() a = a[::-1] print(a) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 直接调用a.sort(reverse=True)",
   "B. 先执行a.sort()，再令a = a[::-1]",
   "C. 调用np.descsort(a)",
   "D. 只能把数组转成列表后再排序"
  ],
  "answer": "",
  "analysis": "** 课程语料指出数组没有降序排序功能，实现降序的方法是先sort()升序，再用切片a[::-1]反转。上例输出为array([49, 48, 40, 13, 8, 7])。A、C并非本节给出的用法。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "reshape()既是numpy模块的函数，又是数组的成员函数，因此既可写np.reshape(a, (2,4))，也可写a.reshape(2,4)。 ```python import numpy as np a = np.arange(8) b = np.reshape(a, (2, 4)) c = a.reshape(2, 4) print(b.shape, c.shape) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "",
  "analysis": "** reshape()属于“两种方式都能用”的函数。模块函数要传入数组a，成员函数由数组对象直接调用、无须再把a当作第一个参数。上例中b与c的形状都是(2, 4)。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "执行下列程序后，数组a的结果是？ ```python import numpy as np a = np.array([[32, 23, 47, 39], [18, 18, 32, 13], [1, 32, 31, 2]]) a.sort(axis=1) print(a) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. array([[1, 18, 31, 2], [18, 23, 32, 13], [32, 32, 47, 39]])",
   "B. array([[23, 32, 39, 47], [13, 18, 18, 32], [1, 2, 31, 32]])",
   "C. array([[32, 23, 47, 39], [18, 18, 32, 13], [1, 32, 31, 2]])",
   "D. array([[1, 2, 13, 18], [18, 23, 31, 32], [32, 32, 39, 47]])"
  ],
  "answer": "",
  "analysis": "** axis=1表示按轴1排序，即在水平方向上、对每一行内部升序。三行分别变为[23,32,39,47]、[13,18,18,32]、[1,2,31,32]。A是axis=0（竖直方向、按列排序）的结果；C是未排序的原数组；D把整个二维数组当作一个序列打乱了行间关系，不是按轴排序。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "关于NumPy用于计算的两类函数，下列说法正确的有？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 逐元素操作的函数对每个元素分别计算，返回一个新数组，如sqrt、sin、cos",
   "B. 逐元素操作会改变数组的整体结构（如行数、列数）",
   "C. 聚合操作将数组中所有元素进行计算，返回一个标量或指定轴上的累计结果，如sum、max",
   "D. 聚合操作可以对整个数组或特定轴进行操作，从而改变数组的维度"
  ],
  "answer": "",
  "analysis": "** 课程把计算函数分成两类：逐元素操作不改变数组整体结构，只对每个元素单独计算并返回新数组，故B错误。聚合操作可对全部元素或指定轴汇总，未指定轴时常得到一个标量，指定轴后维度会下降，C、D正确。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "执行下列程序后，输出结果是？ ```python import numpy as np a = np.array((4, 9, 16, 25)).reshape(2, 2) print(np.sqrt(a)) print(a) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 输出[[2, 3], [4, 5]]（整数），并且a被改写成平方根",
   "B. 输出[[2., 3.], [4., 5.]]（浮点数），a仍为[[4, 9], [16, 25]]",
   "C. 输出标量2.0，因为sqrt是聚合函数",
   "D. 输出一维数组[2., 3., 4., 5.]，形状被拉平"
  ],
  "answer": "",
  "analysis": "** sqrt属于逐元素操作：保持2×2整体结构，对4、9、16、25分别开方得到浮点数2.、3.、4.、5.，并返回新数组，原数组a不变。它不是聚合函数，也不会把二维拉成一维。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "执行下列程序后，三次打印结果依次为？ ```python import numpy as np a = np.array([[4, 4, 5, 2], [5, 4, 2, 7], [8, 8, 4, 9]]) print(a.sum()) print(a.sum(axis=0)) print(a.sum(axis=1)) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 62；array([17, 16, 11, 18])；array([15, 18, 29])",
   "B. 62；array([15, 18, 29])；array([17, 16, 11, 18])",
   "C. array([15, 18, 29])；62；array([17, 16, 11, 18])",
   "D. 62；62；62"
  ],
  "answer": "",
  "analysis": "** 未指定参数时对全部元素求和，4+4+5+2+5+4+2+7+8+8+4+9=62，结果是一个数。axis=0按列（竖直方向）求和，得到长度为4的一维数组[17,16,11,18]。axis=1按行（水平方向）求和，得到长度为3的一维数组[15,18,29]。B把按列、按行结果对调了。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "简述where()函数的两种用法，并结合下列代码写出两处print的结果。 ```python import numpy as np a = np.array([12, 21, 32, 14, 36]) print(np.where(a > 20)) b = a * 2 c = a // 2 print(np.where(a > 20, b, c)) ```",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①能区分“只给条件→返回索引”和“条件+x+y→按真假在x、y中取值”；②指出x、y须与原数组形状相同；③能根据代码写出两组正确结果，并说明第一个元素因不满足条件而取自c。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "阅读下列代码，正确的说法有？ ```python import numpy as np a = np.arange(6).reshape(3, 2) b = np.arange(3, 5) c = np.arange(3, 9).reshape(2, 3) print(a.shape, b.shape, c.shape) print(np.dot(a, b)) print(np.dot(a, c)) ```",
  "type": "多选题",
  "diff": "难",
  "opts": [
   "A. a的形状为(3, 2)，b的形状为(2,)，np.dot(a, b)的结果是array([4, 18, 32])，形状为(3,)",
   "B. 二维数组与一维数组进行点积，是二维数组的每一行与一维数组进行点积，结果是一维数组",
   "C. 二维数组与二维数组进行点积，要求第一个数组的列数等于第二个数组的行数；a与c满足该条件",
   "D. np.dot(a, c)的形状为(2, 2)"
  ],
  "answer": "",
  "analysis": "** a为[[0,1],[2,3],[4,5]]，b为[3,4]，按行点积：0*3+1*4=4，2*3+3*4=18，4*3+5*4=32，故A、B正确。c为[[3,4,5],[6,7,8]]，形状(2,3)，与a的列数2匹配，矩阵乘积形状应为(3,3)，结果为[[6,7,8],[24,29,34],[42,51,60]]，故C正确、D错误。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "结合下列代码，分别说明一维与一维、二维与一维、二维与二维点积的含义，并写出三处print的输出。 ```python import numpy as np u = np.array([1, 2, 3]) v = np.array([4, 5, 6]) print(np.dot(u, v)) a = np.arange(6).reshape(3, 2) b = np.arange(3, 5) print(np.dot(a, b)) c = np.arange(3, 9).reshape(2, 3) print(np.dot(a, c)) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①三种情形的含义表述与课程语料一致（向量点积、按行点积、矩阵乘积）；②写出二维×二维的形状约束；③三处数值结果全部正确，并能对应到具体计算过程。"
 },
 {
  "cat": "NumPy分析/3.1.4",
  "title": "NumPy函数",
  "q": "np.where(a > 20)会直接返回数组a中大于20的那些元素值。 ```python import numpy as np a = np.array([12, 21, 32, 14, 36]) print(np.where(a > 20)) ```",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 只传入条件时，where()的功能是返回满足条件的元素的索引，不是元素本身。上例输出为(array([1, 2, 4]),)，对应的是下标1、2、4，元素值21、32、36并未出现在该返回值中。若要按条件取出元素值，应使用布尔索引（如a[a>20]），或改用where(condition, x, y)做条件赋值。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "根据课程，NumPy常用的浮点数类型是哪一组？ ```python import numpy as np a = np.array([1.1, 2.3, 3.4], dtype=np.float32) print(a.dtype) b = np.random.rand(3) print(b.dtype) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. int8、int16、int32、int64",
   "B. uint8、uint16、uint32、uint64",
   "C. float16、float32、float64",
   "D. complex64、complex128"
  ],
  "answer": "",
  "analysis": "** 课程列出的浮点数类型是float16、float32、float64。A是整数类型，B是无符号整数类型。complex64是课程给出的复数类型，但并未列出complex128。上例中显式指定得到float32，`rand`未指定时自动确定为float64。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "如果创建数组时不指定数据类型，将由系统自动确定数据类型。 ```python import numpy as np a = np.arange(6) print(a.dtype) b = np.random.rand(3) print(b.dtype) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "",
  "analysis": "** 课程明确指出：如果创建数组时不指定数据类型，将由系统自动确定。`arange`生成整数数组，课程示例为`dtype('int32')`；`rand`生成`[0,1)`随机数，`dtype`为`dtype('float64')`。也可以在创建时用参数`dtype`另行指定。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "下列代码在课程示例中，`a.dtype`的输出是什么？ ```python import numpy as np a = np.arange(6) print(a.dtype) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. dtype('int16')",
   "B. dtype('int32')",
   "C. dtype('float32')",
   "D. dtype('float64')"
  ],
  "answer": "",
  "analysis": "** 未指定`dtype`时由系统自动确定。课程示例中`np.arange(6)`的`a.dtype`为`dtype('int32')`。不同运行环境也可能得到int64，但本节按课程示例选择int32。它不是浮点类型，也不是创建时才出现的int16。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "下列哪些属于课程列出的整数类型？ ```python import numpy as np print(np.dtype(np.int8), np.dtype(np.int16)) print(np.dtype(np.int32), np.dtype(np.int64)) print(np.dtype(np.float32)) ```",
  "type": "多选题",
  "diff": "易",
  "opts": [
   "A. int8",
   "B. int16",
   "C. int32",
   "D. float32"
  ],
  "answer": "",
  "analysis": "** 课程给出的整数类型为int8、int16、int32、int64。float32属于浮点数类型，不是整数类型。不要把类型名中的数字当成“第几种整数”，它表示每个元素占用的比特数。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "执行下列代码后，`b.dtype`是什么？ ```python import numpy as np b = np.random.rand(3) print(b.dtype) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. dtype('int32')",
   "B. dtype('float32')",
   "C. dtype('float64')",
   "D. dtype('float16')"
  ],
  "answer": "",
  "analysis": "** `np.random.rand`生成`[0,1)`均匀分布的随机数，系统自动确定为双精度浮点，课程示例`b.dtype`为`dtype('float64')`。未指定`dtype`时不会变成float32或float16，更不会是整数类型。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "关于在创建数组时指定数据类型，下列说法正确的有？ ```python import numpy as np a = np.arange(6, dtype=np.int16) print(a.dtype) b = np.array([1.1, 2.3, 3.4], dtype=np.float32) print(b.dtype) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可以通过参数dtype指定数据类型",
   "B. `np.arange(6, dtype=np.int16)`的dtype为int16",
   "C. `np.array([1.1, 2.3, 3.4], dtype=np.float32)`的dtype为float32",
   "D. 指定dtype后，查看类型必须写成`a.dtype()`，要加括号"
  ],
  "answer": "",
  "analysis": "** 课程给出两种指定方式：`arange`的`dtype=np.int16`，`array`的`dtype=np.float32`，对应B、C。查看类型用属性`a.dtype`，不要加括号，故D错误。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "`dtype`属性给出的是数组对象本身的Python类型，而不是数组元素的数据类型。 ```python import numpy as np a = np.arange(6) print(a.dtype) print(type(a)) ```",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** `dtype`表示数组元素的数据类型，例如课程中的`dtype('int32')`。数组对象本身的类型要用`type(a)`查看，结果是`numpy.ndarray`。二者不要混淆。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "结合下列代码，说明如何查看数组的数据类型、如何在创建时指定数据类型，并写出四处print的结果（按课程示例）。 ```python import numpy as np a = np.arange(6) print(a.dtype) b = np.random.rand(3) print(b.dtype) c = np.arange(6, dtype=np.int16) print(c.dtype) d = np.array([1.1, 2.3, 3.4], dtype=np.float32) print(d.dtype) ```",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①能区分“自动确定”与“参数dtype指定”；②四处结果与课程示例一致（int32、float64、int16、float32）；③指出查看时不加括号。若写int64但能说明“未指定时由系统自动确定、课程示例为int32”，可酌情给分。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "下列代码执行后，四个dtype从左到右依次是什么？（未指定时按课程示例） ```python import numpy as np a = np.arange(6) b = np.random.rand(3) c = np.arange(6, dtype=np.int16) d = np.array([1.1, 2.3, 3.4], dtype=np.float32) print(a.dtype, b.dtype, c.dtype, d.dtype) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. int32, float64, int16, float32",
   "B. int16, float32, int16, float32",
   "C. int32, float32, int32, float64",
   "D. float64, float64, int16, float32"
  ],
  "answer": "",
  "analysis": "** `a`、`b`未指定dtype，由系统自动确定：`arange`为整数（课程示例int32），`rand`为float64。`c`、`d`在创建时分别指定为int16、float32。B误把未指定的也当成指定类型；C把`rand`当成float32、把`c`当成未指定；D把`arange`误判为浮点。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "为什么说“创建时指定dtype”和“用astype()转换”不是一回事？请对照下列代码，说明a、b、c三个数组的dtype，以及转换后原数组a是否被改写。 ```python import numpy as np a = np.arange(6) b = np.arange(6, dtype=np.int16) c = a.astype(np.int16) print(a.dtype) print(b.dtype) print(c.dtype) print(a.dtype) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①能区分“创建参数dtype”与“astype返回新数组”；②指出原数组a不被改写；③写出b、c为int16，a保持原类型；④能提到降精度可能丢数据。只背“astype会转换”而不说返回新数组，应扣分。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "课程列出的复数类型是complex64；创建数组时可以用`dtype=np.complex64`指定。 ```python import numpy as np a = np.array([1+2j], dtype=np.complex64) print(a.dtype) ```",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 课程常用数据类型包括复数类型（complex64）。上例在创建时用参数`dtype=np.complex64`指定，`a.dtype`为`dtype('complex64')`。不要把它与float64或int64混为一谈。"
 },
 {
  "cat": "NumPy分析/3.2.1",
  "title": "NumPy数据类型概述",
  "q": "阅读下列代码，正确的说法有哪些？（未指定时按课程示例） ```python import numpy as np a = np.arange(6) b = np.array([1.1, 2.3, 3.4], dtype=np.float32) c = np.array([1, 2, 3.4]) print(a.dtype) print(b.dtype) print(c.dtype) ```",
  "type": "多选题",
  "diff": "难",
  "opts": [
   "A. a未指定dtype，由系统自动确定为整数类型（课程示例为int32）",
   "B. b在创建时指定为float32，因此dtype为float32",
   "C. c的列表中既有整数又有小数，系统自动确定为浮点类型（一般为float64）",
   "D. c会因为出现了整数而保持int32，小数被截成整数"
  ],
  "answer": "",
  "analysis": "** 未指定dtype时由系统自动确定：`arange`得到整数数组，课程示例为int32；列表中一旦出现小数，整个数组通常提升为浮点（一般为float64），不会把3.4截成整数，故C正确、D错误。`b`显式指定为float32，不受列表里小数“默认float64”的影响。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "下列代码执行后，`b.dtype`是什么？ ```python import numpy as np a = np.arange(6) b = a.astype(np.int16) print(b.dtype) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. dtype('int32')",
   "B. dtype('int16')",
   "C. dtype('float64')",
   "D. dtype('float32')"
  ],
  "answer": "",
  "analysis": "** `astype(np.int16)`把数组元素类型转换为`int16`，并返回新数组`b`，因此`b.dtype`为`dtype('int16')`。课程示例中正是这一结果。不要把原数组可能的默认类型`int32`或随机数组的`float64`当成转换后的类型。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "`astype()`会直接修改原数组的数据类型，不会产生新数组。 ```python import numpy as np a = np.arange(6) b = a.astype(np.int16) print(a.dtype) print(b.dtype) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "",
  "analysis": "** 课程明确指出：`astype()`用于将数组的元素类型转换为指定的类型，并返回一个新的数组，而不改变原数组。上面代码中`b`是新数组，`a.dtype`保持创建时的类型，`b.dtype`才是`int16`。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "下列代码中，`a.dtype`是什么？ ```python import numpy as np a = np.random.rand(4) print(a.dtype) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. dtype('int32')",
   "B. dtype('int16')",
   "C. dtype('float32')",
   "D. dtype('float64')"
  ],
  "answer": "",
  "analysis": "** 创建数组时若不指定数据类型，将由系统自动确定。`np.random.rand()`生成`[0, 1)`上的随机小数，课程示例中其`dtype`为`dtype('float64')`。若要得到`float32`，需要再调用`astype(np.float32)`，或在创建时用`dtype`参数指定。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "关于`astype()`方法，下列说法正确的有哪些？ ```python import numpy as np a = np.arange(6) b = a.astype(np.int16) c = np.random.rand(4) d = c.astype(np.float32) print(a.dtype, b.dtype) print(c.dtype, d.dtype) ```",
  "type": "多选题",
  "diff": "易",
  "opts": [
   "A. `astype()`可以将数组从一种数据类型转换为另一种",
   "B. `astype()`返回一个新的数组，而不改变原数组",
   "C. 整数数组和浮点数数组都可以用`astype()`转换",
   "D. `astype()`只能把数组转成`int16`这一种类型"
  ],
  "answer": "",
  "analysis": "** A、B与课程对`astype()`的定义一致。C正确：课程既演示了`int32`转`int16`，也演示了`float64`转`float32`。D错误：目标类型由参数指定，不限于`int16`。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "下列代码执行后，`a.dtype`是什么？ ```python import numpy as np a = np.arange(6, dtype=np.int32) a.astype(np.int16) print(a.dtype) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. dtype('int16')",
   "B. dtype('int32')",
   "C. dtype('float64')",
   "D. dtype('float32')"
  ],
  "answer": "",
  "analysis": "** `astype()`返回新数组，但本例没有用变量接收返回值，转换结果被丢弃。原数组`a`在创建时由`dtype=np.int32`指定为`int32`，不会被这次调用改写，因此打印结果仍是`dtype('int32')`。正确写法应是`b = a.astype(np.int16)`，再用`b`。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "下列代码涉及从高精度类型到低精度类型的转换。说法正确的有哪些？ ```python import numpy as np a = np.array([1.1, 2.3, 3.4], dtype=np.float64) b = a.astype(np.int32) c = a.astype(np.float32) print(a.dtype, b.dtype, c.dtype) print(a) print(b) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `float64`转`int32`可能会丢失数据的精度",
   "B. `float64`转`float32`也属于高精度转到低精度",
   "C. 转换完成后，原数组`a`的`dtype`会变成`int32`",
   "D. 必须用返回值接收`astype()`的结果，原数组本身不会被改写"
  ],
  "answer": "",
  "analysis": "** 课程强调：从高精度类型转换为低精度类型时（如`float64`转`int32`）可能会丢失精度，需要慎重对待，因此A正确。`float32`比`float64`位宽更窄，B也正确。`astype()`返回新数组、不改变原数组，故C错误、D正确。本例中`b`会变成`array([1, 2, 3])`，小数部分被截去，而`a`仍是`float64`的`[1.1, 2.3, 3.4]`。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "把`float64`数组转换为`int32`时，一定不会丢失数据的精度。 ```python import numpy as np a = np.array([1.1, 2.3, 3.4], dtype=np.float64) b = a.astype(np.int32) print(a) print(b) ```",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 课程明确要求：当从高精度类型转换为低精度类型时（如`float64`转`int32`），可能会丢失数据的精度，需要慎重对待。上面代码中`a`为`[1.1, 2.3, 3.4]`，转换后`b`为`[1, 2, 3]`，小数部分被截去，精度已经丢失。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "结合下列代码，说明`astype()`的作用、是否改变原数组，并写出`a.dtype`、`b.dtype`以及再次打印`a.dtype`的结果。 ```python import numpy as np a = np.arange(6) print(a.dtype) b = a.astype(np.int16) print(b.dtype) print(a.dtype) ```",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点有三。第一，能说出“转换为指定类型并返回新数组”。第二，能指出原数组不被改变，因此必须用`b`接收返回值。第三，三个`dtype`对应正确：`b`一定是`int16`；`a`在转换前后一致。若运行环境是`int64`而不是课程中的`int32`，只要说明“未指定则由系统自动确定、转换后原数组类型不变”即可给分。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "下列代码执行后，数组`b`的元素值和`dtype`分别是什么？ ```python import numpy as np a = np.array([1.9, 2.3, 3.4], dtype=np.float64) b = a.astype(np.int32) print(b) print(b.dtype) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `[1.9, 2.3, 3.4]`，dtype('float64')",
   "B. `[2, 2, 3]`，dtype('int32')",
   "C. `[1, 2, 3]`，dtype('int32')",
   "D. `[1, 2, 3]`，dtype('float64')"
  ],
  "answer": "",
  "analysis": "** 这是高精度`float64`转到低精度`int32`。`astype()`返回新数组，元素按整数规则截去小数部分（不是四舍五入），因此`1.9`变成`1`而不是`2`，结果为`array([1, 2, 3])`。新数组的类型是参数指定的`int32`，不是原来的`float64`。A没有转换；B误用了四舍五入；D改了数值却没改类型。原数组`a`仍是`[1.9, 2.3, 3.4]`且`dtype`仍为`float64`。"
 },
 {
  "cat": "NumPy分析/3.2.2",
  "title": "NumPy数据类型转换",
  "q": "为什么课程强调`astype()`返回新数组，并且从高精度转到低精度要慎重？请对照下面两段代码，分别说明：第一段中创建时指定`dtype`与事后`astype()`有何不同、原数组类型变不变；第二段中数值和类型各发生了什么变化。 ```python import numpy as np p = np.arange(6, dtype=np.int16) print(p.dtype) q = np.arange(6) r = q.astype(np.int16) print(q.dtype, r.dtype) x = np.array([1.1, 2.3, 3.4], dtype=np.float64) y = x.astype(np.int32) print(x) print(y) print(x.dtype, y.dtype) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点有四。第一，能区分“创建时`dtype`参数指定”和“创建后`astype()`转换”两个步骤。第二，能说明`astype()`返回新数组、原数组`q`和`x`的类型与数值都不被改写。第三，能写出第二段转换后`y`为`[1, 2, 3]`、`dtype`为`int32`。第四，能点明`float64`转`int32`属于高精度转低精度，会丢失小数部分。只背定义而不对照代码，或把`1.1`写成四舍五入成`1`却说“没有丢失精度”，都应扣分。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "下列代码中`a`与`b`形状不同却能相加。Numpy数组广播机制的功能是什么？ ```python import numpy as np a = np.arange(6).reshape(3, 2) b = np.arange(1, 3) print(a.shape) print(b.shape) print(a + b) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 用于处理不同形状数组之间运算",
   "B. 用于把数组元素转换成另一种数据类型",
   "C. 用于按轴对数组做求和、求最大值等聚合",
   "D. 用于识别并替换数组中的NaN和无穷大"
  ],
  "answer": "A",
  "analysis": "** 语料明确指出，广播机制的功能是处理不同形状数组之间的运算。本题中`a`形状为`(3, 2)`，`b`形状为`(2,)`，经广播对齐后才能相加。B属于数据类型转换，C属于聚合函数，D属于特殊数值处理，都不是本节内容。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "如果两个数组的维数不同，应在维数较小的数组后面补1，直到两个数组的维数相同。 ```python import numpy as np a = np.arange(6).reshape(3, 2) b = np.arange(1, 3) print(a.ndim, a.shape) print(b.ndim, b.shape) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 规则一是在维数较小的数组前面补1，不是后面。本题`a.ndim`为2、`b.ndim`为1，应把`b`的形状由`(2,)`补成`(1, 2)`。若误补在后面变成`(2, 1)`，将无法与`(3, 2)`对齐。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "执行下列代码后，`a + b`的结果是什么？ ```python import numpy as np a = np.arange(6).reshape(3, 2) b = np.arange(1, 3) print(a + b) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `array([[1, 3], [3, 5], [5, 7]])`",
   "B. `array([[1, 2], [3, 4], [5, 6]])`",
   "C. `array([[0, 1, 1, 2], [2, 3, 1, 2], [4, 5, 1, 2]])`",
   "D. 形状不同，无法运算并报错"
  ],
  "answer": "A",
  "analysis": "** 这是【例3-1】。`a`为`[[0, 1], [2, 3], [4, 5]]`，`b`为`[1, 2]`。按规则一把`b`扩为`(1, 2)`，再按规则二扩为`(3, 2)`，对应位置相加得到`[[1, 3], [3, 5], [5, 7]]`。B相当于把每个元素都加1，C把两个数组拼接，D忽略了广播。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "广播机制的机理是：使两个数组的维数相同，且各维度的长度相同。 ```python import numpy as np a = np.arange(6).reshape(3, 2) b = np.arange(1, 3) print(a.shape) print(b.shape) print((a + b).shape) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料对机理的表述就是“使两个数组的维数相同，且各维度的长度相同”。本题运算前`a`为`(3, 2)`、`b`为`(2,)`，广播对齐后才能相加，结果数组形状为`(3, 2)`，维数与各维长度均已相同。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "执行下列代码后，`a + b`的结果是什么？ ```python import numpy as np a = np.arange(6).reshape(2, 3) b = np.arange(1, 3).reshape(2, 1) print(a + b) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `array([[1, 2, 3], [5, 6, 7]])`",
   "B. `array([[1, 2, 3], [4, 5, 6]])`",
   "C. `array([[1, 3], [5, 7]])`",
   "D. 第一维或第二维长度不同，无法运算并报错"
  ],
  "answer": "A",
  "analysis": "** 这是【例3-2】。`a`形状`(2, 3)`，`b`形状`(2, 1)`，维数相同无须使用规则一。第一维都是2；第二维3与1，按规则二把`b`的第二维扩为3。`b`实际参与运算的是`[[1, 1, 1], [2, 2, 2]]`，与`a`相加得到`[[1, 2, 3], [5, 6, 7]]`。B漏加了第二行的2，C误当成按列压缩，D忽略了长度为1的维可以扩充。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "关于下列代码中`a`与`b`能够相加所依据的广播规则，说法正确的有哪些？ ```python import numpy as np a = np.arange(6).reshape(3, 2) b = np.arange(1, 3) print(a.shape) print(b.shape) print(a + b) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 若两个数组维数不同，在维数较小的数组前面补1，直到维数相同",
   "B. 从左到右逐维检查两个数组的长度，长度不同且有一个长度为1时，扩充长度为1的维度",
   "C. 某一维长度不同且两个长度都不为1时，不能扩充",
   "D. 只要两个数组的元素总个数相同，就可以广播"
  ],
  "answer": "ABC",
  "analysis": "** A是规则一，B、C是规则二。本题先把`b`由`(2,)`补成`(1, 2)`，再把长度为1的维扩成3。D错误：广播看的是各维长度能否对齐，不是元素总个数是否相等。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "下列代码中`a`与`b`能否直接做加法？原因是什么？ ```python import numpy as np a = np.arange(6).reshape(2, 3) b = np.arange(1, 4).reshape(3, 1) print(a.shape) print(b.shape) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 能，因为`b`的第二维长度为1，可以按规则二扩充",
   "B. 能，因为两个数组都是二维，维数已经相同",
   "C. 不能，`a`的第一维长度为2、`b`的第一维长度为3，长度不同且都不为1，不满足广播规则",
   "D. 不能，因为两个数组的维数不同"
  ],
  "answer": "C",
  "analysis": "** 这是【例3-3】。两者都是二维，维数相同，无须补1。从左到右检查时，第一维2与3不同且都不为1，不能扩充，因此不能运算。A只看到第二维的1，忽略了第一维已经无法对齐；B把“维数相同”误当成“可以广播”；D与事实不符，两者维数都是2。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "根据下列代码打印出的形状，哪些数组对能够成功相加（含广播后相加）？ ```python import numpy as np a1 = np.arange(6).reshape(3, 2) b1 = np.arange(1, 3) print(a1.shape, b1.shape) a2 = np.arange(6).reshape(2, 3) b2 = np.arange(1, 3).reshape(2, 1) print(a2.shape, b2.shape) a3 = np.arange(6).reshape(2, 3) b3 = np.arange(1, 4).reshape(3, 1) print(a3.shape, b3.shape) a4 = np.arange(6).reshape(2, 3) b4 = np.arange(6).reshape(2, 3) print(a4.shape, b4.shape) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `a1`与`b1`，形状`(3, 2)`与`(2,)`",
   "B. `a2`与`b2`，形状`(2, 3)`与`(2, 1)`",
   "C. `a3`与`b3`，形状`(2, 3)`与`(3, 1)`",
   "D. `a4`与`b4`，形状均为`(2, 3)`"
  ],
  "answer": "ABD",
  "analysis": "** A对应【例3-1】，B对应【例3-2】，都可以广播后相加。D两数组形状已经相同，按对应位置即可运算。C对应【例3-3】，第一维2与3不同且都不为1，不能扩充。不要因为C中两边都出现数字3就误判可以广播。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "结合下列代码，逐步说明规则一、规则二如何使`a`与`b`形状相同，并写出`a + b`的运算结果。 ```python import numpy as np a = np.arange(6).reshape(3, 2) b = np.arange(1, 3) print(a) print(b) print(a.shape) print(b.shape) print(a + b) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①正确写出`a`、`b`的形状与内容；②规则一必须说“在前面补1”，得到`(1, 2)`；③规则二要把长度为1的维扩成3，得到`(3, 2)`；④给出加法结果`[[1, 3], [3, 5], [5, 7]]`。漏写中间形状或把补1说成补在后面均应扣分。"
 },
 {
  "cat": "NumPy分析/3.3",
  "title": "NumPy数组广播机制",
  "q": "下列两段代码中，为什么第一段`a2 + b2`可以运算，第二段`a3`与`b3`却不满足广播规则？请分别写出对齐过程，并给出第一段的运算结果。 ```python import numpy as np a2 = np.arange(6).reshape(2, 3) b2 = np.arange(1, 3).reshape(2, 1) print(a2.shape, b2.shape) print(a2 + b2) a3 = np.arange(6).reshape(2, 3) b3 = np.arange(1, 4).reshape(3, 1) print(a3.shape, b3.shape) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①指出两段都已是二维，关键差别在第一维能否对齐；②写出例3-2第二维1扩成3及加法结果；③写出例3-3第一维2与3都不能扩充；④能说明“两边都出现3并不等于可以广播”。只答“一个能加、一个不能加”而不写对齐过程不得满分。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "下列关于NumPy特殊数值的说法，正确的是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 特殊数值是指数组中所有绝对值很大的普通浮点数",
   "B. 特殊数值是指在特定计算过程中可能出现的特殊值，通常用来表示无法被常规数值定义的结果",
   "C. 特殊数值只包括NaN，不包括Inf",
   "D. 特殊数值只会在整数类型数组中出现"
  ],
  "answer": "",
  "analysis": "** 课程把特殊数值定义为特定计算中可能出现、用来表示无法被常规数值定义之结果的值，主要包括NaN和Inf。它不是“很大的普通数”，也不限于整数数组。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "NaN表示无效或未定义的数值，0除以0或对负数取平方根时可能出现NaN。 ```python import numpy as np print(np.array([0.0]) / 0) print(np.sqrt(np.array([-1.0]))) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "",
  "analysis": "** 两处运算的结果都是nan。NaN用来标记无效或未定义结果，与“无穷大”不是同一类特殊值。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "执行下列程序后，输出结果是？ ```python import numpy as np b = np.array([1, -1, 0]) print(b / 0) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. array([0., 0., 0.])",
   "B. array([ inf, -inf,  nan])",
   "C. array([ nan,  nan,  nan])",
   "D. 抛出ZeroDivisionError并中断程序"
  ],
  "answer": "",
  "analysis": "** 正数除以零得到正无穷+inf，负数除以零得到负无穷-inf，0除以0得到nan。NumPy用这些特殊数值表示结果，而不是像纯Python整数除零那样直接异常退出。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "对含有NaN的数组执行np.sum，结果仍是去掉NaN后的有效数值和，因为求和会自动跳过NaN。 ```python import numpy as np a = np.array([1, 2, np.nan, 4]) print(np.sum(a)) print(a.dtype) ```",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "",
  "analysis": "** 不加处理时特殊数值会传播到计算结果中，np.sum(a)的结果是nan，不是1+2+4=7。要在求和时忽略NaN，应使用np.nansum。另外，数组因含NaN而成为float64。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "执行下列程序后，正确的说法有？ ```python import numpy as np a = np.array([1, 2, np.nan, np.inf, -np.inf]) print(np.isnan(a)) print(np.isinf(a)) print(a.dtype) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. np.isnan(a)的结果为array([False, False, True, False, False])",
   "B. np.isinf(a)的结果为array([False, False, False, True, True])",
   "C. np.isnan会把np.inf也判断为True",
   "D. 正无穷与负无穷都会使np.isinf为True，且该数组的dtype为float64"
  ],
  "answer": "",
  "analysis": "** isnan只在NaN位置为True，Inf不是NaN，故C错误。isinf在+inf和-inf处均为True。引入NaN/Inf后数组为浮点类型float64。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "执行下列程序后，valid_arr的值与形状分别是？ ```python import numpy as np arr = np.array([1, np.nan, np.inf, -np.inf, 2]) valid_arr = arr[~(np.isnan(arr) | np.isinf(arr))] print(valid_arr) print(valid_arr.shape) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. array([1., 2.])，形状为(2,)",
   "B. array([1., nan, 2.])，形状为(3,)",
   "C. array([1., inf, 2.])，形状为(3,)",
   "D. array([1, 2])，形状为(5,)"
  ],
  "answer": "",
  "analysis": "** isnan | isinf标出NaN以及正、负无穷共3个位置，~取反后只保留1和2。原数组因含特殊值而为浮点，故结果是array([1., 2.])，形状由(5,)变为(2,)。过滤会改变长度，不能仍写成(5,)。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "关于特殊数值的处理，下列说法正确的有？ ```python import numpy as np arr = np.array([1, np.nan, np.inf, -np.inf, 2]) valid_arr = arr[~(np.isnan(arr) | np.isinf(arr))] replaced_arr = np.nan_to_num(arr, nan=0, posinf=1e10, neginf=-1e10) arr2 = np.array([1, np.nan, 3, 4, 5]) mean_value = np.nanmean(arr2) print(valid_arr) print(replaced_arr) print(np.sum(arr2), np.nansum(arr2), mean_value) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可用布尔索引过滤：valid_arr = arr[~(np.isnan(arr) | np.isinf(arr))]，其中~是逻辑反运算，|是逻辑或运算",
   "B. np.nan_to_num()可将NaN替换为0，并将正无穷、负无穷分别替换为一个很大的数和一个很小的数",
   "C. 先用np.nanmean求出忽略NaN的均值，再执行arr[np.isnan(arr)] = mean_value，即可把NaN换成统计值",
   "D. np.sum()与np.nansum()在数组含NaN时效果完全相同"
  ],
  "answer": "",
  "analysis": "** A、B、C分别对应过滤、替换为特定值、替换为统计值。上例中valid_arr为array([1., 2.])，replaced_arr为array([1.e+00, 0.e+00, 1.e+10, -1.e+10, 2.e+00])，np.sum(arr2)为nan而np.nansum(arr2)为13.0、nanmean为3.25，故D错误。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "说明NaN、Inf的含义与典型产生原因，并指出数组计算中特殊数值的传播现象。结合下列代码写出两处print的结果。 ```python import numpy as np b = np.array([1, -1, 0]) print(b / 0) a = np.array([1, 2, np.nan, 4]) print(np.sum(a)) ```",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①NaN与Inf的含义区分清楚；②能指出0/0→nan、正数/0→+inf、负数/0→-inf；③说明sum等聚合会把nan传播到结果；④两处输出书写正确。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "执行下列程序后，mask中True的个数为3，因此valid的形状仍为(5,)，只是把3个特殊值变成了False对应的空位。 ```python import numpy as np arr = np.array([1, np.nan, np.inf, -np.inf, 2]) mask = np.isnan(arr) | np.isinf(arr) valid = arr[~mask] print(mask) print(valid) print(valid.shape) ```",
  "type": "判断题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** mask确实有3个True（1个NaN、2个Inf），前半句对；但布尔索引是按True/False筛选元素，不会保留“空位”，valid只含2个有效数，值为array([1., 2.])，形状是(2,)而不是(5,)。若要保持原形状，应使用替换（如nan_to_num或按位置赋统计值），而不是过滤。"
 },
 {
  "cat": "NumPy分析/3.4",
  "title": "特殊数值处理",
  "q": "阅读下列代码，说明各步作用，并写出五处print的输出。 ```python import numpy as np arr = np.array([1, np.nan, np.inf, -np.inf, 2]) print(np.isnan(arr)) print(np.isinf(arr)) valid_arr = arr[~(np.isnan(arr) | np.isinf(arr))] print(valid_arr) arr2 = np.array([1, np.nan, 3, 4, 5]) print(np.nansum(arr2)) mean_value = np.nanmean(arr2) arr2[np.isnan(arr2)] = mean_value print(arr2) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：①正确区分isnan与isinf的检测对象；②过滤表达式中~与|的含义及过滤后形状由(5,)变为(2,)；③nansum忽略NaN得到13.0，而普通sum会得到nan；④nanmean只对有效元素求平均得3.25，赋值后数组长度仍为5。五处输出的数值与形状都要写对。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "在 Pandas 中，序列（Series）是用于存储什么的结构？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 二维表格数据",
   "B. 一维数组",
   "C. 三维张量",
   "D. 键值对集合（与字典完全相同）"
  ],
  "answer": "B",
  "analysis": "** 语料定义：序列是用于存储一维数组的结构，要素为一组数据和对应的索引。二维表格对应的是数据框（DataFrame）。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "执行下列代码后，序列 `a` 的索引是什么？ ```python from pandas import Series a = Series([6.3, 43.1, 24.4]) print(a) ```",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `['6.3', '43.1', '24.4']`",
   "B. 默认整数索引 0、1、2",
   "C. 因未指定 `index` 而报错",
   "D. 自动生成字母索引 A、B、C"
  ],
  "answer": "B",
  "analysis": "** 用列表作为参数且不指定索引时，自动生成整数索引。`a[1]` 的值为 43.1。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "使用序列的 `drop()` 方法删除元素时，默认会直接修改原始序列。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** `drop()` 默认返回一个不含被删元素的新序列，不修改原始对象。要在原对象上删除，必须指定 `inplace=True`。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "无论序列对象有无自定义标签，都可以通过整数索引访问其中的元素。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程强调：无论对象有无标签，都可以通过索引访问；有标签时还可以用标签访问，便于理解数据而不必依赖整数索引。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "下列关于创建序列的说法，正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可用列表作为参数创建，不指定索引时自动生成整数索引",
   "B. 可用 numpy 数组作为参数，并用 `index` 指定标签",
   "C. 创建后不能再修改标签",
   "D. 创建后可通过对象的 `index` 属性修改标签"
  ],
  "answer": "ABD",
  "analysis": "** 课程给出两种创建方法：列表自动整数索引，numpy 数组加 `index` 指定标签。创建后还可通过 `index` 属性改标签，如 `gu.index=['幸福银行', '平安科技', '南方通信']`。C 错误。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "执行下列代码，输出中包含哪些标签？ ```python from pandas import Series gu = Series([6.3, 43.1, 24.4], index=['幸福银行', '平安科技', '南方通信']) print(gu['平安科技':'南方通信']) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅「平安科技」（标签切片不含结束标签）",
   "B. 「平安科技」和「南方通信」（标签切片包含结束标签）",
   "C. 「幸福银行」「平安科技」「南方通信」全部包含",
   "D. 报错，标签不能用于切片"
  ],
  "answer": "B",
  "analysis": "** 标签切片语法为 `对象['起始标签':'结束标签']`，切连续元素且包含结束标签。对比：索引切片 `gu[0:2]` 与 Python 相同，不含结束位置，只含「幸福银行」和「平安科技」。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "对已有序列执行 `对象['标签1'] = 值`，下列说法正确的是：",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 只能修改已有标签的值，标签不存在则报错",
   "B. 只能新增元素，不能修改已有值",
   "C. 标签已存在则修改其值，不存在则新增该标签及对应值",
   "D. 必须先调用 `append()` 才能增加元素"
  ],
  "answer": "C",
  "analysis": "** 增加和修改的方法与 Python 字典相同。例如 `gu['南方通信'] = 25.3` 修改已有价格，`gu['光明证券'] = 17.78` 增加新元素。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "关于序列的 `drop()` 方法，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 删除单个元素时，直接将标签传给 `drop`",
   "B. 删除多个元素时，将多个标签封装到列表中传入",
   "C. 传入的标签列表顺序必须与序列中标签顺序完全一致",
   "D. 若要在原始序列中删除，需要指定 `inplace=True`"
  ],
  "answer": "ABD",
  "analysis": "** 删除多个时列表中标签顺序可以与序列对象中的顺序不同。C 错误。`drop()` 默认不改原对象。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "对序列对象切片，切片得到的是原始对象的视图。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程明确：对序列对象切片，切片得到的是原始对象的视图。可用索引切片或标签切片两种方法。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "执行下列代码后，`南方通信` 对应的结果是多少？ ```python from pandas import Series open = Series([23.5, 6.1, 42.1], index=['南方通信', '幸福银行', '平安科技']) close = Series([44.3, 22.6, 6.5], index=['平安科技', '南方通信', '幸福银行']) print(close - open) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 44.3 − 23.5 = 20.8（按位置把两个序列的第一个元素相减）",
   "B. 22.6 − 23.5 = −0.9（按索引「南方通信」对齐后再减）",
   "C. 6.5 − 23.5 = −17.0",
   "D. 因两个序列的索引顺序不同而报错"
  ],
  "answer": "B",
  "analysis": "** 序列之间运算时 Pandas 按索引对齐，不按位置。`close` 中南方通信为 22.6，`open` 中南方通信为 23.5，差为 −0.9。同理，平安科技为 2.2，幸福银行为 0.4。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "请写出完整可运行代码：用 numpy 数组创建成绩序列 `chengji`（语文 70、数学 85、英语 90），然后取出数学成绩。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 使用 `Series` 与 `np.array`；② `index` 指定三门课程标签；③ 用标签 `'数学'` 访问，结果为 85。未指定标签而用位置访问可酌情给部分分。"
 },
 {
  "cat": "pandas分析/4.1.1",
  "title": "序列创建与基本操作",
  "q": "结合下列代码，回答三个问题：（1）`s[0:2]` 与 `s['数学':'英语']` 各包含哪些元素？（2）`s.drop('语文')` 之后原对象 `s` 是否还含「语文」？（3）若另有序列 `t` 的索引顺序与 `s` 不同，`s + t` 会按什么规则计算？ ```python from pandas import Series s = Series([70, 85, 90], index=['语文', '数学', '英语']) print(s[0:2]) print(s['数学':'英语']) s2 = s.drop('语文') print(s) print(s2) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 能区分索引切片与标签切片的闭开区间差异；② 说明 `drop` 默认不改原对象；③ 点明序列运算按索引对齐而非按位置。三点答全给满分。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "在 Pandas 中，数据框（DataFrame）是用于存储和处理什么的结构？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 一维数组",
   "B. 二维的表格数据",
   "C. 三维张量",
   "D. 仅含整数索引的列表"
  ],
  "answer": "B",
  "analysis": "** 语料定义：数据框是一种二维的数据结构，用于存储和处理表格数据，具有行和列的标签。一维数组对应的是序列（Series）。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "从字典创建数据框时，字典的键会成为什么？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 行标签",
   "B. 列标签",
   "C. 单元格的值",
   "D. 索引的 dtype"
  ],
  "answer": "B",
  "analysis": "** 从字典创建时，字典的键成为列标签，再用 `index` 参数指定行标签。例如键 `'平安科技'`、`'南方通信'`、`'幸福银行'` 即为三列的列名。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "使用数据框的 `drop()` 方法删除行或列时，默认会直接修改原始数据框。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** `drop()` 默认生成一个新对象，不修改原始对象。只有指定 `inplace=True` 才会直接修改原始对象。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "创建数据框对象时需要分别指定行、列标签。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程明确：创建数据框对象时需要分别指定行、列标签。从字典创建时键提供列标签、`index` 提供行标签；从二维列表创建时用 `index` 和 `columns` 分别指定。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "下列关于创建数据框的说法，正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可从字典创建，字典的键成为列标签，再用 `index` 指定行标签",
   "B. 可从二维列表创建，二维列表的元素成为行数据",
   "C. 从二维列表创建时，用 `index` 指定行标签、用 `columns` 指定列标签",
   "D. 从字典创建时，字典的键成为行标签"
  ],
  "answer": "ABC",
  "analysis": "** 课程给出两种常用方法。D 错误：从字典创建时键成为列标签，不是行标签。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "执行下列代码后，输出分别是什么？ ```python import pandas as pd from pandas import DataFrame data = {'平安科技':[45.2,47.1,46.5,49.8], '南方通信':[31.9,27.3,25.2,24.5], '幸福银行':[3.4,4.6,5.2,6.8]} df = DataFrame(data, index=['2024-01','2024-02','2024-03','2024-04']) new_row = pd.DataFrame({'平安科技':45.6, '南方通信':26.4, '幸福银行':5.8}, index=['2024-05']) df2 = pd.concat([df, new_row]) print(len(df)) print(len(df2)) print(df2.loc['2024-05', '幸福银行']) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 4、5、5.8",
   "B. 5、5、5.8",
   "C. 4、4、报错（原对象未追加成功）",
   "D. 5、5、3.4"
  ],
  "answer": "A",
  "analysis": "** pandas 2.x 用 `concat()` 在末尾追加新行，新行本身也是一个数据框。`concat` 返回新对象 `df2`（5 行），不修改 `df`（仍为 4 行）。新行标签 `2024-05` 对应「幸福银行」的值为 5.8。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "执行下列代码后，数据框的列标签包含哪些？ ```python from pandas import DataFrame data = [[45.2,31.9,3.4], [47.1,27.3,4.6], [46.5,25.2,5.2], [49.8,24.5,6.8]] col = ['平安科技', '南方通信', '幸福银行'] ind = ['2024-01','2024-02','2024-03','2024-04'] df = DataFrame(data, columns=col, index=ind) df['三一重工'] = [14.2, 15.6, 17.8, 16.5] print(list(df.columns)) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `['平安科技', '南方通信', '幸福银行']`（赋值不能增加列）",
   "B. `['平安科技', '南方通信', '幸福银行', '三一重工']`",
   "C. 因列表长度必须与列数相同而报错",
   "D. `['三一重工']`（原列被覆盖）"
  ],
  "answer": "B",
  "analysis": "** 增加新列的格式为 `对象['新列名'] = 数据`，数据可以是列表，长度要与原对象的行数相同（此处为 4）。该赋值在原数据框上直接增加一列，不覆盖已有列。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "关于数据框的 `drop()` 方法，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 删除行时标签名为行标签，`axis` 为 0 或者不提供该参数",
   "B. 删除列时标签名为列标签，`axis` 为 1",
   "C. 不指定 `axis` 时默认删除列",
   "D. `inplace=True` 直接修改原始对象，否则生成一个新对象"
  ],
  "answer": "ABD",
  "analysis": "** 例如 `df.drop('2024-02')` 删除一行；`df.drop('幸福银行', axis=1)` 删除一列。不提供 `axis` 时按行删除，不是按列。C 错误。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "在 pandas 2.x 版本中，应使用 `concat()` 方法在数据框末尾追加新行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程对照两个版本：2.x 使用 `concat()`；1.x 可通过 `append()` 追加。`append()` 在较新版本中已移除，当前环境应优先使用 `concat()`。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "执行下列代码后，排序结果的第一行姓名是什么？ ```python import pandas as pd data = {'姓名': ['张军', '王怡', '李和'], '年龄': [25, 30, 25], '体重':[67, 82, 76]} df = pd.DataFrame(data) print(df.sort_values(by=['年龄', '体重'])) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 王怡（先按体重，82 最大故排最前）",
   "B. 李和（年龄 25 且体重 76，按课件示例顺序）",
   "C. 张军（先按年龄升序，年龄同为 25 时再按体重升序，67 小于 76）",
   "D. 因 `by` 不能传入列表而报错"
  ],
  "answer": "C",
  "analysis": "** `sort_values()` 可按多列排序，默认升序。`by=['年龄','体重']` 表示先按年龄、年龄相同再按体重。张军与李和年龄均为 25，张军体重 67 小于李和 76，故第一行为张军，其次李和，最后王怡（年龄 30）。`sort_values` 返回新对象，不修改 `df`。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "请写出完整可运行代码：用字典创建股票月度价格数据框（行标签为 `2024-01` 至 `2024-04`，列标签为平安科技、南方通信、幸福银行，数值与课程示例一致），再增加一列「三一重工」，值为 `[14.2, 15.6, 17.8, 16.5]`，并打印数据框。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 用字典创建且键为列标签；② `index` 指定四个月份行标签；③ 用 `对象['新列名']=列表` 增加列，列表长度与行数相同。用二维列表加 `columns`、`index` 创建也可给满分。"
 },
 {
  "cat": "pandas分析/4.1.2",
  "title": "数据框创建与基本操作",
  "q": "结合下列代码，回答三个问题：（1）执行 `pd.concat([df, new_row])` 之后，原对象 `df` 是否已包含 `2024-05`？（2）若要删除列「幸福银行」且不修改 `df`，应如何调用 `drop()`？（3）`sort_values(by='体重', ascending=False)` 的第一行是谁？pandas 1.x 若用字典调用 `append()` 且未设 `ignore_index=True`，会有什么问题？ ```python import pandas as pd from pandas import DataFrame data = {'平安科技':[45.2,47.1], '南方通信':[31.9,27.3], '幸福银行':[3.4,4.6]} df = DataFrame(data, index=['2024-01','2024-02']) new_row = pd.DataFrame({'平安科技':45.6, '南方通信':26.4, '幸福银行':5.8}, index=['2024-05']) print(pd.concat([df, new_row])) print(df) info = {'姓名': ['张军', '王怡', '李和'], '年龄': [25, 30, 25], '体重':[67, 82, 76]} sdf = pd.DataFrame(info) print(sdf.sort_values(by='体重', ascending=False)) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 说明 `concat`/`append` 默认不改原对象，需赋值；② 删列必须 `axis=1`；③ 降序按体重，王怡在前；④ 点明 1.x 字典 `append` 需要 `ignore_index=True` 且会重建行标签。四点答全给满分。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "按行访问数据框时，选择器 `loc` 与 `iloc` 的分工是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `loc` 通过整数索引访问，`iloc` 通过标签访问",
   "B. `loc` 通过标签访问，`iloc` 通过整数索引访问",
   "C. 二者完全等价，可以互换",
   "D. `loc` 只能取单列，`iloc` 只能取单行"
  ],
  "answer": "B",
  "analysis": "** 课程表4-1：`loc` 通过标签进行数据访问，`iloc` 通过整数索引进行数据访问。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "按列访问数据框时，下列哪种写法把列标签当作字符串处理，因而可以处理任意字符的列标签？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `对象名.列标签`",
   "B. `对象名['列标签']`",
   "C. `对象名.loc['列标签']`",
   "D. `对象名.at['列标签']`"
  ],
  "answer": "B",
  "analysis": "** `对象名['列标签']` 必须加引号，列标签作为字符串，可处理任意字符。点号写法 `对象名.列标签` 对列名限制更严。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "数据框按列访问不支持切片，但可以用列标签列表一次选取多列。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程明确：按列访问不支持切片，但支持索引标签列表，语法为 `对象名[['列标签',…]]`，例如 `df[['平安科技', '幸福银行']]`。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "使用 `loc` 按行标签对数据框切片时，切片结果包含结束标签。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 例如 `df.loc['2024-01':'2024-02']` 会同时包含 2024-01 和 2024-02。对比：`df.iloc[0:2]` 按整数位置切片，不含结束位置。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "使用 `对象名.列标签`（属性方式）访问列时，列标签必须满足哪些要求？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 不能有空格",
   "B. 不能有特殊字符",
   "C. 不能与已有的方法或属性重名",
   "D. 必须是默认的整数列名"
  ],
  "answer": "ABC",
  "analysis": "** 点号访问对列标签要求较严：不能有空格、特殊字符，且不能与已有方法或属性重名。任意字符的列名应改用 `对象名['列标签']`。D 无此要求。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "执行下列代码，输出是什么？ ```python from pandas import DataFrame data = {'平安科技': [45.2, 47.1, 46.5, 49.8], '南方通信': [31.9, 27.3, 25.2, 24.5], '幸福银行': [3.4, 4.6, 5.2, 6.8]} df = DataFrame(data, index=['2024-01', '2024-02', '2024-03', '2024-04']) print(df[\"平安科技\"]['2024-02']) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 45.2",
   "B. 47.1",
   "C. 4.6",
   "D. 31.9"
  ],
  "answer": "B",
  "analysis": "** 先按列再取元素时，列标签在前、行标签在后。平安科技在 2024-02 的值为 47.1。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "沿用上题中的数据框 `df`（列顺序为平安科技、南方通信、幸福银行），`df.iloc[1, 2]` 的值是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 47.1",
   "B. 27.3",
   "C. 4.6",
   "D. 5.2"
  ],
  "answer": "C",
  "analysis": "** 行索引 1 对应 2024-02，列索引 2 对应幸福银行，交叉处为 4.6。注意 `iloc` 用整数位置，不是标签。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "关于快速访问器 `at[]` 和 `iat[]`，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 只用于访问单个元素",
   "B. 功能与 `loc`、`iloc` 类似，但性能得到优化、速度更快",
   "C. `at[]` 通过行和列的标签获取元素",
   "D. `iat[]` 同样通过行和列的标签获取元素"
  ],
  "answer": "ABC",
  "analysis": "** `iat[]` 通过整数位置访问单个元素，不是通过标签。行在前、列在后：`df.at['2024-02','平安科技']` 为 47.1，`df.iat[0, 2]` 为 3.4。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "`df.at['2024-02', '平安科技']` 与 `df.iat[0, 2]` 都是先行后列：前者用标签，后者用整数位置。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程强调 `at[]`「行标签在前，列标签在后」，`iat[]`「行索引在前，列索引在后」。`iat[0, 2]` 对应 2024-01 的幸福银行，值为 3.4。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "执行下列代码后，结果数据框包含哪些行列？ ```python from pandas import DataFrame data = {'平安科技': [45.2, 47.1, 46.5, 49.8], '南方通信': [31.9, 27.3, 25.2, 24.5], '幸福银行': [3.4, 4.6, 5.2, 6.8]} df = DataFrame(data, index=['2024-01', '2024-02', '2024-03', '2024-04']) print(df.iloc[0:2, 0:2]) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 前 2 行、前 2 列交叉处：2024-01 与 2024-02 的平安科技、南方通信",
   "B. 前 2 行的全部 3 列（含幸福银行）",
   "C. 前 3 行、前 3 列（`iloc` 切片包含结束位置）",
   "D. 仅 2024-01 的平安科技一个元素"
  ],
  "answer": "A",
  "analysis": "** `df.iloc[0:2, 0:2]` 切前 2 行和前 2 列交叉处的数据块。`iloc` 不含结束位置，故不含第 3 行、第 3 列。仅按列切片应写 `df.iloc[:, 0:2]`。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "请写出完整可运行代码：创建与课程相同的股价数据框 `df`，然后（1）用属性方式取出「南方通信」列；（2）用 `loc` 取出 2024-01 行中「平安科技」的值。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 用字典加 `index` 创建数据框，行标签为四个月份；② `df.南方通信` 为属性访问列（列名无空格、无特殊字符）；③ `loc` 取行后再取列，行标签在前、列标签在后，结果为 45.2。写成 `df.loc['2024-01', '平安科技']` 亦可酌情给分。"
 },
 {
  "cat": "pandas分析/4.2.1",
  "title": "使用选择器和快速访问器",
  "q": "结合下列代码，回答三个问题：（1）`df['平安科技']['2024-02']` 与 `df.loc['2024-01']['平安科技']` 在「行列先后顺序」上有何不同？（2）`df.loc['2024-01':'2024-02']` 与 `df.iloc[0:2]` 的切片范围是否等价？结束位置是否包含？（3）若只要一个元素且追求速度，应选用哪对访问器？各写一条对应语句取出 2024-02 的平安科技、以及第 1 行第 3 列（幸福银行、2024-01）。 ```python from pandas import DataFrame data = {'平安科技': [45.2, 47.1, 46.5, 49.8], '南方通信': [31.9, 27.3, 25.2, 24.5], '幸福银行': [3.4, 4.6, 5.2, 6.8]} df = DataFrame(data, index=['2024-01', '2024-02', '2024-03', '2024-04']) print(df['平安科技']['2024-02']) print(df.loc['2024-01']['平安科技']) print(df.loc['2024-01':'2024-02']) print(df.iloc[0:2]) print(df.at['2024-02', '平安科技']) print(df.iat[0, 2]) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 分清按列链式与 `loc` 链式的行列顺序；② 说清 `loc` 闭区间、`iloc` 半开区间；③ 点明 `at`/`iat` 只取单元素且先行后列，两条语句与结果正确。三点答全给满分。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "序列和数据框都支持布尔索引。布尔索引的作用是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 按列标签重命名",
   "B. 使用布尔值列表或序列，选出对应位置为 True 的元素（数据框中是选出对应的行）",
   "C. 把数值全部转换成 True/False 后覆盖原数据",
   "D. 只能删除缺失值"
  ],
  "answer": "B",
  "analysis": "** 语料：使用一个布尔值列表或序列对象来选择对应位置为 True 的元素，在数据框中是选择对应的行。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "下列关于数据框布尔索引的说法，正确的是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 布尔索引在数据框中选出的是对应的列",
   "B. 布尔索引在数据框中选出的是对应的行",
   "C. 布尔索引只能用于序列，不能用于数据框",
   "D. 布尔索引必须配合 `loc` 才能使用"
  ],
  "answer": "B",
  "analysis": "** 课程明确：在数据框中是选择对应的行。序列和数据框都支持布尔索引，语法为 `对象[[True, False,…]]`。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "序列对象进行关系运算后，结果仍是序列对象，且元素值为布尔值。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 例如 `close > 20` 得到平安科技 True、南方通信 True、幸福银行 False，dtype 为 bool。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "手写布尔列表做索引时，列表长度可以与序列或数据框的长度不同。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 布尔列表（或布尔序列）的长度必须与对象长度一致：序列对应元素个数，数据框对应行数。长度不一致会出错。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "关于布尔索引的语法，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 语法格式为 `对象[[True, False,…]]`",
   "B. 对象可以是序列对象，也可以是数据框对象",
   "C. 外层括号中可以是列表，也可以是序列对象，只要其中是布尔值",
   "D. 布尔索引只能传入 Python 列表，不能传入序列对象"
  ],
  "answer": "ABC",
  "analysis": "** 课程强调外层括号中可以是列表或序列对象，只要元素是布尔值。D 与语料相反。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "执行下列代码，筛选结果中包含哪些标签？ ```python from pandas import Series close = Series([44.3, 22.6, 6.5], index=['平安科技', '南方通信', '幸福银行']) print(close[close > 20]) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅「平安科技」（44.3）",
   "B. 「平安科技」（44.3）和「南方通信」（22.6）",
   "C. 「平安科技」「南方通信」「幸福银行」全部保留",
   "D. 仅「幸福银行」（6.5）"
  ],
  "answer": "B",
  "analysis": "** `close > 20` 在平安科技、南方通信上为 True，幸福银行 6.5 不满足条件。`close[close > 20]` 把关系运算与布尔索引结合，筛出前两项。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "执行下列代码，结果数据框包含哪些行？ ```python from pandas import DataFrame data = {'平安科技': [45.2, 47.1, 46.5, 49.8], '南方通信': [31.9, 27.3, 25.2, 24.5], '幸福银行': [3.4, 4.6, 5.2, 6.8]} df = DataFrame(data, index=['2024-01', '2024-02', '2024-03', '2024-04']) print(df[df['平安科技'] > 47]) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅 2024-02（平安科技 47.1）",
   "B. 2024-02 和 2024-04（平安科技分别为 47.1、49.8）",
   "C. 2024-01 至 2024-04 全部四行",
   "D. 仅 2024-04（平安科技 49.8）"
  ],
  "answer": "B",
  "analysis": "** `df['平安科技'] > 47` 在四个月份上依次为 False、True、False、True，套回数据框后保留 2024-02 与 2024-04 两整行。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "沿用上题中的数据框 `df`，下列哪些写法能选出「平安科技」大于 47 的行？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `df[df['平安科技'] > 47]`",
   "B. `df[[False, True, False, True]]`",
   "C. `df['平安科技'] > 47`",
   "D. `df[df.平安科技 > 47]`"
  ],
  "answer": "ABD",
  "analysis": "** A 是标准的条件筛选。B 手写布尔列表，True 对应第 2、4 行，结果与 A 相同。D 用属性方式取列后再比较，列名合法时与 A 等价。C 只得到布尔序列，并没有把条件套回数据框，不是筛选后的数据框。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "`df['平安科技'] > 47` 的结果已经是筛选后的数据框，包含满足条件的整行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 数据框选择一列后做关系运算，结果是元素为布尔值的序列，不是数据框。必须写成 `df[df['平安科技'] > 47]`，才能按该条件筛选行。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "执行下列代码，两行 `print` 的输出依次是什么？ ```python from pandas import Series, DataFrame close = Series([44.3, 22.6, 6.5], index=['平安科技', '南方通信', '幸福银行']) data = {'平安科技': [45.2, 47.1, 46.5, 49.8], '南方通信': [31.9, 27.3, 25.2, 24.5], '幸福银行': [3.4, 4.6, 5.2, 6.8]} df = DataFrame(data, index=['2024-01', '2024-02', '2024-03', '2024-04']) print(close[[True, False, False]].iloc[0]) print(df[[True, False, True, False]]['幸福银行'].iloc[1]) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 44.3 和 5.2",
   "B. 22.6 和 3.4",
   "C. 44.3 和 3.4",
   "D. 6.5 和 5.2"
  ],
  "answer": "A",
  "analysis": "** `close[[True, False, False]]` 只保留第一项平安科技 44.3。`df[[True, False, True, False]]` 保留第 1、3 行（2024-01 与 2024-03）；再取「幸福银行」列后，`.iloc[1]` 是筛选结果中的第 2 行，即 2024-03 的 5.2。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "请写出完整可运行代码：创建与课程相同的收盘价序列 `close` 和股价数据框 `df`，然后（1）筛出收盘价大于 20 的股票；（2）筛出「平安科技」股价高于 47 的月份。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① `close` 用三个收盘价和对应股票标签创建；② `df` 用字典加月份行标签创建；③ 序列筛选写成 `close[close > 20]`；④ 数据框筛选写成 `df[df['平安科技'] > 47]`。四步正确给满分。"
 },
 {
  "cat": "pandas分析/4.2.2",
  "title": "基于条件的数据筛选",
  "q": "结合下列代码，回答三个问题：（1）`close > 20` 与 `close[close > 20]` 的结果类型和含义有何不同？（2）为什么 `df['平安科技'] > 47` 不能直接当作「筛出来的月份数据」？正确写法是什么？（3）`df[[True, False, True, False]]` 与 `df[df['平安科技'] > 47]` 选出的行是否相同？请说明理由。 ```python from pandas import Series, DataFrame close = Series([44.3, 22.6, 6.5], index=['平安科技', '南方通信', '幸福银行']) data = {'平安科技': [45.2, 47.1, 46.5, 49.8], '南方通信': [31.9, 27.3, 25.2, 24.5], '幸福银行': [3.4, 4.6, 5.2, 6.8]} df = DataFrame(data, index=['2024-01', '2024-02', '2024-03', '2024-04']) print(close > 20) print(close[close > 20]) print(df['平安科技'] > 47) print(df[df['平安科技'] > 47]) print(df[[True, False, True, False]]) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 分清「布尔序列」与「用布尔序列做筛选」；② 指出列上的关系运算不是数据框；③ 对比位置布尔列表与条件筛选选出的行不同。三点答全给满分。 --- 文件路径： - 知识库：`知识库/第4章 pandas数据分析库/4.2.2-基于条件的数据筛选.md`（正文约 475 字） - 问答库：`问答库/第4章 pandas数据分析库/4.2.2-基于条件的数据筛选.md`（12 题：易 4 / 中 6 / 难 2；含单选、多选、判断、简答；涉及数据的题目均带可运行代码）"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "当筛选条件多于一个时，课程用来组合条件、形成多条件联合筛选的逻辑运算符是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Python 的 `and`、`or`",
   "B. `&`（与）、`|`（或）",
   "C. `+`、`-`",
   "D. `&&`、`||`"
  ],
  "answer": "B",
  "analysis": "** 语料明确：条件多于一个时，通过逻辑运算符 `&`（与）、`|`（或）进行组合。不能用 Python 的 `and`/`or`，也不是 C 语言风格的 `&&`/`||`。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "在多条件联合筛选中，`&` 与 `|` 的含义分别是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `&` 表示或，`|` 表示与",
   "B. `&` 表示与，`|` 表示或",
   "C. 二者都表示与",
   "D. 二者都表示或"
  ],
  "answer": "B",
  "analysis": "** `&` 是与运算，要求各条件同时为 True；`|` 是或运算，只要有一个条件为 True 即可。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "多条件联合筛选时，每个条件都要用圆括号括起来。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程示例 `close[(close>20) & (close<40)]` 的注释写明「每个条件都要用圆括号」。漏掉括号时 `&`、`|` 会先于比较运算结合，容易报错。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "可以把 Python 的 `and`、`or` 直接写成 `close[close>20 and close<40]` 来做多条件筛选。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 序列上的多条件必须用 `&`、`|` 做逐元素逻辑运算。`and`/`or` 只能处理标量真值，对序列会报真值含糊类错误。正确写法是 `close[(close>20) & (close<40)]`。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "下列哪些写法符合课程中的多条件联合筛选？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `close[(close>20) & (close<40)]`",
   "B. `close[close>20 & close<40]`",
   "C. `df[(df['平安科技'] > 47) & (df['南方通信']>26)]`",
   "D. `df[df['平安科技'] > 47 and df['南方通信']>26]`"
  ],
  "answer": "AC",
  "analysis": "** A、C 与课程示例一致，每个条件都加了圆括号并用 `&` 连接。B 漏了括号；D 误用了 `and`。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "执行下列代码，输出的标签和值是？ ```python from pandas import Series close = Series([44.3, 22.6, 6.5], index=['平安科技', '南方通信', '幸福银行']) print(close[(close > 20) & (close < 40)]) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 平安科技    44.3",
   "B. 南方通信    22.6",
   "C. 幸福银行     6.5",
   "D. 空序列（没有任何元素）"
  ],
  "answer": "B",
  "analysis": "** 需同时大于 20 且小于 40。44.3 不小于 40，6.5 不大于 20，只有南方通信 22.6 满足，与课程输出一致。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "执行下列代码，结果数据框包含哪一行？ ```python from pandas import DataFrame data = {'平安科技': [45.2, 47.1, 46.5, 49.8], '南方通信': [31.9, 27.3, 25.2, 24.5], '幸福银行': [3.4, 4.6, 5.2, 6.8]} df = DataFrame(data, index=['2024-01', '2024-02', '2024-03', '2024-04']) print(df[(df['平安科技'] > 47) & (df['南方通信'] > 26)]) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅 2024-01（南方通信 31.9 最大）",
   "B. 仅 2024-02（平安科技 47.1，南方通信 27.3）",
   "C. 2024-02 与 2024-04（平安科技都大于 47）",
   "D. 全部四行"
  ],
  "answer": "B",
  "analysis": "** `&` 要求两列条件同时成立。2024-02：47.1>47 且 27.3>26。2024-04 的平安科技 49.8>47，但南方通信 24.5 不大于 26，整行被去掉。结果与课程一致，幸福银行 4.6 随该行保留。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "沿用上题数据框 `df`，执行 `df[(df['平安科技'] > 47) | (df['南方通信'] > 26)]` 后，结果中会出现哪些行标签？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 2024-01",
   "B. 2024-02",
   "C. 2024-03",
   "D. 2024-04"
  ],
  "answer": "ABD",
  "analysis": "** `|` 是或：任一条件为 True 即保留。2024-01 南方通信 31.9>26；2024-02 两条件都真；2024-04 平安科技 49.8>47。2024-03 的 46.5 不大于 47、25.2 不大于 26，被排除。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "对数据框做多条件联合筛选时，组合后的布尔序列用作行索引，结果仍是数据框，列结构不变。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程中 `df[(df['平安科技'] > 47) & (df['南方通信']>26)]` 选出满足条件的行，三列（平安科技、南方通信、幸福银行）都还在，只是行数变少。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "执行下列代码，结果数据框的行标签是？ ```python from pandas import DataFrame data = {'平安科技': [45.2, 47.1, 46.5, 49.8], '南方通信': [31.9, 27.3, 25.2, 24.5], '幸福银行': [3.4, 4.6, 5.2, 6.8]} df = DataFrame(data, index=['2024-01', '2024-02', '2024-03', '2024-04']) print(df[(df['平安科技'] > 46) & (df['南方通信'] < 28) & (df['幸福银行'] > 5)].index.tolist()) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `['2024-01', '2024-02']`",
   "B. `['2024-02']`",
   "C. `['2024-03', '2024-04']`",
   "D. `['2024-02', '2024-03', '2024-04']`"
  ],
  "answer": "C",
  "analysis": "** 三个条件必须同时成立。2024-01：45.2 不大于 46。2024-02：幸福银行 4.6 不大于 5。2024-03：46.5>46、25.2<28、5.2>5。2024-04：49.8>46、24.5<28、6.8>5。故为 2024-03 与 2024-04。三个条件同样都要加圆括号。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "请写出完整可运行代码：创建与课程相同的收盘价序列 `close` 和股价数据框 `df`，然后（1）筛选 `close` 中大于 20 且小于 40 的元素；（2）筛选 `df` 中「平安科技」大于 47 且「南方通信」大于 26 的行。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 用 `Series`/`DataFrame` 按课程数据创建对象；② 两个条件都加圆括号并用 `&` 连接；③ 序列结果为南方通信 22.6，数据框仅保留 2024-02 一行。漏括号或改用 `and` 不得满分。"
 },
 {
  "cat": "pandas分析/4.2.3",
  "title": "多条件联合筛选",
  "q": "结合下列代码回答：（1）`&` 筛选后留下哪一行、三列取值各是多少？（2）若把 `&` 改成 `|`，会多留下哪些行？请说明各行是靠哪一列条件入选的。（3）为什么每个条件都要加圆括号？能否把 `&` 换成 `and`？ ```python from pandas import DataFrame data = {'平安科技': [45.2, 47.1, 46.5, 49.8], '南方通信': [31.9, 27.3, 25.2, 24.5], '幸福银行': [3.4, 4.6, 5.2, 6.8]} df = DataFrame(data, index=['2024-01', '2024-02', '2024-03', '2024-04']) print(df[(df['平安科技'] > 47) & (df['南方通信'] > 26)]) print(df[(df['平安科技'] > 47) | (df['南方通信'] > 26)]) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① `&` 结果与课程示例一致，三列数值正确；② 能区分与/或，指出 2024-01、2024-04 各自命中的条件；③ 说明括号是硬性要求，并否定 `and`。三点答全给满分。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "数据分组由数据框对象的哪个方法完成？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `merge()`",
   "B. `concat()`",
   "C. `groupby()`",
   "D. `sort_values()`"
  ],
  "answer": "C",
  "analysis": "** 课程明确：数据分组由数据框对象的 `groupby()` 方法完成，参数为分组的列标签，生成一个分组对象。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "调用 `df.groupby('分区')` 时，传入的参数 `'分区'` 表示什么？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 分组后要执行的聚合函数名",
   "B. 分组的列标签",
   "C. 必须是整数行索引",
   "D. 必须传入该列的全部数据列表"
  ],
  "answer": "B",
  "analysis": "** `groupby()` 的参数是分组的列标签。按「分区」分组写作 `group = df.groupby('分区')`。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "`groupby()` 的返回值是一个分组对象，而不是已经汇总好的数据框。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程写法为 `group = df.groupby('分区')`，随后再用 `ngroups`、`size()` 或遍历去查看分组。分组本身不直接给出合计。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "分组对象的属性 `ngroups` 用来查看一共分成了多少组。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程示例：`group.ngroups` 结果为 3，表示数据框按分区被分成了 3 组。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "生成分组对象后，下列哪些方式可以查看分组情况？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 读取属性 `ngroups`，得到分组个数",
   "B. 调用 `size()`，查看各分组的数量",
   "C. 用 `for name, g in group:` 遍历各分组",
   "D. 调用 `drop()`，按组删除行"
  ],
  "answer": "ABC",
  "analysis": "** 课程给出三种查看方式：`ngroups`、`size()`、遍历。`drop()` 用于删除行或列，不是查看分组的方法。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "执行下列代码，输出是什么？ ```python from pandas import DataFrame df = DataFrame({ '姓名': ['赵四', '钱多', '孙冰', '李萌', '周金', '吴达', '郑华', '王军'], '分区': ['天河', '黄埔', '越秀', '黄埔', '天河', '天河', '黄埔', '越秀'], '一季度': [2572, 2845, 2100, 4483, 4109, 2435, 4663, 4839], '二季度': [3291, 3161, 3371, 3810, 2322, 4863, 1831, 1214], '三季度': [4388, 3723, 3901, 1070, 3056, 1576, 1451, 3639], '四季度': [2672, 3663, 3024, 2312, 4066, 1934, 3456, 2649] }) group = df.groupby('分区') print(group.ngroups) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 8（按每一行各成一组）",
   "B. 3（按分区取值天河、黄埔、越秀分成 3 组）",
   "C. 4（按四个季度分成 4 组）",
   "D. 因未调用聚合而报错"
  ],
  "answer": "B",
  "analysis": "** 「分区」列只有天河、黄埔、越秀三个不同取值，故 `ngroups` 为 3。`groupby()` 只分组，不要求立刻聚合。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "沿用上题中的数据框与分组对象 `group`，执行 `print(group.size())` 后，「越秀」对应的数量是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 3",
   "B. 8",
   "C. 2",
   "D. 1"
  ],
  "answer": "C",
  "analysis": "** `size()` 查看各分组的数量。越秀有孙冰、王军共 2 人；天河 3 人（赵四、周金、吴达），黄埔 3 人（钱多、李萌、郑华）。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "关于 `for name, g in group:` 遍历分组，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `name` 是分组名，本例即该组的分区值",
   "B. `g` 是该组对应的子数据框",
   "C. 子数据框 `g` 保留原行标签",
   "D. 遍历时会自动删掉「分区」列，只留下数值列"
  ],
  "answer": "ABC",
  "analysis": "** 课程打印结果显示：分组名分别为天河、越秀、黄埔；各组仍含「姓名」「分区」及四个季度列，且行标签保持为原数据框中的位置（如天河为 0、4、5）。D 错误。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "执行 `df.groupby('分区')` 之后，原数据框 `df` 会被就地改写成 3 个独立对象。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `groupby()` 生成分组对象，不修改原始数据框。原 `df` 仍是 8 行完整表；各组明细要通过分组对象的 `size()` 或遍历查看。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "执行下列代码后，第一次循环打印的分组名、该组人数、行标签分别是什么？ ```python from pandas import DataFrame df = DataFrame({ '姓名': ['赵四', '钱多', '孙冰', '李萌', '周金', '吴达', '郑华', '王军'], '分区': ['天河', '黄埔', '越秀', '黄埔', '天河', '天河', '黄埔', '越秀'], '一季度': [2572, 2845, 2100, 4483, 4109, 2435, 4663, 4839], '二季度': [3291, 3161, 3371, 3810, 2322, 4863, 1831, 1214], '三季度': [4388, 3723, 3901, 1070, 3056, 1576, 1451, 3639], '四季度': [2672, 3663, 3024, 2312, 4066, 1934, 3456, 2649] }) group = df.groupby('分区') for name, g in group: print(name, len(g), list(g.index)) break ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 天河，3，`[0, 4, 5]`（赵四、周金、吴达）",
   "B. 黄埔，3，`[1, 3, 6]`（按首次出现顺序，黄埔排第二故先打印黄埔）",
   "C. 赵四，1，`[0]`（按姓名分组）",
   "D. 天河，3，`[0, 1, 2]`（行标签被重建为从 0 开始）"
  ],
  "answer": "A",
  "analysis": "** 课程遍历顺序为天河、越秀、黄埔，不是按首次出现顺序（天河、黄埔、越秀）。天河组 3 人，行标签仍为 0、4、5，不会重建。`break` 只取第一次循环。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "请写出完整可运行代码：创建与课程相同的销售业绩数据框 `df`，按「分区」分组，打印分组个数以及各分组的数量。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 用字典创建数据框，列名与课程一致；② `groupby('分区')` 得到分组对象；③ 用 `ngroups` 看组数（3），用 `size()` 看各组人数。漏写创建数据框或把 `ngroups` 写成方法调用可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.3.1",
  "title": "数据分组",
  "q": "结合下列代码，回答四个问题：（1）`groupby` 的参数为什么是字符串 `'分区'` 而不是 `df['分区']`？（2）`ngroups` 与 `size()` 各回答什么问题？（3）遍历时黄埔组有哪些人、行标签是什么？（4）遍历顺序是「天河、黄埔、越秀」还是「天河、越秀、黄埔」？与数据框中分区值首次出现的顺序是否相同？ ```python from pandas import DataFrame df = DataFrame({ '姓名': ['赵四', '钱多', '孙冰', '李萌', '周金', '吴达', '郑华', '王军'], '分区': ['天河', '黄埔', '越秀', '黄埔', '天河', '天河', '黄埔', '越秀'], '一季度': [2572, 2845, 2100, 4483, 4109, 2435, 4663, 4839], '二季度': [3291, 3161, 3371, 3810, 2322, 4863, 1831, 1214], '三季度': [4388, 3723, 3901, 1070, 3056, 1576, 1451, 3639], '四季度': [2672, 3663, 3024, 2312, 4066, 1934, 3456, 2649] }) group = df.groupby('分区') print(group.ngroups) print(group.size()) for name, g in group: print('分组名：', name) print(g) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 点明参数是列标签；② 区分组数与各组人数；③ 黄埔三人及行标签正确；④ 能指出遍历顺序不是首次出现顺序。四点答全给满分。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "对分组数据进行聚合操作时，课程采用的实现方法是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `merge()` 方法",
   "B. `concat()` 方法",
   "C. `agg` 方法",
   "D. `drop()` 方法"
  ],
  "answer": "C",
  "analysis": "** 语料明确：聚合操作用 `agg` 方法实现。`merge`/`concat` 属于合并和连接，`drop` 用于删除行或列。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "调用 `agg` 时，参数是一个字典，其中键和值分别是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 键是操作名，值是列标签",
   "B. 键是列标签，值是操作名（或操作名列表）",
   "C. 键是行标签，值是分组名",
   "D. 键是分组对象，值是数据框"
  ],
  "answer": "B",
  "analysis": "** 课程说明：参数是一个字典，列标签是键，操作名是值。多种聚合时，值写成操作名列表。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "聚合操作可以把每个组的数据进行汇总、计算等，从而提取有用的信息。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是 4.3.2 对聚合操作的定义。实现上使用分组对象的 `agg` 方法。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "对一个列标签执行多种聚合时，字典中的值应写成操作名列表，例如 `['sum','max']`。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料示例：`group.agg({'一季度':['sum','max']})`，参数是操作名列表。一种聚合则写字符串，如 `'sum'`。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "下列属于课程列出的聚合操作及对应函数名的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 求和（sum）",
   "B. 计数（count）",
   "C. 连接（concat）",
   "D. 平均值（mean）、最大值（max）、最小值（min）"
  ],
  "answer": "ABD",
  "analysis": "** 课程列出的是 sum、count、mean、max、min 等。`concat` 是数据框连接方法，不是分组聚合函数。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "执行下列代码，天河区「一季度」的聚合结果是？ ```python from pandas import DataFrame df = DataFrame({ '姓名': ['赵四', '钱多', '孙冰', '李萌', '周金', '吴达', '郑华', '王军'], '分区': ['天河', '黄埔', '越秀', '黄埔', '天河', '天河', '黄埔', '越秀'], '一季度': [2572, 2845, 2100, 4483, 4109, 2435, 4663, 4839], '二季度': [3291, 3161, 3371, 3810, 2322, 4863, 1831, 1214], '三季度': [4388, 3723, 3901, 1070, 3056, 1576, 1451, 3639], '四季度': [2672, 3663, 3024, 2312, 4066, 1934, 3456, 2649] }) group = df.groupby('分区') print(group.agg({'一季度': 'sum'})) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 9116",
   "B. 6939",
   "C. 11991",
   "D. 4109"
  ],
  "answer": "A",
  "analysis": "** 这是「对一个列标签执行一种聚合」。天河三人一季度为 2572、4109、2435，和为 9116。越秀 6939、黄埔 11991 是另外两个分区的总和；4109 是天河一季度最大值，不是求和。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "沿用上题中的分组对象 `group`，执行 `group.agg({'一季度':['sum','max']})` 后，越秀区一季度的 max 是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 2100",
   "B. 4109",
   "C. 4663",
   "D. 4839"
  ],
  "answer": "D",
  "analysis": "** 这是「对一个列标签执行多种聚合」。越秀两人一季度为孙冰 2100、王军 4839，最大值为 4839。4109 是天河最大值，4663 是黄埔最大值。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "关于 `agg` 的三种用法，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对一个列执行一种聚合时，字典的值是字符串，如 `{'一季度':'sum'}`",
   "B. 对一个列执行多种聚合时，字典的值是操作名列表，如 `{'一季度':['sum','max']}`",
   "C. 对多个列执行多种聚合时，每个列标签和操作构成一个键值对",
   "D. 多列聚合时必须让所有列使用完全相同的一组操作"
  ],
  "answer": "ABC",
  "analysis": "** 语料三种写法分别对应 A、B、C。第三种示例中一季度用 `['sum','max']`、二季度用 `['mean','min']`，不同列可以指定不同操作，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "`agg` 会把聚合结果按原始数据框的每一行对齐回去，与 `transform()` 效果相同。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `agg` 把每个组压缩成一行汇总（结果以分区为行索引）。把操作应用到每一组并对齐回原始各行的是下一节的 `transform()`，二者不要混淆。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "执行下列代码后，天河区二季度的 mean 与黄埔区二季度的 min 分别是？ ```python from pandas import DataFrame df = DataFrame({ '姓名': ['赵四', '钱多', '孙冰', '李萌', '周金', '吴达', '郑华', '王军'], '分区': ['天河', '黄埔', '越秀', '黄埔', '天河', '天河', '黄埔', '越秀'], '一季度': [2572, 2845, 2100, 4483, 4109, 2435, 4663, 4839], '二季度': [3291, 3161, 3371, 3810, 2322, 4863, 1831, 1214], '三季度': [4388, 3723, 3901, 1070, 3056, 1576, 1451, 3639], '四季度': [2672, 3663, 3024, 2312, 4066, 1934, 3456, 2649] }) group = df.groupby('分区') print(group.agg({'一季度': ['sum', 'max'], '二季度': ['mean', 'min']})) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 3492.0 与 1831",
   "B. 2292.5 与 1214",
   "C. 2934.0 与 2322",
   "D. 3492.0 与 1214"
  ],
  "answer": "A",
  "analysis": "** 多列多种聚合。天河二季度为 3291、2322、4863，均值 (3291+2322+4863)/3=3492.0；黄埔二季度为 3161、3810、1831，最小值为 1831。B 是越秀的 mean 与 min；D 把越秀的 min 误接到天河。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "请写出完整可运行代码：创建与课程相同的业绩数据框 `df`，按「分区」分组，对「一季度」求和，并说明天河、越秀、黄埔三个结果各代表什么。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 用课程示例创建数据框；② `groupby('分区')` 得到分组对象；③ `agg` 传入字典 `{'一季度':'sum'}`（列标签为键、操作名为值）；④ 能说明三个数字是各区一季度总和。漏写 `groupby` 或把键值写反不得满分。"
 },
 {
  "cat": "pandas分析/4.3.2",
  "title": "对分组数据进行聚合操作",
  "q": "结合下列代码，回答三个问题：（1）三种 `agg` 写法分别对应课程的哪一类用法？（2）黄埔区一季度的 sum、max 各是多少？请列出参与计算的原始值。（3）越秀区二季度的 mean、min 各是多少？为什么 mean 带一位小数？ ```python from pandas import DataFrame df = DataFrame({ '姓名': ['赵四', '钱多', '孙冰', '李萌', '周金', '吴达', '郑华', '王军'], '分区': ['天河', '黄埔', '越秀', '黄埔', '天河', '天河', '黄埔', '越秀'], '一季度': [2572, 2845, 2100, 4483, 4109, 2435, 4663, 4839], '二季度': [3291, 3161, 3371, 3810, 2322, 4863, 1831, 1214], '三季度': [4388, 3723, 3901, 1070, 3056, 1576, 1451, 3639], '四季度': [2672, 3663, 3024, 2312, 4066, 1934, 3456, 2649] }) group = df.groupby('分区') print(group.agg({'一季度': 'sum'})) print(group.agg({'一季度': ['sum', 'max']})) print(group.agg({'一季度': ['sum', 'max'], '二季度': ['mean', 'min']})) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 三种用法名称与代码一一对应；② 黄埔原始三人名单及 11991、4663 正确；③ 越秀 mean、min 正确，并能说明 2 人取平均出现 2292.5。只背结果不算过程可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "用 `groupby()` 分组后做数据转换，课程采用的实现方法是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `agg` 方法",
   "B. `merge()` 方法",
   "C. `transform()` 函数",
   "D. `concat()` 方法"
  ],
  "answer": "C",
  "analysis": "** 语料明确：分组后的数据转换由 `transform()` 函数实现。`agg` 用于聚合汇总，`merge`/`concat` 属于合并和连接。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "调用 `transform()` 时，课程给出的参数类型是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 字典，列标签是键、操作名是值",
   "B. 操作名字符串",
   "C. 分组的列标签",
   "D. 行标签列表"
  ],
  "answer": "B",
  "analysis": "** 课程说明：`transform()` 的参数是操作名字符串，示例为 `'mean'`。字典参数属于上一节 `agg` 的写法。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "用 `groupby()` 对数据进行分组后，还可以通过数据转换来修改或生成新的数据。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是 4.3.3 对分组后数据转换的定义。实现上使用 `transform()` 函数。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "`transform()` 将操作应用到每一个分组，转换后返回一个序列。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料对功能的表述就是：将操作应用到每一个分组，转换后返回一个序列。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "关于 `transform()` 的说法，正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 参数是操作名字符串",
   "B. 转换后返回一个序列",
   "C. 每个分组数据在转换后会被应用回原始数据框的相应位置",
   "D. 结果以分组键为行索引，每个组只保留一行"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均来自本节语料。D 描述的是上一节 `agg` 的结果形态，不是 `transform()`。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "执行下列代码，行标签 0 对应的值最接近哪一项？ ```python from pandas import DataFrame df = DataFrame({ '姓名': ['赵四', '钱多', '孙冰', '李萌', '周金', '吴达', '郑华', '王军'], '分区': ['天河', '黄埔', '越秀', '黄埔', '天河', '天河', '黄埔', '越秀'], '一季度': [2572, 2845, 2100, 4483, 4109, 2435, 4663, 4839], '二季度': [3291, 3161, 3371, 3810, 2322, 4863, 1831, 1214], '三季度': [4388, 3723, 3901, 1070, 3056, 1576, 1451, 3639], '四季度': [2672, 3663, 3024, 2312, 4066, 1934, 3456, 2649] }) group = df.groupby('分区') print(group['四季度'].transform('mean')) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 2890.666667（天河区四季度平均值）",
   "B. 3143.666667（黄埔区四季度平均值）",
   "C. 2836.500000（越秀区四季度平均值）",
   "D. 2672（赵四本人的四季度业绩）"
  ],
  "answer": "A",
  "analysis": "** 标签 0 是赵四，属于天河。`transform('mean')` 把该区四季度均值填回原位置，不是填个人原始值。天河三人四季度为 2672、4066、1934，均值约 2890.666667。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "沿用上题中的转换结果，标签 0、4、5 的值相同，原因是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 这三人四季度的原始业绩本来就相同",
   "B. 他们都属于天河，`transform()` 把该区四季度平均值应用回原始数据框的相应位置",
   "C. 行标签被重建为从 0 开始的连续编号，所以前几行必然相等",
   "D. 这三人一季度的平均值相同，与四季度无关"
  ],
  "answer": "B",
  "analysis": "** 语料说明：标签 0、4、5 对应的值为四季度天河区的平均值。三人原始四季度分别为 2672、4066、1934，并不相同；行标签仍是原数据框的 0、4、5，并未重建。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "沿用第 6 题的数据与代码，下列哪些行标签对应黄埔区四季度平均值 3143.666667？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 1（钱多）",
   "B. 2（孙冰）",
   "C. 3（李萌）",
   "D. 6（郑华）"
  ],
  "answer": "ACD",
  "analysis": "** 黄埔组为钱多、李萌、郑华，行标签 1、3、6。孙冰（标签 2）属于越秀，对应 2836.5。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "`transform()` 与 `agg` 效果相同，都会把每个组压成一行汇总。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `agg` 把每个组压缩成一行（结果以分区为行索引）。`transform()` 把操作应用到每一组后对齐回原始各行，返回与原数据框等长的序列。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "执行下列代码后，王军（行标签 7）对应的转换值是多少？计算依据是什么？ ```python from pandas import DataFrame df = DataFrame({ '姓名': ['赵四', '钱多', '孙冰', '李萌', '周金', '吴达', '郑华', '王军'], '分区': ['天河', '黄埔', '越秀', '黄埔', '天河', '天河', '黄埔', '越秀'], '一季度': [2572, 2845, 2100, 4483, 4109, 2435, 4663, 4839], '二季度': [3291, 3161, 3371, 3810, 2322, 4863, 1831, 1214], '三季度': [4388, 3723, 3901, 1070, 3056, 1576, 1451, 3639], '四季度': [2672, 3663, 3024, 2312, 4066, 1934, 3456, 2649] }) group = df.groupby('分区') s = group['四季度'].transform('mean') print(s[7]) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 2649，即王军本人的四季度业绩",
   "B. 2836.5，即越秀两人四季度 (3024+2649)/2 的平均值",
   "C. 2890.666667，即天河区四季度平均值",
   "D. 3143.666667，即黄埔区四季度平均值"
  ],
  "answer": "B",
  "analysis": "** 王军属于越秀，越秀还有孙冰。两人四季度为 3024、2649，均值 2836.5。`transform` 填回的是组均值，不是个人原始值。标签 2 与标签 7 同为 2836.5。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "请写出完整可运行代码：创建与课程相同的业绩数据框 `df`，按「分区」分组，对「四季度」做 `transform('mean')`，并说明行标签 0、4、5 的值代表什么。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 用课程示例创建数据框；② `groupby('分区')` 得到分组对象；③ 按列调用 `group['四季度'].transform('mean')`，参数为操作名字符串；④ 能说明 0、4、5 是天河组均值填回原位置。漏写取列或把 `transform` 写成 `agg` 不得满分。"
 },
 {
  "cat": "pandas分析/4.3.3",
  "title": "分组后的数据转换",
  "q": "结合下列代码，回答四个问题：（1）`transform('mean')` 与 `agg({'四季度':'mean'})` 在结果形状上有何不同？（2）为什么标签 0、4、5 的值相同，而三人四季度原始值并不相同？（3）黄埔三人四季度原始值各是多少，组均值如何算出？（4）仅执行 `transform` 会不会改写原数据框 `df`？ ```python from pandas import DataFrame df = DataFrame({ '姓名': ['赵四', '钱多', '孙冰', '李萌', '周金', '吴达', '郑华', '王军'], '分区': ['天河', '黄埔', '越秀', '黄埔', '天河', '天河', '黄埔', '越秀'], '一季度': [2572, 2845, 2100, 4483, 4109, 2435, 4663, 4839], '二季度': [3291, 3161, 3371, 3810, 2322, 4863, 1831, 1214], '三季度': [4388, 3723, 3901, 1070, 3056, 1576, 1451, 3639], '四季度': [2672, 3663, 3024, 2312, 4066, 1934, 3456, 2649] }) group = df.groupby('分区') print(group['四季度'].transform('mean')) print(group.agg({'四季度': 'mean'})) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 能对比「等长序列 vs 每组一行」；② 点明「应用回原始相应位置」；③ 黄埔三人原始值与 3143.666667 计算正确；④ 说明需赋值才写入数据框。四点答全给满分。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "课程中用来合并两个数据框的函数是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `groupby()`",
   "B. `agg()`",
   "C. `pd.merge()`",
   "D. `drop()`"
  ],
  "answer": "C",
  "analysis": "** 语料明确：`merge()` 用来合并两个数据框。`groupby`/`agg` 属于分组聚合，`drop` 用于删除行或列。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "调用 `pd.merge(yu, shu, on='学号')` 时，参数 `on` 的作用是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 指定要删除的列",
   "B. 指定合并关键字（两表据以对齐的共同列）",
   "C. 指定结果要保留的行索引",
   "D. 指定分隔符"
  ],
  "answer": "B",
  "analysis": "** 课程说明：参数 `on` 指定合并关键字。本例按「学号」列把两个数据框对齐合并。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "`merge()` 将两个数据框按指定列合并后，生成一个新的数据框。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料：`merge()` 函数将两个数据框 `yu` 和 `shu` 按照学号列进行合并，生成一个新的数据框。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "两个数据框中作为合并关键字的列，行顺序必须事先排成完全一致，否则 `merge()` 会报错。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语料明确：数据框 `yu` 和 `shu` 中，学号列的顺序可以不同，pandas 能够自动对齐。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "关于 `pd.merge()`，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 用来合并两个数据框",
   "B. 用参数 `on` 指定合并关键字",
   "C. 即使两表关键字列顺序不同，也能按键值自动对齐",
   "D. 作用与 `concat()` 完全相同，都是把表上下拼接"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均来自 4.4.1 语料。`concat()` 是 4.4.3 数据框连接的方法，常用于上下拼接，与按关键字横向合并的 `merge()` 不同，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "执行下列代码后，学号 `'201'` 对应的数学成绩是？ ```python import pandas as pd yu = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93]}) shu = pd.DataFrame({'学号': ['203', '202', '201'], '数学': [94, 85, 96]}) cheng = pd.merge(yu, shu, on='学号') print(cheng) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 94",
   "B. 85",
   "C. 96",
   "D. 91"
  ],
  "answer": "C",
  "analysis": "** pandas 按学号自动对齐，而不是按行号对齐。`shu` 中 `'201'` 对应数学 96（第三行），不是第一行的 94。91 是 201 的语文成绩。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "沿用上题代码，合并结果 `cheng` 的第 0 行（第一行）学号是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `'203'`（因为右侧表 `shu` 的第一行是 203）",
   "B. `'201'`（结果行序跟随左侧表 `yu`）",
   "C. `'202'`",
   "D. 无法确定，每次运行顺序随机"
  ],
  "answer": "B",
  "analysis": "** 课程输出第一行是学号 201、语文 91、数学 96，与左侧 `yu` 的行序一致，并不改成 `shu` 的 203、202、201。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "根据课程示例，合并后的数据框 `cheng` 中应包含哪些列？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 学号",
   "B. 语文",
   "C. 数学",
   "D. 分区"
  ],
  "answer": "ABC",
  "analysis": "** `merge()` 按学号把 `yu`（学号、语文）与 `shu`（学号、数学）合成新表，结果列为「学号、语文、数学」。「分区」是 4.3 分组示例中的列，本节没有。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "`cheng = pd.merge(yu, shu, on='学号')` 执行后，原数据框 `yu` 会被就地改写成三列（学号、语文、数学）。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `merge()` 生成新数据框并赋给 `cheng`，原来的 `yu`、`shu` 保持不变。要使用合并结果，应使用返回值。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "执行下列代码后，输出的三行「学号、语文、数学」依次是？ ```python import pandas as pd yu = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93]}) shu = pd.DataFrame({'学号': ['203', '202', '201'], '数学': [94, 85, 96]}) cheng = pd.merge(yu, shu, on='学号') print(cheng) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 201/91/94，202/82/85，203/93/96（按行号硬拼，未按学号对齐）",
   "B. 201/91/96，202/82/85，203/93/94（按学号对齐，行序跟随 `yu`）",
   "C. 203/93/94，202/82/85，201/91/96（行序跟随 `shu`）",
   "D. 201/91/96，202/82/94，203/93/85"
  ],
  "answer": "B",
  "analysis": "** 按学号匹配：201→语文91、数学96；202→82、85；203→93、94。结果行序与左侧 `yu` 相同。A 把 `shu` 第一行的 94 错配给了 201；C 误以右侧表行序为准。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "请写出完整可运行代码：创建与课程相同的语文表 `yu`、数学表 `shu`，按「学号」合并为 `cheng` 并打印。再说明：学号 `'203'` 的语文、数学各是多少？为什么不是 91 和 94？",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 学号写成字符串 `'201'` 等；② `pd.merge(..., on='学号')`；③ 203 对应 93 与 94；④ 能说明是按关键字对齐而非按行号对齐。学号写成整数或漏写 `on` 可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.4.1",
  "title": "数据框合并",
  "q": "结合下列代码，回答三个问题：（1）`merge()` 的合并关键字是哪一列？结果生成了几行几列？（2）请按「学号 → 语文、数学」列出三名同学的匹配结果，并指出 `shu` 中数学列与学号的对应关系。（3）若有人把 `on='学号'` 改成按行号把两表左右拼在一起，201 的数学会被错写成多少？正确值是多少？ ```python import pandas as pd yu = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93]}) shu = pd.DataFrame({'学号': ['203', '202', '201'], '数学': [94, 85, 96]}) cheng = pd.merge(yu, shu, on='学号') print(cheng) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 关键字为学号、3 行 3 列；② 三名同学匹配及 `shu` 内部对应关系正确；③ 能对比「按行号」与「按关键字」的差异（94 与 96）。只背输出、说不清对齐原理不得满分。 文件路径： - `知识库/第4章 pandas数据分析库/4.4.1-数据框合并.md` - `问答库/第4章 pandas数据分析库/4.4.1-数据框合并.md` 本节只写 `merge()` + `on` 与自动对齐，未展开下一节的 `how`（内/左/右/外连接）和 `concat()`。题型覆盖单选/多选/判断/简答，共 12 题（易 4 / 中 6 / 难 2），简答 2 道。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "使用 `merge()` 合并两个数据框时，决定合并类型的重要参数是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `on`",
   "B. `how`",
   "C. `axis`",
   "D. `inplace`"
  ],
  "answer": "B",
  "analysis": "** 语料明确：`how` 决定数据框合并的类型。`on` 指定合并关键字（4.4.1），`axis` 多用于 `drop`/`concat`，`inplace` 用于是否改原对象。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "内连接对应的 `how` 取值是什么？它是不是默认值？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `'inner'`，是默认值",
   "B. `'left'`，是默认值",
   "C. `'outer'`，不是默认值",
   "D. `'right'`，是默认值"
  ],
  "answer": "A",
  "analysis": "** 内连接 `how` 的值为 `'inner'`，这也是默认值。省略 `how` 时效果与内连接相同。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "内连接只保留两个数据框中共同键值的行，只有键值匹配时才会出现在结果中。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是内连接的定义。课程示例中只有两边都出现的学号 201 和 202 进入合并结果。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "左连接没有匹配时，右侧的数据用 0 填充。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 没有匹配时右侧用 NaN 填充，不是 0。课程中 203 号没有数学成绩，数学列为 NaN。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "下列属于 `merge()` 的 `how` 取值及对应连接方式的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `'inner'`：内连接",
   "B. `'left'`：左连接",
   "C. `'right'`：右连接",
   "D. `'concat'`：按行拼接"
  ],
  "answer": "ABC",
  "analysis": "** 四种类型是 inner、left、right、outer。`concat` 是下一节数据框连接的方法，不是 `how` 的取值。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "执行下列代码后，合并结果中包含哪些学号？ ```python import pandas as pd yu = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93]}) shu = pd.DataFrame({'学号': ['204', '202', '201'], '数学': [94, 85, 96]}) cheng = pd.merge(yu, shu, on='学号', how='inner') print(list(cheng['学号'])) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `['201', '202', '203']`",
   "B. `['201', '202']`",
   "C. `['201', '202', '203', '204']`",
   "D. `['204', '202', '201']`"
  ],
  "answer": "B",
  "analysis": "** 内连接只保留共同键。`yu` 有 201/202/203，`shu` 有 204/202/201，交集为 201 和 202。203 只在左表、204 只在右表，均被丢掉。A 是左连接的学号，C 是外连接，D 是右连接的行序。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "执行下列代码后，学号 203 对应的数学成绩是？ ```python import pandas as pd yu = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93]}) shu = pd.DataFrame({'学号': ['204', '202', '201'], '数学': [94, 85, 96]}) cheng = pd.merge(yu, shu, on='学号', how='left') print(cheng) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 94",
   "B. 缺失（NaN）",
   "C. 0",
   "D. 93"
  ],
  "answer": "B",
  "analysis": "** 左连接保留左侧 `yu` 的全部行。203 只在 `yu` 中出现，`shu` 没有该学号，数学成绩用 NaN 填充。94 是 204 的数学；93 是 203 的语文。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "关于四种合并方式，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 内连接只保留两侧都出现的键",
   "B. 左连接保留左表全部行，右表无匹配处填 NaN",
   "C. 外连接只保留两侧都不匹配的行",
   "D. 右连接保留右表全部行，左表无匹配处填 NaN"
  ],
  "answer": "ABD",
  "analysis": "** 外连接保留两个数据框中的所有行（全部键），不是只保留不匹配的行，故 C 错误。匹配的行同样保留，缺侧再用 NaN 填充。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "`pd.merge(yu, shu, on='学号')` 省略 `how` 时，效果与 `how='outer'` 相同。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 默认值是 `'inner'` 而不是 `'outer'`。省略 `how` 会丢掉只在一侧出现的学号（如 203、204）。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "执行下列代码后，结果第一行的学号、学号 204 的语文、学号 201 的数学分别是？ ```python import pandas as pd yu = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93]}) shu = pd.DataFrame({'学号': ['204', '202', '201'], '数学': [94, 85, 96]}) cheng = pd.merge(yu, shu, on='学号', how='right') print(cheng) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 204、NaN、96",
   "B. 201、91、96",
   "C. 204、93、94",
   "D. 203、NaN、96"
  ],
  "answer": "A",
  "analysis": "** 右连接保留右侧 `shu` 的全部行，行序跟随 `shu`：204、202、201，故第一行学号是 204。204 在 `yu` 中不存在，语文为 NaN。201 按学号对齐到 `shu` 中的 96，不是按位置去取 `shu` 第一行的 94。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "写出 `merge()` 中 `how` 的四种取值，并分别说明各自保留哪些行、未匹配时如何处理。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 四个取值 inner/left/right/outer 写全；② 能说明 inner 是默认、只留共同键；③ 能区分左/右是哪一侧为基准；④ 未匹配填 NaN 而非 0。写成 `concat` 或漏掉默认值可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.4.2",
  "title": "合并方式",
  "q": "结合下列代码，回答三个问题：（1）内连接结果有几行、包含哪些学号？学号 201 的数学是多少，为什么不是 94？（2）左连接中学号 203 的数学为什么是 NaN？（3）外连接比内连接多了哪些学号，缺的科目如何填充？ ```python import pandas as pd yu = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93]}) shu = pd.DataFrame({'学号': ['204', '202', '201'], '数学': [94, 85, 96]}) print(pd.merge(yu, shu, on='学号', how='inner')) print(pd.merge(yu, shu, on='学号', how='left')) print(pd.merge(yu, shu, on='学号', how='outer')) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 内连接行数与学号正确，并能用按键对齐解释 96 而非 94；② 能说明 203 仅在左表故数学为 NaN；③ 能指出外连接多 203、204 且缺侧填 NaN。只背结果不讲对齐过程可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "课程中用来连接多个数据框的方法是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `groupby()`",
   "B. `pd.merge()`",
   "C. `pd.concat()`",
   "D. `drop()`"
  ],
  "answer": "C",
  "analysis": "** 语料明确：`concat()` 方法用于连接多个数据框。`merge()` 是 4.4.1 的按关键字合并，`groupby` 属于分组，`drop` 用于删除行或列。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "调用 `pd.concat([df1, df2], ignore_index=True)` 时，参数 `ignore_index=True` 的作用是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 指定按「学号」对齐",
   "B. 重建索引",
   "C. 删除重复行",
   "D. 把两表左右拼接成更多列"
  ],
  "answer": "B",
  "analysis": "** 课程说明：参数 `ignore_index=True` 用于重建索引。连接后行标签变为连续的 0、1、2…，而不是保留各表原来的索引。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "`concat()` 用于连接多个数据框。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 4.4.3 开篇即指出：`concat()` 方法用于连接多个数据框。典型例子是把一个班两部分同学的成绩表拼成一张。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "`pd.concat(df1, df2)` 与 `pd.concat([df1, df2])` 写法等价，都可以完成连接。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 课程写法是把数据框放进列表再传入，即 `pd.concat([df1, df2], ignore_index=True)`。直接写成两个位置参数不符合 `concat()` 的调用约定。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "关于 `pd.concat()`，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 用于连接多个数据框",
   "B. 第一个参数应是数据框组成的列表",
   "C. `ignore_index=True` 用于重建索引",
   "D. 作用与 `merge()` 完全相同，都按「学号」横向拼列"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均来自 4.4.3 语料。`merge()` 按关键字合并字段，`concat()` 把多段记录上下拼接，二者不同，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "执行下列代码后，连接结果 `cheng` 一共有多少行？ ```python import pandas as pd df1 = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93], '数学': [94, 85, 96]}) df2 = pd.DataFrame({'学号': ['204', '205', '206'], '语文': [95, 87, 83], '数学': [84, 75, 91]}) cheng = pd.concat([df1, df2], ignore_index=True) print(cheng) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 3 行（只保留 `df1`）",
   "B. 3 行（只保留两表学号的交集，本例为空，实际 0 行）",
   "C. 6 行（`df1` 的 3 行接上 `df2` 的 3 行）",
   "D. 9 行（笛卡尔积）"
  ],
  "answer": "C",
  "analysis": "** `concat()` 沿行方向堆叠，不按学号求交。3+3=6 行，对应学号 201～206。B 把连接误当成了 `merge()` 的内连接。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "沿用上题代码，学号 `'204'` 对应的语文、数学成绩是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 语文 91、数学 94（误把 `df1` 第一行配给了 204）",
   "B. 语文 95、数学 84",
   "C. 语文 87、数学 75",
   "D. 语文 83、数学 91"
  ],
  "answer": "B",
  "analysis": "** `'204'` 来自 `df2` 第一行，语文 95、数学 84。87/75 是 205，83/91 是 206，91/94 是 201。连接按表的先后顺序堆叠，不按行号与另一表对齐。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "根据课程示例，连接后的数据框 `cheng` 中应包含哪些列？",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 学号",
   "B. 语文",
   "C. 数学",
   "D. 分区"
  ],
  "answer": "ABC",
  "analysis": "** `df1` 与 `df2` 都是「学号、语文、数学」，上下连接后列不变。「分区」是 4.3 分组示例中的列，本节没有。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "`cheng = pd.concat([df1, df2], ignore_index=True)` 执行后，原数据框 `df1` 会被就地改写成 6 行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `concat()` 生成新数据框并赋给 `cheng`，原来的 `df1`、`df2` 保持不变。要使用连接结果，应使用返回值。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "执行下列代码后，`list(cheng.index)` 与 `len(cheng.loc[0])` 分别是？ ```python import pandas as pd df1 = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93], '数学': [94, 85, 96]}) df2 = pd.DataFrame({'学号': ['204', '205', '206'], '语文': [95, 87, 83], '数学': [84, 75, 91]}) cheng = pd.concat([df1, df2]) print(list(cheng.index)) print(len(cheng.loc[0])) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `[0, 1, 2, 3, 4, 5]` 与 1（即使未写 `ignore_index` 也会自动重建）",
   "B. `[0, 1, 2, 0, 1, 2]` 与 2（`loc[0]` 同时取出 201 和 204 两行）",
   "C. `[0, 1, 2]` 与 3（只保留 `df1` 的索引）",
   "D. 报错，因为索引重复"
  ],
  "answer": "B",
  "analysis": "** 未设置 `ignore_index=True` 时不重建索引，两表原来的 0、1、2 原样保留，出现重复标签。`loc[0]` 按标签取值，会得到学号 201 与 204 两行。课程强调该参数「用于重建索引」，正是为了避免这种情况。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "请写出完整可运行代码：创建与课程相同的 `df1`、`df2`，用 `concat()` 连接为 `cheng`（重建索引）并打印。再说明：学号 `'205'` 的语文、数学各是多少？连接后第 0 行是谁？",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 学号写成字符串；② `pd.concat([df1, df2], ignore_index=True)`；③ 205 对应 87 与 75；④ 能说明结果顺序跟随列表顺序。漏写列表括号或 `ignore_index` 可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.4.3",
  "title": "数据框连接",
  "q": "结合下列代码，回答三个问题：（1）`concat()` 与 `merge()` 在本例中各会得到几行？为什么？（2）`ignore_index=True` 使结果的行标签变成什么？若去掉该参数，`cheng.loc[0]` 会取出哪些学号？（3）pandas 2.x 若要在已有成绩表末尾再追加一名同学，应如何使用 `concat()`？ ```python import pandas as pd df1 = pd.DataFrame({'学号': ['201', '202', '203'], '语文': [91, 82, 93], '数学': [94, 85, 96]}) df2 = pd.DataFrame({'学号': ['204', '205', '206'], '语文': [95, 87, 83], '数学': [84, 75, 91]}) cheng = pd.concat([df1, df2], ignore_index=True) print(cheng) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 能区分连接 6 行与按学号内连接 0 行；② 说明重建索引及漏写后 `loc[0]` 命中两行；③ 追加新行须先构造数据框再 `concat`。只背 6 行输出、说不清与 `merge()` 的差别不得满分。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "CSV 的全称和含义是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Comma-Separated Values，逗号分隔值",
   "B. Column-Separated Values，列分隔值",
   "C. Cell-Saved Version，单元格保存版本",
   "D. Character-Set Values，字符集取值"
  ],
  "answer": "A",
  "analysis": "** 语料明确：CSV（Comma-Separated Values，逗号分隔值）是一种常见的用于存储表格数据的纯文本格式。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "关于 `to_csv()` 和 `read_csv()` 的调用对象，下列说法正确的是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 二者都是数据框的成员，都要通过数据框对象调用",
   "B. `to_csv()` 是数据框的成员，要通过数据框对象调用；`read_csv()` 是pandas的成员，要通过pandas调用",
   "C. 二者都是pandas的成员，都要写成 `pd.to_csv()`、`pd.read_csv()`",
   "D. `to_csv()` 是pandas的成员；`read_csv()` 是数据框的成员"
  ],
  "answer": "B",
  "analysis": "** 语料：`to_csv()` 是数据框的成员，要通过数据框对象调用；`read_csv()` 是pandas的成员，要通过pandas调用。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "`to_csv()` 是数据框的成员，要通过数据框对象调用。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 与语料一致。正确写法是 `df.to_csv('renshu.csv', index=True)`，而不是 `pd.to_csv(...)`。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "pandas默认使用UTF-8编码。如果文件是用pandas的 `to_csv` 写的，用 `read_csv` 读取时不用指定编码。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料原文。由 `to_csv` 写出的文件与 `read_csv` 默认编码一致；其他方式创建的文件则另当别论。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "关于数据框的 `to_csv()`，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 要通过数据框对象调用，例如 `df.to_csv('renshu.csv', index=True)`",
   "B. `index=True` 指示保存索引，`index=False` 指示不保存索引",
   "C. 默认用逗号分隔，也可用 `sep` 指定其他分隔符（如 `sep='\\t'` 表示制表符）",
   "D. 它与 `read_csv()` 一样，必须写成 `pd.to_csv(df)`"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均来自 4.5.1 语料。`to_csv()` 是数据框方法，不是 pandas 顶层函数，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "执行下列代码后，打印出的文件首行（去掉换行）是？ ```python import pandas as pd from pandas import DataFrame data = [[800, 750, 500], [700, 800, 600], [680, 720, 580]] col = ['会计', '保险', '外语'] ind = ['2022', '2023', '2024'] df = DataFrame(data, columns=col, index=ind) df.to_csv('renshu.csv', index=True) with open('renshu.csv', encoding='utf-8') as f: print(f.readline().strip()) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `,会计,保险,外语`",
   "B. `会计,保险,外语`",
   "C. `2022,800,750,500`",
   "D. `index,会计,保险,外语`"
  ],
  "answer": "A",
  "analysis": "** `index=True` 会保存行索引。课程给出的文件首行为 `,会计,保险,外语`：索引列没有列名，故第一个逗号前为空。B 是 `index=False` 的首行；C 是第一行数据，不是表头。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "执行下列代码后，关于 `renshu.csv` 的说法正确的是？ ```python import pandas as pd from pandas import DataFrame data = [[800, 750, 500], [700, 800, 600], [680, 720, 580]] col = ['会计', '保险', '外语'] ind = ['2022', '2023', '2024'] df = DataFrame(data, columns=col, index=ind) df.to_csv('renshu.csv', index=False) with open('renshu.csv', encoding='utf-8') as f: print(f.read()) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 首行是 `,会计,保险,外语`，数据行带有 2022、2023、2024",
   "B. 首行是 `会计,保险,外语`，随后三行为 `800,750,500`、`700,800,600`、`680,720,580`，不保存年份索引",
   "C. 文件只有表头、没有数据行",
   "D. 分隔符变成制表符，不再是逗号"
  ],
  "answer": "B",
  "analysis": "** `index=False` 指示不保存索引。课程给出的文件内容首行为 `会计,保险,外语`，数据行不再出现年份。本题未设置 `sep`，仍用默认逗号。A 是 `index=True` 的情形。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "关于 `pd.read_csv()`，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 它是pandas的成员，通过pandas调用，可以把CSV读取为数据框对象",
   "B. 如果文件第一列是索引，则应设置参数 `index_col`（如 `index_col=0`），否则不设置",
   "C. 要根据文件的分隔符设置参数 `sep`",
   "D. CSV只能用逗号分隔，因此 `read_csv` 不允许使用 `sep` 参数"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 是语料对 `read_csv` 的说明。写出也可用 `sep` 指定制表符等其他分隔符，读入必须按同样分隔符设置 `sep`，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "无论CSV文件是用什么方式创建的，用 `read_csv` 读取时都不必指定编码，因为pandas总能自动识别，不会出现中文乱码。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 仅当文件是用pandas的 `to_csv` 写的，读取时才不用指定编码。如果文件是别的方式创建的，读取时需要指定创建时的编码，否则会出现中文乱码。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "执行下列代码后，`df2.shape`、`df2.iloc[0, 0]`、列标签列表分别是？ ```python import pandas as pd from pandas import DataFrame data = [[800, 750, 500], [700, 800, 600], [680, 720, 580]] col = ['会计', '保险', '外语'] ind = ['2022', '2023', '2024'] df = DataFrame(data, columns=col, index=ind) df.to_csv('renshu.csv', index=True, sep='\\t') df2 = pd.read_csv('renshu.csv', index_col=0, sep='\\t') print(df2.shape) print(df2.iloc[0, 0]) print(list(df2.columns)) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `(3, 3)`、`800`、`['会计', '保险', '外语']`",
   "B. `(3, 4)`、`2022`、多出一列保存下来的年份",
   "C. `(3, 1)`、整行挤在一列里",
   "D. `(3, 3)`、`500`、`['会计', '保险', '外语']`"
  ],
  "answer": "A",
  "analysis": "** 写出用了 `index=True` 与 `sep='\\t'`，读入用配对的 `index_col=0` 与 `sep='\\t'`，可还原为 3 行 3 列的人数表。`iloc[0, 0]` 是 2022 年会计人数 800，不是外语的 500（那是 `iloc[0, 2]`）。B 是写出保存了索引但读入未设 `index_col` 的典型结果；C 是读入漏写 `sep='\\t'`、仍按默认逗号切分的结果。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "请写出完整可运行代码：创建与课程相同的人数数据框（列：会计/保险/外语，行标签：2022/2023/2024），保存为 `renshu.csv` 且保存索引；再用 `read_csv` 读回为数据框并打印。然后说明：`index=True` 与 `index=False` 写出的文件内容有何差别？",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 用 `DataFrame`/`pd.DataFrame` 按课程数据创建；② `df.to_csv(..., index=True)`；③ `pd.read_csv(..., index_col=0)`；④ 能对比 True/False 时文件是否包含年份索引。写成 `pd.to_csv`、漏 `index_col` 或数据写错可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.5.1",
  "title": "读写CSV文件",
  "q": "结合下列代码，回答三个问题：（1）为什么必须写成 `df.to_csv(...)` 和 `pd.read_csv(...)`，而不能对调？（2）这里为什么要同时写 `index=True`、`sep='\\t'` 与读入的 `index_col=0`、`sep='\\t'`？若读入漏掉其中某一个，会出现什么问题？（3）若这个CSV不是用 `to_csv` 写的，而是用其他软件创建且编码不是UTF-8，直接 `read_csv` 可能出现什么现象？应如何处理？ ```python import pandas as pd from pandas import DataFrame data = [[800, 750, 500], [700, 800, 600], [680, 720, 580]] col = ['会计', '保险', '外语'] ind = ['2022', '2023', '2024'] df = DataFrame(data, columns=col, index=ind) df.to_csv('renshu.csv', index=True, sep='\\t') df2 = pd.read_csv('renshu.csv', index_col=0, sep='\\t') print(df2) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 分清两个函数的调用对象；② 能说明 `index_col` 与 `sep` 要和文件内容配对，并分别说出漏设的后果；③ 能指出非 `to_csv` 文件需指定创建时编码，否则中文乱码。只背函数名、说不清配对关系不得满分。 对应文件： - `知识库/第4章 pandas数据分析库/4.5.1-读写CSV文件.md` - `问答库/第4章 pandas数据分析库/4.5.1-读写CSV文件.md`"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "pandas 中实现 Excel 文件存取的两个函数是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `to_csv()` 和 `read_csv()`",
   "B. `to_excel()` 和 `read_excel()`",
   "C. `merge()` 和 `concat()`",
   "D. `groupby()` 和 `agg()`"
  ],
  "answer": "B",
  "analysis": "** 语料明确：`to_excel()` 和 `read_excel()` 函数实现 Excel 文件的存取。A 是上一节 CSV 的接口；C、D 分别属于合并连接与分组聚合。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "直接调用 `to_excel()` 且不指定 `sheet_name` 时，默认工作表名称是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `学院`",
   "B. `Sheet1`",
   "C. `Sheet`",
   "D. `workbook`"
  ],
  "answer": "B",
  "analysis": "** 函数 `to_excel()` 保存的默认工作表名称是 `Sheet1`。`学院` 是课程示例用 `sheet_name` 指定后的表名，不是默认值。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "`to_excel()` 是数据框的成员，要通过数据框对象调用。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料：`to_excel()` 是数据框的成员，要通过数据框对象调用，例如 `df.to_excel('renshu.xlsx', index=True)`。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "`read_excel()` 是数据框的成员，必须写成 `df.read_excel(...)`。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** `read_excel()` 是 pandas 的成员，要通过 pandas 调用，正确写法是 `pd.read_excel(...)`，不能对数据框对象调用。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "关于 `to_excel()` 写出 Excel，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `index=True` 指定需要保存索引",
   "B. `index=False` 表示不保存索引",
   "C. 可用 `sheet_name` 指定工作表名称",
   "D. 一次直接调用 `to_excel()` 就能在同一工作簿中写入多个工作表"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均来自语料。直接 `to_excel()` 保存的工作簿中只有一个工作表；要在一个工作簿中保存多个工作表，必须利用 `ExcelWriter`，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "执行下列代码后，工作簿 `renshu.xlsx` 中工作表的名称是？ ```python from pandas import DataFrame data = [[800, 750, 500], [700, 800, 600], [680, 720, 580]] col = ['会计', '保险', '外语'] ind = ['2022', '2023', '2024'] df = DataFrame(data, columns=col, index=ind) df.to_excel('renshu.xlsx', sheet_name='学院', index=True) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `Sheet1`",
   "B. `renshu`",
   "C. `学院`",
   "D. `会计`"
  ],
  "answer": "C",
  "analysis": "** 通过 `sheet_name='学院'` 指定工作表名称。若不设置该参数，默认才是 `Sheet1`。`renshu` 是文件名，`会计` 是列标签。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "关于 `pd.read_excel()` 的 `sheet_name` 参数，下列说法正确的是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须设置，否则无法读取",
   "B. 用于指定工作表名称；读取工作簿的第一个工作表时也可以不设置",
   "C. 作用与 `index_col` 完全相同",
   "D. 只能取默认值 `Sheet1`，不能改为中文表名"
  ],
  "answer": "B",
  "analysis": "** 语料：参数 `sheet_name` 用于指定工作表名称，如果读取工作簿的第一个工作表，也可以不设置该参数。课程示例还用过中文表名「学院」。`index_col` 用于指定哪一列作为行索引，与选表无关。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "要把两个数据框 `df1`、`df2` 写入同一工作簿 `workbook.xlsx` 的不同工作表，下列做法正确的有： ```python from pandas import DataFrame, ExcelWriter df1 = DataFrame({'学号': ['201', '202'], '语文': [91, 82]}) df2 = DataFrame({'学号': ['203'], '语文': [93]}) with ExcelWriter('workbook.xlsx') as writer: df1.to_excel(writer, sheet_name='表1') df2.to_excel(writer, sheet_name='表2') ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 必须使用 pandas 的 `ExcelWriter` 对象",
   "B. 在 `with ExcelWriter(...) as writer` 中分别调用 `to_excel(writer, sheet_name=...)`",
   "C. 两个工作表名称可以分别指定为 `'表1'` 和 `'表2'`",
   "D. 连续两次 `df1.to_excel('workbook.xlsx')` 与 `df2.to_excel('workbook.xlsx')` 即可追加两个工作表"
  ],
  "answer": "ABC",
  "analysis": "** 语料给出了 `ExcelWriter` 写法，用于把 `df1`、`df2` 写入同一工作簿的「表1」「表2」。直接两次 `to_excel(文件名)` 会覆盖整个工作簿，不能追加工作表，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "如果工作表包含索引，则读取时应设置参数 `index_col`；否则不设置该参数。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料对 `read_excel()` 的说明：如果工作表包含索引，则设置参数 `index_col`，否则不设置该参数。课程对应示例为 `index_col=0`。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "先按课程示例写出再读回。下列代码打印的行标签列表和 `df2.loc['2023', '保险']` 分别是？ ```python import pandas as pd from pandas import DataFrame data = [[800, 750, 500], [700, 800, 600], [680, 720, 580]] col = ['会计', '保险', '外语'] ind = ['2022', '2023', '2024'] df = DataFrame(data, columns=col, index=ind) df.to_excel('renshu.xlsx', sheet_name='学院', index=True) df2 = pd.read_excel('renshu.xlsx', sheet_name='学院', index_col=0) df2.index = df2.index.astype(str) # 读回时年份会被推断为整数，转回字符串再按标签访问 print(list(df2.index)) print(df2.loc['2023', '保险']) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `['2022', '2023', '2024']` 和 `800`",
   "B. `[0, 1, 2]` 和 `800`",
   "C. `['2022', '2023', '2024']` 和 `750`",
   "D. `['会计', '保险', '外语']` 和 `800`"
  ],
  "answer": "A",
  "analysis": "** 写出时 `index=True` 保存了行标签 2022/2023/2024；读入时 `index_col=0` 把第一列还原为索引。2023 年保险人数是二维列表第二行第二列，值为 800。750 是 2022 年保险人数；若不设 `index_col`，行标签会变成默认整数 0、1、2。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "分别说明：（1）把一个数据框保存为只含一张工作表的 Excel 时，如何指定文件名、是否保存索引、工作表名；（2）为什么直接多次调用 `to_excel()` 不能得到多工作表工作簿，正确做法是什么？",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 能写出 `to_excel()` 的文件名、`index`、`sheet_name` 三个要点及默认表名 `Sheet1`；② 能指出单次 `to_excel()` 只有一张表、多次会覆盖；③ 能写出 `ExcelWriter` 与两个 `sheet_name` 的用法。漏掉默认表名或把 `read_excel` 当成写出接口可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.5.2",
  "title": "读写Excel文件",
  "q": "结合下列代码，回答三个问题：（1）写出后工作表叫什么、有没有保存行标签？（2）为什么读入必须写 `sheet_name='学院'` 和 `index_col=0`，若改成读 `Sheet1` 或不设 `index_col` 会怎样？（3）若还要把另一个数据框 `df_b` 写进同一个 `renshu.xlsx` 的「表2」，应改用什么对象？ ```python import pandas as pd from pandas import DataFrame data = [[800, 750, 500], [700, 800, 600], [680, 720, 580]] col = ['会计', '保险', '外语'] ind = ['2022', '2023', '2024'] df = DataFrame(data, columns=col, index=ind) df.to_excel('renshu.xlsx', sheet_name='学院', index=True) df2 = pd.read_excel('renshu.xlsx', sheet_name='学院', index_col=0) df2.index = df2.index.astype(str) # 读回时年份会被推断为整数，转回字符串（即原来的行标签） print(df2) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 表名「学院」且保存了索引；② 能解释错表名读不到、不设 `index_col` 会把索引列当普通列；③ 多表必须用 `ExcelWriter`。只背参数名、说不清覆盖后果可酌情扣分。 对应文件： - `知识库/第4章 pandas数据分析库/4.5.2-读写Excel文件.md` - `问答库/第4章 pandas数据分析库/4.5.2-读写Excel文件.md`"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "用来检测数据框中缺失值、返回布尔型数据框的方法是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `dropna()`",
   "B. `fillna()`",
   "C. `isna()` 或 `isnull()`",
   "D. `duplicated()`"
  ],
  "answer": "C",
  "analysis": "** 语料明确：`isna()` 或 `isnull()` 用来检测缺失值，返回布尔型数据框。`dropna()` 是删除，`fillna()` 是填充，`duplicated()` 属于重复值检测（4.6.3）。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "关于 `df.isna()` 与 `df.isnull()`，下列说法正确的是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 前者只检测行，后者只检测列",
   "B. 两个函数的输出结果相同",
   "C. 只有 `isna()` 能用于数据框",
   "D. `isnull()` 会直接删除缺失值"
  ],
  "answer": "B",
  "analysis": "** 课程注释：`df.isna()` 与 `df.isnull()` 两个函数的输出结果相同。二者都只做检测，不删除、不填充。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "`isna()` 返回的布尔型数据框中，`True` 对应的位置有缺失值。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料说明：True 对应的位置有缺失值。课程示例中二月的美好集团、北方通信和三月的广东科技为 True。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "`dropna()` 默认会直接修改原始数据框，把含缺失值的行删掉。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** `dropna()` 删除有缺失值的行并返回一个新数据框，默认不修改原始对象。要保留结果需赋值，如 `df2 = df.dropna()`。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "下列属于课程中处理缺失值的常用方法的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 使用 `dropna()` 删除包含缺失值的行或列",
   "B. 使用 `fillna()` 用特定值（如均值、中位数或前后值）填充",
   "C. 使用 `fillna(0)` 用 0 填充缺失值",
   "D. 使用 `drop_duplicates()` 删除重复行"
  ],
  "answer": "ABC",
  "analysis": "** 处理方式取决于分析需求。课程给出 `dropna()` 删除，以及 `fillna()` 用 0、前后值或列均值填充。`drop_duplicates()` 是 4.6.3 重复值处理，不是缺失值方法。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "执行下列代码后，新数据框还剩下哪些行标签？ ```python import numpy as np from pandas import DataFrame a = np.array([[163, 113, 158], [np.nan, np.nan, 119], [193, 127, np.nan], [109, 126, 110]]) df = DataFrame(a, index=['一月', '二月', '三月', '四月'], columns=['美好集团', '北方通信', '广东科技']) print(df.dropna()) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 一月、二月、三月、四月",
   "B. 一月、四月",
   "C. 二月、三月",
   "D. 仅一月"
  ],
  "answer": "B",
  "analysis": "** `dropna()` 默认删除有缺失值的行。二月美好集团与北方通信缺失，三月广东科技缺失，这两行被删，只保留完整的一月、四月。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "执行下列代码后，二月「美好集团」的值是？ ```python import numpy as np from pandas import DataFrame a = np.array([[163, 113, 158], [np.nan, np.nan, 119], [193, 127, np.nan], [109, 126, 110]]) df = DataFrame(a, index=['一月', '二月', '三月', '四月'], columns=['美好集团', '北方通信', '广东科技']) print(df.fillna(0).loc['二月', '美好集团']) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `nan`",
   "B. `163.0`",
   "C. `0.0`",
   "D. `155.0`"
  ],
  "answer": "C",
  "analysis": "** `fillna(0)` 用 0 填充全部缺失值。二月美好集团原为缺失，填成 0.0。163.0 是前向填充结果，155.0 是列均值填充结果。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "关于 `fillna()` 的填充策略，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `fillna(0)` 用 0 值填充缺失值",
   "B. `method='ffill'` 用缺失值前面的值填充",
   "C. `method='bfill'` 用缺失值前面的值填充",
   "D. `fillna(value=df.mean())` 用所在列的平均值填充"
  ],
  "answer": "ABD",
  "analysis": "** `ffill` 是前向填充（前面的值）；`bfill` 是用后面的值填充，故 C 错误。均值填充按列计算，不是全表一个数。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "`df.fillna(method='ffill')` 指定用缺失值后面的值填充。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `method='ffill'` 用缺失值前面的值填充；用后面的值填充应指定 `method='bfill'`。较新版本 pandas 对应写法为 `df.ffill()` 与 `df.bfill()`。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "执行下列代码后，二月「美好集团」、二月「北方通信」、三月「广东科技」的填充值分别是？ ```python import numpy as np from pandas import DataFrame a = np.array([[163, 113, 158], [np.nan, np.nan, 119], [193, 127, np.nan], [109, 126, 110]]) df = DataFrame(a, index=['一月', '二月', '三月', '四月'], columns=['美好集团', '北方通信', '广东科技']) filled = df.fillna(value=df.mean()) print(filled.loc['二月', '美好集团'], filled.loc['二月', '北方通信'], filled.loc['三月', '广东科技']) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `0.0`、`0.0`、`0.0`",
   "B. `163.0`、`113.0`、`119.0`",
   "C. `155.0`、`122.0`、`129.0`",
   "D. `193.0`、`127.0`、`110.0`"
  ],
  "answer": "C",
  "analysis": "** `fillna(value=df.mean())` 用所在列平均值填充。美好集团 (163+193+109)/3=155.0，北方通信 (113+127+126)/3=122.0，广东科技 (158+119+110)/3=129.0。A 是填 0，B 是前向填充，D 是后向填充。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "写出检测缺失值的方法，并说明 `dropna()` 与 `fillna()` 各做什么；再列出课程中 `fillna()` 的三种填充方式。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 检测方法写全 isna/isnull 且说明结果相同、True 为缺失；② dropna 是删除、默认删行、返回新对象；③ fillna 三种策略（0 / 前后值 / 列均值）写清，ffill 与 bfill 方向不反。漏掉「返回新对象」或把 bfill 说成前面的值可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.6.1",
  "title": "缺失值检测与处理",
  "q": "结合下列代码，回答：（1）`isna()` 中哪些位置为 True？（2）`dropna()` 后剩下哪几行？（3）`fillna(0)`、前向填充、列均值填充时，二月「美好集团」分别变成多少？为什么三者不同？ ```python import numpy as np from pandas import DataFrame a = np.array([[163, 113, 158], [np.nan, np.nan, 119], [193, 127, np.nan], [109, 126, 110]]) df = DataFrame(a, index=['一月', '二月', '三月', '四月'], columns=['美好集团', '北方通信', '广东科技']) print(df.isna()) print(df.dropna()) print(df.fillna(0)) print(df.ffill()) # 课程写法：df.fillna(method='ffill') print(df.fillna(value=df.mean())) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 三个缺失位置写全；② dropna 剩一月、四月；③ 三个填充值 0.0 / 163.0 / 155.0 正确，并能解释策略差异；④ 能指出默认不改原对象更佳。只背数字不讲原因可酌情扣分。 --- 文件位置： - 知识库：`知识库/第4章 pandas数据分析库/4.6.1-缺失值检测与处理.md`（正文约 480 字） - 问答库：`问答库/第4章 pandas数据分析库/4.6.1-缺失值检测与处理.md`（12 题：单选/多选/判断/简答，易 4 / 中 6 / 难 2） 术语按语料使用「序列 / 数据框」。涉及数据的题目均带可运行代码；第 12 题前向填充写成 `df.ffill()`，与课程 `fillna(method='ffill')` 结果一致（pandas 3 已去掉 `fillna` 的 `method` 参数）。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "课程中，异常值是指？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 数据框中完全相同的重复行",
   "B. 数据中偏离正常范围的极端值",
   "C. 用 `np.nan` 表示的缺失值",
   "D. 分位数恰好等于 25% 的观测"
  ],
  "answer": "B",
  "analysis": "** 语料定义：异常值是指数据中偏离正常范围的极端值，可能是由于测量错误、数据录入错误或其他原因导致的。A 是重复值，C 是缺失值，均属其他小节。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "计算数据分位数、进而得到第一和第三四分位数时，课程使用的函数是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `mean()`",
   "B. `dropna()`",
   "C. `quantile()`",
   "D. `duplicated()`"
  ],
  "answer": "C",
  "analysis": "** `quantile()` 用于计算数据的分位数。`mean()` 求均值，`dropna()` 删缺失值，`duplicated()` 检测重复值。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "四分位数范围 IQR 的计算公式是 IQR = Q3 - Q1。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料明确：IQR = Q3 - Q1。Q1、Q3 分别是第一、第三四分位数。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "25% 和 75% 分位数分别称为第一和第三四分位数。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程说明：通过 `quantile()` 可计算 25%、75% 等常用分位数；25% 和 75% 分位数分别称为第一和第三四分位数（Q1、Q3）。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "按课程的 IQR 规则，下列关于异常值判定的说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 小于 `Q1 - 1.5 * IQR` 的观测视为异常值",
   "B. 大于 `Q3 + 1.5 * IQR` 的观测视为异常值",
   "C. 只要小于 Q1 或大于 Q3，就是异常值",
   "D. 识别异常值前需要先用 `quantile()` 求出 Q1 和 Q3"
  ],
  "answer": "ABD",
  "analysis": "** 判定区间是 `Q1 - 1.5*IQR` 与 `Q3 + 1.5*IQR` 之外，不是简单的「在 Q1、Q3 之外」。Q1、Q3 由 `quantile(0.25)`、`quantile(0.75)` 得到。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "执行下列代码，Q1、Q3 分别对应哪两个调用？ ```python import pandas as pd data = pd.Series([10, 12, 15, 20, 100, 25, 30, 200]) Q1 = data.quantile(0.25) Q3 = data.quantile(0.75) print(Q1, Q3) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `quantile(25)` 与 `quantile(75)`",
   "B. `quantile(0.25)` 与 `quantile(0.75)`",
   "C. `quantile(1)` 与 `quantile(3)`",
   "D. `quantile(0.5)` 与 `quantile(1.5)`"
  ],
  "answer": "B",
  "analysis": "** 参数是 0 到 1 的比例。第一四分位数用 `0.25`，第三四分位数用 `0.75`。写成 25、75 会超出合法比例范围，得不到 Q1、Q3。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "执行下列代码，`print` 输出的异常值列表是？ ```python import pandas as pd data = pd.Series([10, 12, 15, 20, 100, 25, 30, 200]) Q1 = data.quantile(0.25) Q3 = data.quantile(0.75) IQR = Q3 - Q1 lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR outliers = (data < lower_bound) | (data > upper_bound) print(data[outliers].tolist()) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `[10, 12]`",
   "B. `[100, 200]`",
   "C. `[20, 25, 30]`",
   "D. `[10, 12, 15, 20, 100, 25, 30, 200]`"
  ],
  "answer": "B",
  "analysis": "** 本例 Q1=14.25、Q3=47.5、IQR=33.25，下界约 -35.63、上界约 97.38。只有 100 和 200 大于上界，被标记为异常值。【例4-1】正是这组数据。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "【例4-1】识别序列异常值并用均值替代时，下列做法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 用 `(data < lower_bound) | (data > upper_bound)` 得到布尔序列 `outliers`",
   "B. 用 `data[~outliers].mean()` 计算不含异常值的均值",
   "C. 用 `data[outliers] = mean_value` 把异常位置替换为该均值",
   "D. 用全部 8 个数据（含 100 和 200）的均值去替换异常值"
  ],
  "answer": "ABC",
  "analysis": "** 语料步骤：识别异常值 → 计算均值（不包含异常值）→ 用均值替换。D 把极端值算进均值，与例4-1 相反。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "用均值替换异常值时，应当先把异常值包含进均值再替换，这样更接近原始数据的总体水平。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 例4-1 明确「计算均值（不包含异常值）」。若把 100、200 算进去，均值会被拉高，替换后仍受极端值影响。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "执行下列代码，两行 `print` 的结果最接近哪一项？ ```python import pandas as pd data = pd.Series([10, 12, 15, 20, 100, 25, 30, 200]) Q1 = data.quantile(0.25) Q3 = data.quantile(0.75) IQR = Q3 - Q1 lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR outliers = (data < lower_bound) | (data > upper_bound) mean_value = data[~outliers].mean() data = data.astype(float) # 目标序列转换为浮点，保证均值可写入（新版本 pandas 要求） data[outliers] = mean_value print(round(mean_value, 2)) print(data.iloc[4], data.iloc[7]) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `51.5`，且第 5、第 8 个元素仍为 100 和 200",
   "B. `18.67`，且第 5、第 8 个元素都被替换为该均值",
   "C. `18.67`，但 100 和 200 被删除，序列长度变为 6",
   "D. `51.5`，且第 5、第 8 个元素都被替换为 51.5"
  ],
  "answer": "B",
  "analysis": "** `~outliers` 保留 10、12、15、20、25、30，均值 112/6≈18.67。`data[outliers] = mean_value` 只改 True 位置（原 100、200，即 iloc[4] 与 iloc[7]），不缩短序列。若误用全部数据求均值会得到 51.5（选项 A、D）。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "请写出完整可运行代码：创建与【例4-1】相同的序列 `data = [10, 12, 15, 20, 100, 25, 30, 200]`，用 IQR 规则识别异常值，用不含异常值的均值替换它们，并打印处理后的数据。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 用序列创建该 8 个数；② `quantile(0.25)`/`quantile(0.75)` 求 Q1、Q3，IQR=Q3-Q1；③ 上下界用 1.5*IQR，布尔条件加括号并用 `|`；④ 均值用 `data[~outliers].mean()`，再布尔赋值替换。四步正确给满分。"
 },
 {
  "cat": "pandas分析/4.6.2",
  "title": "异常值检测与处理",
  "q": "结合下列代码，回答三个问题：（1）写出异常值的判定公式，并说明本例中 100、200 为何被判为异常值。（2）为什么求替换均值时要用 `data[~outliers]` 而不是 `data.mean()`？（3）`outliers` 那一行两个条件为什么必须分别加圆括号？ ```python import pandas as pd data = pd.Series([10, 12, 15, 20, 100, 25, 30, 200]) Q1 = data.quantile(0.25) Q3 = data.quantile(0.75) IQR = Q3 - Q1 lower_bound = Q1 - 1.5 * IQR upper_bound = Q3 + 1.5 * IQR outliers = (data < lower_bound) | (data > upper_bound) mean_value = data[~outliers].mean() data = data.astype(float) # 目标序列转换为浮点，保证均值可写入（新版本 pandas 要求） data[outliers] = mean_value print(data) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 写出带 1.5*IQR 的判定式并指出 100、200 超上界；② 说明均值必须剔除异常值；③ 说明括号与 `|` 的必要性。三点答全给满分。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "课程中用来检测数据框重复行的函数是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `isna()`",
   "B. `duplicated()`",
   "C. `dropna()`",
   "D. `astype()`"
  ],
  "answer": "B",
  "analysis": "** 语料明确：`duplicated()` 函数用于检测数据中的重复值。`isna()`/`dropna()` 属于缺失值，`astype()` 属于类型转换。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "`drop_duplicates()` 的作用是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 检测缺失值并返回布尔数据框",
   "B. 按分位数识别异常值",
   "C. 删除重复值，可选择保留第一行或最后一行",
   "D. 把序列转换成指定数据类型"
  ],
  "answer": "C",
  "analysis": "** 语料：`drop_duplicates()` 函数用于删除重复值。可选择保留第一行或最后一行，对应 `keep='first'` 与 `keep='last'`。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "`duplicated()` 会返回一个布尔类型的序列对象，指示每一行是否为重复行。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料原句：该函数会返回一个布尔类型的序列对象，指示每一行是否为重复行。注意返回的是序列，不是数据框。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "`duplicated()` 通常保留第一次出现的值，后续重复的值会标记为 True。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是课程对 `duplicated()` 默认规则的说明。第一次出现为 False，后面相同的行才为 True。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "关于重复值检测与处理，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 处理重复值是数据清洗的重要步骤，可避免冗余数据影响分析结果",
   "B. `duplicated()` 返回布尔类型的序列",
   "C. `drop_duplicates(keep='first')` 保留第一行",
   "D. `drop_duplicates(keep='last')` 会把所有行全部删掉"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均来自 4.6.3 语料。`keep='last'` 是保留最后一次出现的重复行，不是删光全部行，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "执行下列代码后，被标记为 True 的是哪一行？ ```python from pandas import DataFrame data = {'A': [1, 2, 2, 3], 'B': [4, 5, 5, 6]} df = DataFrame(data) print(df.duplicated()) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 索引 0（第一行 1、4）",
   "B. 索引 1（第一次出现的 2、5）",
   "C. 索引 2（后续出现的 2、5）",
   "D. 索引 1 和 2 同时为 True"
  ],
  "answer": "C",
  "analysis": "** 第 1 行与第 2 行数据相同，但通常保留第一次出现，只有后续重复行标 True。语料注释：索引 2 这一行被标记为重复行。D 把“整组相同行”都当成重复，与默认规则不符。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "沿用上题数据框，执行 `df.drop_duplicates(keep='first')` 后，结果的行标签是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `0, 1, 2, 3`（一行都没删）",
   "B. `0, 1, 3`",
   "C. `0, 2, 3`",
   "D. `0, 3`"
  ],
  "answer": "B",
  "analysis": "** `keep='first'` 保留第一次出现的 (2, 5)，即索引 1，删除后续的索引 2。留下 0、1、3 三行。`0, 2, 3` 是 `keep='last'` 的结果。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "沿用课程示例，比较两种删除方式，下列说法正确的有： ```python from pandas import DataFrame data = {'A': [1, 2, 2, 3], 'B': [4, 5, 5, 6]} df = DataFrame(data) print(df.drop_duplicates(keep='first')) print(df.drop_duplicates(keep='last')) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `keep='first'` 留下行标签 0、1、3",
   "B. `keep='last'` 留下行标签 0、2、3",
   "C. 两种结果中，中间那行的 A、B 都是 2 和 5",
   "D. 两种结果的行标签完全相同"
  ],
  "answer": "ABC",
  "analysis": "** 语料注释：保留第一行时序号为 1，保留最后一行时序号为 2，重复行数据相同、序号不同。因此 C 对、D 错。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "`df.drop_duplicates(keep='first')` 执行后，原始数据框 `df` 会变成 3 行。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 与 `dropna()` 类似，`drop_duplicates()` 返回新数据框，默认不修改原对象。原 `df` 仍是 4 行，必须把返回值赋给变量才能保存清洗结果。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "执行下列代码，三处打印结果依次是？ ```python from pandas import DataFrame data = {'A': [1, 2, 2, 3], 'B': [4, 5, 5, 6]} df = DataFrame(data) print(bool(df.duplicated().loc[2])) print(list(df.drop_duplicates(keep='first').index)) print(df.drop_duplicates(keep='last').loc[2, 'A']) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `True`，`[0, 1, 3]`，`2`",
   "B. `False`，`[0, 1, 3]`，`2`",
   "C. `True`，`[0, 2, 3]`，`2`",
   "D. `True`，`[0, 1, 3]`，`1`"
  ],
  "answer": "A",
  "analysis": "** `duplicated()` 在索引 2 处为 True。`keep='first'` 行标签为 0、1、3。`keep='last'` 保留的 (2, 5) 行标签是 2，该行 A 列仍是 2，不是 1。C 把两种 `keep` 的索引弄反了。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "请写出完整可运行代码：按课程示例创建数据框，先检测重复行，再分别按保留第一行、保留最后一行删除重复值并打印。说明：哪一行会被 `duplicated()` 标为 True？两种删除结果的行标签有何不同？",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 示例数据与 `DataFrame` 创建正确；② 写出 `duplicated()`、`keep='first'`、`keep='last'`；③ 指出索引 2 为 True；④ 能对比两种行标签。漏写 `keep` 或把第 1 行也当成 True 可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.6.3",
  "title": "重复值检测与处理",
  "q": "结合下列代码，回答三个问题：（1）为什么索引 1 是 False、索引 2 是 True？（2）`keep='first'` 与 `keep='last'` 留下的数值是否相同？行标签为什么不同？（3）若写成 `df[df.duplicated()]`，会得到哪几行？原 `df` 有没有被删行？ ```python from pandas import DataFrame data = {'A': [1, 2, 2, 3], 'B': [4, 5, 5, 6]} df = DataFrame(data) print(df.duplicated()) print(df.drop_duplicates(keep='first')) print(df.drop_duplicates(keep='last')) print(df[df.duplicated()]) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 能用“保留第一次、后续标 True”解释 1 与 2 的布尔值；② 能说出数据相同、序号不同；③ 能说明 `df[df.duplicated()]` 只含索引 2，且原对象不变。把索引 1、2 都说成 True，或认为原 `df` 已被改成 3 行，不得满分。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "课程中进行数据类型转换时，通常采用的方法是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `fillna()`",
   "B. `astype()`",
   "C. `dropna()`",
   "D. `duplicated()`"
  ],
  "answer": "B",
  "analysis": "** 语料明确：通常采用 `astype()` 方法，可以将序列、数据框指定列或者数据框对象转换为指定的数据类型。A、C 属于缺失值处理，D 属于重复值检测。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "之所以要进行数据类型转换，是因为？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 转换后可以自动删除重复行",
   "B. 转换后缺失值会变成 0",
   "C. 不同的分析方法需要特定的数据类型",
   "D. 只有转成字符串才能参与运算"
  ],
  "answer": "C",
  "analysis": "** 语料原句：因为不同的分析方法需要特定的数据类型，数据类型转换是处理和清洗数据的常见操作。A、B 分别是重复值、缺失值处理的效果，不是类型转换的目的。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "`astype()` 可以将序列、数据框的指定列或者整个数据框对象转换为指定的数据类型。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程说明：`astype()` 可将序列、数据框指定列或数据框对象转为指定类型。整表转换与单列转换都是合法用法。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "执行 `df['北方通信'].astype('float32')` 后，原数据框中「北方通信」列会立刻变成 `float32`。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 只转换一列时生成一个新的序列对象，不会改写原数据框。要写入原始对象，必须赋值：`df['北方通信'] = df['北方通信'].astype('float32')`。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "关于 `astype()`，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可以对整个数据框调用，把所有列转成目标类型",
   "B. 可以对数据框的一列调用，生成一个新的序列对象",
   "C. 默认会原地修改原始数据框",
   "D. 要把单列转换结果写回原对象，需要赋值"
  ],
  "answer": "ABD",
  "analysis": "** 课程给出整表 `df.astype('float32')` 与单列 `df['北方通信'].astype('float32')` 两种用法，并强调「以下命令可以将新生成的对象写入原始对象」。`astype()` 返回新对象，默认不原地修改，故 C 错误。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "执行下列代码后，`df2` 各列的 `dtype` 是？ ```python import numpy as np from pandas import DataFrame a = np.array([[163, 113, 132], [175, 129, 119], [193, 127, 125], [189, 126, 110]]) df = DataFrame(a, index=['一月', '二月', '三月', '四月'], columns=['美好集团', '北方通信', '广东科技']) df2 = df.astype('float32') print(df2.dtypes) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 三列都是 `int64`",
   "B. 三列都是 `float32`",
   "C. 只有「北方通信」是 `float32`，其余为 `int64`",
   "D. 三列都是 `float64`"
  ],
  "answer": "B",
  "analysis": "** `df.astype('float32')` 将数据框的所有列都转换成目标数据类型。课程示例转换后各列显示为 163.0、113.0 等形式，`dtype` 为 `float32`。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "执行下列代码后，打印的 `dtype` 分别是？ ```python import numpy as np from pandas import DataFrame a = np.array([[163, 113, 132], [175, 129, 119], [193, 127, 125], [189, 126, 110]]) df = DataFrame(a, index=['一月', '二月', '三月', '四月'], columns=['美好集团', '北方通信', '广东科技']) s = df['北方通信'].astype('float32') print(s.dtype) print(df['北方通信'].dtype) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `float32` 与 `float32`",
   "B. `int64` 与 `int64`",
   "C. `float32` 与 `int64`",
   "D. `float64` 与 `float32`"
  ],
  "answer": "C",
  "analysis": "** 单列 `astype('float32')` 生成新序列，`s.dtype` 为 `float32`（课程输出含 `Name: 北方通信, dtype: float32`）。未赋值回 `df`，原列仍为整数类型（如 `int64`）。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "要把「北方通信」列转为 `float32` 并写进原数据框，下列写法正确的有： ```python import numpy as np from pandas import DataFrame a = np.array([[163, 113, 132], [175, 129, 119], [193, 127, 125], [189, 126, 110]]) df = DataFrame(a, index=['一月', '二月', '三月', '四月'], columns=['美好集团', '北方通信', '广东科技']) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `df['北方通信'] = df['北方通信'].astype('float32')`",
   "B. `df['北方通信'].astype('float32')`",
   "C. `df.astype('float32')`（不赋值）就能改掉原 `df` 的这一列",
   "D. 赋值后可用 `df['北方通信'].dtype` 确认已是 `float32`"
  ],
  "answer": "AD",
  "analysis": "** 语料给出的写回命令正是 A。B、C 只产生新对象，原 `df` 不变。写回后该列 `dtype` 为 `float32`，可用 D 检查。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "`df.astype('float32')` 会把原数据框的所有列都改成 `float32`，因此不必再赋值。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 整表 `astype()` 同样返回新数据框。课程写法是直接展示 `df.astype('float32')` 的结果，并未说明它会原地修改。不赋值则原对象类型不变；要保留转换结果应写成 `df = df.astype('float32')`。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "执行下列代码后，三列的 `dtype` 依次最接近哪一项？ ```python import numpy as np from pandas import DataFrame a = np.array([[163, 113, 132], [175, 129, 119], [193, 127, 125], [189, 126, 110]]) df = DataFrame(a, index=['一月', '二月', '三月', '四月'], columns=['美好集团', '北方通信', '广东科技']) df['北方通信'] = df['北方通信'].astype('float32') print(df.dtypes) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `float32`、`float32`、`float32`",
   "B. `int64`、`float32`、`int64`",
   "C. `float32`、`int64`、`float32`",
   "D. `int64`、`int64`、`int64`"
  ],
  "answer": "B",
  "analysis": "** 只对「北方通信」赋值转换，因此该列为 `float32`，美好集团、广东科技仍为原来的整数类型（如 `int64`）。A 是整表 `astype` 的结果；D 是完全未转换。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "结合课程示例数据框（行标签一月至四月，列标签美好集团、北方通信、广东科技），分别写出：（1）把整个数据框转为 `float32` 并保留结果；（2）只把「北方通信」转为 `float32` 并写回原对象。说明两段代码各影响哪些列。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 整表用 `df.astype('float32')` 且用变量接收；② 单列必须赋值写回；③ 能说明整表改所有列、单列只改一列。漏掉赋值或把两种范围写反应扣分。"
 },
 {
  "cat": "pandas分析/4.6.4",
  "title": "数据类型转换",
  "q": "阅读下列代码，回答：（1）`print(s)` 中「北方通信」四个值及 `dtype` 是什么？（2）两行 `print` 中 `df['北方通信'].dtype` 是否相同？为什么？（3）若要把整张表都变成 `float32`，应如何修改？ ```python import numpy as np from pandas import DataFrame a = np.array([[163, 113, 132], [175, 129, 119], [193, 127, 125], [189, 126, 110]]) df = DataFrame(a, index=['一月', '二月', '三月', '四月'], columns=['美好集团', '北方通信', '广东科技']) s = df['北方通信'].astype('float32') print(s) print(df['北方通信'].dtype) df['北方通信'] = s print(df['北方通信'].dtype) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 四个浮点值与 `dtype: float32` 与课程输出一致；② 能区分「生成新序列」与「写入原始对象」；③ 整表转换要用 `df.astype('float32')` 并接收返回值。只背 API 名称、说不清赋值前后差异可酌情扣分。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "`pd.date_range()` 的作用是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 删除重复的日期记录",
   "B. 快速生成规则的时间序列",
   "C. 计算两个时间点之间的间隔",
   "D. 对时间序列数据重采样"
  ],
  "answer": "B",
  "analysis": "** 语料明确：`date_range()` 可以快速生成规则的时间序列，例如按天、按月、按年递增。计算间隔属于 4.7.2 的 `Timedelta`，重采样属于 4.7.3 的 `resample`。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "课程中 `date_range()` 的 `freq` 参数取值 `D`、`M`、`Y` 分别表示？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 小时、分钟、秒",
   "B. 天、月、年",
   "C. 日、周、季度",
   "D. 旬、月、年"
  ],
  "answer": "B",
  "analysis": "** 语料：`freq` 指定频率，`D`、`M`、`Y` 分别表示天、月、年。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "时间序列数据是指按时间顺序排列的数据，数据框常以时间作为行标签保存时间序列数据。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 4.7 开篇定义：时间序列数据按时间顺序排列，通常用于金融市场、传感器、气象等；数据框常以时间作为行标签保存。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "`date_range()` 生成的对象是可迭代对象，可通过索引访问其中的元素，元素是 `Timestamp` 对象。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程示例：`dates[0]` 得到 `Timestamp('2024-01-31 00:00:00', freq='M')`（对应按月生成时的第一个元素）。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "关于 `pd.date_range()` 的常用参数，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `start` 指定起始日期",
   "B. `periods` 指定周期数",
   "C. `freq` 指定频率",
   "D. `axis=1` 表示按列生成时间序列"
  ],
  "answer": "ABC",
  "analysis": "** 课程给出三个参数：`start`、`periods`、`freq`。`date_range()` 没有用 `axis` 来生成日期序列，D 错误。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "执行下列代码后，日期序列的第一个和最后一个元素分别是哪一天？ ```python import pandas as pd dates = pd.date_range(start='2024-01-01', periods=10, freq='D') print(dates[0]) print(dates[-1]) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `2024-01-01` 与 `2024-01-09`",
   "B. `2024-01-01` 与 `2024-01-10`",
   "C. `2024-01-01` 与 `2024-10-01`",
   "D. `2024-01-31` 与 `2024-10-31`"
  ],
  "answer": "B",
  "analysis": "** `freq='D'` 按天递增，`periods=10` 共 10 天，从 2024-01-01 到 2024-01-10。D 是 `freq='M'`（月末）的首尾日期。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "执行下列代码后，`dates[0]` 对应的日期是？ ```python import pandas as pd dates = pd.date_range(start='2024-01-01', periods=10, freq='ME') # 课程写法：freq='M' print(dates[0]) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `2024-01-01`（起始日当天）",
   "B. `2024-01-31`（对齐到月末）",
   "C. `2024-10-31`",
   "D. `2024-02-01`"
  ],
  "answer": "B",
  "analysis": "** 课程说明：`freq='M'` 生成按月序列，每个日期对齐到月末。从 2024-01-01 起第一个月末是 2024-01-31。较新版本 pandas 中 `M` 已改为 `ME`，结果相同。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "要把时间设置为数据框的行标签，课程给出的做法包括：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 字符串日期列先用 `pd.to_datetime()` 转换，再用 `set_index()` 设为索引",
   "B. 创建数据框时直接把 `pd.date_range()` 的结果作为 `index`",
   "C. 必须先对数据做 `resample()`，否则不能设时间索引",
   "D. 可用 `inplace=True` 让 `set_index()` 直接改原数据框"
  ],
  "answer": "ABD",
  "analysis": "** 语料给出两种路径：已有字符串日期列则 `to_datetime` + `set_index`；也可创建时传入 `date_range()`。`resample` 属于 4.7.3，不是设索引的前提。课程示例使用了 `inplace=True`。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "执行 `df.set_index('日期')` 且不接收返回值、也不设 `inplace=True` 时，原数据框的行标签会立刻变成「日期」列。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `set_index()` 默认返回新数据框，不修改原对象。课程要改原对象时写 `df.set_index('日期', inplace=True)`，也可写成 `df = df.set_index('日期')`。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "执行下列代码后，关于 `df.index` 的说法正确的是？ ```python import pandas as pd from pandas import DataFrame df = DataFrame({'日期': ['2024-8-1', '2024-8-2', '2024-8-3'], '数量': [81, 73, 62]}) df.set_index('日期', inplace=True) print(type(df.index).__name__) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 已是 `DatetimeIndex`，因为列名叫做「日期」",
   "B. 仍是普通 `Index`（字符串标签），因为没有先做 `to_datetime`",
   "C. 报错：字符串不能作为行标签",
   "D. 自动变成按月的 `PeriodIndex`"
  ],
  "answer": "B",
  "analysis": "** 列名不会让 pandas 自动识别为时间。字符串日期必须先 `pd.to_datetime()`，`set_index` 后才会得到 `DatetimeIndex`。未转换时只是普通标签索引，后续按时间切片、重采样会受影响。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "请写出完整可运行代码：用 `date_range()` 生成从 2024-01-01 起共 10 天的日期序列，并取出第一个元素。再说明把 `freq` 改成按月时，第一个日期会变成什么、为什么。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 写出 `start`、`periods=10`、`freq='D'`；② 用索引取出 `dates[0]`；③ 说明按月对齐月末，首日为 2024-01-31。只写函数名不写参数，或把按月说成 2024-01-01，酌情扣分。"
 },
 {
  "cat": "pandas分析/4.7.1",
  "title": "时间序列生成与索引设置",
  "q": "结合下列两种写法，回答：（1）第一种为什么要先 `to_datetime` 再 `set_index`？（2）`inplace=True` 起什么作用？（3）第二种写法与第一种在结果上有何相同点？ ```python import pandas as pd from pandas import DataFrame # 写法一：已有字符串日期列 date = ['2024-8-1', '2024-8-2', '2024-8-3', '2024-8-4', '2024-8-5', '2024-8-6', '2024-8-7', '2024-8-8', '2024-8-9', '2024-8-10'] num = [81, 73, 62, 50, 80, 99, 89, 54, 63, 78] df1 = DataFrame({'日期': date, '数量': num}) df1['日期'] = pd.to_datetime(df1['日期']) df1.set_index('日期', inplace=True) # 写法二：创建时直接指定时间索引 dates = pd.date_range(start='2024-08-01', periods=10, freq='D') df2 = pd.DataFrame(num, index=dates, columns=['数量']) print(df1.head()) print(df2.head()) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 点明字符串必须转换，否则不是时间索引；② 说明 `set_index` 默认不改原对象；③ 指出两种途径都能把时间设为行标签，并对应课程的 8 月 1 日共 10 天示例。漏掉「未转换则不是 DatetimeIndex」或把两种写法说成必须同时使用，酌情扣分。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "pandas 用来表示时间间隔的对象是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `Timestamp`",
   "B. `Timedelta`",
   "C. `DatetimeIndex`",
   "D. `DataFrame`"
  ],
  "answer": "B",
  "analysis": "** 语料明确：pandas 使用 Timedelta 对象来表示时间间隔。`Timestamp` 表示时间点，相减后才得到 Timedelta。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "若有两个时间点，计算它们之间时间差的基本做法是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 只能调用 `resample()`",
   "B. 直接使用减法运算",
   "C. 必须先写成字符串再拼接",
   "D. 只能用 `rolling()`"
  ],
  "answer": "B",
  "analysis": "** 语料：如果有两个时间点，可以直接使用减法运算来计算它们之间的时间差，结果是一个 Timedelta 对象。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "两个 Timestamp 相减，结果是一个 Timedelta 对象。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 课程示例 `diff = end - start` 后 `type(diff)` 为 Timedelta。两个日期 2024-08-01 08:00 与 2024-08-31 08:00 相减得到 `Timedelta('30 days 00:00:00')`。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "对整条时间序列调用 `diff()` 时，第一个元素是 0 天。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** `diff()` 计算每个点与前一个的差，第一个位置没有前一项，结果为 `NaT`，不是 0，也不是普通的 `NaN`。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "下列属于课程中把时间间隔转换成特定单位时用到的方式的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `diff.days`（获取时间差包含的天数）",
   "B. `diff.seconds`（除掉天数后剩余时间包含的秒数）",
   "C. `diff.total_seconds()`（返回时间差包含的总秒数）",
   "D. `diff.resample('D')`（按天重采样）"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均为 4.7.2 转换部分的用法。`resample()` 属于 4.7.3 重采样，不是 Timedelta 的单位转换。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "执行下列代码后，`diff` 的结果是？ ```python import pandas as pd start = pd.Timestamp('2024-08-01 08:00') end = pd.Timestamp('2024-08-31 08:00') diff = end - start print(diff) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `Timedelta('0 days 00:00:00')`",
   "B. `Timedelta('30 days 00:00:00')`",
   "C. `Timedelta('31 days 00:00:00')`",
   "D. `Timestamp('2024-08-31 08:00')`"
  ],
  "answer": "B",
  "analysis": "** 两个时刻均为 08:00，从 8 月 1 日到 8 月 31 日相隔 30 天，不是 31 天。结果类型是 Timedelta，不是 Timestamp。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "执行下列代码后，`diff.seconds` 的值是？ ```python import pandas as pd start = pd.Timestamp('2024-09-01 08:00:00') end = pd.Timestamp('2024-09-03 09:10:10') diff = end - start print(diff.seconds) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `2`",
   "B. `4210`",
   "C. `177010.0`",
   "D. `86400`"
  ],
  "answer": "B",
  "analysis": "** `seconds` 是除掉天数后剩余时间的秒数。间隔为 2 天 1 小时 10 分 10 秒，剩余秒数 = 1×3600+10×60+10 = 4210。A 是 `days`，C 是 `total_seconds()`。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "关于下列代码的输出，说法正确的有： ```python import pandas as pd times = pd.Series(pd.date_range('2024-01-01', periods=5, freq='ME')) # 课程写法为 freq='M' diffs = times.diff() print(diffs) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `diffs` 是一个序列，每个点与前一个的差",
   "B. 索引 0 的值为 `NaT`",
   "C. 2024 年为闰年，1 月末到 2 月末相差 29 天",
   "D. 五个相邻差都是 30 天"
  ],
  "answer": "ABC",
  "analysis": "** 语料输出为 NaT、29 days、31 days、30 days、31 days，对应月末实际天数，并非每月都按 30 天。`freq='M'` 在较新版本 pandas 中需写成 `'ME'`，结果与课程一致。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "`diff.seconds` 返回时间差包含的总秒数。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `seconds` 只含除掉整天后的剩余秒。总秒数应调用 `total_seconds()`。课程示例中前者为 4210，后者为 177010.0。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "执行下列代码后，`days`、`seconds`、`total_seconds()` 三个结果依次是？ ```python import pandas as pd start = pd.Timestamp('2024-09-01 08:00:00') end = pd.Timestamp('2024-09-03 09:10:10') diff = end - start print(diff.days, diff.seconds, diff.total_seconds()) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `2`、`4210`、`177010.0`",
   "B. `2`、`177010`、`4210.0`",
   "C. `3`、`4210`、`177010.0`",
   "D. `2`、`70`、`172800.0`"
  ],
  "answer": "A",
  "analysis": "** 间隔 = 2 天 + 1 小时 10 分 10 秒。`days` 取整天数 2；`seconds` = 4210；`total_seconds()` = 2×86400+4210 = 177010.0。B 把后两项对调；C 把日历跨日数当成 3；D 误把 1 小时 10 分当成 70 秒且漏掉剩余时间。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "说明 pandas 如何表示和计算时间间隔；再写出把 Timedelta 转换成天、剩余秒、总秒数的三种访问方式，并用课程示例中的数字说明三者含义有何不同。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① Timedelta + 两点相减 / 序列 `diff()`；② `days`、`seconds`、`total_seconds()` 三者职责写清；③ 课程数字 2 / 4210 / 177010.0 正确，并能指出 `seconds` 不是总秒数。"
 },
 {
  "cat": "pandas分析/4.7.2",
  "title": "时间间隔计算与转换",
  "q": "结合下列代码，回答：（1）`d1` 为什么是 30 天而不是 31 天？（2）`d2` 第一个值为什么不是 0？后面四个间隔分别是多少、原因是什么？（3）`d3.days`、`d3.seconds`、`d3.total_seconds()` 各是多少？若要把剩余的 4210 秒换成时、分、秒，怎么算？ ```python import pandas as pd start = pd.Timestamp('2024-08-01 08:00') end = pd.Timestamp('2024-08-31 08:00') d1 = end - start times = pd.Series(pd.date_range('2024-01-01', periods=5, freq='ME')) # 课程写法为 freq='M' d2 = times.diff() t0 = pd.Timestamp('2024-09-01 08:00:00') t1 = pd.Timestamp('2024-09-03 09:10:10') d3 = t1 - t0 print(d1) print(d2) print(d3.days, d3.seconds, d3.total_seconds()) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 30 天来自时刻相减而非“八月有 31 天”；② 首项 NaT，四个间隔 29/31/30/31 且点出闰年 2 月；③ 三个转换值正确，并能由 4210 还原时分秒。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "课程中用来对时间序列数据做重采样的方法是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `rolling()`",
   "B. `resample()`",
   "C. `groupby()`",
   "D. `diff()`"
  ],
  "answer": "B",
  "analysis": "** 语料明确：`resample` 用于对时间序列数据进行重采样。`rolling()` 是 4.7.4 移动窗口，`diff()` 属于 4.7.2 时间间隔，`groupby()` 属于 4.3 分组。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "频率字符串 `'W'` 表示按什么频率重采样？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 天",
   "B. 周",
   "C. 月",
   "D. 年"
  ],
  "answer": "B",
  "analysis": "** 语料：常用频率如 `'D'`（天）、`'W'`（周）、`'M'`（月）等。课程示例正是 `df.resample('W').max()` 按周取最大值。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "降采样是将高频率的时间序列数据降低到更低的频率，如将每日数据降为每周数据。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是 4.7.3 对降采样的原句定义。课程温度示例（日频 → 周频）就是降采样。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "升采样是将低频率的时间序列数据提升到更高的频率，如将每月数据扩展为每日数据，通常需要插值。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料原句。升采样会引入空档，一般要配合填充或插值；降采样则主要做聚合。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "关于 `resample()`，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可根据指定时间频率对数据进行聚合、填充、插值等操作",
   "B. `'3D'` 表示每 3 天采样一次",
   "C. `'D'`、`'W'`、`'M'` 分别表示天、周、月",
   "D. 升采样就是把每日数据聚合成每周数据"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均来自 4.7.3。每日到每周是降采样，不是升采样，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "执行下列代码后，`weekly_max_temp` 中 `2024-01-07` 对应的温度是？ ```python import pandas as pd dates = pd.date_range('2024-01-01', periods=14, freq='D') df = pd.DataFrame({'温度': [30, 32, 31, 29, 28, 27, 26, 25, 24, 23, 31, 29, 28, 27]}, index=dates) weekly_max_temp = df.resample('W').max() print(weekly_max_temp) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 30（该周第一天的温度）",
   "B. 26（1 月 7 日当天的温度）",
   "C. 32（该周最高温度）",
   "D. 31（全部 14 天的最高温度）"
  ],
  "answer": "C",
  "analysis": "** 第一周为 1 月 1 日至 7 日，温度 30、32、31、29、28、27、26，最大值为 32。语料注释：每 7 天统计一次最高温度。B 把周标签当成“当天取值”，是常见错误。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "沿用上题数据框，`df.resample('W').max()` 结果的行标签是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `2024-01-01` 与 `2024-01-08`（每周第一天）",
   "B. `2024-01-07` 与 `2024-01-14`",
   "C. 仍是原来的 14 个日期",
   "D. `0` 与 `1`（整数索引）"
  ],
  "answer": "B",
  "analysis": "** 课程输出为两行：`2024-01-07` 对应 32，`2024-01-14` 对应 31。行标签是该周结束日期，不是第一天，也不会保留全部日频索引。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "沿用课程示例，比较原始数据与按周最大值，下列说法正确的有： ```python import pandas as pd dates = pd.date_range('2024-01-01', periods=14, freq='D') df = pd.DataFrame({'温度': [30, 32, 31, 29, 28, 27, 26, 25, 24, 23, 31, 29, 28, 27]}, index=dates) print(df.loc['2024-01-07', '温度']) print(df.resample('W').max()) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 原始数据 1 月 7 日的温度是 26",
   "B. 按周重采样后 1 月 7 日标签对应 32",
   "C. 第二周最高温度是 31，行标签为 `2024-01-14`",
   "D. 重采样后数据框仍有 14 行"
  ],
  "answer": "ABC",
  "analysis": "** 14 天被聚合成 2 个周箱，行数变为 2，故 D 错。A、B 说明“周标签上的值是该周聚合结果，不是当天原值”。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "写出 `df.resample('W')` 后，不接 `.max()` 等聚合，就已经得到按周统计的数据框。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `resample()` 返回重采样器，还没有完成聚合。课程写法是 `df.resample('W').max()`，必须再接 `.max()`、`.mean()`、`.sum()` 等才能得到数据框。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "执行下列代码，三处打印结果依次是？ ```python import pandas as pd dates = pd.date_range('2024-01-01', periods=14, freq='D') df = pd.DataFrame({'温度': [30, 32, 31, 29, 28, 27, 26, 25, 24, 23, 31, 29, 28, 27]}, index=dates) w = df.resample('W').max() print(int(w.loc['2024-01-07', '温度'])) print(int(df.loc['2024-01-07', '温度'])) print(int(w.loc['2024-01-14', '温度'])) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `32`，`32`，`31`",
   "B. `32`，`26`，`31`",
   "C. `26`，`26`，`27`",
   "D. `32`，`26`，`32`"
  ],
  "answer": "B",
  "analysis": "** `w` 中 `2024-01-07` 是第一周最大值 32；原始 `df` 中该日是 26。第二周 25、24、23、31、29、28、27 的最大值是 31，不是 32。A 把周聚合值误当成当天原值。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "请写出完整可运行代码：按课程示例创建 14 天温度数据框，按周重采样取最大值并打印。说明：结果有几行？两个行标签及对应温度各是多少？这是降采样还是升采样？",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① `date_range` 的 `periods=14`、`freq='D'` 与温度列表正确；② 写出 `resample('W').max()`；③ 能说出两行标签与 32、31；④ 能判断为降采样。漏写聚合或把 1 月 7 日说成 26 应扣分。"
 },
 {
  "cat": "pandas分析/4.7.3",
  "title": "时间序列数据重采样",
  "q": "结合下列代码，回答三个问题：（1）为什么 `w.loc['2024-01-07']` 是 32，而 `df.loc['2024-01-07']` 是 26？（2）若要把每月数据扩展成每日数据，这是升采样还是降采样？通常还要做什么？（3）若数据框用默认整数索引，直接 `resample('W')` 会怎样？它和 `rolling(window=7)` 有何不同？ ```python import pandas as pd dates = pd.date_range('2024-01-01', periods=14, freq='D') df = pd.DataFrame({'温度': [30, 32, 31, 29, 28, 27, 26, 25, 24, 23, 31, 29, 28, 27]}, index=dates) w = df.resample('W').max() print(w.loc['2024-01-07', '温度']) print(df.loc['2024-01-07', '温度']) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 能区分“周聚合标签”与“当天原值”；② 能判断升采样并提到插值；③ 能说明必须用日期时间索引，并能对比 `rolling()`。把 32 说成当天温度，或把升采样说成降采样，不得满分。 文件已写入： - `知识库/第4章 pandas数据分析库/4.7.3-时间序列数据重采样.md` - `问答库/第4章 pandas数据分析库/4.7.3-时间序列数据重采样.md`"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "对时间序列或任意连续数据进行移动窗口计算，课程采用的方法是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. `resample()`",
   "B. `rolling()`",
   "C. `merge()`",
   "D. `diff()`"
  ],
  "answer": "B",
  "analysis": "** 语料明确：`rolling()` 方法用于对时间序列或任意连续数据进行移动窗口计算。`resample()` 属于 4.7.3 重采样，`diff()` 属于 4.7.2 时间间隔计算。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "`rolling()` 的参数 `window` 指定的是？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 重采样的时间频率，如 `'D'`、`'W'`",
   "B. 滚动窗口的大小，即每次计算时包含的连续数据点个数",
   "C. 数据框的列个数",
   "D. 缺失值填充方式"
  ],
  "answer": "B",
  "analysis": "** 语料：参数 `window` 指定滚动窗口的大小，即每次计算时包含的连续数据点个数。频率字符串是 `resample()` 的参数。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "`rolling()` 只能用于带日期索引的时间序列，不能用于任意连续数据。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语料写明：用于对时间序列**或任意连续数据**进行移动窗口计算。窗口按连续数据点滑动，不一定要求索引是时间。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "移动窗口计算通常用于时间序列分析中的平滑处理、趋势分析或噪声过滤。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是 4.7.4 对 `rolling()` 典型用途的表述。窗口内可做求和、平均值、最大值、最小值等统计。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "下列属于课程中移动窗口可进行的统计操作或相关用法的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 求和、平均值、最大值、最小值",
   "B. 用 `window` 指定每次计算包含的连续数据点个数",
   "C. 用 `resample('W')` 按周取最大值",
   "D. 先 `rolling()` 得到窗口对象，再链式调用 `.max()` / `.min()` 等"
  ],
  "answer": "ABD",
  "analysis": "** A、B 来自 4.7.4；D 与课程写法 `df['温度'].rolling(window=3).max()` 及 4.7.5「先创建滚动窗口对象再聚合」一致。C 是 4.7.3 的 `resample()`，不是移动窗口。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "执行下列代码后，2024-09-03 对应的「滚动平均」列的值是？ ```python import pandas as pd dates = pd.date_range('2024-09-01', periods=7, freq='D') df = pd.DataFrame({'温度': [30, 32, 31, 29, 28, 27, 26]}, index=dates) df['滚动平均'] = df['温度'].rolling(window=3).max() print(df.loc['2024-09-03', '滚动平均']) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `NaN`",
   "B. `31.0`",
   "C. `32.0`",
   "D. `30.0`"
  ],
  "answer": "C",
  "analysis": "** 窗口为 3，9 月 3 日取最近 3 天 30、32、31 的最大值，为 32.0。列名虽为「滚动平均」，代码调用的是 `.max()` 而不是 `.mean()`。前两天才是 NaN。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "沿用上题数据，2024-09-01 与 2024-09-05 的「滚动平均」依次是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `30.0` 与 `31.0`",
   "B. `NaN` 与 `31.0`",
   "C. `NaN` 与 `32.0`",
   "D. `0` 与 `28.0`"
  ],
  "answer": "B",
  "analysis": "** 默认窗口未满 3 个点时结果为 NaN，故 9 月 1 日（及 9 月 2 日）为空值，不是 0。9 月 5 日窗口为 31、29、28，最高温度 31.0。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "关于下列代码的输出，说法正确的有： ```python import pandas as pd dates = pd.date_range('2024-09-01', periods=7, freq='D') df = pd.DataFrame({'温度': [30, 32, 31, 29, 28, 27, 26]}, index=dates) df['滚动平均'] = df['温度'].rolling(window=3).max() print(df) ```",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 前 2 天「滚动平均」为 NaN，因为窗口尚未凑满 3 个点",
   "B. 9 月 4 日值为 32.0，对应窗口 32、31、29",
   "C. 9 月 7 日值为 28.0，对应窗口 28、27、26",
   "D. 列名叫「滚动平均」，所以实际计算的是 3 日均值"
  ],
  "answer": "ABC",
  "analysis": "** 课程输出与注释均为「最近 3 天的最高温度」。D 错误：注释虽写滚动平均，链式调用的是 `.max()`。若用 `.mean()`，9 月 3 日才是 31.0，与课程结果不符。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "只写 `df['温度'].rolling(window=3)` 而不再调用 `.max()` 等方法，就已经得到各窗口的统计数值。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** `rolling()` 只创建滚动窗口对象。必须再对窗口对象做聚合（如 `.max()`、`.min()`、`.mean()`、`.sum()`）才得到数值序列。课程写法是 `rolling(window=3).max()`。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "执行下列代码后，`a` 在 9 月 1 日的值、`b` 在 9 月 1 日的值、`c` 在 9 月 3 日的值依次是？ ```python import pandas as pd dates = pd.date_range('2024-09-01', periods=7, freq='D') s = pd.Series([30, 32, 31, 29, 28, 27, 26], index=dates) a = s.rolling(window=3).max() b = s.rolling(window=3, min_periods=1).max() c = s.rolling(window=3).mean() print(a.loc['2024-09-01'], b.loc['2024-09-01'], c.loc['2024-09-03']) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `NaN`、`30.0`、`31.0`",
   "B. `30.0`、`30.0`、`32.0`",
   "C. `NaN`、`NaN`、`32.0`",
   "D. `0`、`30.0`、`31.0`"
  ],
  "answer": "A",
  "analysis": "** 默认 `min_periods` 等于 `window`，窗口未满时 `a` 为 NaN。`min_periods=1` 时只要有 1 个观测就计算，`b` 在 9 月 1 日为 30.0（4.7.5 KDJ 写法同理）。`c` 是 3 日均值：(30+32+31)/3=31.0，不要与课程示例的 `.max()`（32.0）搞混。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "说明 `rolling()` 的作用和 `window` 的含义；写出课程 7 天温度示例的完整可运行代码，并解释为什么前两天是 NaN、从第三天起各是多少。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 点出时间序列/任意连续数据、窗口统计、平滑/趋势/噪声；② `window` 是连续点数；③ 代码含 `date_range`、温度列与 `rolling(window=3).max()`；④ 前两天 NaN 及后五天 32.0/32.0/31.0/29.0/28.0。把结果说成均值或漏写链式 `.max()` 应扣分。"
 },
 {
  "cat": "pandas分析/4.7.4",
  "title": "移动窗口计算",
  "q": "结合下列代码，回答：（1）`r1` 前两行为什么是 NaN 而不是 0？（2）9 月 4 日 `r1` 与 `r2` 各是多少、窗口里有哪些温度？（3）若把 `r1` 改成 `.mean()`，9 月 3 日应变为多少？（4）`r3` 用 `min_periods=1` 的目的是什么，9 月 1 日会得到什么？它与 4.7.5 计算 KDJ 的写法有何对应？ ```python import pandas as pd dates = pd.date_range('2024-09-01', periods=7, freq='D') s = pd.Series([30, 32, 31, 29, 28, 27, 26], index=dates) r1 = s.rolling(window=3).max() r2 = s.rolling(window=3).min() r3 = s.rolling(window=3, min_periods=1).min() print(r1) print(r2) print(r3) ```",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① NaN 来自窗口未满，不是 0；② 9 月 4 日窗口元素与 max/min 正确；③ 均值 31.0，并能指出课程示例用的是 max；④ `min_periods=1` 的含义、首日 30.0，以及与 KDJ 最近 n 日高低价的对应。只背数字不讲窗口内容可酌情扣分。 --- 文件已写入： - `知识库/第4章 pandas数据分析库/4.7.4-移动窗口计算.md` - `问答库/第4章 pandas数据分析库/4.7.4-移动窗口计算.md`"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "时间序列数据分析旨在发现时间上的哪些规律？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅缺失值和重复值",
   "B. 趋势、季节性变化、周期性波动等",
   "C. 仅文件编码与分隔符",
   "D. 仅两表是否按学号对齐"
  ],
  "answer": "B",
  "analysis": "** 语料定义：时间序列数据分析是对按时间顺序排列的数据进行研究和处理的过程，旨在发现时间上的趋势、季节性变化、周期性波动等规律。A、C、D 分别属于 4.6、4.5、4.4。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "KDJ 指标是股票技术分析中常用的一种什么指标，主要用于判断什么状态？",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 重采样指标，判断升采样还是降采样",
   "B. 动量指标，判断市场的超买或超卖状态",
   "C. 连接指标，判断内连接还是外连接",
   "D. 清洗指标，判断是否删除重复行"
  ],
  "answer": "B",
  "analysis": "** 语料：KDJ 是动量指标，用于判断超买或超卖。它生成 K、D、J 三条曲线，不是 `resample()` 或 `merge()` 的类别。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "时间序列分析在金融、经济、气象、制造业等领域具有广泛应用，如股票价格波动预测、市场需求分析、气候变化趋势等。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是 4.7.5 开篇对应用领域的原句概括。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "计算 KDJ 时，若无前一日 K 值与 D 值，则可分别用 50 来代替。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 语料明确给出初值规则。课程程序把 `K_last`、`D_last` 初始化为 50，再按日递推。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "关于 K、D、J 三个曲线指标，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. K 值和 D 值反映股价趋势的中短期波动",
   "B. J 值用于放大市场信号，更能敏感地捕捉转折点",
   "C. 指标处于极端区域时，往往意味着趋势可能反转",
   "D. J 值等于当日 RSV，不必用 K、D 计算"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 来自 4.7.5 对 KDJ 的说明。J 的公式是当日 J 值=3×当日 K 值－2×当日 D 值，不是 RSV 本身，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "课程用文件 `601398.xlsx` 计算 KDJ。下列说法正确的是？",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 文件保存的是幸福银行 2024 年 1 月 2 日至 8 月 30 日的收盘、最高和最低价，用 `pd.read_excel('601398.xlsx', index_col=0)` 读入",
   "B. 文件是 `renshu.csv`，列名为会计、保险、外语",
   "C. 必须用 `read_csv` 读取，且不能设置 `index_col`",
   "D. 列名必须是温度、滚动平均"
  ],
  "answer": "A",
  "analysis": "** 语料给出文件名、标的、日期区间和三列价格，以及 `read_excel(..., index_col=0)`。B 是 4.5 的人数表示例，D 是 4.7.4 移动窗口示例列名。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "执行下列代码后，第一日 RSV 是？ ```python import pandas as pd stockData = pd.DataFrame({ '收盘': [10.0, 14.0, 12.0], '最高': [12.0, 14.0, 13.0], '最低': [8.0, 10.0, 10.0] }, index=pd.date_range('2024-01-02', periods=3, freq='D')) n = 2 low_n = stockData['最低'].rolling(window=n, min_periods=1).min() high_n = stockData['最高'].rolling(window=n, min_periods=1).max() rsv = (stockData['收盘'] - low_n) / (high_n - low_n) * 100 print(float(rsv.iloc[0])) ```",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. `50.0`",
   "B. `100.0`",
   "C. `0.0`",
   "D. `25.0`"
  ],
  "answer": "A",
  "analysis": "** 第一日窗口只有当天：Ln=8，Hn=12，Cn=10。RSV=(10－8)÷(12－8)×100=50。B 是第二日 RSV；D 把乘数 100 误写成 50。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "按课程程序计算 RSV 时，下列说法正确的有：",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. `stockData['最低'].rolling(window=n, min_periods=1).min()` 得到最近 n 天最低价",
   "B. `stockData['最高'].rolling(window=n, min_periods=1).max()` 得到最近 n 天最高价",
   "C. `window` 指定窗口大小，`min_periods` 指定最少观测数",
   "D. 应当用 `resample('W').max()` 代替滚动窗口来计算 RSV"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 与课程 `kdj` 及对 `rolling` 的说明一致。`resample()` 属于 4.7.3 按日历频率分箱，不是 n 日滚动最值，故 D 错误。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "课程中的 `kdj` 函数会 `return` 一个新数据框，传入的 `stockData` 保持不变。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 函数把 K、D、J 写回传入的数据框，`return` 后没有返回值。调用方式是 `stockData = pd.read_excel(...)` 再 `kdj(stockData)`，最后 `print(stockData[['K','D','J']])`，靠就地修改得到结果。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "执行下列代码，三处打印结果依次是？ ```python import pandas as pd import numpy as np stockData = pd.DataFrame({ '收盘': [10.0, 14.0, 12.0], '最高': [12.0, 14.0, 13.0], '最低': [8.0, 10.0, 10.0] }, index=pd.date_range('2024-01-02', periods=3, freq='D')) n = 2 low_n = stockData['最低'].rolling(window=n, min_periods=1).min() high_n = stockData['最高'].rolling(window=n, min_periods=1).max() rsv = (stockData['收盘'] - low_n) / (high_n - low_n) * 100 K_last = 50 D_last = 50 for i in range(2): K_last = (2 / 3) * K_last + (1 / 3) * rsv.iloc[i] D_last = (2 / 3) * D_last + (1 / 3) * K_last print(round(float(rsv.iloc[1]), 1)) print(round(float(rsv.iloc[2]), 1)) print(round(float(K_last), 2)) ```",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. `100.0`，`50.0`，`66.67`",
   "B. `100.0`，`66.7`，`66.67`",
   "C. `50.0`，`50.0`，`50.0`",
   "D. `100.0`，`50.0`，`50.0`"
  ],
  "answer": "A",
  "analysis": "** 第二日 2 日窗口：最低 8、最高 14、收盘 14，RSV=100。第三日窗口：最低 10、最高 14、收盘 12，RSV=(12－10)÷(14－10)×100=50。若误用当日最高 13，会得到约 66.7（选项 B）。K 从 50 起：第一日 RSV=50 仍为 50；第二日 K=2/3×50＋1/3×100=66.67。D 把 K 停在初值 50。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "请写出完整可运行代码：构造与第 7 题相同的三行价格数据框，按 n=2、`min_periods=1` 计算 RSV 并打印。说明 RSV 公式中 Cn、Ln、Hn 的含义，并给出三日 RSV。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 列名为收盘、最高、最低；② 写出 `rolling(...).min()/.max()` 再套 RSV 公式；③ 能解释 Cn、Ln、Hn；④ 三日结果 50、100、50。只用当日最高最低算第三日、或改用 `resample()`，应扣分。"
 },
 {
  "cat": "pandas分析/4.7.5",
  "title": "时间序列数据分析",
  "q": "结合课程 `kdj` 程序，回答：（1）从原始价格到 K、D、J 的计算顺序与三条公式；（2）为什么 `rolling` 要写 `min_periods=1`，若省略会怎样；（3）K、D 为何用循环加 `at[]`，J 却可以直接列运算；（4）函数为什么几乎不使用参数 `m1`、`m2`，调用后又怎样看到结果。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：① 顺序与四条公式（含初值 50）正确；② 能说明 `min_periods` 与 NaN 连锁；③ 能区分递推写入与列运算；④ 能说明就地修改与调用方式。把 J 写成 3D－2K、或把 KDJ 说成 `resample()`，不得满分。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "简单来说，计算机视觉就是让计算机能够像人一样理解和处理图像与视频内容，这一过程常被概括为让计算机（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 听懂语音",
   "B. “看懂”世界",
   "C. 构造知识图谱",
   "D. 完成符号演算"
  ],
  "answer": "B",
  "analysis": "** 课程将计算机视觉概括为让计算机像人一样理解和处理图像和视频内容，“看懂”世界。A项属智能语音，C项属知识图谱，D项属符号方法，均不是本小节定义。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "计算机视觉模拟的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 人类听觉系统",
   "B. 人类视觉系统",
   "C. 人类消化系统",
   "D. 人类运动系统"
  ],
  "answer": "B",
  "analysis": "** 语料定义计算机视觉是利用计算机技术模拟人类视觉系统，对图像或视频中的物体、场景和行为进行识别、理解和解释。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "计算机视觉是人工智能领域的一个重要分支。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 本章前言明确指出，计算机视觉是人工智能领域的一个重要分支。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "计算机视觉只处理静态图像，不涉及视频内容。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 定义中的处理对象是图像或视频中的物体、场景和行为，视频同样属于计算机视觉的处理范围。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "计算机视觉结合了下列哪些领域的技术（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 图像处理",
   "B. 模式识别",
   "C. 机器学习",
   "D. 量子通信"
  ],
  "answer": "ABC",
  "analysis": "** 语料指出计算机视觉结合了图像处理、模式识别、机器学习等多个领域的技术。量子通信不是本小节所列技术来源。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "按照课程划分，计算机视觉发展历程中的深度学习兴起期对应的时间是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪80年代",
   "B. 20世纪90年代",
   "C. 21世纪初",
   "D. 21世纪20年代至今"
  ],
  "answer": "C",
  "analysis": "** 五个阶段中，深度学习兴起期对应21世纪初；20世纪80年代是基础发展期，20世纪90年代是系统开发期，21世纪20年代至今是跨学科融合期。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "下列属于本章前言中列举的计算机视觉应用例子的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 刷脸支付",
   "B. 拍照识物",
   "C. 人证合一过安检",
   "D. 机器翻译"
  ],
  "answer": "ABC",
  "analysis": "** 前言以刷脸支付、拍照识物、货物自动分拣、人证合一过安检、人流量统计等说明计算机视觉正在改变生活。机器翻译属于自然语言处理，不是本小节所列视觉应用。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "跨学科融合期对应的时间是21世纪初。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 21世纪初对应的是深度学习兴起期；跨学科融合期是21世纪20年代至今。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "简述计算机视觉的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出模拟人类视觉系统；对象为图像或视频中的物体、场景和行为；任务为识别、理解和解释；可补充结合图像处理、模式识别、机器学习，以及“看懂”世界的通俗概括。只写“处理图片”而未提识别与理解，给部分分。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "下列关于计算机视觉五个发展阶段及其时间对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 萌芽期（20世纪80年代）—基础发展期（20世纪60—70年代）—系统开发期（20世纪90年代）—深度学习兴起期（21世纪初）—跨学科融合期（21世纪20年代至今）",
   "B. 萌芽期（20世纪60—70年代）—基础发展期（20世纪80年代）—系统开发期（20世纪90年代）—深度学习兴起期（21世纪初）—跨学科融合期（21世纪20年代至今）",
   "C. 萌芽期（20世纪60—70年代）—基础发展期（20世纪90年代）—系统开发期（20世纪80年代）—深度学习兴起期（21世纪20年代至今）—跨学科融合期（21世纪初）",
   "D. 萌芽期（21世纪初）—基础发展期（20世纪80年代）—系统开发期（20世纪90年代）—深度学习兴起期（20世纪60—70年代）—跨学科融合期（21世纪20年代至今）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的顺序与时间是：萌芽期（20世纪60—70年代）、基础发展期（20世纪80年代）、系统开发期（20世纪90年代）、深度学习兴起期（21世纪初）、跨学科融合期（21世纪20年代至今）。A项把萌芽期与基础发展期对调；C项把基础发展期与系统开发期对调，并把后两个阶段的时间写反；D项把萌芽期与深度学习兴起期写反。"
 },
 {
  "cat": "计算机视觉/5.1.1",
  "title": "计算机视觉的概念与发展历程",
  "q": "按时间顺序列出计算机视觉发展历程的五个阶段及其时间范围，并说明计算机视觉要完成的核心任务是什么。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：五个阶段名称与时间一一对应、顺序正确；核心任务需包含“模拟人类视觉”“图像或视频”“识别、理解和解释”或等价的“看懂”世界。漏写阶段、年份张冠李戴或只写阶段不写任务，给部分分。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.1.2",
  "title": "计算机视觉处理流程",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.1.3",
  "title": "计算机视觉与相关领域的联系和区别",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.1.4",
  "title": "应用领域",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.2.1",
  "title": "图像分类",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.2.2",
  "title": "目标检测与定位",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.2.3",
  "title": "图像分割",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.3.1",
  "title": "图像技术",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.3.2",
  "title": "OCR及其应用",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.3.3",
  "title": "人脸识别及其应用",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.3.4",
  "title": "人体分析及其应用",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.4.1",
  "title": "计算机视觉技术面临的挑战",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "计算机视觉系统中，将光信号转换成图像信号的是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像处理软件",
   "B. 图像采集硬件",
   "C. 损失函数",
   "D. 验证集"
  ],
  "answer": "B",
  "analysis": "** 语料指出，系统通过图像采集硬件（如相机、镜头、光源等）将光信号转换成图像信号，再传送给图像处理软件。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "教材用哪一示例说明计算机视觉处理流程（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 刷脸支付",
   "B. 停车场车牌自动识别",
   "C. 人流量统计",
   "D. 拍照识物"
  ],
  "answer": "B",
  "analysis": "** 5.1.2明确“停车场车牌自动识别流程如图5-1所示”。刷脸支付、拍照识物、人流量统计是本章前言中的应用例子，不是本小节给出的流程图示例。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "数据预处理的主要目的是提高数据的质量和可用性。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 收集图像或视频后，对数据进行预处理，正是为了提高数据的质量和可用性。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "图像分割是将图像划分为若干可以相互重叠的区域。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 图像分割是将图像划分为若干个**互不重叠**且具有各自特征的区域，特征可以是灰度、颜色、纹理等。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "下列属于数据预处理主要步骤的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 对比度增强",
   "B. 图像灰度化",
   "C. 几何变换",
   "D. 图像解释"
  ],
  "answer": "ABC",
  "analysis": "** 预处理主要包括对比度增强、图像灰度化、归一化、几何变换和滤波（去噪）。图像解释属于流程的最后环节，不是预处理。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "直方图门限法的主要局限是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 必须给定初始轮廓",
   "B. 仅考虑灰度信息，忽略了空间信息",
   "C. 专门用于纹理分类",
   "D. 对噪声完全不敏感"
  ],
  "answer": "B",
  "analysis": "** 直方图门限法根据灰度直方图选择一个或多个门限值进行分割，仅考虑灰度信息、忽略空间信息。必须给定初始轮廓的是活动轮廓法；对噪声较为敏感的是边缘检测法。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "下列属于传统特征提取方法的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. SIFT（尺度不变特征变换）",
   "B. SURF（加速稳健特征）",
   "C. HOG（定向梯度直方图）",
   "D. LBP（局部二值模式）"
  ],
  "answer": "ABCD",
  "analysis": "** 语料将SIFT、SURF、HOG、LBP列为依赖人类专家先验知识的传统特征提取方法。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "通常，验证集用于训练模型，训练集用于评估模型的最终性能。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 训练集用于训练模型，验证集用于调整模型参数（如超参数），测试集用于评估模型的最终性能。题干把三者用途写反了。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "什么是图像分割？请列举至少三种分割方法，并各指出一种方法的主要局限。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：定义须含“互不重叠”“按特征分区”“目标与背景分离”；方法名称与语料一致；局限不得张冠李戴。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "与传统方法相比，卷积神经网络用于特征学习的优点包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 自动特征学习",
   "B. 特征层次化",
   "C. 端到端训练",
   "D. 必须由人类专家设计特征因子"
  ],
  "answer": "ABC",
  "analysis": "** 语料概括CNN的优点为：无须人工设计特征提取器、经多层非线性变换得到从低级到高级的特征、可实现特征提取与分类等任务的端到端训练。D项是传统方法的特点，不是CNN的优点。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "下列对应关系全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. SIFT主要用于纹理分类；LBP具有尺度不变性并用于图像匹配；HOG在保持SIFT性能基础上提高计算速度",
   "B. SURF适用于实时计算机视觉系统；HOG主要用于物体检测；LBP用于纹理分类；Adam是自适应矩估计",
   "C. 边缘检测法对噪声不敏感；区域生长法忽略空间信息；直方图门限法必须给定初始轮廓",
   "D. Adam是均方误差；MSE是自适应矩估计；AdaGrad是随机梯度下降"
  ],
  "answer": "B",
  "analysis": "** SURF在保持SIFT优良性能基础上提高计算速度，适用于实时系统；HOG主要用于物体检测；LBP用于纹理分类；Adam即自适应矩估计。A项把SIFT、LBP、HOG/SURF的用途对调；C项与语料相反（边缘检测对噪声敏感，区域生长能较好保留空间信息，需初始轮廓的是Snake）；D项把优化器与损失函数、各优化器名称全部搞混（SGD为随机梯度下降，AdaGrad为自适应次梯度方法，MSE为均方误差）。"
 },
 {
  "cat": "计算机视觉/5.4.2",
  "title": "计算机视觉技术发展趋势与展望",
  "q": "按顺序列出计算机视觉处理流程的六个主要环节，并说明模型选择与训练、模型测试与评估为什么是一个迭代过程。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：六个环节名称正确、顺序正确；须说明测试不达标则返回重选或调参；能点出评估指标或“根据任务、数据与性能不断调整”可加分。漏环节、顺序颠倒或只写环节不写迭代原因，给部分分。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.1.1",
  "title": "智能语音处理的概念及其发展历程",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.1.2",
  "title": "智能语音处理的关键环节",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.1.3",
  "title": "智能语音处理的应用领域",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.2.1",
  "title": "语音增强",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.2.2",
  "title": "语音识别",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.2.3",
  "title": "语音合成",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.3.1",
  "title": "语音识别应用",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.3.2",
  "title": "语音合成应用",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.3.3",
  "title": "其他语音拓展应用",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.4.1",
  "title": "智能语音处理面临的挑战",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "智能语音处理是指通过计算机和人工智能技术实现人与机器之间以（ ）为纽带的通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 图像",
   "B. 语言",
   "C. 传感器",
   "D. 代码"
  ],
  "answer": "B",
  "analysis": "** 语料将智能语音处理定义为通过计算机和人工智能技术实现人与机器之间以语言为纽带的通信。图像属于计算机视觉通道，传感器、代码不是本小节所说的通信纽带。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "人类大脑皮层每天处理的信息中，声音信息大约占据（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 2%",
   "B. 8%",
   "C. 20%",
   "D. 80%"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，人类大脑皮层每天处理的信息中，声音信息占据约20%，是沟通的重要纽带。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "智能语音技术通过模拟人类的听觉和语言理解能力，实现语音信号的接收、识别、理解和反馈。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对智能语音技术工作方式的原表述：模拟听觉和语言理解能力，完成接收、识别、理解和反馈。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "早期的语音处理系统主要采用数字技术，功能已经相当复杂。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期系统主要采用模拟技术，功能较为简单，只能进行一些基本的语音信号分析和处理。数字信号处理是中期发展阶段的推动力量。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "智能语音技术对语音信号的处理过程包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 接收",
   "B. 识别",
   "C. 理解",
   "D. 反馈"
  ],
  "answer": "ABCD",
  "analysis": "** 语料指出，智能语音技术实现语音信号的接收、识别、理解和反馈，四项均属于本小节所列环节。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "智能语音处理进入中期发展阶段，数字信号处理技术推动语音识别取得重大突破的时期是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 20世纪50年代",
   "B. 20世纪70～90年代",
   "C. 21世纪初",
   "D. 21世纪20年代"
  ],
  "answer": "B",
  "analysis": "** 中期发展阶段对应20世纪70～90年代。20世纪50年代是早期，21世纪以来是现代发展阶段。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "进入21世纪以来，智能语音处理的应用领域涵盖（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 人机交互",
   "B. 智能客服",
   "C. 语音助手",
   "D. 智能家居"
  ],
  "answer": "ABCD",
  "analysis": "** 语料在现代发展阶段明确列出人机交互、智能客服、语音助手、智能家居等众多领域，四项均正确。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "基于统计模型的语音识别系统出现在20世纪50年代的早期发展阶段。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 早期以模拟技术为主，只能做基本的语音信号分析与处理。基于统计模型的语音识别系统出现在20世纪70～90年代的中期发展阶段。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "简述智能语音处理的概念。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：点出“计算机和人工智能技术”“以语言为纽带的通信”；补出模拟听觉与语言理解、接收—识别—理解—反馈，以及“听懂”与智能交互。只写“让机器说话/听音”而未扣住定义，给部分分。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "下列关于智能语音处理三个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期（20世纪70～90年代，模拟技术）—中期（20世纪50年代，统计模型）—现代（21世纪以来，深度学习）",
   "B. 早期（20世纪50年代，模拟技术）—中期（20世纪70～90年代，数字信号处理与统计模型）—现代（21世纪以来，深度学习）",
   "C. 早期（21世纪以来，深度学习）—中期（20世纪50年代，模拟技术）—现代（20世纪70～90年代，统计模型）",
   "D. 早期（20世纪50年代，深度学习）—中期（20世纪70～90年代，模拟技术）—现代（21世纪以来，统计模型）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期追溯到20世纪50年代、采用模拟技术；中期为20世纪70～90年代，数字信号处理推动发展并出现基于统计模型的语音识别系统；现代为21世纪以来，深度学习带来革命性变化。A项把早期与中期的时间对调；C项把三个阶段的时间完全写乱；D项把模拟技术与深度学习、统计模型张冠李戴。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "按时间顺序列出智能语音处理发展历程的三个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三个阶段名称与顺序正确；时间分别对应20世纪50年代、20世纪70～90年代、21世纪以来；特征分别扣住模拟技术、数字信号处理/统计模型、深度学习及识别准确率与合成自然度。漏写阶段、年份错位或把中期特征写成深度学习，给部分分。"
 },
 {
  "cat": "智能语音/6.4.2",
  "title": "智能语音处理的发展趋势",
  "q": "进入21世纪以来，为语音处理技术带来革命性变化，使语音识别准确率和合成语音自然度达到前所未有高度的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 模拟技术",
   "B. 数字信号处理技术",
   "C. 深度学习技术",
   "D. 机械发声装置"
  ],
  "answer": "C",
  "analysis": "** 语料指出，进入21世纪以来深度学习技术的出现带来了革命性变化。模拟技术属于早期，数字信号处理属于中期；机械发声装置不是本小节对现代阶段的表述。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.1.1",
  "title": "自然语言处理的概念及其发展历程",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.1.2",
  "title": "语言学基础",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.1.3",
  "title": "自然语言中的歧义问题",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.1",
  "title": "文本清洗",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.2",
  "title": "分词",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.3",
  "title": "词性标注",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.4",
  "title": "命名实体识别",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.2.5",
  "title": "依存句法分析",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.1",
  "title": "语言理解",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.2",
  "title": "语言生成",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.3",
  "title": "机器翻译",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.4",
  "title": "内容审核",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.5",
  "title": "个性化推荐",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.3.6",
  "title": "聊天机器人",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.4.1",
  "title": "多模态融合",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.4.2",
  "title": "可解释性自然语言处理",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "自然语言处理致力于实现人与计算机之间用（ ）进行有效通信。",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 机器指令",
   "B. 自然语言",
   "C. 汇编语言",
   "D. 纯数学公式"
  ],
  "answer": "B",
  "analysis": "** 课程将自然语言处理定义为研究人与计算机用自然语言（如英语、中文等）有效通信的各种理论和方法。机器指令、汇编语言不是“自然语言”，纯数学公式也不是本小节所说的通信媒介。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "自然语言处理的目标可以归纳为（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 仅语言理解",
   "B. 语言理解、语言生成和人机交互",
   "C. 仅语音识别",
   "D. 仅图像分类"
  ],
  "answer": "B",
  "analysis": "** 其目标可归纳为语言理解、语言生成和人机交互。语音识别属于智能语音方向，图像分类属于计算机视觉，均不是本小节对自然语言处理目标的归纳。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "自然语言处理是计算机科学和人工智能领域中的一个关键研究方向。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对自然语言处理学科定位的原表述。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "语言理解只要求计算机认识单个词汇，不必把握句子结构和文本的上下文、意图。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 语言理解包括词汇的精确含义、句子的结构以及整个文本的上下文和意图，并非停留在单词语面。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "自然语言处理领域的研究涉及下列哪些学科（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 计算机科学",
   "B. 语言学",
   "C. 心理学",
   "D. 统计学"
  ],
  "answer": "ABCD",
  "analysis": "** 语料明确指出，该领域研究涉及计算机科学、语言学、心理学和统计学等多个学科，四项均正确。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "早期探索期（1950—60年代）自然语言处理的主要特征是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 以符号学派和随机学派为代表，集中在基础理论和模式识别等方面",
   "B. 基于机器学习和大量数据的方法占据主导地位",
   "C. Transformer架构已经全面取代其他方法",
   "D. 只研究语音合成，不处理文本"
  ],
  "answer": "A",
  "analysis": "** 早期探索期以符号学派和随机学派为代表，主要集中在基础理论和模式识别。B项是经验主义时代的特征，C项对应2010年代的深度学习与大模型时代，D项不是本小节对早期的表述。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "理性主义时代（1970—80年代）得到广泛研究和应用的范式包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 基于逻辑的范式",
   "B. 基于规则的范式",
   "C. 随机范式",
   "D. 仅Transformer范式"
  ],
  "answer": "ABC",
  "analysis": "** 理性主义时代是基于逻辑的范式、基于规则的范式和随机范式得到广泛研究和应用。Transformer属于深度学习时代和大模型时代，不是该阶段的范式。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "经验主义时代（1990年代至2000年代）以符号学派和随机学派为代表，主要集中在基础理论与模式识别。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "×",
  "analysis": "** 符号学派、随机学派及基础理论与模式识别是早期探索期（1950—60年代）的特征。经验主义时代的特征是基于机器学习和大量数据的方法开始占据主导地位。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "简述自然语言处理的定义及其三大目标。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出“人与计算机用自然语言有效通信”的定义；完整写出三大目标名称；对语言理解、语言生成、人机交互分别点出含义（理解侧扣住词汇/句子/上下文与意图，生成侧扣住回应、解释或传达信息，交互侧扣住自然流畅、提升体验与效率）。只列名称未解释，给部分分。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "下列关于自然语言处理四个发展阶段及其时间与特征的对应，全部正确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 早期探索期（1970—80年代，逻辑/规则/随机范式）—理性主义时代（1950—60年代，符号学派与随机学派）—经验主义时代（2010年代至今，RNN与Transformer）—深度学习时代和大模型时代（1990年代至2000年代，机器学习与大量数据）",
   "B. 早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）—理性主义时代（1970—80年代，逻辑、规则与随机范式）—经验主义时代（1990年代至2000年代，机器学习与大量数据）—深度学习时代和大模型时代（2010年代至今，RNN与Transformer）",
   "C. 早期探索期（2010年代至今，RNN与Transformer）—理性主义时代（1990年代至2000年代，机器学习与大量数据）—经验主义时代（1950—60年代，符号学派）—深度学习时代和大模型时代（1970—80年代，规则范式）",
   "D. 早期探索期（1950—60年代，Transformer架构）—理性主义时代（1970—80年代，仅语音识别）—经验主义时代（1990年代至2000年代，完全放弃统计方法）—深度学习时代和大模型时代（2010年代至今，只采用基于规则的范式）"
  ],
  "answer": "B",
  "analysis": "** 课程给出的对应关系是：早期探索期（1950—60年代，符号学派与随机学派，基础理论与模式识别）；理性主义时代（1970—80年代，逻辑、规则与随机范式）；经验主义时代（1990年代至2000年代，机器学习与大量数据）；深度学习时代和大模型时代（2010年代至今，RNN与Transformer）。A项把四个阶段的时间与特征整体对调；C项把阶段顺序完全写乱；D项把Transformer提前到早期，并把经验主义、深度学习阶段的方法写反。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "按时间顺序列出自然语言处理发展历程的四个阶段，并分别说明各阶段的时间范围与主要特征。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：四个阶段名称与顺序正确；时间分别对应1950—60年代、1970—80年代、1990年代至2000年代、2010年代至今；特征分别扣住符号/随机学派与基础理论模式识别，逻辑/规则/随机范式，机器学习与大量数据，RNN与Transformer。漏写阶段、年份错位或把Transformer写成早期特征，给部分分。"
 },
 {
  "cat": "自然语言处理/7.4.3",
  "title": "深度学习模型不断演进",
  "q": "进入深度学习时代和大模型时代（2010年代至今），带来前所未有模型性能的关键技术是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 仅基于规则的范式",
   "B. 深度神经网络，特别是循环神经网络（RNN）和Transformer架构",
   "C. 仅符号学派的手工规则",
   "D. 完全放弃统计与数据驱动方法"
  ],
  "answer": "B",
  "analysis": "** 语料指出，该阶段深度神经网络，特别是RNN和Transformer架构，带来了前所未有的模型性能。基于规则的范式、符号学派分别对应理性主义时代和早期探索期，并非本阶段的关键技术。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "生成式大模型的英文全称及常用缩写是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Generative Learning Machine，GLM",
   "B. Generative Large Models，GLM",
   "C. General Language Model，GLM",
   "D. Giant Learning Model，GLM"
  ],
  "answer": "B",
  "analysis": "** 语料将生成式大模型表述为 Generative Large Models，缩写为 GLM。A、C、D 三项英文展开与课程用语不一致。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "生成式大模型之所以被称为“大模型”，主要是因为它们通常包含（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 数千个参数",
   "B. 数百万个参数",
   "C. 数十亿乃至数千亿个参数",
   "D. 固定不变、无需优化的少量规则"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，这些模型通常包含数十亿乃至数千亿个参数，并在训练中不断被优化。A、B 数量级过小；D 与“大规模参数、训练中优化”的表述相反。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "生成式大模型能够从给定的数据中学习，并生成全新的、具有创造性的数据样本。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对生成式大模型的基本界定：利用深度学习从给定数据中学习，再生成全新且具有创造性的样本。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "生成式大模型的应用范围仅限于自然语言处理，尚未扩展到其他模态。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 其能力在自然语言处理领域尤为突出，但随着技术进步，应用已扩展到图像生成、音频合成、视频创作等多个领域。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "在自然语言处理领域，生成式大模型可以完成的任务包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 生成连贯的文本段落",
   "B. 生成对话和诗歌",
   "C. 文章续写",
   "D. 摘要生成"
  ],
  "answer": "ABCD",
  "analysis": "** 语料列举了连贯文本段落、对话、诗歌，以及文章续写、摘要生成等复杂任务，四项均属于本小节所述能力。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "随着技术进步，生成式大模型的应用范围已逐渐扩展到（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 图像生成",
   "B. 音频合成",
   "C. 视频创作",
   "D. 仅手工绘制图纸"
  ],
  "answer": "ABC",
  "analysis": "** 课程明确列出图像生成、音频合成、视频创作等扩展方向。D 项不是本小节所述的模型生成应用。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "关于生成式大模型的训练过程，下列说法正确的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 通常只需少量规则，不需要大规模数据",
   "B. 通常涉及大量的数据和计算资源，通过大规模数据集学习内在规律和模式",
   "C. 训练目的是让模型原样复制全部训练样本",
   "D. 训练完成后即可彻底避免生成不恰当内容"
  ],
  "answer": "B",
  "analysis": "** 语料指出训练通常涉及大量数据和计算资源，模型在大规模数据集上学习内在规律和模式，进而具备生成新样本的能力。A 与“大量数据/计算资源”不符；C 把“生成全新样本”误写成原样复制；D 忽略了仍可能生成不准确、不恰当或带有偏见内容的限制。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "生成式大模型参数众多、计算复杂度高，因此在实际应用中需要考虑性能和效率的平衡问题。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对挑战与限制的直接表述：参数多、计算复杂度高，实际应用需权衡性能与效率。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "简述生成式大模型的概念，并说明它为什么被称为“大模型”。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出中英文名称；点明深度学习/大规模神经网络；说明“学习并生成全新、具有创造性的样本”；用“数十亿乃至数千亿个参数”解释“大”，并提到参数优化以捕捉统计规律和结构特征。只写“很大的模型”而未扣参数规模，给部分分。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "下列关于生成式大模型“生成”机制的叙述，最准确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 核心是检索已有文档并原样输出，并不创造新内容",
   "B. 核心是基于学习到的知识创造全新的、之前未见过的内容；大规模数据训练有助于捕捉细微差别和复杂关系，从而生成更逼真、多样化的内容",
   "C. 核心是把参数数量固定在数千个以内，以降低计算复杂度",
   "D. 核心是只在自然语言处理中生成诗歌，不能做摘要或续写"
  ],
  "answer": "B",
  "analysis": "** 课程强调核心能力是“生成”，即创造全新、未见过的内容；训练使模型捕捉细微差别和复杂关系，从而更逼真、多样化。A 把生成说成原样检索；C 与“数十亿乃至数千亿参数”相反；D 缩小了 NLP 任务范围（语料还包括连贯文本、对话、续写、摘要等）。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "从核心能力、训练过程、挑战与限制三个方面，说明应如何正确认识生成式大模型。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三点齐全。核心能力扣住“生成/未见过的内容”及主要应用方向；训练扣住大规模数据与计算资源、学习规律与模式；挑战扣住内容质量问题与性能—效率权衡，并指出前景仍广阔。漏点、把生成说成简单复制、或否认存在偏见与效率问题，给部分分。"
 },
 {
  "cat": "生成式大模型/8.1.1",
  "title": "生成式大模型简介",
  "q": "下列属于生成式大模型当前面临的挑战或限制的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可能生成不准确的内容",
   "B. 可能生成不恰当或带有偏见的内容",
   "C. 参数众多、计算复杂度高，需考虑性能与效率的平衡",
   "D. 已经完全不存在应用前景"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均为语料所列挑战与限制。D 项与原文相反：尽管存在限制，随着技术发展和完善，生成式大模型在各个领域的应用前景仍然十分广阔。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "生成式大模型的英文全称及常用缩写是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Generative Learning Machine，GLM",
   "B. Generative Large Models，GLM",
   "C. General Language Model，GLM",
   "D. Giant Learning Model，GLM"
  ],
  "answer": "B",
  "analysis": "** 语料将生成式大模型表述为 Generative Large Models，缩写为 GLM。A、C、D 三项英文展开与课程用语不一致。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "生成式大模型之所以被称为“大模型”，主要是因为它们通常包含（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 数千个参数",
   "B. 数百万个参数",
   "C. 数十亿乃至数千亿个参数",
   "D. 固定不变、无需优化的少量规则"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，这些模型通常包含数十亿乃至数千亿个参数，并在训练中不断被优化。A、B 数量级过小；D 与“大规模参数、训练中优化”的表述相反。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "生成式大模型能够从给定的数据中学习，并生成全新的、具有创造性的数据样本。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对生成式大模型的基本界定：利用深度学习从给定数据中学习，再生成全新且具有创造性的样本。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "生成式大模型的应用范围仅限于自然语言处理，尚未扩展到其他模态。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 其能力在自然语言处理领域尤为突出，但随着技术进步，应用已扩展到图像生成、音频合成、视频创作等多个领域。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "在自然语言处理领域，生成式大模型可以完成的任务包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 生成连贯的文本段落",
   "B. 生成对话和诗歌",
   "C. 文章续写",
   "D. 摘要生成"
  ],
  "answer": "ABCD",
  "analysis": "** 语料列举了连贯文本段落、对话、诗歌，以及文章续写、摘要生成等复杂任务，四项均属于本小节所述能力。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "随着技术进步，生成式大模型的应用范围已逐渐扩展到（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 图像生成",
   "B. 音频合成",
   "C. 视频创作",
   "D. 仅手工绘制图纸"
  ],
  "answer": "ABC",
  "analysis": "** 课程明确列出图像生成、音频合成、视频创作等扩展方向。D 项不是本小节所述的模型生成应用。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "关于生成式大模型的训练过程，下列说法正确的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 通常只需少量规则，不需要大规模数据",
   "B. 通常涉及大量的数据和计算资源，通过大规模数据集学习内在规律和模式",
   "C. 训练目的是让模型原样复制全部训练样本",
   "D. 训练完成后即可彻底避免生成不恰当内容"
  ],
  "answer": "B",
  "analysis": "** 语料指出训练通常涉及大量数据和计算资源，模型在大规模数据集上学习内在规律和模式，进而具备生成新样本的能力。A 与“大量数据/计算资源”不符；C 把“生成全新样本”误写成原样复制；D 忽略了仍可能生成不准确、不恰当或带有偏见内容的限制。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "生成式大模型参数众多、计算复杂度高，因此在实际应用中需要考虑性能和效率的平衡问题。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对挑战与限制的直接表述：参数多、计算复杂度高，实际应用需权衡性能与效率。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "简述生成式大模型的概念，并说明它为什么被称为“大模型”。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出中英文名称；点明深度学习/大规模神经网络；说明“学习并生成全新、具有创造性的样本”；用“数十亿乃至数千亿个参数”解释“大”，并提到参数优化以捕捉统计规律和结构特征。只写“很大的模型”而未扣参数规模，给部分分。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "下列关于生成式大模型“生成”机制的叙述，最准确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 核心是检索已有文档并原样输出，并不创造新内容",
   "B. 核心是基于学习到的知识创造全新的、之前未见过的内容；大规模数据训练有助于捕捉细微差别和复杂关系，从而生成更逼真、多样化的内容",
   "C. 核心是把参数数量固定在数千个以内，以降低计算复杂度",
   "D. 核心是只在自然语言处理中生成诗歌，不能做摘要或续写"
  ],
  "answer": "B",
  "analysis": "** 课程强调核心能力是“生成”，即创造全新、未见过的内容；训练使模型捕捉细微差别和复杂关系，从而更逼真、多样化。A 把生成说成原样检索；C 与“数十亿乃至数千亿参数”相反；D 缩小了 NLP 任务范围（语料还包括连贯文本、对话、续写、摘要等）。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "从核心能力、训练过程、挑战与限制三个方面，说明应如何正确认识生成式大模型。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三点齐全。核心能力扣住“生成/未见过的内容”及主要应用方向；训练扣住大规模数据与计算资源、学习规律与模式；挑战扣住内容质量问题与性能—效率权衡，并指出前景仍广阔。漏点、把生成说成简单复制、或否认存在偏见与效率问题，给部分分。"
 },
 {
  "cat": "生成式大模型/8.1.2",
  "title": "国外主流生成式大模型",
  "q": "下列属于生成式大模型当前面临的挑战或限制的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可能生成不准确的内容",
   "B. 可能生成不恰当或带有偏见的内容",
   "C. 参数众多、计算复杂度高，需考虑性能与效率的平衡",
   "D. 已经完全不存在应用前景"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均为语料所列挑战与限制。D 项与原文相反：尽管存在限制，随着技术发展和完善，生成式大模型在各个领域的应用前景仍然十分广阔。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "生成式大模型的英文全称及常用缩写是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Generative Learning Machine，GLM",
   "B. Generative Large Models，GLM",
   "C. General Language Model，GLM",
   "D. Giant Learning Model，GLM"
  ],
  "answer": "B",
  "analysis": "** 语料将生成式大模型表述为 Generative Large Models，缩写为 GLM。A、C、D 三项英文展开与课程用语不一致。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "生成式大模型之所以被称为“大模型”，主要是因为它们通常包含（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 数千个参数",
   "B. 数百万个参数",
   "C. 数十亿乃至数千亿个参数",
   "D. 固定不变、无需优化的少量规则"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，这些模型通常包含数十亿乃至数千亿个参数，并在训练中不断被优化。A、B 数量级过小；D 与“大规模参数、训练中优化”的表述相反。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "生成式大模型能够从给定的数据中学习，并生成全新的、具有创造性的数据样本。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对生成式大模型的基本界定：利用深度学习从给定数据中学习，再生成全新且具有创造性的样本。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "生成式大模型的应用范围仅限于自然语言处理，尚未扩展到其他模态。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 其能力在自然语言处理领域尤为突出，但随着技术进步，应用已扩展到图像生成、音频合成、视频创作等多个领域。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "在自然语言处理领域，生成式大模型可以完成的任务包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 生成连贯的文本段落",
   "B. 生成对话和诗歌",
   "C. 文章续写",
   "D. 摘要生成"
  ],
  "answer": "ABCD",
  "analysis": "** 语料列举了连贯文本段落、对话、诗歌，以及文章续写、摘要生成等复杂任务，四项均属于本小节所述能力。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "随着技术进步，生成式大模型的应用范围已逐渐扩展到（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 图像生成",
   "B. 音频合成",
   "C. 视频创作",
   "D. 仅手工绘制图纸"
  ],
  "answer": "ABC",
  "analysis": "** 课程明确列出图像生成、音频合成、视频创作等扩展方向。D 项不是本小节所述的模型生成应用。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "关于生成式大模型的训练过程，下列说法正确的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 通常只需少量规则，不需要大规模数据",
   "B. 通常涉及大量的数据和计算资源，通过大规模数据集学习内在规律和模式",
   "C. 训练目的是让模型原样复制全部训练样本",
   "D. 训练完成后即可彻底避免生成不恰当内容"
  ],
  "answer": "B",
  "analysis": "** 语料指出训练通常涉及大量数据和计算资源，模型在大规模数据集上学习内在规律和模式，进而具备生成新样本的能力。A 与“大量数据/计算资源”不符；C 把“生成全新样本”误写成原样复制；D 忽略了仍可能生成不准确、不恰当或带有偏见内容的限制。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "生成式大模型参数众多、计算复杂度高，因此在实际应用中需要考虑性能和效率的平衡问题。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对挑战与限制的直接表述：参数多、计算复杂度高，实际应用需权衡性能与效率。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "简述生成式大模型的概念，并说明它为什么被称为“大模型”。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出中英文名称；点明深度学习/大规模神经网络；说明“学习并生成全新、具有创造性的样本”；用“数十亿乃至数千亿个参数”解释“大”，并提到参数优化以捕捉统计规律和结构特征。只写“很大的模型”而未扣参数规模，给部分分。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "下列关于生成式大模型“生成”机制的叙述，最准确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 核心是检索已有文档并原样输出，并不创造新内容",
   "B. 核心是基于学习到的知识创造全新的、之前未见过的内容；大规模数据训练有助于捕捉细微差别和复杂关系，从而生成更逼真、多样化的内容",
   "C. 核心是把参数数量固定在数千个以内，以降低计算复杂度",
   "D. 核心是只在自然语言处理中生成诗歌，不能做摘要或续写"
  ],
  "answer": "B",
  "analysis": "** 课程强调核心能力是“生成”，即创造全新、未见过的内容；训练使模型捕捉细微差别和复杂关系，从而更逼真、多样化。A 把生成说成原样检索；C 与“数十亿乃至数千亿参数”相反；D 缩小了 NLP 任务范围（语料还包括连贯文本、对话、续写、摘要等）。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "从核心能力、训练过程、挑战与限制三个方面，说明应如何正确认识生成式大模型。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三点齐全。核心能力扣住“生成/未见过的内容”及主要应用方向；训练扣住大规模数据与计算资源、学习规律与模式；挑战扣住内容质量问题与性能—效率权衡，并指出前景仍广阔。漏点、把生成说成简单复制、或否认存在偏见与效率问题，给部分分。"
 },
 {
  "cat": "生成式大模型/8.1.3",
  "title": "国内主要生成式大模型",
  "q": "下列属于生成式大模型当前面临的挑战或限制的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可能生成不准确的内容",
   "B. 可能生成不恰当或带有偏见的内容",
   "C. 参数众多、计算复杂度高，需考虑性能与效率的平衡",
   "D. 已经完全不存在应用前景"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均为语料所列挑战与限制。D 项与原文相反：尽管存在限制，随着技术发展和完善，生成式大模型在各个领域的应用前景仍然十分广阔。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "生成式大模型的英文全称及常用缩写是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Generative Learning Machine，GLM",
   "B. Generative Large Models，GLM",
   "C. General Language Model，GLM",
   "D. Giant Learning Model，GLM"
  ],
  "answer": "B",
  "analysis": "** 语料将生成式大模型表述为 Generative Large Models，缩写为 GLM。A、C、D 三项英文展开与课程用语不一致。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "生成式大模型之所以被称为“大模型”，主要是因为它们通常包含（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 数千个参数",
   "B. 数百万个参数",
   "C. 数十亿乃至数千亿个参数",
   "D. 固定不变、无需优化的少量规则"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，这些模型通常包含数十亿乃至数千亿个参数，并在训练中不断被优化。A、B 数量级过小；D 与“大规模参数、训练中优化”的表述相反。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "生成式大模型能够从给定的数据中学习，并生成全新的、具有创造性的数据样本。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对生成式大模型的基本界定：利用深度学习从给定数据中学习，再生成全新且具有创造性的样本。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "生成式大模型的应用范围仅限于自然语言处理，尚未扩展到其他模态。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 其能力在自然语言处理领域尤为突出，但随着技术进步，应用已扩展到图像生成、音频合成、视频创作等多个领域。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "在自然语言处理领域，生成式大模型可以完成的任务包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 生成连贯的文本段落",
   "B. 生成对话和诗歌",
   "C. 文章续写",
   "D. 摘要生成"
  ],
  "answer": "ABCD",
  "analysis": "** 语料列举了连贯文本段落、对话、诗歌，以及文章续写、摘要生成等复杂任务，四项均属于本小节所述能力。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "随着技术进步，生成式大模型的应用范围已逐渐扩展到（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 图像生成",
   "B. 音频合成",
   "C. 视频创作",
   "D. 仅手工绘制图纸"
  ],
  "answer": "ABC",
  "analysis": "** 课程明确列出图像生成、音频合成、视频创作等扩展方向。D 项不是本小节所述的模型生成应用。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "关于生成式大模型的训练过程，下列说法正确的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 通常只需少量规则，不需要大规模数据",
   "B. 通常涉及大量的数据和计算资源，通过大规模数据集学习内在规律和模式",
   "C. 训练目的是让模型原样复制全部训练样本",
   "D. 训练完成后即可彻底避免生成不恰当内容"
  ],
  "answer": "B",
  "analysis": "** 语料指出训练通常涉及大量数据和计算资源，模型在大规模数据集上学习内在规律和模式，进而具备生成新样本的能力。A 与“大量数据/计算资源”不符；C 把“生成全新样本”误写成原样复制；D 忽略了仍可能生成不准确、不恰当或带有偏见内容的限制。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "生成式大模型参数众多、计算复杂度高，因此在实际应用中需要考虑性能和效率的平衡问题。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对挑战与限制的直接表述：参数多、计算复杂度高，实际应用需权衡性能与效率。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "简述生成式大模型的概念，并说明它为什么被称为“大模型”。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出中英文名称；点明深度学习/大规模神经网络；说明“学习并生成全新、具有创造性的样本”；用“数十亿乃至数千亿个参数”解释“大”，并提到参数优化以捕捉统计规律和结构特征。只写“很大的模型”而未扣参数规模，给部分分。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "下列关于生成式大模型“生成”机制的叙述，最准确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 核心是检索已有文档并原样输出，并不创造新内容",
   "B. 核心是基于学习到的知识创造全新的、之前未见过的内容；大规模数据训练有助于捕捉细微差别和复杂关系，从而生成更逼真、多样化的内容",
   "C. 核心是把参数数量固定在数千个以内，以降低计算复杂度",
   "D. 核心是只在自然语言处理中生成诗歌，不能做摘要或续写"
  ],
  "answer": "B",
  "analysis": "** 课程强调核心能力是“生成”，即创造全新、未见过的内容；训练使模型捕捉细微差别和复杂关系，从而更逼真、多样化。A 把生成说成原样检索；C 与“数十亿乃至数千亿参数”相反；D 缩小了 NLP 任务范围（语料还包括连贯文本、对话、续写、摘要等）。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "从核心能力、训练过程、挑战与限制三个方面，说明应如何正确认识生成式大模型。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三点齐全。核心能力扣住“生成/未见过的内容”及主要应用方向；训练扣住大规模数据与计算资源、学习规律与模式；挑战扣住内容质量问题与性能—效率权衡，并指出前景仍广阔。漏点、把生成说成简单复制、或否认存在偏见与效率问题，给部分分。"
 },
 {
  "cat": "生成式大模型/8.2",
  "title": "文心一言在学习方面的应用",
  "q": "下列属于生成式大模型当前面临的挑战或限制的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可能生成不准确的内容",
   "B. 可能生成不恰当或带有偏见的内容",
   "C. 参数众多、计算复杂度高，需考虑性能与效率的平衡",
   "D. 已经完全不存在应用前景"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均为语料所列挑战与限制。D 项与原文相反：尽管存在限制，随着技术发展和完善，生成式大模型在各个领域的应用前景仍然十分广阔。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "生成式大模型的英文全称及常用缩写是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Generative Learning Machine，GLM",
   "B. Generative Large Models，GLM",
   "C. General Language Model，GLM",
   "D. Giant Learning Model，GLM"
  ],
  "answer": "B",
  "analysis": "** 语料将生成式大模型表述为 Generative Large Models，缩写为 GLM。A、C、D 三项英文展开与课程用语不一致。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "生成式大模型之所以被称为“大模型”，主要是因为它们通常包含（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 数千个参数",
   "B. 数百万个参数",
   "C. 数十亿乃至数千亿个参数",
   "D. 固定不变、无需优化的少量规则"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，这些模型通常包含数十亿乃至数千亿个参数，并在训练中不断被优化。A、B 数量级过小；D 与“大规模参数、训练中优化”的表述相反。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "生成式大模型能够从给定的数据中学习，并生成全新的、具有创造性的数据样本。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对生成式大模型的基本界定：利用深度学习从给定数据中学习，再生成全新且具有创造性的样本。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "生成式大模型的应用范围仅限于自然语言处理，尚未扩展到其他模态。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 其能力在自然语言处理领域尤为突出，但随着技术进步，应用已扩展到图像生成、音频合成、视频创作等多个领域。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "在自然语言处理领域，生成式大模型可以完成的任务包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 生成连贯的文本段落",
   "B. 生成对话和诗歌",
   "C. 文章续写",
   "D. 摘要生成"
  ],
  "answer": "ABCD",
  "analysis": "** 语料列举了连贯文本段落、对话、诗歌，以及文章续写、摘要生成等复杂任务，四项均属于本小节所述能力。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "随着技术进步，生成式大模型的应用范围已逐渐扩展到（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 图像生成",
   "B. 音频合成",
   "C. 视频创作",
   "D. 仅手工绘制图纸"
  ],
  "answer": "ABC",
  "analysis": "** 课程明确列出图像生成、音频合成、视频创作等扩展方向。D 项不是本小节所述的模型生成应用。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "关于生成式大模型的训练过程，下列说法正确的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 通常只需少量规则，不需要大规模数据",
   "B. 通常涉及大量的数据和计算资源，通过大规模数据集学习内在规律和模式",
   "C. 训练目的是让模型原样复制全部训练样本",
   "D. 训练完成后即可彻底避免生成不恰当内容"
  ],
  "answer": "B",
  "analysis": "** 语料指出训练通常涉及大量数据和计算资源，模型在大规模数据集上学习内在规律和模式，进而具备生成新样本的能力。A 与“大量数据/计算资源”不符；C 把“生成全新样本”误写成原样复制；D 忽略了仍可能生成不准确、不恰当或带有偏见内容的限制。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "生成式大模型参数众多、计算复杂度高，因此在实际应用中需要考虑性能和效率的平衡问题。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对挑战与限制的直接表述：参数多、计算复杂度高，实际应用需权衡性能与效率。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "简述生成式大模型的概念，并说明它为什么被称为“大模型”。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出中英文名称；点明深度学习/大规模神经网络；说明“学习并生成全新、具有创造性的样本”；用“数十亿乃至数千亿个参数”解释“大”，并提到参数优化以捕捉统计规律和结构特征。只写“很大的模型”而未扣参数规模，给部分分。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "下列关于生成式大模型“生成”机制的叙述，最准确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 核心是检索已有文档并原样输出，并不创造新内容",
   "B. 核心是基于学习到的知识创造全新的、之前未见过的内容；大规模数据训练有助于捕捉细微差别和复杂关系，从而生成更逼真、多样化的内容",
   "C. 核心是把参数数量固定在数千个以内，以降低计算复杂度",
   "D. 核心是只在自然语言处理中生成诗歌，不能做摘要或续写"
  ],
  "answer": "B",
  "analysis": "** 课程强调核心能力是“生成”，即创造全新、未见过的内容；训练使模型捕捉细微差别和复杂关系，从而更逼真、多样化。A 把生成说成原样检索；C 与“数十亿乃至数千亿参数”相反；D 缩小了 NLP 任务范围（语料还包括连贯文本、对话、续写、摘要等）。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "从核心能力、训练过程、挑战与限制三个方面，说明应如何正确认识生成式大模型。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三点齐全。核心能力扣住“生成/未见过的内容”及主要应用方向；训练扣住大规模数据与计算资源、学习规律与模式；挑战扣住内容质量问题与性能—效率权衡，并指出前景仍广阔。漏点、把生成说成简单复制、或否认存在偏见与效率问题，给部分分。"
 },
 {
  "cat": "生成式大模型/8.3",
  "title": "文心一言在工作方面的应用",
  "q": "下列属于生成式大模型当前面临的挑战或限制的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可能生成不准确的内容",
   "B. 可能生成不恰当或带有偏见的内容",
   "C. 参数众多、计算复杂度高，需考虑性能与效率的平衡",
   "D. 已经完全不存在应用前景"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均为语料所列挑战与限制。D 项与原文相反：尽管存在限制，随着技术发展和完善，生成式大模型在各个领域的应用前景仍然十分广阔。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "生成式大模型的英文全称及常用缩写是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Generative Learning Machine，GLM",
   "B. Generative Large Models，GLM",
   "C. General Language Model，GLM",
   "D. Giant Learning Model，GLM"
  ],
  "answer": "B",
  "analysis": "** 语料将生成式大模型表述为 Generative Large Models，缩写为 GLM。A、C、D 三项英文展开与课程用语不一致。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "生成式大模型之所以被称为“大模型”，主要是因为它们通常包含（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 数千个参数",
   "B. 数百万个参数",
   "C. 数十亿乃至数千亿个参数",
   "D. 固定不变、无需优化的少量规则"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，这些模型通常包含数十亿乃至数千亿个参数，并在训练中不断被优化。A、B 数量级过小；D 与“大规模参数、训练中优化”的表述相反。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "生成式大模型能够从给定的数据中学习，并生成全新的、具有创造性的数据样本。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对生成式大模型的基本界定：利用深度学习从给定数据中学习，再生成全新且具有创造性的样本。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "生成式大模型的应用范围仅限于自然语言处理，尚未扩展到其他模态。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 其能力在自然语言处理领域尤为突出，但随着技术进步，应用已扩展到图像生成、音频合成、视频创作等多个领域。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "在自然语言处理领域，生成式大模型可以完成的任务包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 生成连贯的文本段落",
   "B. 生成对话和诗歌",
   "C. 文章续写",
   "D. 摘要生成"
  ],
  "answer": "ABCD",
  "analysis": "** 语料列举了连贯文本段落、对话、诗歌，以及文章续写、摘要生成等复杂任务，四项均属于本小节所述能力。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "随着技术进步，生成式大模型的应用范围已逐渐扩展到（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 图像生成",
   "B. 音频合成",
   "C. 视频创作",
   "D. 仅手工绘制图纸"
  ],
  "answer": "ABC",
  "analysis": "** 课程明确列出图像生成、音频合成、视频创作等扩展方向。D 项不是本小节所述的模型生成应用。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "关于生成式大模型的训练过程，下列说法正确的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 通常只需少量规则，不需要大规模数据",
   "B. 通常涉及大量的数据和计算资源，通过大规模数据集学习内在规律和模式",
   "C. 训练目的是让模型原样复制全部训练样本",
   "D. 训练完成后即可彻底避免生成不恰当内容"
  ],
  "answer": "B",
  "analysis": "** 语料指出训练通常涉及大量数据和计算资源，模型在大规模数据集上学习内在规律和模式，进而具备生成新样本的能力。A 与“大量数据/计算资源”不符；C 把“生成全新样本”误写成原样复制；D 忽略了仍可能生成不准确、不恰当或带有偏见内容的限制。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "生成式大模型参数众多、计算复杂度高，因此在实际应用中需要考虑性能和效率的平衡问题。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对挑战与限制的直接表述：参数多、计算复杂度高，实际应用需权衡性能与效率。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "简述生成式大模型的概念，并说明它为什么被称为“大模型”。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出中英文名称；点明深度学习/大规模神经网络；说明“学习并生成全新、具有创造性的样本”；用“数十亿乃至数千亿个参数”解释“大”，并提到参数优化以捕捉统计规律和结构特征。只写“很大的模型”而未扣参数规模，给部分分。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "下列关于生成式大模型“生成”机制的叙述，最准确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 核心是检索已有文档并原样输出，并不创造新内容",
   "B. 核心是基于学习到的知识创造全新的、之前未见过的内容；大规模数据训练有助于捕捉细微差别和复杂关系，从而生成更逼真、多样化的内容",
   "C. 核心是把参数数量固定在数千个以内，以降低计算复杂度",
   "D. 核心是只在自然语言处理中生成诗歌，不能做摘要或续写"
  ],
  "answer": "B",
  "analysis": "** 课程强调核心能力是“生成”，即创造全新、未见过的内容；训练使模型捕捉细微差别和复杂关系，从而更逼真、多样化。A 把生成说成原样检索；C 与“数十亿乃至数千亿参数”相反；D 缩小了 NLP 任务范围（语料还包括连贯文本、对话、续写、摘要等）。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "从核心能力、训练过程、挑战与限制三个方面，说明应如何正确认识生成式大模型。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三点齐全。核心能力扣住“生成/未见过的内容”及主要应用方向；训练扣住大规模数据与计算资源、学习规律与模式；挑战扣住内容质量问题与性能—效率权衡，并指出前景仍广阔。漏点、把生成说成简单复制、或否认存在偏见与效率问题，给部分分。"
 },
 {
  "cat": "生成式大模型/8.4",
  "title": "文心一言在生活娱乐方面的应用",
  "q": "下列属于生成式大模型当前面临的挑战或限制的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可能生成不准确的内容",
   "B. 可能生成不恰当或带有偏见的内容",
   "C. 参数众多、计算复杂度高，需考虑性能与效率的平衡",
   "D. 已经完全不存在应用前景"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均为语料所列挑战与限制。D 项与原文相反：尽管存在限制，随着技术发展和完善，生成式大模型在各个领域的应用前景仍然十分广阔。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "生成式大模型的英文全称及常用缩写是（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. Generative Learning Machine，GLM",
   "B. Generative Large Models，GLM",
   "C. General Language Model，GLM",
   "D. Giant Learning Model，GLM"
  ],
  "answer": "B",
  "analysis": "** 语料将生成式大模型表述为 Generative Large Models，缩写为 GLM。A、C、D 三项英文展开与课程用语不一致。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "生成式大模型之所以被称为“大模型”，主要是因为它们通常包含（ ）",
  "type": "单选题",
  "diff": "易",
  "opts": [
   "A. 数千个参数",
   "B. 数百万个参数",
   "C. 数十亿乃至数千亿个参数",
   "D. 固定不变、无需优化的少量规则"
  ],
  "answer": "C",
  "analysis": "** 课程明确指出，这些模型通常包含数十亿乃至数千亿个参数，并在训练中不断被优化。A、B 数量级过小；D 与“大规模参数、训练中优化”的表述相反。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "生成式大模型能够从给定的数据中学习，并生成全新的、具有创造性的数据样本。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对生成式大模型的基本界定：利用深度学习从给定数据中学习，再生成全新且具有创造性的样本。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "生成式大模型的应用范围仅限于自然语言处理，尚未扩展到其他模态。",
  "type": "判断题",
  "diff": "易",
  "opts": [],
  "answer": "×",
  "analysis": "** 其能力在自然语言处理领域尤为突出，但随着技术进步，应用已扩展到图像生成、音频合成、视频创作等多个领域。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "在自然语言处理领域，生成式大模型可以完成的任务包括（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 生成连贯的文本段落",
   "B. 生成对话和诗歌",
   "C. 文章续写",
   "D. 摘要生成"
  ],
  "answer": "ABCD",
  "analysis": "** 语料列举了连贯文本段落、对话、诗歌，以及文章续写、摘要生成等复杂任务，四项均属于本小节所述能力。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "随着技术进步，生成式大模型的应用范围已逐渐扩展到（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 图像生成",
   "B. 音频合成",
   "C. 视频创作",
   "D. 仅手工绘制图纸"
  ],
  "answer": "ABC",
  "analysis": "** 课程明确列出图像生成、音频合成、视频创作等扩展方向。D 项不是本小节所述的模型生成应用。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "关于生成式大模型的训练过程，下列说法正确的是（ ）",
  "type": "单选题",
  "diff": "中",
  "opts": [
   "A. 通常只需少量规则，不需要大规模数据",
   "B. 通常涉及大量的数据和计算资源，通过大规模数据集学习内在规律和模式",
   "C. 训练目的是让模型原样复制全部训练样本",
   "D. 训练完成后即可彻底避免生成不恰当内容"
  ],
  "answer": "B",
  "analysis": "** 语料指出训练通常涉及大量数据和计算资源，模型在大规模数据集上学习内在规律和模式，进而具备生成新样本的能力。A 与“大量数据/计算资源”不符；C 把“生成全新样本”误写成原样复制；D 忽略了仍可能生成不准确、不恰当或带有偏见内容的限制。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "生成式大模型参数众多、计算复杂度高，因此在实际应用中需要考虑性能和效率的平衡问题。",
  "type": "判断题",
  "diff": "中",
  "opts": [],
  "answer": "√",
  "analysis": "** 这是本小节对挑战与限制的直接表述：参数多、计算复杂度高，实际应用需权衡性能与效率。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "简述生成式大模型的概念，并说明它为什么被称为“大模型”。",
  "type": "简答题",
  "diff": "中",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：给出中英文名称；点明深度学习/大规模神经网络；说明“学习并生成全新、具有创造性的样本”；用“数十亿乃至数千亿个参数”解释“大”，并提到参数优化以捕捉统计规律和结构特征。只写“很大的模型”而未扣参数规模，给部分分。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "下列关于生成式大模型“生成”机制的叙述，最准确的是（ ）",
  "type": "单选题",
  "diff": "难",
  "opts": [
   "A. 核心是检索已有文档并原样输出，并不创造新内容",
   "B. 核心是基于学习到的知识创造全新的、之前未见过的内容；大规模数据训练有助于捕捉细微差别和复杂关系，从而生成更逼真、多样化的内容",
   "C. 核心是把参数数量固定在数千个以内，以降低计算复杂度",
   "D. 核心是只在自然语言处理中生成诗歌，不能做摘要或续写"
  ],
  "answer": "B",
  "analysis": "** 课程强调核心能力是“生成”，即创造全新、未见过的内容；训练使模型捕捉细微差别和复杂关系，从而更逼真、多样化。A 把生成说成原样检索；C 与“数十亿乃至数千亿参数”相反；D 缩小了 NLP 任务范围（语料还包括连贯文本、对话、续写、摘要等）。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "从核心能力、训练过程、挑战与限制三个方面，说明应如何正确认识生成式大模型。",
  "type": "简答题",
  "diff": "难",
  "opts": [],
  "answer": "",
  "analysis": "** 评分要点：三点齐全。核心能力扣住“生成/未见过的内容”及主要应用方向；训练扣住大规模数据与计算资源、学习规律与模式；挑战扣住内容质量问题与性能—效率权衡，并指出前景仍广阔。漏点、把生成说成简单复制、或否认存在偏见与效率问题，给部分分。"
 },
 {
  "cat": "生成式大模型/8.5",
  "title": "文心一言App",
  "q": "下列属于生成式大模型当前面临的挑战或限制的有（ ）",
  "type": "多选题",
  "diff": "中",
  "opts": [
   "A. 可能生成不准确的内容",
   "B. 可能生成不恰当或带有偏见的内容",
   "C. 参数众多、计算复杂度高，需考虑性能与效率的平衡",
   "D. 已经完全不存在应用前景"
  ],
  "answer": "ABC",
  "analysis": "** A、B、C 均为语料所列挑战与限制。D 项与原文相反：尽管存在限制，随着技术发展和完善，生成式大模型在各个领域的应用前景仍然十分广阔。"
 }
]