【北大 计算机组成 quiz 】乘法器和除法器quiz


15 试题

1. 【单选】
对于 第一版乘法器 ,当乘数寄存器最低位为1时,在该次循环过程中,需要将乘数寄存器向哪个方向移动,需要将被乘数寄存器向哪个方向移动?Question text
不移动,右
右、左
右,不移动
右、右
不移动,左
左、左



2. 【单选】
对于 第一版乘法器 ,在每次循环的过程中,需要将被乘数寄存器的内容与乘积寄存器中的内容相加,并将结果放入乘积寄存器的条件是:
被乘数寄存器的最低位为0
乘积寄存器的最低位为1
乘数寄存器的最低位为0
乘数寄存器的最低位为1
被乘数寄存器的最低位为1



3. 【不定项】
对于32-bit的第一版 乘法器 ,每次循环都需要判断的条件是哪几个?
是否循环了33次
乘数寄存器的最低位是否为0
被乘数寄存器的最低位是否为0
 是否循环了32次  
是否循环了31次

import random def generate_math_questions(): """生成符合预期的四则运算题目""" n = int(input("请输入出题数量:")) max_num = int(input("请输入参与计算的最大数字:")) correct_count = 0 for i in range(n): operator = random.choice(['+', '-', '*', '/']) # 根据运算类型生成合适的数字 if operator == '+': a = random.randint(0, max_num) b = random.randint(0, max_num) result = a + b elif operator == '-': b = random.randint(0, max_num) a = random.randint(b, max_num) # 确保结果非负 result = a - b elif operator == '*': a = random.randint(0, max_num) b = random.randint(0, max_num) result = a * b else: # 除法处理 b = random.randint(1, max_num) # 除数≠0 max_quotient = max_num // b quotient = random.randint(0, max_quotient) a = b * quotient # 确保整除 result = quotient # 用户答题交互 user_input = input(f"{a}{operator}{b}=") try: user_answer = int(user_input) except ValueError: user_answer = None # 答题结果反馈 if user_answer == result: print("恭喜你,回答正确") correct_count += 1 else: print("回答错误,你要加油哦!") # 正确率统计 accuracy = (correct_count / n) * 100 if n > 0 else 0.0 print(f"答对{correct_count}题,正确率为{accuracy}%") if __name__ == "__main__": generate_math_questions() 测试输入: 1 4 7 —— 预期输出 ——请输入出题数量:请输入参与计算的最大数字:4+3=恭喜你,回答正确 答对1题,正确率为100.0% —— 实际输出 ——请输入出题数量:请输入参与计算的最大数字:3*3=回答错误,你要加油哦! 答对0题,正确率为0.0% 输出不一样,改一下让他们一样
最新发布
10-17
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值