NISP一级题库doc转Excel:拆章刷题、错题管理与随机组卷
发布时间:2026/10/2 1:01:48来源:尧图网络
简介这套NISP一级考试题库合集完整涵盖第一章至第十八章面向备考NISP国际信息安全一级认证的考生用于系统刷题、查漏补缺与巩固知识点。包体为1个doc文档约914KB全部题目与答案解析集中在一个文件内方便按章节顺序学习或检索定位。目前已有1456人学习下载属于该方向使用较多的备考试题资料。题库内容覆盖电子签名法、TCP/IP协议、信息安全管理体系、客户端与服务端概念、WannaCry勒索病毒等真题考点每题附正确答案与解析可帮助考生熟悉出题方式、理解易错细节提升通过率。按章节组织的目录结构使备考计划更清晰适合考前冲刺集中练习也适合日常分章学习打牢基础。1. NISP一级题库第一章到第十八章题库合集.doc不是让你从头做到尾的很多人拿到这份题库的第一反应是打开 Word从第一章第一题做到第十八章错了看一眼答案然后……就以为自己刷完了。这份 NISP一级题库第一章到第十八章题库合集.doc 的真正价值不在于“里面有多少道题”而在于它把一级考试的知识域按 18 个章节铺开——信息安全基础、合规、密码学、攻击与防范、安全运维、数据安全、应急响应等。它能解决三件事定位薄弱章节、按章控制刷题节奏、把错题变成考前一天的复习清单。适合备考 NISP 一级的在校生和职场新人也适合讲师拿来做章节自测素材。唯一的问题是 doc 是老格式直接读不好统计、不好抽题、不好做错题标记。所以别急着一题一题看先把它拆成能反复用的结构化数据。2. 先拆结构再刷题18 章对应的知识域与优先级2.1 18 章不是摆设章顺序基本等于考纲顺序我拿到这种多章题库第一件事不是做题而是“看见结构”。你会发现这 18 章不是随手排的前面几章讲概念和法规中间几章讲攻击与防护技术后面几章讲管理、数据与新技术。这个顺序基本就是培训课件的顺序课件通常又跟着考纲走。打开文档后先把每一章的章名、题量、主要题型登记一遍。这个动作看起来枯燥实际上三分钟就能为后面省下三小时。下面是我按 NISP 一级常见培训大纲推的对照表你拿到的版本如果章名略有出入以你手上 doc 的实际章名为准。章号常见考点主题典型题型相对题量复习优先度第1章信息安全基础知识单选、判断中中第2章网络安全法律法规单选、多选中中第3章等级保护与合规多选、案例分析式单选偏高高第4章密码学基础单选中高第5章身份认证与访问控制单选、多选中中第6章恶意代码单选、判断偏高高第7章网络攻击与防范单选、多选偏高高第8章防火墙与入侵检测单选中中第9章数据安全与备份单选、多选中高第10章安全运维管理单选、判断中中第11章应急响应与灾备单选中中第12章Web 安全基础单选中中第13章加密通信与安全协议单选、判断中中第14章移动安全与物联网单选低低第15章云计算安全单选低低第16章大数据与新技术安全单选、判断低低第17章信息安全管理体系多选中中第18章个人信息保护与隐私合规单选、多选中高先别管这个表是否和你手上的 doc 完全一致先对照它把你那份的章号、章名填进去。填完你会发现真正的高频章集中在第3、4、6、7、9、18章这几章的题量通常也更大。2.2 高频章、中频章、低频章三种不同的刷法如果把 18 章按同一个节奏刷大概率会在熟悉的章节浪费时间在不熟悉的章节草草带过。我的做法是按“高、中、低”三档分配时间高频章第3、4、6、7、9、18章需要整章精刷至少两轮。第一轮按顺序做标注错题第二轮只做错题并把做错的知识点写成一句话贴在题干后面。中频章整章过一遍错题复查一次就行。低频章第14、15、16章不用逐题做把每章前 20 道题扫一遍重点看概念题临考前再翻一眼即可。这个分档的依据不是章名看起来重不重要而是考试大纲里对应知识域的占比。等级保护和合规、密码学、攻击与防范、恶意代码、数据安全这几块几乎每次考试都会占大头移动安全、物联网、大数据这些属于前沿扩展点考得少但偶尔会冒出一道概念题。时间上如果备考周期是 20 天我会这么分前 12 天按章推进每天 1 到 2 章高频章放周末完整块时间第 13 到 17 天只刷错题和“冲突待复核”的题最后 3 天每天随机组一套 50 题的卷子模拟真实考试节奏。重点不是刷满多少遍而是让每一遍都有明确目的。提示不要在还没了解章节分布前就打开文档做第一题。至少先花三分钟把章名和题量记下来这决定了后面每一天怎么安排。2.3 第一轮别通刷用“章末 20 题”定位高危章第一次通刷 18 章是个很差的策略。前几章做完人已经疲了到第10章之后基本是机械勾选错题记录也记不完整。我第一轮会用“章末定位法”每一章只随机抽 20 道题做不追求做完。正确率超过 90% 的章直接跳过正确率在 60% 到 90% 的章标记为“待精刷”正确率低于 60% 的章标记为“高危章”第二天优先处理。高危章不要马上整章重做而是用“倒序刷法”先把这一章的题干和答案快速读一遍对题干建立印象然后盖上答案再从头做一遍。正序刷题时你是在猜考点倒序刷题时你是在回忆答案背后的概念后者对考前的记忆强度帮助大得多。这个方法对第3章等级保护、第4章密码学这类概念密集的章节尤其有效因为题目本身偏记忆倒序刷能快速把知识框架立起来。3. 把 doc 转成结构化 Excel工具选型与最小可跑脚本3.1 为什么优先转成 Excel而不是直接在 Word 里看Word 适合阅读不适合统计。你很难在 Word 里回答这几个问题第7章我错了几道错题里有多少是重复出现的最近一次做对的题是哪天。Excel 或者 CSV 可以。把 doc 转成结构化表格之后刷题就从“阅读”变成“筛选”这对后续错题管理和随机组卷是决定性的。转换链路我用的是最稳的一条doc 先转 docx再用 python-docx 解析最后导出 xlsx。为什么不直接解析 doc因为 doc 是 OLE 复合文档二进制格式Python 生态里能直接读 doc 的库要么收费要么不够稳定而 docx 是 XML 包python-docx 解析成熟样式和表格都能保留。如果你没有 Python 环境退而求其次可以用 Word 或 WPS 手动另存为 docx但批量处理时命令行更省事。3.2 第一步用 LibreOffice 把 doc 批量转成 docxLibreOffice 能无界面转换而且不会触发 Word 的宏这一步顺便解决了一部分宏病毒风险。命令如下libreoffice --headless --convert-to docx NISP一级题库第一章到第十八章题库合集.doc --outdir ./converted参数含义--headless表示不打开图形界面--convert-to docx指定目标格式--outdir指定输出目录不写的话默认输出到当前目录。Windows 上命令名可能是soffice.exe先执行where soffice确认路径再把它加进 PATH或者直接用全路径调用。转换完成后打开./converted目录下的文件确认一下重点看三处章标题是否还在、表格是否完整、答案行是否还在。LibreOffice 对老 doc 的兼容性比大多数在线转换工具好但偶尔会把表格样式弄乱这一步的人工检查不能省。3.3 第二步用 python-docx 把题目抽出来导出 xlsx转换完 docx 之后解析就简单了。下面的脚本假设题目格式是常见的那一种题目以“1、”“1.”或“1”开头选项跟在后面答案行包含“答案”或“正确答案”字样。如果你的题库格式不同改两个正则即可。from docx import Document import re import pandas as pd doc Document(./converted/NISP一级题库.docx) # 题目编号数字 顿号/点号/全角点 q_re re.compile(r^\s*(\d{1,4})\s*[、.]) # 答案行答案/正确答案 冒号可选 选项字母或对错 a_re re.compile( r(?:答案|正确答案)\s*[:为]?\s* r(?Pans[A-D]{1,8}|正确|错误|对|错), re.I, ) rows [] cur_q, cur_opts, cur_ans None, [], None for p in doc.paragraphs: line p.text.strip() if not line: continue if q_re.match(line): # 遇到新题把上一题收尾 if cur_q is not None or cur_ans is not None: rows.append((cur_q, \n.join(cur_opts), cur_ans)) cur_q, cur_opts, cur_ans line, [], None elif a_re.search(line): # 答案行可能和题干在同一行也可能独立成段 m a_re.search(line) cur_ans m.group(ans).upper() cur_q (cur_q or ) line else: cur_opts.append(line) # 最后一题收尾 if cur_q is not None or cur_ans is not None: rows.append((cur_q, \n.join(cur_opts), cur_ans)) df pd.DataFrame(rows, columns[题干, 选项, 答案]) df.to_excel(NISP题库结构化.xlsx, indexFalse)逻辑说明脚本按段落逐行扫描遇到带编号的新题就把上一题写入结果答案行不单独存一列而是合并进题干因为很多题库把答案写在题干同一段或者独立段单独拆列反而容易丢。选项保持原文不做 ABCD 拆分后续在 Excel 里用“分列”功能拆更灵活。如果题目编号是“(1)”这种括号样式把q_re改成r^\s*\((\d{1,4})\)如果答案写在表格里而不是段落里下面第 5 章有专门的处理办法。这一步跑完后用 Excel 打开NISP题库结构化.xlsx检查总行数和文档里题目数是否接近如果差很多大概率是表格题没被解析到。3.4 第三步字段设计一次到位别返工我建议在导出时就把结构化字段定好少走回头路。最小可用集是下面这些列字段说明是否必填章号从 doc 章节标题提取如 3是题号章内序号可留空否题干清洗掉首尾空格是选项原始选项原文是答案统一为大写 ABC 或“正确/错误”是掌握程度未做/待复习/已掌握否错题次数整数默认 0否备注记录重复题、过时题、解析否章号这一步不能省。后续所有按章抽题、章节统计都依赖这个字段。如果 doc 的章节标题格式规整可以直接在解析脚本里加一个cur_chapter变量遇到“第X章”标题就更新然后把章号写进每一行。手抖漏标的用 Excel 筛选“章号为空”的行补一下。4. 按章切片、错题标注与随机组卷让题库变成可复用资产4.1 给题库加状态列掌握程度和错题次数的用法题库转成 Excel 后先别急着开始刷。给表加三列掌握程度、错题次数、上次错误时间。这三列是以后所有动作的基础。掌握程度我一般只在三个值里选未做、待复习、已掌握。第一次做完标记为已掌握做错了标记为待复习。错题次数每错一次加 1用 Excel 公式IF(状态待复习, 错题次数1, 错题次数)可以自动累计但手动在刷题后批量改也行。上次错误时间用来判断间隔超过 7 天没复习的错题会自动升级为“高优先级待复习”。加这三列的意义在于刷题的核心不是“做了多少题”而是“哪些题还没稳定掌握”。有了状态列你可以随时筛选出掌握程度待复习的题单独成一页或者导出重做。4.2 错题本机制不单独建文件用筛选代替搬运很多人的错题本是另一个 Word 文档做错一道题就复制粘贴一次。这个习惯在题库超过 500 题之后会彻底失控因为题干往往连着选项复制粘贴容易漏而且原题更新后错题本还是旧的。更好的做法是不单独建错题文件在原表里用列筛选。做法是把失败题标记成“待复习”然后建立自动筛选筛选条件为掌握程度待复习再把这部分行复制到一个新 sheet 叫“错题本”。这个 sheet 不是堆题而是带状态列的实时视图——下次做对一次就把状态改成“已掌握”筛选结果自动变少。错题本里的题全部归档后原来的题库表还是完整的没有少任何一题。这个机制唯一的缺点是 Excel 筛选是手动的。如果题库上千题建议直接用 Pandas 维护下面这段代码可以做“错题导出”import pandas as pd df pd.read_excel(NISP题库结构化.xlsx) df[掌握程度] df.get(掌握程度, 未做) df[错题次数] df.get(错题次数, 0) # 只看待复习的题按章号和错题次数排序 wrong df[df[掌握程度] 待复习].sort_values( [章号, 错题次数], ascending[True, False] ) # 导出为带题号的复习清单 wrong.to_excel(错题清单.xlsx, indexFalse, columns[章号, 题干, 选项, 答案, 错题次数])参数说明df.get(掌握程度, 未做)是为了兼容还没加状态列的旧表sort_values按章号升序、错题次数降序排列让错得最多的题排在最前面。如果你希望优先复习近期错的题把排序字段换成上次错误时间用ascendingTrue让更早的题先出现。4.3 随机组卷从题库里抽一套 50 题卷子的两种做法随机组卷是最容易上手也最容易被忽略的功能。不用等出题系统Excel 和 Pandas 都能做。Excel 里最快的做法在题库表旁边加一列RAND()然后对整表按随机数列排序取前 N 行。缺点是每按一次 F9 排序就会变抽完记得把结果复制成值保存。Pandas 的做法更可控可以直接按“错题加权”抽题import pandas as pd df pd.read_excel(NISP题库结构化.xlsx) df[错题次数] df[错题次数].fillna(0).astype(int) # 权重设计错题次数越多被抽中概率越大再加基础权重1避免零概率 weights df[错题次数] 1 # 抽一份 50 题的模拟卷固定随机种子保证可复现 paper df.sample(n50, weightsweights, random_state2024) # 打乱题序并输出卷面 paper paper.sample(frac1, random_state7) paper.to_excel(模拟卷.xlsx, indexFalse, columns[章号, 题干, 选项, 答案])参数说明sample(n50, weightsweights)按权重随机抽 50 行权重越高被抽到的概率越大错题多的自然会被多抽random_state2024是随机种子固定后每次跑结果一致方便对比两轮复习效果。frac1表示对抽出的题目再打乱一次顺序避免同一章的题聚在一起。如果你不想要加权只想纯随机把weights参数去掉即可。如果想保证每章都有题可以用groupby按章抽样再 concat 起来但 90% 的场景下加权随机已经够用了。提示随机组卷前先把上一轮模拟卷的答案清空只留题干和选项否则你会一边做题一边瞄到答案模拟效果归零。5. doc 题库的常见坑乱码、宏、错位、重复题、大纲漂移5.1 坑一用记事本打开全是乱码Word 提示文件格式无效现象双击 doc 之前有人习惯先右键“打开方式”选记事本结果满屏NIS、乱码和二进制符号还有人把 doc 上传到在线解析工具提示“url is not configured for doc file processing”之类配置错误。原因.doc是 OLE2 复合文档二进制格式不是纯文本记事本当然读不了。另一种常见情况是文件本身不是真 doc而是 HTML 或 docx 改了扩展名Word 打开时会提示格式不匹配。解决不要用文本编辑器打开 doc。先用 Word、WPS 或 LibreOffice 打开验证文件是否完整批量转换直接走 3.2 的 LibreOffice 命令。如果文件损坏到 Word 都打不开试试把扩展名改成.zip或.7z用压缩工具打开看内部是否有word/document.xml里面往往还能抢救出文本内容。在线解析工具报配置错误时通常不是服务挂了而是它默认不处理老格式 doc先本地转成 docx 再上传即可。5.2 坑二文件带宏打开时弹出“启用宏”提示现象双击题库 docWord 顶部或底部弹出黄色条提示“已启用宏”杀毒软件偶尔还会报 Heur 类病毒告警。原因doc 格式允许内嵌 VBA 宏网上流传的题库经常是从各个培训班课件里拼出来的很多带了录制宏、批处理宏甚至恶意代码。哪怕文档打开后看起来干干净净它仍可能在后台执行宏。解决在打开前杀毒软件全盘扫描一遍打开时不要点击“启用宏”直接禁用如果只是要提取题目最稳妥的方式是跳过 Word直接用 LibreOffice 无界面转换它不会执行 VBA或者干脆用 3.3 的 Python 脚本解析 docx——整个链路不启动 Word 进程宏根本没有执行机会。批量处理场景下把“先转换再解析”固化成流程从源头消除风险。5.3 坑三解析后题目变少漏掉表格里的题现象3.3 脚本跑完导出的题数比 doc 里看到的题数少很多或者某些题的题干和选项张冠李戴顺序乱。原因python-docx 的doc.paragraphs只遍历顶层段落而题库里大量题目放在表格单元格里这些文字不会出现在 paragraph 流中表格题如果按阅读顺序和实际行列顺序不一致导出的顺序就会错。解决把表格单独提取按坐标排序后和段落题合并。下面这段代码可以抓取表格里的文字保留表格索引、行索引和列索引from docx import Document doc Document(./converted/NISP题库.docx) table_text [] for t_idx, table in enumerate(doc.tables): for r_idx, row in enumerate(table.rows): for c_idx, cell in enumerate(row.cells): text cell.text.strip() if text and (text not in table_text or len(text) 2): table_text.append((t_idx, r_idx, c_idx, text)) # 按表格号、行号、列号排序模拟视觉顺序 table_text.sort(keylambda x: (x[0], x[1], x[2])) for item in table_text: print(item)注意row.cells在合并单元格时会重复返回同一个 cell排序前可以用一个seen集合按(t_idx, r_idx, c_idx)去重。如果题目内容本身放在表格里建议先用 Word 打开该文件目测一下表格是“一行一题”还是“一个块一题”再决定按行拼接还是按块拼接。5.4 坑四重复题多且同一道题答案不一样现象第3章和第15章各有一道题干几乎一模一样的题第3章答案是 A第15章答案是 C。不做去重直接刷会在两处得出矛盾结论考前心态直接崩。原因这种题库是历年真题、模拟题、机构自编题拼出来的不同来源基于不同的考纲版本录入时也可能出错。解决用题干的内容指纹做去重忽略空格和标点差异。下面这段代码会找出答案不一致的重复题import hashlib import re import pandas as pd df pd.read_excel(NISP题库结构化.xlsx) def content_hash(text): # 去空格、去标点后做 MD5避免格式差异 clean re.sub(r[\s。,、;:()], , str(text)) return hashlib.md5(clean.encode(utf-8)).hexdigest() df[指纹] df[题干].apply(content_hash) # 找出重复组里答案不一致的题 conflict df[df.duplicated(指纹, keepFalse)] conflict_groups conflict.groupby(指纹)[答案].nunique() problem_ids conflict_groups[conflict_groups 1].index problem df[df[指纹].isin(problem_ids)] problem.to_excel(重复题冲突清单.xlsx, indexFalse)逻辑说明content_hash先把题干中的空格和常见标点剔除再做 MD5 指纹这样“1. 下列哪种攻击...”和“1、下列哪种攻击...”会判定为同一题duplicated(指纹, keepFalse)保留所有重复行再按指纹分组统计答案种类超过 1 种说明答案冲突导出清单人工核对。处理原则以官方解析为准没有官方解析时以出现次数最多的答案为准并在备注列标“冲突待复核”。5.5 坑五题库内容和最新考纲对不上出现过时题现象某道题还在考旧的合规条款或者旧的分级标准按照最新考纲这个知识点已经改了做题时怎么想都觉得别扭。原因这份 doc 是合集大部分题来自往年题库考纲改版后并没有同步更新老的合规条款、等级保护版本、密码算法强度等知识点会变成过时题。解决不要删题先标“版本待定”。删题会让题库失去连续性而且并不能保证删掉的一定不考。对照最新考纲把“等级保护 2.0”“数据安全法”“个人信息保护法”等关键词相关的题过一遍逐题确认答案是否仍成立。如果某个知识点在考纲里已经删掉就在备注列写“过时仅作参考”如果只是数值标准变了把答案改成新标准的数值并在题干里补一句“按最新考纲修订”。这一步没有快捷脚本只能人工核对但优先级很高因为它直接影响正确率。6. 最后一公里的技巧用乱序与间隔重复代替从头二刷6.1 题目序号是最不可信的字段题库里的“题号”只是导入时的序号不代表任何复习优先级。依赖题号复习会不自觉记住“第 3 题选 C”的位置记忆一旦题目顺序打乱就露馅。我给每一道题维护一个稳定的内容指纹见 5.4 的content_hash做任何随机组卷都用指纹关联原题。指纹重复的题只保留一份进“干净题库”其余标记为“重复题”备用这样进入二轮复习的题单天然无重复。6.2 间隔重复错题 3 次做对才归档二轮复习不是“再把所有题做一遍”而是只碰错题和状态为“待复习”的题。我给错题定了一个简单规则动作状态变化第一次做错未做 → 待复习隔 2 天重做做对待复习 → 复习中再隔 4 天重做做对复习中 → 已掌握任意一次做错回到待复习错题次数 1这个节奏比“隔一天就复习”更符合遗忘曲线也比“攒到最后一天看错题”更可靠。落实起来不需要专门的软件Excel 里筛选“待复习”导出清单标注下次复习日期日期到了再筛一次就行。如果你想更进一步把错题清单按“记忆卡片”的格式导出导入 Anki 之类间隔重复工具每天刷 20 张卡片考前十天基本就能把错题清零。我自己过去刷题吃过亏从头到尾按顺序刷了三遍第三遍错的还是第一遍错的那几道题。原因很简单顺序没变我记住的是题目的位置而不是答案背后的概念。后来改成每天随机抽 30 题、错题隔两天重做正确率才真正稳定下来。这份 doc 题库的价值不在“题目新”而在“结构全”把结构用起来比多刷一遍有用得多。希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网