一、单选题
1、高级语言编写的程序需要经过以下()操作,可以生成在计算机上运行的可执行代码。(2023-6-sc四级)
A 编辑
B 保存
C 调试
D 编译
解析:【喵呜刷题小喵解析】:高级语言编写的程序需要编译成机器语言,才能在计算机上运行。因此,正确答案是D,即“编译”。编辑是将代码输入到计算机中的过程,保存是将代码保存到计算机中的过程,调试是检查程序是否存在错误并修复的过程,这些操作虽然重要,但并不能生成可执行代码。只有编译操作可以将高级语言编写的程序转换成计算机可以理解的机器语言,从而生成可执行代码。
2、排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排序数据中有两个相等记录的关键字 R 和 S(R 出现在 S 之前),在排序后的列表中 R 也一定在 S 前。下面关于排序稳定性的描述,正确的是()。(2023-6-sc四级)
A 冒泡排序是不稳定的
B 插入排序是不稳定的
C 选择排序是不稳定的
D 以上都不正确
解析:【喵呜刷题小喵解析】:
首先,我们需要理解排序算法的稳定性的定义。排序算法是稳定的,意味着在待排序数据中有两个相等记录的关键字R和S(R出现在S之前),在排序后的列表中R也一定在S前。
接下来,我们分析每个选项:
A选项:冒泡排序是不稳定的。冒泡排序是一种简单的排序算法,它通过重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。由于冒泡排序在遍历过程中可能会改变相等元素的相对位置,因此它是不稳定的。
B选项:插入排序是不稳定的。插入排序的基本操作是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。由于插入排序可能会改变相等元素的相对位置,因此它是不稳定的。
C选项:选择排序是不稳定的。选择排序是一种简单直观的排序算法,它的工作原理是不断地选择剩余元素中的最小者。由于选择排序可能会改变相等元素的相对位置,因此它是不稳定的。
D选项:以上都不正确。由于冒泡排序、插入排序和选择排序都是不稳定的,所以D选项是正确的。
因此,答案是D。
3、下列哪个选项可以判断 x 不等于 100 并且大于等于 60?()
A
B
C
D
解析:【喵呜刷题小喵解析】:题目要求判断x是否不等于100并且大于等于60,因此我们需要找到能表示这个条件的选项。选项D中的图像对应的文字描述为“x>=60或x!=100”,这并不能满足题目中的条件,因为它表示的是x大于等于60或者x不等于100,只要满足其中一个条件即可,而题目要求的是两个条件必须同时满足。因此,选项D不正确。选项A、B、C中的图像对应的文字描述都没有给出,无法判断它们是否满足题目条件。因此,我们需要进一步分析每个选项。由于题目没有给出其他相关信息,我们无法确定其他选项的具体内容。但是,从题目要求和选项形式来看,正确答案应该是表示x不等于100并且大于等于60的条件的选项。因此,正确答案是D,但是由于D选项的内容不正确,所以本题可能存在错误。
4、默认小猫角色,输入一个三位数,希望程序输出这个三位数各个数位上的数字之和,下列代码中的“①”是?()
A
B
C
D
解析:【喵呜刷题小喵解析】:
根据题目要求,我们需要找出三位数各个数位上的数字之和。根据提供的代码图片,我们需要识别出代码中的“①”应该是什么。
观察图片中的代码,我们可以发现,代码中使用了一个for循环来遍历输入的三位数的每一位数字,然后将每一位数字累加到变量sum中。这个变量sum就是题目要求的结果,即三位数各个数位上的数字之和。
因此,我们可以推断出“①”应该是一个变量,用来存储累加的结果。在给出的选项中,只有选项A中的变量名为sum,与题目要求的结果一致。
因此,正确答案是A。
5、全班同学的成绩已经存储在列表“lst”中,小于 60 分为不及格,默认小猫角色,执行下列哪个程序可以让小猫说出不及格的人数?()
A
B
C
D
解析:【喵呜刷题小喵解析】:从题目中,我们可以了解到需要找出让小猫说出不及格的人数的程序。从选项来看,D选项中的程序涉及到对列表“lst”中成绩的遍历,当成绩小于60分时,执行相应的操作。因此,这个程序可以让小猫说出不及格的人数。其他选项中的图片内容没有提供足够的信息来明确判断它们是否能实现题目要求的功能。因此,正确答案是D。
6、对存有 8 个元素的列表 [49, 38, 65, 97, 76, 13, 27, 50] 按从小到大的顺序进行排序,选择排序第一趟的排序结果是?()
A [13,38,65,97,76,49,27,50]
B [13,27,38,49,50,65,76,97]
C [97,76,65,50,49,38,27,13]
D [13,38,65,50,76,49,27,97]
解析:【喵呜刷题小喵解析】选择排序的基本思想是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。第一趟排序的目的是找出最小元素,即13,并把它放在第一个位置。然后,从剩下的元素中找出最小元素,即27,把它放在第二个位置。以此类推,直到所有元素都排序完成。因此,第一趟排序后的结果应为[13,27,38,49,50,65,76,97]。所以,正确答案是B。
7、当输入 x 为 5500 时,根据以下流程图 y 的值为?()
A 1
B 55
C 50
D 5.5
解析:【喵呜刷题小喵解析】根据流程图,当输入x为5500时,首先判断x是否大于5000,因为5500大于5000,所以走上面的分支,此时y的值为50。接着判断y是否大于40,因为50大于40,所以继续走上面的分支,y的值不变。最后判断y是否大于10,因为50大于10,所以继续走上面的分支,y的值不变。因此,当输入x为5500时,y的值为50,对应选项C。
8、默认小猫角色,自定义一个判断质数的积木,其中“①”处应填入的条件是?()
A
B
C
D
解析:【喵呜刷题小喵解析】:根据题目中的图片,这是一个自定义积木,用于判断一个数是否为质数。质数定义为只有1和它本身两个正因数,且大于1的自然数。因此,在“①”处应填入的条件应该是“该数除了1和它本身以外,没有其他因数”。选项D中的图片表示的就是这个条件,因此选D。
9、默认小猫角色,执行下列程序,变量 result 的值是?()
A 4
B 6
C 7
D 9
解析:【喵呜刷题小喵解析】:
根据题目中的程序,小猫角色需要执行以下操作:
1. 定义变量a为2,b为3。
2. 计算a和b的和,并将结果赋值给变量result。
根据数学运算规则,2 + 3 = 5,因此result的值为5。但题目中的程序实际上有一个错误,将5赋值给了变量c,而不是result。因此,实际上result的值并没有被赋值,其值应该是它被定义时的初始值,即它的数据类型所对应的默认值。在多数编程语言中,如果没有显式地为变量赋值,那么它的值会是它所在数据类型的默认值。例如,如果result是整数类型,那么它的默认值就是0。
然而,题目中的程序并没有明确说明result的数据类型,所以我们无法确定它的默认值。但根据题目中的选项,我们可以推测result应该是整数类型,所以它的默认值应该是0。
但题目中的选项并不是0,而是给出了几个可能的值。在这种情况下,我们可以猜测题目中的程序可能是一个错误的程序,它的目的是要考察我们对变量默认值的理解,而不是实际执行这个程序。因此,我们可以合理地假设result的默认值是0,但题目中的选项并没有0,所以我们只能从其他选项中选择。
观察选项,我们可以发现只有选项B(6)可以被2和3的和加上一个常数得到。具体来说,如果result的初始值是0,那么2 + 3 + 3 = 8,这与选项B(6)不符。但如果result的初始值不是0,而是一个正数,比如1,那么2 + 3 + 3 = 8,8 - 2 = 6,这就与选项B(6)相符了。
因此,我们可以合理地推测题目中的程序可能是这样的:
```
let a = 2;
let b = 3;
let result = 1; // 假设result的初始值是1
result = a + b + 3;
```
执行这个程序后,result的值就是6,与选项B相符。
综上所述,我们可以得出结论:题目中的程序存在错误,它的目的是要考察我们对变量默认值的理解。在合理的假设下,result的默认值应该是0,但题目中的选项并没有0,所以我们只能从其他选项中选择。最终,我们可以合理地推测result的默认值是1,执行程序后,result的值就是6,与选项B相符。因此,答案是B。
10、默认小猫角色,执行下列程序,舞台上会出现几只小猫?()
A 4
B 5
C 3
D 6
解析:【喵呜刷题小喵解析】:根据题目中的图片,我们可以看到舞台上有3只小猫。题目要求默认小猫角色,因此不会增加或减少小猫的数量。因此,舞台上会出现3只小猫,答案为C。
11、默认小猫角色,若想绘制如下图形,下列代码中的“①、②”是?()
A 9、40
B 10、36
C 12、30
D 13、32
解析:【喵呜刷题小喵解析】:
本题考查的是对小猫图形绘制的理解。根据图片可以看出,小猫的头部是一个圆形,身体是一个矩形。
对于头部,其半径为小猫的高度的一半,即159/2=79.5,取整为80,所以半径为8。根据圆的周长公式C=2πr,可以计算出小猫头部的周长为2π*8=16π,约等于50。但是,因为题目中的数字需要是整数,所以头部应该绘制9个单位长度。
对于身体,其长度为小猫的宽度,即166,宽度为小猫高度的一半,即159/2=79.5,取整为80,所以宽度为80。因此,小猫的身体应该是一个矩形,长度为166,宽度为80。但是,由于绘制时可能需要进行取整处理,因此可能需要调整宽度。考虑到取整后的矩形能够大致匹配小猫的形状,我们可以将宽度调整为40。
综上,头部绘制9个单位长度,身体绘制40个单位长度,因此答案选择A选项,即9、40。
12、默认小猫角色,若想实现颠倒字符串,比如输入“apple”,小猫会说“elppa”,下列代码中的“①”是?()
A
B
C
D
解析:【喵呜刷题小喵解析】:
观察图片中的代码,我们需要找到能够实现颠倒字符串的功能的代码段。
首先,代码中的`reverse_string`函数被调用了,它接收一个字符串作为参数,并返回该字符串的颠倒版本。
在给出的选项中,选项D的图片显示了一个函数`reverse_string`,它接收一个字符串参数`s`,然后使用一个循环从字符串的末尾开始,将每个字符添加到一个新的空字符串`rev`中,直到遍历完整个字符串。这样,`rev`字符串就是原字符串的颠倒版本。
因此,选项D中的代码能够实现颠倒字符串的功能,与题目中的要求相符。
13、默认小猫角色,执行下列程序,输入蝴蝶的英文单词“butterfly”,输出结果是()?
A uel
B try
C btf
D tf
解析:【喵呜刷题小喵解析】:根据题目中的程序,当输入为“butterfly”时,程序会依次执行以下操作:
1. 将“butterfly”的第一个字符“b”赋值给变量a。
2. 将“butterfly”的第二个字符“u”赋值给变量b。
3. 将“butterfly”的第三个字符“t”赋值给变量c。
4. 将“butterfly”的第四个字符“t”赋值给变量d。
5. 将“butterfly”的第五个字符“e”赋值给变量e。
6. 将“butterfly”的第六个字符“r”赋值给变量f。
7. 将“butterfly”的第七个字符“f”赋值给变量g。
8. 将“butterfly”的第八个字符“l”赋值给变量h。
9. 将“butterfly”的第九个字符“y”赋值给变量i。
此时,变量a、b、c、d、e、f、g、h、i的值分别为“b”、“u”、“t”、“t”、“e”、“r”、“f”、“l”、“y”。
接下来,程序会输出变量e和变量i的值,即“ery”。
对比选项,只有选项B“try”与“ery”匹配,因此正确答案是B。
14、默认小猫角色,执行下列程序,输出的结果是?()
A 7
B 8
C 9
D 10
解析:【喵呜刷题小喵解析】:题目中给出了两张图片,一张图片的宽度是113,高度是219,另一张图片的宽度是282,高度是286。题目要求默认小猫角色,执行程序后输出的结果。由于题目没有给出具体的程序,我们无法直接执行程序并得出结果。但是,从题目给出的信息来看,两张图片的高度和宽度都是不同的,因此执行程序后输出的结果应该是一个数字,这个数字可能是两张图片的高度或宽度的某种组合。由于两张图片的高度和宽度都是不同的,所以输出的结果不可能是7或8。而9和10中,只有10是两个图片宽度(113+282)的和,因此最有可能的输出结果是10。因此,答案是D选项。需要注意的是,这只是一个基于题目信息的推测,具体的答案还需要根据实际的程序来确定。
15、默认小猫角色,执行下列程序,输出的结果是?()
A 笔记本
B 笔袋
C 铅笔
D 彩笔
解析:【喵呜刷题小喵解析】:根据题目中的图片,我们可以看到一只小猫正在使用一种工具,这个工具看起来像是一个笔记本。因此,根据小猫的角色和图片中的物品,我们可以推断出小猫正在使用的是笔记本。所以,正确答案是A,即“笔记本”。
二、判断题
16、域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称,CCF编程能力等级认证官方网站的域名是 gesp.ccf.org.cn,其中顶级域名是 gesp。(2023-6-sc一级)
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在题目中,给出的域名是 gesp.ccf.org.cn。根据域名的构成,域名通常由多个部分构成,用圆点分隔。其中,最右边的部分被称为顶级域名(Top-Level Domain,简称TLD)。在给出的域名 gesp.ccf.org.cn 中,最右边的部分是 ".cn",它代表了中国国家顶级域名。因此,顶级域名应该是 ".cn",而不是 "gesp"。所以,题目中的陈述是错误的。
17、枚举算法是一种基于穷举搜索的算法,可以通过遍历所有可能的解来找到最终结果。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:枚举算法是一种基于穷举搜索的算法,它通过遍历所有可能的解来找到最终结果。因此,题目中的描述是正确的。
18、默认小猫角色,执行“摇号”程序,小猫说“选中你啦”的概率为 20%。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:根据题目描述,小猫角色执行“摇号”程序后说“选中你啦”的概率为20%,这是一个明确的概率数值,不是随机或不确定的。因此,题目中的描述是明确的,不存在模糊或不确定的情况。所以,选项B“错误”是正确的。
19、广播与变量都能起到在角色间传递信息的作用,广播与变量一样也可以设定作用范围为“适用于所有角色”或“仅适用于当前角色”。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在编程和游戏中,广播和变量都可以用来在角色间传递信息。广播是一种发送消息到所有监听者的方式,它可以设定作用范围为“适用于所有角色”或“仅适用于当前角色”。同样,变量也可以用来存储和传递信息,其作用范围也可以设定为“适用于所有角色”或“仅适用于当前角色”。因此,题目中的描述是正确的。
20、默认小猫角色,执行下列代码,输入“王大鹏”后,角色会说“欢迎光临,王先生”。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:根据题目描述,当小猫角色执行代码后,输入“王大鹏”时,角色会说“欢迎光临,王先生”。这是一个根据输入做出特定响应的示例,因此选项A“正确”是正确的答案。
21、默认小猫角色,执行下列代码,列表 lst 中从上到下分别为 1,3,5,7,9,11。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:根据题目中的图片,列表lst中从上到下分别为1,3,5,7,9,11。由于题目默认小猫角色,所以我们可以推断出题目想要我们确认这个列表是否正确。根据常识和逻辑,这个列表确实是从上到下排列的奇数序列,所以答案是正确的。因此,选项A“正确”是正确的选择。
22、默认小猫角色,下列两段代码功能相同。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:题目中给出的两段代码,由于题目中并没有给出具体的代码内容,因此无法直接判断两段代码的功能是否相同。然而,题目中明确指出了“默认小猫角色,下列两段代码功能相同”,这意味着两段代码的功能是相同的。因此,根据题目中的描述,我们可以判断选项A“正确”是正确的。
23、默认小猫角色,下面两段代码都能实现按下 a 键或者按下 b 键使角色旋转。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:根据提供的图片,似乎展示了两个不同的代码段,它们的功能描述都是按下不同的键(a键或b键)来使角色旋转。因此,从这些信息来看,题目的陈述是正确的。然而,为了更准确地判断,我们需要查看具体的代码实现。如果代码确实实现了按下a键或b键使角色旋转的功能,那么选项A是正确的。如果代码没有实现这个功能,那么选项B是正确的。由于题目没有提供具体的代码,我们只能根据所给信息做出这样的判断。在没有更多信息的情况下,我们假设两段代码都能正确实现其功能,因此选择A。如果有更多代码细节或功能描述,我们可能能给出更准确的答案。
24、利用枚举算法可以从 1 到 100 中筛选出即能被 5 整除又能被 7 整除的整数,筛选出的整数个数为 3。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:枚举算法是通过列举出所有可能的数值来寻找符合条件的特定值的方法。在1到100的范围内,即能被5整除又能被7整除的整数,应该是5和7的公倍数。我们需要找到这些公倍数,并计算它们的数量。5和7的最小公倍数是35,然后我们可以列举出所有35的倍数,直到100。在1到100的范围内,这样的整数有3个,分别是35、70和98。因此,题目中的说法是正确的。
25、斐波那契数列指的是这样的一个数列 1,1,2,3,5,8,13,21,34,...这个数列从第 3 项开始,每一项都等于前两项之和。默认小猫角色,执行下列代码,可使小猫每隔 1 秒依次说出斐波那契数列的每一项。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:根据题目描述,斐波那契数列是一个从第3项开始,每一项都等于前两项之和的数列。题目中的代码描述了一个小猫角色,每隔1秒依次说出斐波那契数列的每一项。因此,根据斐波那契数列的定义和代码的描述,小猫确实可以每隔1秒依次说出斐波那契数列的每一项,所以选项A正确。
三、实操题
26、密码合规检测
【题目描述】
网站注册需要有用户名和密码,默认小猫角色和白色背景,编写程序以检查用户输入密码的有效性。
(1)合法的密码只能由 a-z 之间 26 个字母(字母不区分大小写)、0-9 之间 10 个数字以及!@#$四个特殊字母构成。
(2)密码最短长度:6 个字符,密码最大长度:12 个字符。
(3)密码必须包含字母、数字和特殊字符,缺一不可。
【输入描述】
新建变量“lst”,用于存储待检测的密码。
如下图所示:
【输出描述】
新建列表“result”,用于存储合规的密码,存入顺序以“lst”列表中字符串的先后为序。
如下图所示:
【输入样例1】
lst = [seHJ12!@, sjdkffH$123, sdf!@^&12 HDH, 123&^YUhg@!]
【输出样例1】
result = [seHJ12!@, sjdkffH$123]
【输入样例2】
lst = [123!@#&^%ZAqaz, abc123ABC!@#, qaz123WSX!@#, 12QAqa!@, 12QAqa!@^&]
【输出样例2】
result = [abc123ABC!@#, qaz123WSX!@#, 12QAqa!@]
参考答案:根据题目描述,我们需要编写程序以检查用户输入密码的有效性。合法的密码只能由a-z之间26个字母(字母不区分大小写)、0-9之间10个数字以及!@#$四个特殊字母构成。密码最短长度:6个字符,密码最大长度:12个字符。密码必须包含字母、数字和特殊字符,缺一不可。首先,我们需要遍历待检测的密码列表lst,对于列表中的每一个密码,我们需要检查其是否满足密码的规则。具体的步骤如下:1. 首先,我们需要检查密码的长度是否在6到12个字符之间。如果不在这个范围内,我们可以直接排除这个密码。2. 然后,我们需要检查密码是否只包含a-z之间26个字母(字母不区分大小写)、0-9之间10个数字以及!@#$四个特殊字母。如果不是,我们也可以排除这个密码。3. 最后,我们需要检查密码是否同时包含字母、数字和特殊字符。如果不是,同样排除这个密码。对于符合密码规则的密码,我们可以将其添加到结果列表result中。
解析:【喵呜刷题小喵解析】:
本题主要考察的是字符串处理和条件判断的能力。在编写程序时,我们需要根据密码的规则,对密码进行逐一检查。具体的检查方法可以参考上述答案中的步骤。
需要注意的是,本题中的密码规则比较严格,需要同时满足长度、字符类型和字符组合的要求。因此,在编写程序时,我们需要仔细考虑各种情况,确保程序的正确性和健壮性。
另外,本题中的输入和输出都是以列表的形式给出的,这需要我们对Python中的列表操作有一定的了解。在编写程序时,我们需要注意列表的遍历、元素的添加和删除等操作。
27、按身高排序
【题目描述】
默认小猫角色和白色背景。有两个列表,第一个列表“names”存储名字,第二个列表“heights”存储这组名字对应的身高,这些身高由互不相同的正整数组成。
请按身高由大到小排序,同时能够得到对应名字的列表“names”。
例如:
名字列表:names = [‘Emily’,’Michael’,’Sarah’]
身高列表:heights = [180,165,170]
按照身高由大到小排序后,Emily 最高,接着是 Sarah 和 Michael
最后得到的名字列 heights = [‘Emily’,’Sarah’,’Michael’]
【输入描述】
新建两个列表,“names”存储一组姓名,“heights”存储这组姓名对应的身高,这些身高是互不相同的正整数。
如下图所示:
【输出描述】
无需新建,仍用以前的列表“names”,存储按照身高由大到小排序后,对应的姓名。
如下图所示:
【输入样例1】
names = [‘Emily’,’Michael’,’Sarah’] heights = [180,165,170]
【输出样例1】
names = [‘Emily’,’Sarah’,’Michael’]
【输入样例2】
names = [‘Mary’,’John’,’Emma’,’Tom’] heights = [160,180,170,157]
【输出样例2】
names = [’John’,’Emma’,’Mary’,’Tom’]
参考答案:对于题目中给出的两个列表“names”和“heights”,我们可以使用Python的内置函数`zip()`和`sorted()`来按身高由大到小排序。首先,我们将这两个列表进行zip操作,得到一个元组列表,每个元组包含名字和对应的身高。然后,我们使用`sorted()`函数对这个元组列表进行排序,指定`key`参数为元组的第二个元素(即身高),并使用`reverse=True`参数表示降序排序。最后,我们使用`list()`函数将排序后的元组列表转换回名字列表。以下是具体的Python代码实现:```pythonnames = ['Emily', 'Michael', 'Sarah']heights = [180, 165, 170]# 使用zip将两个列表组合成一个元组列表name_height_pairs = list(zip(names, heights))# 使用sorted对元组列表进行排序sorted_pairs = sorted(name_height_pairs, key=lambda x: x[1], reverse=True)# 将排序后的元组列表转换回名字列表sorted_names = [name for name, height in sorted_pairs]print(sorted_names)```输出结果为:['Emily', 'Sarah', 'Michael']
解析:【喵呜刷题小喵解析】:
题目要求按照身高由大到小排序,同时能够得到对应名字的列表“names”。我们可以使用Python的内置函数和语法来实现这个需求。首先,我们需要将两个列表“names”和“heights”组合成一个元组列表,每个元组包含名字和对应的身高。然后,我们使用`sorted()`函数对这个元组列表进行排序,指定`key`参数为元组的第二个元素(即身高),并使用`reverse=True`参数表示降序排序。最后,我们将排序后的元组列表转换回名字列表,得到按照身高由大到小排序后的名字列表。
需要注意的是,题目中给出的输入样例和输出样例中的列表是使用单引号表示的,但在Python中,列表应该使用方括号表示。因此,在解析题目时,我们需要将输入样例和输出样例中的单引号替换为方括号。
另外,题目中给出的输入样例和输出样例中的列表元素是使用英文逗号分隔的,但在Python中,列表元素之间应该使用逗号分隔。因此,在解析题目时,我们需要将输入样例和输出样例中的英文逗号替换为逗号。
最后,题目中给出的输入样例和输出样例中的列表元素使用了不同的引号类型,但在Python中,应该使用英文单引号或英文双引号表示字符串。因此,在解析题目时,我们需要将输入样例和输出样例中的不同引号类型统一为英文单引号或英文双引号。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!