《区块链系统监控》月考试卷(第1周·创建区块 第2周·Merkle树与LevelDB)

考试时间:120分钟 满分:100分 适用班级:2023区块链技术应用高级班(五年)作答说明:1. 本试卷共五大题,满分100分,考试时间120分钟,请合理分配时间。2. 单项选择题请将正确选项的字母填在括号内;判断题正确的打“√”,错误的打“×”。3. 填空题请在横线上填写正确答案;简答题和操作题请在答题区域内作答。4. 操作题需写出完整、可运行的Python代码,字迹清晰。

Q1:班级

填空1

Q2:姓名

填空1

:1、请在进入答题前,确保设备性能和系统条件符合线上考试要求2、做题中请勿使用F功能键或查看源代码,如使用系统会记录下来3、诚信考试,请勿上网搜索答案,与其他考生交流,求助外援等4、做题中途遇到问题被退出,在有效期内仍可进入再次进行答题

Q3:区块链是一种( )的数据记录格式。

A. 中心化、可篡改、私有
B. 分布式、去中心化、不可篡改
C. 单机、集中式、可修改
D. 分布式、中心化、可追溯

Q4:区块链中,后一个区块通过记录( )与前一个区块相连,形成链式结构。

A. 随机数
B. 交易数量
C. 前一个区块的哈希值
D. 时间戳

Q5:下列不属于区块链五大核心特征的是( )。

A. 去中心化
B. 不可篡改
C. 集中维护
D. 公开透明

Q6:比特币采用( )哈希算法,输出长度为256位,通常用64位十六进制字符串表示。

A. MD5
B. SHA-256
C. SHA-1
D. RSA

Q7:下列关于哈希函数特性的描述,错误的是( )。

A. 确定性:相同输入得到相同输出
B. 快速计算:能快速算出任意输入的哈希
C. 可逆性:能从哈希值反推出原始输入
D. 抗碰撞:很难找到两个不同输入得到相同哈希

Q8:区块链中的第一个区块称为( ),创建于2009年。

A. 创世区块
B. 根区块
C. 主区块
D. 初始区块

Q9:创世区块的前一个区块哈希通常设置为( )。

A. 随机数
B. 自身哈希
C. 全零“0000…”(占位符)
D. 时间戳

Q10:比特币区块头的大小为( )字节。

A. 32
B. 64
C. 80
D. 128

Q11:比特币区块头中,用于形成链的关键字段“父区块头哈希值”占( )字节。

A. 4
B. 16
C. 32
D. 80

Q12:Merkle根哈希的大小为( )字节。

A. 8
B. 16
C. 32
D. 64

Q13:Merkle树是一种( )数据结构,用于快速归纳和校验大规模数据完整性。

A. 哈希二叉树
B. 哈希表
C. 链表
D. 有序数组

Q14:在构建Merkle树时,如果某一层节点数为奇数,落单的节点应( )。

A. 直接丢弃
B. 复制一份自己与自己配对
C. 用零填充后再配对
D. 跳到下一层计算

Q15:比特币中的Merkle树使用的是( )。

A. 单次SHA-256
B. 双重SHA-256(double-SHA256)
C. MD5
D. SHA-1

Q16:比特币、以太坊等区块链节点通常使用( )存储链上数据。

A. MySQL
B. Oracle
C. LevelDB
D. SQL Server

Q17:LevelDB是一种( )数据库。

A. 关系型
B. 文档型
C. 嵌入式键值(Key-Value)
D. 图

Q18:LevelDB中,向数据库写入键值对使用( )操作。

A. Get
B. Put
C. Delete
D. RangeIter

Q19:在LevelDB中,使用Get读取一个不存在的key,返回( )。

A. 空字符串
B. 0
C. None
D. 抛出异常

Q20:LevelDB的key和value都必须使用( )类型。

A. 字符串
B. 整数
C. 字节(bytes)
D. 列表

Q21:在挖矿(工作量证明PoW)中,矿工不断尝试( ),直到区块哈希以“0000”开头。

A. 时间戳
B. 交易数据
C. Nonce(随机数)
D. 版本号

Q22:下列不属于LevelDB核心特点的是( )。

A. 按键排序存储
B. 批量原子操作
C. 支持SQL查询
D. Snappy压缩

Q23:区块链可以理解为“区块+链”,每个区块通过哈希值连接成一条链。( )

A. √
B. ×

Q24:区块链由网络中的某个中心服务器统一维护和管理。( )

A. √
B. ×

Q25:一旦数据写入区块链,篡改一个区块会导致后续所有区块的哈希值失效。( )

A. √
B. ×

Q26:哈希函数是可逆的,可以从哈希值反推出原始输入。( )

A. √
B. ×

Q27:区块主体主要记录区块的元数据,用于验证区块的合法性和连接性。( )

A. √
B. ×

Q28:Merkle树是自顶向下构建的。( )

A. √
B. ×

Q29:区块头中只需存储32字节的Merkle根,就能代表整个区块的所有交易。( )

A. √
B. ×

Q30:LevelDB是嵌入式数据库,无需单独安装数据库服务器即可使用。( )

A. √
B. ×

Q31:LevelDB的RangeIter会按键的字典序依次返回所有键值对。( )

A. √
B. ×

Q32:挖矿中只有先找到使哈希以指定数量“0”开头的Nonce,才证明付出了计算量并获得记账权。( )

A. √
B. ×

Q33:区块链的五大核心特征包括:________、不可篡改、________、集体维护、公开透明。

填空1
填空2

Q34:一个完整的区块由________和________两部分组成。

填空1
填空2

Q35:SHA-256算法输出为________位十六进制字符串(32字节)。

填空1

Q36:区块链中的第一个区块被称为________区块。

填空1

Q37:在Python中,计算SHA-256哈希需要导入________库。

填空1

Q38:LevelDB的基本操作包括Put(写入)、________(读取)、Delete(删除)和________(遍历)。

填空1
填空2

Q39:Nonce是“Number used once”的缩写,在挖矿中是指只使用一次的________。

填空1

Q40:编写Python代码,定义一个Block类并生成创世区块。要求:(1)定义Block类,包含index(区块高度)、previous_hash(前一个区块哈希)、time_stamp(时间戳)、data(区块数据)、hash(当前哈希)等属性;(2)实现__init__构造方法和get_hash()方法,使用SHA-256计算区块哈希;(3)编写creat_genesis_block()函数,创建创世区块(previous_hash设为“0000”,data设为“Genesis block”)。

选择文件上传

Q41:使用Python操作LevelDB,完成数据的写入、读取、删除和遍历。要求:(1)打开/创建名为“students”的数据库;(2)写入三条键值对数据(如name、age、major);(3)读取并打印name的值;(4)删除age,然后遍历打印数据库中所有剩余数据。

选择文件上传
《区块链系统监控》月考试卷(第1周·创建区块 第2周·Merkle树与LevelDB)
关于
4天前
更新
0
频次
42
题目数
分享
问问AI
有问题?问问AI帮你修改 改主题:如咖啡问卷改为奶茶问卷