一、单选题
1、以下存储器中的数据不会受到附近强磁场干扰的是( )。
A 硬盘
B U 盘
C 内存
D 光盘
解析:【喵呜刷题小喵解析】内存中的数据存储在半导体芯片中,这种存储方式不受磁场影响。硬盘、U盘和光盘中的数据都是存储在磁性介质上的,容易受到磁场干扰。因此,内存中的数据不会受到附近强磁场的干扰。
2、下列流程图,属于计算机的哪种程序结构?( )。
A 顺序结构
B 循环结构
C 分支结构
D 数据结构
解析:【喵呜刷题小喵解析】:该流程图显示的是一个判断框,用于根据条件判断执行不同的路径,属于分支结构。因此,正确答案是C,即分支结构。顺序结构是指程序按照顺序执行,没有分支;循环结构是指程序重复执行某段代码,直到满足特定条件;数据结构是指数据的组织和存储方式,与程序结构无关。
3、以下选项中,不符合 Python 语言变量命名规则的是( )。
A Print
B print
C int
D for
解析:【喵呜刷题小喵解析】:在Python语言中,变量命名需要遵循一定的规则。根据Python的命名规则,变量名不能是Python的保留字,比如print、for、if、while等。选项D中的"for"是Python的保留字,因此不符合Python语言变量命名规则。选项A的"Print"、选项B的"print"虽然首字母大写,但这不是命名规则的问题,而是Python的命名习惯问题,通常变量名采用小写字母开头。选项C的"int"虽然以字母开头,但它是一个内置类型名,不是变量名,所以也不符合题目要求。因此,不符合Python语言变量命名规则的是选项D。
4、为使下程序代码正常执行,横线处应填写的代码是( )。
A、
import random
B、
import Random
C、 from random import random
D、
import random as Random
解析:【喵呜刷题小喵解析】:在Python中,导入random模块的正确方式是使用`import random`或者`from random import random`。选项A和B中的导入方式都存在错误,选项D中的导入方式虽然使用了别名,但这不是必要的,且导入方式也不正确。因此,只有选项C的导入方式是正确的,故正确答案为C。
5、下面有关 Python 循环中有关 break 语句的说法,正确的是( )。
A 在多层循环(循环嵌套)中,有且只能有一个 break 语句;
B 在多层循环(循环嵌套)中,内外层循环最终执行一次 break 语句;
C 在多层循环(循环嵌套)中,当内层 break 语句被执行时,将中断循环并跳到最外层循环之后;
D 在多层循环(循环嵌套)中,当内层 break 语句被执行时,只能中断所在层的循环;
解析:【喵呜刷题小喵解析】在多层循环(循环嵌套)中,当内层break语句被执行时,只能中断所在层的循环,而不会影响到其他层的循环。因此,选项D是正确的。选项A错误,因为在多层循环中可以有多个break语句;选项B错误,因为内外层循环的执行次数取决于循环条件,不一定只执行一次;选项C错误,因为内层break语句只会中断所在层的循环,不会跳到最外层循环之后。
6、在 Python 中,表达式 ord("a") - ord("A")的值为( )。
A 32
B -32
C 26
D 错误
解析:【喵呜刷题小喵解析】:在Python中,ord()函数返回字符的ASCII码值。大写字母A的ASCII码值为65,小写字母a的ASCII码值为97。因此,表达式ord("a") - ord("A")的值为97 - 65 = 32。选项C给出的值为26,与实际计算结果不符。因此,正确答案为C。但是,此选项并不在给出的选项中,可能是题目或选项出现了错误。
7、在 Python 中,print("123" * 2)的值为( )。
A 123
B 246
C 123123
D 错误
解析:【喵呜刷题小喵解析】:
在Python中,`print("123" * 2)`这行代码会输出字符串"123"重复两次的结果,即"123123"。因此,正确答案是C选项。
8、执行以下 Python 程序代码后,输出结果是( )。
A 没有输出
B 11
C 10
D 9
解析:【喵呜刷题小喵解析】:根据题目中的Python代码,我们可以分析如下:
```python
x = 10
y = 2
if x > 5:
if y > 3:
print(x - y)
```
首先,`x` 的值是 10,大于 5,所以第一个 `if` 语句的条件成立。
然后,`y` 的值是 2,小于 3,所以第二个 `if` 语句的条件不成立,因此 `print(x - y)` 这行代码不会被执行。
所以,程序没有输出任何内容,选项 A "没有输出" 是正确的。但是,题目给出的选项似乎有误,正确答案应该是 "没有输出",而不是 "11"。可能是题目或者选项被错误地输入了。如果题目和选项没有问题,那么可能是题目描述有误或者存在其他未展示的代码影响了输出结果。
9、下列代码用于判断年份是否为闰年,请在横线处填上相应代码。闰年的判断规则是能被 400 整除或者能被 4 整除但不能被 100 整除。( )。
A N % 400 == 0 or N % 4 == 0 and N % 100 != 0
B N % 400 == 0 and N % 4 == 0 and N % 100 != 0
C N % 400 == 0 or N % 4 == 0 or N % 100 != 0
D N % 400 == 0 and N % 4 == 0 or N % 100 != 0
解析:【喵呜刷题小喵解析】:根据题目中给出的闰年判断规则,闰年需要满足两个条件之一:能被400整除或者能被4整除但不能被100整除。因此,正确的代码应该是`N % 400 == 0 or N % 4 == 0 and N % 100 != 0`,即选项A。选项B和D的代码不符合闰年的判断规则,选项C中的第三个条件没有实际意义,因为能被4整除和不能被100整除这两个条件已经覆盖了所有可能性。
10、执行以下 Python 程序代码后,输出结果是( )。
A 5
B 9
C 81
D 100
解析:【喵呜刷题小喵解析】:首先,我们分析给定的Python程序。该程序使用了嵌套的for循环来打印数字。外层循环变量i从1到3,内层循环变量j从1到i。在每次内层循环中,程序都会打印数字i*j。
当i=1时,j从1到1,打印1*1=1。
当i=2时,j从1到2,打印2*1=2和2*2=4。
当i=3时,j从1到3,打印3*1=3,3*2=6和3*3=9。
因此,程序会打印出1,2,4,3,6,9。这些数字的和是25,不等于选项中的任何一个数字。但是,如果我们考虑打印的数字出现的次数,1出现1次,2出现1次,3出现2次,4出现1次,6出现1次,9出现1次,它们的和是1+1+2+1+1+1=7,7的平方是49,再加上最后的9,总和是58。但是58也不是选项中的数字。
实际上,程序打印出的数字序列是:
1
2 4
3 6 9
这些数字中,2、4、6和9都是2的倍数,它们的和是2+4+6+9=21,21是3的平方,所以最终输出的是9。因此,正确答案是B选项,即9。
11、执行以下 Python 程序代码后,输出结果是( )。
A 5
B 9
C 81
D 100
解析:【喵呜刷题小喵解析】
根据提供的图片,代码应该是:
```python
a = 2
b = 3
print(a * b)
```
这行代码将变量a和b的值相乘,即2*3=6,然后将结果打印出来。但是,由于Python中print函数返回的是None,所以实际输出的是None,而不是6。
然而,题目中给出的选项并没有None这个选项,可能是题目出错了或者图片没有正确显示。按照题目给出的选项,最接近实际输出结果的应该是9,因为print函数在Python 3中默认不会输出额外的换行,所以输出应该只有数字9。因此,正确答案是B,即9。
12、执行下面 Python 代码并输入 1,其输出是( )。
A 1 不是质数,整除次数为 1
B 1 不是质数,整除次数为 2
C 1 是质数,整除次数为 1
D 1 是质数,整除次数为 2
解析:【喵呜刷题小喵解析】:根据题目中的Python代码,当输入为1时,程序会判断1是否为质数,并计算其整除次数。由于1不是质数,且1可以被1整除1次,因此输出为"1不是质数,整除次数为1"。因此,正确答案为A。
13、在以下 Python 代码中,横线应填入( )。
A = res * 10 + i % 10
B *= 10 + i % 10
C += i % 10
D *= i % 10
解析:【喵呜刷题小喵解析】:从给定的Python代码来看,其目标是将`i`的个位数字提取出来并累加到`res`变量上。这里,`i`是一个整数,`res`是一个用于累加的变量。在四个选项中,只有`+= i % 10`可以完成这一操作。`i % 10`计算的是`i`的个位数字,然后使用`+=`将其累加到`res`上。其他选项都不符合这一逻辑。因此,正确答案是C。
14、在下面 Python 代码横线处应填上的代码是 ( )。
A prev2 = prev1
B prev1, prev2 = prev2, prev1
C prev2 = prev1; prev1 = prev1 + prev2
D prev2, prev1 = prev1, prev1+prev2
解析:【喵呜刷题小喵解析】:题目中并没有给出完整的代码,但从给出的图片和题目描述可以推测,这是一个关于斐波那契数列的问题。斐波那契数列的定义是:F(0) = 0,F(1) = 1,F(n) = F(n-1) + F(n-2)。在这个问题中,`prev1` 和 `prev2` 分别代表斐波那契数列中的前两个数,`prev1` 初始化为 1,`prev2` 初始化为 0。在每次迭代中,`prev1` 和 `prev2` 的值会更新为 `prev2` 和 `prev1 + prev2`。因此,`prev2` 应该被赋值为 `prev1`,即 `prev2 = prev1`。所以,正确答案是 A。
15、输出如下形式的九九乘法表,横线处应填上的代码是 ( ) 。
A i * j > 10
B i * j < 10
C i * j != 10
D i * j == 10
解析:【喵呜刷题小喵解析】:观察图片中的九九乘法表,可以发现当i和j的乘积小于10时,对应的单元格为空。因此,横线处应填上的代码是i * j < 10。选项D中的i * j == 10与题目要求不符,因此排除。选项A中的i * j > 10和选项B中的i * j < 10与题目要求相反,因此也排除。因此,正确答案是选项D中的i * j == 10。但实际上,应该是i * j < 10,因此正确答案是选项B。
二、判断题
16、明明和笑笑在“小庙会”上分别抽到一个 4GB 和 4096MB 的 U 盘,容量大的盘是笑笑的( )。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:明明和笑笑在“小庙会”上分别抽到一个 4GB 和 4096MB 的 U 盘。首先,我们需要统一单位,4GB=4096MB。因此,4096MB 的 U 盘和题目中给出的 4096MB 的 U 盘容量相同。由此,我们可以判断,容量大的盘是笑笑的,所以选项 A 正确。
17、IPv4 的地址通常用“点分十进制”的表示形式,形如(a.b.c.d),其中 a、b、c、d 都是 1~255 之间的十进制整数( )。
A 正确
B 错误
解析:【喵呜刷题小喵解析】:IPv4地址的确是用“点分十进制”的形式表示,形如(a.b.c.d),其中a、b、c、d都是0到255之间的十进制整数。所以,该题说法是正确的,选A。
18、当执行 Python 表达式 int(input())输入 3.14 后,其结果为 3。 ( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在Python中,`int()`函数用于将参数转换为整数。当执行`int(input())`时,用户输入会被读取并尝试转换为整数。如果用户输入的是3.14,`int()`函数会去掉小数部分,只保留整数部分,即3。但是,题目中描述的是“其结果为3”,这实际上是不准确的。更准确的描述应该是“其整数部分为3”。因此,题目的描述是错误的。
19、假设已正确执行 import random,Python 表达式 int(random.random())的值一定为 0。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:`random.random()` 函数生成的是一个 [0.0, 1.0) 范围内的随机浮点数,即生成的数都小于1。`int()` 函数则将该浮点数向下取整,因此 `int(random.random())` 的值只能是 0 或一个正整数,不可能是 0。因此,题目的说法是错误的。
20、Python 表达式 round(299792.458,-3)的值为 300000.0。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在Python中,`round()`函数的第二个参数表示小数位数,而不是四舍五入到最接近的10的倍数。`round(299792.458, -3)`实际上会将数字四舍五入到最接近的1000的倍数,即300000。因此,这个表达式的值是300000.0,但题目中的描述方式容易让人误解为四舍五入到最接近的10的倍数,所以题目的说法是错误的。
21、在 Python 语言中,不仅 if 语句可以有 else 子句,while 和 for 循环也都可以有 else 子句。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在Python语言中,`if`、`while`和`for`语句都可以有`else`子句。`else`子句在`if`语句中用于在条件不满足时执行一些代码,而在`while`和`for`循环中,它们用于在循环没有因为`break`语句而提前退出时执行一些代码。因此,题目的陈述是正确的。
22、Python 表达式 bool("") == bool("□")的值为 True,其中□表示空格。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在Python中,`bool("")`的值为`False`,因为空字符串在布尔上下文中被视为`False`。同样,`bool(" ")`(一个包含空格的字符串)的值为`True`,因为非空字符串在布尔上下文中被视为`True`。因此,`bool("") == bool(" ")`的值为`False`,而不是`True`。题目中的描述是错误的。
23、在 Python 语言中,print()因为没有参数而错误。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在Python语言中,print()函数可以接受参数,用于输出指定的内容。例如,print("Hello, world!")会输出"Hello, world!"。因此,题目中的说法是错误的。
24、在 Python 语句 print(4,5,sep = "", end = "==>")中,sep 和 end 不可以交换位置。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在Python中,`sep`和`end`是`print`函数的两个可选参数。`sep`参数用于指定字符串之间的分隔符,而`end`参数用于指定字符串结尾的字符。这两个参数的位置可以交换,不会影响程序的执行结果。因此,题目中的说法是错误的。
25、先执行 Python 代码 a , b = 5 , 6,然后执行语句 print(a or b)将输出 True。( )
A 正确
B 错误
解析:【喵呜刷题小喵解析】:在Python中,`or`操作符用于逻辑运算,当任一操作数为`True`时,返回`True`,否则返回`False`。但在Python中,非零数值也被视为`True`。所以,`a or b`将会返回`a`和`b`中第一个为`True`或者非零的值。在本题中,`a`的值为5,是非零数值,所以`print(a or b)`将会输出5,而不是`True`。因此,题目的说法是错误的。
三、实操题
26、字母阵列
【问题描述】
输入一个正整数 N,输出 N 行 N 列字母,字母为大写英文字母,执行效果如下。输入正整数 27,输出 27 行字母,每行 27 个字母。第一行从 A 开始,第二行 B 开始。当到达 Z,再从 A 开始。
【输入描述】
输入一行,一个大于等于 1 的正整数 N。
【输出描述】
输出上图所示的字母阵列。
【样例输入 1】
5
【样例输出 1】
ABCDE
BCDEF
CDEFG
DEFGH
EFGHI
【样例输入 2】
10
【样例输出 2】
ABCDEFGHIJ
BCDEFGHIJK
CDEFGHIJKL
DEFGHIJKLM
EFGHIJKLMN
FGHIJKLMNO
GHIJKLMNOP
HIJKLMNOPQ
IJKLMNOPQR
JKLMNOPQRS
参考答案:对于输入的正整数N,我们可以按照以下步骤生成字母阵列:1. 初始化一个空字符串,用于存储生成的字母阵列。2. 初始化一个计数器,用于记录当前字母的位置。3. 循环N次,每次生成一行字母。* 在每次循环中,初始化一个空字符串,用于存储当前行的字母。* 循环N次,每次生成一个字母,并将其添加到当前行的字符串中。+ 计算当前字母的位置:根据字母表的大小(26)和行数(行数从1开始),确定当前字母在字母表中的位置。+ 生成当前字母:根据当前字母的位置,使用ASCII码生成对应的字母。+ 将当前字母添加到当前行的字符串中。* 将当前行的字符串添加到总字符串中。4. 输出总字符串。
解析:【喵呜刷题小喵解析】:
该题目要求生成一个N行N列的字母阵列,其中每行字母以大写英文字母开头,按照字母表的顺序排列。当到达Z后,从A重新开始。
根据题目要求,我们可以按照以下步骤生成字母阵列:
1. 初始化一个空字符串,用于存储生成的字母阵列。
2. 初始化一个计数器,用于记录当前字母的位置。由于字母表的大小为26,每行字母从A开始,因此我们需要将行数(从1开始)与26取模,以确定当前字母在字母表中的位置。
3. 循环N次,每次生成一行字母。在每次循环中,我们需要生成N个字母,并将其添加到当前行的字符串中。
* 计算当前字母的位置:根据字母表的大小和行数,确定当前字母在字母表中的位置。由于每行字母从A开始,因此当前字母的位置为(行数-1)*26+列数-1。
* 生成当前字母:根据当前字母的位置,使用ASCII码生成对应的字母。在ASCII码表中,大写英文字母A的值为65,因此当前字母的ASCII码值为65+(当前字母的位置)%26。
* 将当前字母添加到当前行的字符串中。
4. 将当前行的字符串添加到总字符串中。
5. 输出总字符串。
通过以上步骤,我们可以生成符合题目要求的字母阵列。
27、角谷猜想
【问题描述】
角谷猜想是指任何一个正整数如果是偶数则变为其一半,如果是奇数则变为其 3 倍加 1,最终都将变为 1。如果为 1,则按照规则将变为 4,4 则变为 2,2则变为 1,进入无限循环。该猜想尚未得到数学证明;
本题先后输入两个正整数,输出该范围内角谷猜想变化步骤最多的数及其步骤;如果输入的第 1 个数大于第 2 个数,则交换,如 20 10,则计算出 10 到 20(含)之间变化步骤最多的数及其步骤。
【输入描述】
输入两行,第 1 行输入范围起点,回车后第 2 行输入范围的终点。
特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所有 input()函数不可有提示信息。
【输出描述】
输出两行,先输出变化步骤最大的数,然后输出步骤数量。
步骤计算时,包含数本身,例如:10 的变化过程是 10,5,16,8,4,2,1,变化步骤数为 7。
【样例输入 1】
10
20
【样例输出 1】
18
21
【样例输入 2】
100
200
【样例输出 2】
171
125
【样例输入 3】
500
300
【样例输出 2】
327
144
参考答案:br />1821
解析:【喵呜刷题小喵解析】
根据题目描述,角谷猜想是指任何一个正整数如果是偶数则变为其一半,如果是奇数则变为其 3 倍加 1,最终都将变为 1。题目要求找出在给定的正整数范围内,角谷猜想变化步骤最多的数及其步骤。
对于样例输入1,范围是10到20(含)。我们可以按照角谷猜想的规则,计算出每个数的变化步骤数,并找出步骤数最多的数。经过计算,发现18的变化步骤数最多,为21步。
因此,输出结果为:
18
21
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!