将题目与答案整合到一起的 python 代码

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 将题目与答案整合到一起的 python 代码

比如原先 word 文档里的内容是:

一、选择题(每小题2分)

1.算法的计算量的大小称为计算的( )。 【北京邮电大学2000 二、3 (20/8分)】

A.效率 B.复杂性 C.现实性 D.难度

2.算法的时间复杂度取决于( )。  【中科院计算所 1998 二、1 (2分)】

A.问题的规模 B.待处理数据的初态 C.A和B  D.都不是

4.一个算法应该是( )。【中山大学 1998 二、1(2分)】

A.程序 B.问题求解步骤的描述

C.要满足五个基本特性 D.A和C.

5.下面关于算法说法错误的是( )【南京理工大学 2000 一、1(1.5分)】

A.算法最终必须由计算机程序实现

B.为解决某问题的算法同为该问题编写的程序含义是相同的

C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的

  1. 下面说法错误的是( )【南京理工大学 2000 一、2 (1.5分)】
    (1)算法原地工作的含义是指不需要任何额外的辅助空间
    (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法
    (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界
    (4)同一个算法,实现语言的级别越高,执行效率就越低
    A.(1) B.(1),(2) C.(1),(4) D.(3)
    7.从逻辑上可以把数据结构分为( )两大类。【武汉交通科技大学 1996 一 、4(2分)】
    A.动态结构、静态结构 B.顺序结构、链式结构
    C.线性结构、非线性结构 D.初等结构、构造型结构
    8.以下与数据的存储结构无关的术语是( )。【北方交通大学 2000 二、1(2分)】
    A.循环队列 B. 链表 C. 哈希表 D. 栈
    9.以下数据结构中,哪一个是线性结构( )?【北方交通大学 2001 一、1(2分)】
    A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串
    10.以下那一个术语与数据的存储结构无关?( )【北方交通大学 2001 一、2(2分)】
    A.栈 B. 哈希表 C. 线索树 D. 双向链表
    11.在下面的程序段中,对x的赋值语句的频度为( )【北京工商大学 2001 一、10(3分)】
    FOR i:=1 TO n DO
    FOR j:=1 TO n DO
    x:=x+1;
    A. O(2n) B.O(n) C.O(n2) D.O(log2n)
    12.程序段 FOR i:=n-1 DOWNTO 1 DO
    FOR j:=1 TO i DO
    IF A[j]>A[j+1]
    THEN A[j]与A[j+1]对换;
    其中 n为正整数,则最后一行的语句频度在最坏情况下是( )
    A. O(n) B. O(nlogn) C. O(n3) D. O(n2) 【南京理工大学1998一、1(2分)】
    13.以下哪个数据结构不是多型数据类型( )【中山大学 1999 一、3(1分)】
    A.栈 B.广义表 C.有向图 D.字符串
    14.以下数据结构中,( )是非线性数据结构【中山大学 1999 一、4】
    A.树 B.字符串 C.队 D.栈
  2. 下列数据中,( )是非线性数据结构。【北京理工大学 2001 六、1(2分)】
    A.栈 B. 队列 C. 完全二叉树 D. 堆
    16.连续存储设计时,存储单元的地址( )。【中山大学 1999 一、1(1分)】
    A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续
    17.以下属于逻辑结构的是( )。【西安电子科技大学应用 2001一、1】
    A.顺序表 B. 哈希表 C.有序表 D. 单链表

答案:

1.B 2.C 3.B 4.D 5.C 6.C 7.D 8.D 9.A 10.C 11.D 4.D 5.A 6.C 7.A 8.C

经过以下代码整理, 可以生成后面格式的文本。

from docx import Document
from docx.shared import Inches
import re
import io
def process_questions(doc):
    questions = []
    answers = []
    images = []
    question_start = False
    answer_start = False
    current_question = None
    for i, para in enumerate(doc.paragraphs):
        if '选择题' in para.text or '判断题' in para.text:
            question_start = True
            answer_start = False
        elif '答案' in para.text:
            question_start = False
            answer_start = True
        elif question_start:
            if para.text.split('.', 1)[0].isdigit():
                current_question = para.text.split('.', 1)[1]
                questions.append([current_question])
            elif para.text.split('. ', 1)[0].isdigit():
                current_question = para.text.split('. ', 1)[1]
                questions.append([current_question])
            else:
                # 用正则表达式找到所有的选项, 更准确地匹配选项
                options = re.split(r'(A[..][^B-D]+)|(B[..][^A,C-D]+)|(C[..][^A-B,D]+)|(D[..][^A-C]+)|(E[..][^A-D]+)|(F[..][^A-E]+)|(G[..][^A-F]+)', para.text)
                options = [option for option in options if option and not option.isspace() and len(option) > 1]
                questions[-1].extend(options)
        elif answer_start:
            print(para.text)
            # 用正则表达式找到所有的答案,允许题号和答案之间有空格
            line_answers = re.findall(r'\d+[..]\s*(\w+)', para.text)
            print(line_answers)
            answers.extend(line_answers)
        # Check if the paragraph contains an image
        for rel in doc.part.rels.values():
            if "image" in rel.reltype:
                for run in para.runs:
                    if run._r.getchildren():
                        for child in run._r.getchildren():
                            if '{http://schemas.openxmlformats.org/drawingml/2006/main}blip' in child.tag:
                                images.append((i, rel.rel_id))
    return questions, answers, images
def modify_questions(doc, questions, answers, images):
    question_counter = 1
    image_counter = 0
    for i, question_parts in enumerate(questions):
        # Check if there is an image before this question
        while image_counter < len(images) and images[image_counter][0] < i:
            rel_id = images[image_counter][1]
            image_data = old_doc.part.rels[rel_id].rel.element.image_part.blob
            image_stream = io.BytesIO(image_data)
            doc.add_picture(image_stream)
            image_counter += 1
        if i < len(answers):
            answer = answers[i].strip().upper()
            if len(answer) > 1:
                question_type = '[多选题]'
            else:
                question_type = '[单选题]'
            question_line = str(question_counter) + '、' + question_parts[0] + '( ' + answer + ' )' + question_type + ' [2分]'
            doc.add_paragraph(question_line)
            for option in question_parts[1:]:
                doc.add_paragraph(option)
            doc.add_paragraph('难易度:2')
            doc.add_paragraph('解析:')
            doc.add_paragraph('知识点:数据结构概述')
            doc.add_paragraph('标签:数据结构概述')
            doc.add_paragraph('课程名称:数据结构')
            doc.add_paragraph('习题用途:通用题')
            doc.add_paragraph('\n')
            question_counter += 1  # Increment the question counter
    # Add any remaining images
    while image_counter < len(images):
        rel_id = images[image_counter][1]
        image_data = old_doc.part.rels[rel_id].rel.element.image_part.blob
        image_stream = io.BytesIO(image_data)
        doc.add_picture(image_stream)
        image_counter += 1
old_doc = Document('1数据结构概述.docx')
questions, answers, images = process_questions(old_doc)
new_doc = Document()
modify_questions(new_doc, questions, answers, images)
new_doc.save('output.docx')

1、算法的计算量的大小称为计算的( )。 【北京邮电大学2000 二、3 (20/8分)】 ( B )[单选题] [2分]

A.效率

B.复杂性

C.现实性

D.难度

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

2、算法的时间复杂度取决于( )。  【中科院计算所 1998 二、1 (2分)】 ( C )[单选题] [2分]

A.问题的规模

B.待处理数据的初态

C.A和B  

D.都不是

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

3、一个算法应该是( )。【中山大学 1998 二、1(2分)】( B )[单选题] [2分]

A.程序

B.问题求解步骤的描述

C.要满足五个基本特性

D.A和C

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

4、下面关于算法说法错误的是( )【南京理工大学 2000 一、1(1.5分)】( D )[单选题] [2分]

A.算法最终必须由计算机程序实现

B.为解决某问题的算法同为该问题编写的程序含义是相同的

C. 算法的可行性是指指令不能有二义性

D. 以上几个都是错误的

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

5、下面说法错误的是( )【南京理工大学 2000 一、2 (1.5分)】( C )[单选题] [2分]

(1)算法原地工作的含义是指不需要任何额外的辅助空间

(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法

(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界

(4)同一个算法,实现语言的级别越高,执行效率就越低

A.(1)

B.(1),(2)

C.(1),(4)

D.(3)

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

6、从逻辑上可以把数据结构分为( )两大类。【武汉交通科技大学 1996 一 、4(2分)】( C )[单选题] [2分]

A.动态结构、静态结构

B.顺序结构、链式结构

C.线性结构、非线性结构

D.初等结构、构造型结构

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

7、以下与数据的存储结构无关的术语是( )。【北方交通大学 2000 二、1(2分)】( D )[单选题] [2分]

A.循环队列

B. 链表

C. 哈希表

D. 栈

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

8、以下数据结构中,哪一个是线性结构( )?【北方交通大学 2001 一、1(2分)】( D )[单选题] [2分]

A.广义表

B. 二叉树

C. 稀疏矩阵

D. 串

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

9、以下那一个术语与数据的存储结构无关?( )【北方交通大学 2001 一、2(2分)】( A )[单选题] [2分]

A.栈

B. 哈希表

C. 线索树

D. 双向链表

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

10、在下面的程序段中,对x的赋值语句的频度为( )【北京工商大学 2001 一、10(3分)】( C )[单选题] [2分]

FOR i:=1 TO n DO

FOR j:=1 TO n DO

x:=x+1;

A. O(2n)

B.O(n)

C.O(n2)

D.O(log2n)

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

11、程序段 FOR i:=n-1 DOWNTO 1 DO

FOR j:=1 TO i DO

IF A[j]>A[j+1]

THEN A[j]与A[j+1]对换;

其中 n为正整数,则最后一行的语句频度在最坏情况下是( ) ( D )[单选题] [2分]

A. O(n)

B. O(nlogn)

C. O(n3)

D. O(n2)

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

12、以下哪个数据结构不是多型数据类型( )【中山大学 1999 一、3(1分)】( D )[单选题] [2分]

A.栈

B.广义表

C.有向图

D.字符串

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

13、以下数据结构中,( )是非线性数据结构【中山大学 1999 一、4】( A )[单选题] [2分]

A.树

B.字符串

C.队

D.栈

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

14、下列数据中,( )是非线性数据结构。【北京理工大学 2001 六、1(2分)】( C )[单选题] [2分]

A.栈

B. 队列

C. 完全二叉树

D. 堆

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

15、连续存储设计时,存储单元的地址( )。【中山大学 1999 一、1(1分)】( A )[单选题] [2分]

A.一定连续

B.一定不连续

C.不一定连续

D.部分连续,部分不连续

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

16、以下属于逻辑结构的是( )。【西安电子科技大学应用 2001一、1】( C )[单选题] [2分]

A.顺序表

B. 哈希表

C.有序表

D. 单链表

难易度:2

解析:

知识点:数据结构概述

标签:数据结构概述

课程名称:数据结构

习题用途:通用题

目录
相关文章
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
78 33
|
2月前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
52 10
|
2月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
105 8
|
2月前
|
Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器就像是给函数穿上了一件神奇的外套,让它们拥有了超能力。本文将通过浅显易懂的语言和生动的比喻,带你了解装饰器的基本概念、使用方法以及它们如何让你的代码变得更加简洁高效。让我们一起揭开装饰器的神秘面纱,看看它是如何在不改变函数核心逻辑的情况下,为函数增添新功能的吧!
|
2月前
|
程序员 测试技术 数据安全/隐私保护
深入理解Python装饰器:提升代码重用与可读性
本文旨在为中高级Python开发者提供一份关于装饰器的深度解析。通过探讨装饰器的基本原理、类型以及在实际项目中的应用案例,帮助读者更好地理解并运用这一强大的语言特性。不同于常规摘要,本文将以一个实际的软件开发场景引入,逐步揭示装饰器如何优化代码结构,提高开发效率和代码质量。
74 6
|
2月前
|
开发框架 数据建模 中间件
Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器是那些静悄悄的幕后英雄。它们不张扬,却能默默地为函数或类增添强大的功能。本文将带你了解装饰器的魅力所在,从基础概念到实际应用,我们一步步揭开装饰器的神秘面纱。准备好了吗?让我们开始这段简洁而富有启发性的旅程吧!
56 6
|
2月前
|
API Python
【Azure Developer】分享一段Python代码调用Graph API创建用户的示例
分享一段Python代码调用Graph API创建用户的示例
68 11
|
2月前
|
测试技术 Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界中,装饰器是那些能够为我们的代码增添魔力的小精灵。它们不仅让代码看起来更加优雅,还能在不改变原有函数定义的情况下,增加额外的功能。本文将通过生动的例子和易于理解的语言,带你领略装饰器的奥秘,从基础概念到实际应用,一起开启Python装饰器的奇妙旅程。
57 11
|
2月前
|
Python
Python编程入门:从零开始的代码旅程
本文是一篇针对Python编程初学者的入门指南,将介绍Python的基本语法、数据类型、控制结构以及函数等概念。文章旨在帮助读者快速掌握Python编程的基础知识,并能够编写简单的Python程序。通过本文的学习,读者将能够理解Python代码的基本结构和逻辑,为进一步深入学习打下坚实的基础。

热门文章

最新文章

推荐镜像

更多