一、单选题
1、执行以下程序,输出的结果是 ( )。
print( 0.1 + 0.2 == 0.3)
A、 False
B、
–1
C、
0
D、
while
解析:【喵呜刷题小喵解析】:本题考察的是Python中浮点数运算的精度问题。在Python中,浮点数运算可能会产生精度误差,因此,直接比较两个浮点数是否相等通常是不准确的。本题中,`0.1 + 0.2` 的结果并不是完全等于 `0.3`,而是略有偏差,因此 `0.1 + 0.2 == 0.3` 的结果为 `False`。因此,输出的结果应该是 `False`。
2、已知以下程序,要想输出结果为‘1,2,3’,应该使用哪个表达式 ( )。
x = [1,2,3]
z = []
for y in x:
z.append(str(y))
A print(z)
B print(",".join(x))
C print(x)
D print(",".join(z))
解析:【喵呜刷题小喵解析】:根据给定的代码,x 是一个列表,其值为 [1,2,3]。代码的功能是遍历 x 中的每一个元素,将其转化为字符串,然后添加到 z 列表中。因此,执行完代码后,z 的值为 ['1', '2', '3']。要想输出结果为 '1,2,3',需要使用逗号将 z 列表中的元素连接在一起,即使用 ",".join(z)。因此,选项 D 是正确的。
3、设 str = ‘python’,要求把字符串str的第一个字母变为大写,其他字母不变,正确的选项是 ( )。
A、 print(str[0].upper()+str[1:])
B、
print(str[1].upper()+str[-1:1])
C、
print(str[0].upper()+str[1:-1])
D、
print(str[1].upper()+str[2:])
解析:【喵呜刷题小喵解析】:题目要求将字符串str的第一个字母变为大写,其他字母不变。在Python中,可以使用字符串的切片和字符串的upper()方法来实现。
选项A:`print(str[0].upper()+str[1:])`,这个选项将字符串的第一个字母变为大写,然后拼接上字符串的剩余部分,符合题目要求。
选项B:`print(str[1].upper()+str[-1:1])`,这个选项将字符串的第二个字母变为大写,然后拼接上字符串的最后一个字符,不符合题目要求。
选项C:`print(str[0].upper()+str[1:-1])`,这个选项将字符串的第一个字母变为大写,然后拼接上除了最后一个字符之外的字符串部分,也不符合题目要求。
选项D:`print(str[1].upper()+str[2:])`,这个选项将字符串的第二个字母变为大写,然后拼接上从第三个字符开始的字符串部分,同样不符合题目要求。
因此,正确答案是选项A。
4、下列哪一项语句执行后的结果与其他三项不相同 ( )。
A、
eval(“1”+“2*5”)
B、
eval(“5*1”+“2”)
C、 eval(“5*12”)
D、
eval(“5”+“1*2”)
解析:【喵呜刷题小喵解析】:
首先,我们需要理解`eval()`函数在JavaScript中的作用。`eval()`函数可以执行传入的字符串作为JavaScript代码。
对于选项A:`eval(“1”+“2*5”)`,字符串拼接后得到的是`"12*5"`,执行后得到的结果是`12*5`,即60。
对于选项B:`eval(“5*1”+“2”)`,字符串拼接后得到的是`"5*12"`,执行后得到的结果是`5*12`,即60。
对于选项D:`eval(“5”+“1*2”)`,字符串拼接后得到的是`"51*2"`,执行后得到的结果是`51*2`,即102。
对于选项C:`eval(“5*12”)`,直接执行得到的结果是`5*12`,即60。
从上面的解析可以看出,选项A、B和C执行后的结果都是60,而选项D执行后的结果是102。因此,与其他三项不相同的是选项D。
5、执行以下程序,输出的结果是 ( )。
str = "1232abcr312unoob213212"
tu = "12"
print (str.strip(tu).count("2"))
A、
4
B、
3
C、 2
D、
1
解析:【喵呜刷题小喵解析】:首先,我们来看这段Python代码。在这段代码中,我们有一个字符串`str`和一个字符串`tu`。`str`是`"1232abcr312unoob213212"`,`tu`是`"12"`。
然后,我们尝试使用`strip()`函数来去除`str`字符串两端的`tu`字符串。但是,`strip()`函数并不支持传入一个字符串作为参数,它只能去除字符串两端的指定字符。在这里,`strip()`函数实际上会忽略`tu`参数,并只去除`str`字符串两端的空白字符。
因此,`str.strip(tu)`的结果仍然是`"1232abcr312unoob213212"`。
接下来,我们使用`count()`函数来计算字符串中字符`"2"`的数量。由于`"2"`在`"1232abcr312unoob213212"`中出现了4次,所以`count("2")`的结果是4。
因此,`print(str.strip(tu).count("2"))`的输出结果是4,所以正确答案是C。
二、实操题
6、提示信息:
阶乘定义:一个正整数的阶乘是所有小于及等于该数的正整数的乘积。
例如:3的阶乘6 (也就是1*2*3的结果)
例如:8的阶乘40320 (也就是1*2*3*4*5*6*7*8的结果)
编程实现:
输入一个正整数N,输出N的阶乘。
输入描述:
输入一个正整数N
输出描述:
输出N的阶乘
样例输入:
3
样例输出:
6
参考答案:br />```pythondef factorial(n):result = 1for i in range(1, n+1):result *= ireturn resultN = int(input())print(factorial(N))```
解析:【喵呜刷题小喵解析】
这个问题是一个经典的编程问题,要求计算一个正整数的阶乘。阶乘的定义是所有小于及等于该数的正整数的乘积。例如,3的阶乘是1*2*3=6,8的阶乘是1*2*3*4*5*6*7*8=40320。
在这个问题中,我们需要编写一个函数来计算阶乘。我们可以使用一个循环来迭代从1到n的所有整数,并将它们相乘。在Python中,我们可以使用一个简单的for循环来实现这个算法。
具体来说,我们可以定义一个函数`factorial(n)`,它接受一个正整数n作为输入,并返回n的阶乘。在函数内部,我们初始化一个变量`result`为1,然后使用for循环迭代从1到n的所有整数,并将它们乘以`result`。最后,我们返回`result`作为函数的输出。
在程序的主函数中,我们首先使用`input()`函数从标准输入中读取一个正整数N,然后使用`int()`函数将其转换为整数类型。接着,我们调用`factorial(N)`函数计算N的阶乘,并使用`print()`函数将结果输出到标准输出中。
这个算法的时间复杂度是O(n),其中n是输入的正整数。这是因为我们需要迭代从1到n的所有整数来计算阶乘。由于这个算法只需要进行n次乘法操作,因此它的时间复杂度是线性的。
7、编程实现:
输入一个全部由小写字母组成的字符串(如:abcd),然后将字符串奇数位的小写字母转为大写字母,将偶数位的小写字母转为对应的ASCII码。最后将转化后的结果输出。
输入描述:
输入一个全部由小写字母组成的字符串(如:abcd)
输出描述:
输出转化后的结果
样例输入:
abcd
样例输出:
A98C100
参考答案:br />输入字符串为abcd,奇数位为1和3,对应字符为a和c,转为大写后为A和C;偶数位为2和4,对应字符为b和d,对应的ASCII码为98和100。因此,转化后的结果为A98C100。
解析:【喵呜刷题小喵解析】
首先,我们需要理解题目要求。题目要求将输入字符串中的奇数位的小写字母转为大写字母,偶数位的小写字母转为对应的ASCII码。
对于输入字符串abcd,奇数位为1和3,对应字符为a和c,转为大写后为A和C;偶数位为2和4,对应字符为b和d,对应的ASCII码为98和100。
因此,转化后的结果为A98C100。
8、编程实现:
输入两个不相等的四位正整数N和M,其中N<M,并以逗号分隔,输出N与M之间(包含N和M)所有满足要求的正整数且正整数之间以一个英文逗号隔开。
要求:每个正整数的各个位上的数都为偶数(注:0为偶数)。
输入描述:
输入两个不相等的四位正整数(N,M)
输出描述:
输出N与M之间(包含N和M)所有满足要求的正整数且正整数之间以一个英文逗号隔开
样例输入:
4000,4008
样例输出:
4000,4002,4004,4006,4008
参考答案:br />```pythondef find_even_numbers(N, M):result = []for i in range(N, M+1):if all(digit % 2 == 0 for digit in str(i)):result.append(str(i))return ','.join(result)N, M = map(int, input().split(','))print(find_even_numbers(N, M))```
解析:【喵呜刷题小喵解析】
本题的目标是编写一个程序,该程序可以输入两个四位正整数N和M,其中N
首先,我们定义一个函数`find_even_numbers`,它接受两个参数N和M。然后,我们遍历从N到M的所有整数,对于每个整数,我们检查其每一位是否都是偶数。如果是,我们将该整数添加到结果列表中。最后,我们使用`join`函数将结果列表中的所有整数用逗号连接起来,并返回结果字符串。
在主程序中,我们首先从用户输入中读取N和M,然后调用`find_even_numbers`函数,并打印出结果。
样例输入“4000,4008”的输出将是“4000,4002,4004,4006,4008”,这是正确的,因为在这个范围内,只有这些数的每一位都是偶数。
9、编程实现:
输入一个正整数n,统计从1到n之间(包含1和n)所有正整数中,0,1,2,3,4,5,6,7,8,9的数字分别出现的次数,且分行输出。
例如:n为12,那么1到n之间所有的正整数有1,2,3,4,5,6,7,8,9,10,11,12。
在12个正整数中数字0出现了1次,数字1出现了5次,数字2出现了2次,数字2,3,4,5,6,7,8,9分别出现了1次。
输入:
输入一个正整数n
输出:
0,0出现的次数
1,1出现的次数
2,2出现的次数
......
9,9出现的次数
样例输入:
10
样例输出:
0,1 1,2 2,1 3,1 4,1 5,1 6,1 7,1 8,1 9,1
参考答案:br />```pythonn = int(input())count_list = [0] * 10for i in range(1, n+1):for j in str(i):count_list[int(j)] += 1print("0,", count_list[0])print("1,", count_list[1])print("2,", count_list[2])print("3,", count_list[3])print("4,", count_list[4])print("5,", count_list[5])print("6,", count_list[6])print("7,", count_list[7])print("8,", count_list[8])print("9,", count_list[9])```
解析:【喵呜刷题小喵解析】
首先,我们需要从用户那里获取一个正整数n。然后,我们创建一个长度为10的列表,用于存储0到9每个数字出现的次数。
接下来,我们使用两个嵌套的循环来遍历从1到n的所有整数,并统计每个数字出现的次数。外层循环用于遍历每个整数,内层循环用于遍历当前整数的每个数字。
最后,我们按照题目要求,分行输出每个数字及其出现的次数。
10、提示信息:
平方是一种运算,比如:a的平方表示a×a。
例如:2的平方为4 (也就是2*2的积)
例如:4的平方为16 (也就是4*4的积)
编程实现:
输入一个正整数n,将1到n之间所有正整数(包含1和n)作为python字典的键,将正整数的平方作为对应键的值,组成n个键值对。输出1到n的所有键值对(格式要求:每个键值对之间以英文逗号隔开,输出的内容前后中间不能有空格及大括号)。
输入描述:
输入一个正整数n
输出描述:
输出1到n的所有键值对(按照编程实现要求输出)
样例输入:
5
样例输出:
1:1,2:4,3:9,4:16,5:25
参考答案:输入一个正整数n,将1到n之间所有正整数作为字典的键,将正整数的平方作为对应键的值,组成n个键值对。输出1到n的所有键值对,每个键值对之间以英文逗号隔开,输出的内容前后中间不能有空格及大括号。
解析:【喵呜刷题小喵解析】:
根据题目要求,我们需要编写一个Python程序,输入一个正整数n,然后生成一个字典,字典的键是从1到n的正整数,对应的值是这些正整数的平方。最后,将这个字典转换为字符串输出,每个键值对之间用英文逗号隔开,且输出的内容前后中间不能有空格及大括号。
下面是一个可能的Python程序实现:
```python
n = int(input())
result = {i: i**2 for i in range(1, n+1)}
output_str = ",".join(f"{k}:{v}" for k, v in result.items())
print(output_str)
```
在这个程序中,我们首先使用`input()`函数从标准输入读取一个正整数n。然后,我们使用字典推导式生成一个字典,字典的键是从1到n的正整数,对应的值是这些正整数的平方。接着,我们使用字典的`items()`方法遍历字典的键值对,并使用字符串的`join()`方法将这些键值对拼接成一个字符串,每个键值对之间用英文逗号隔开。最后,我们使用`print()`函数将拼接好的字符串输出到标准输出。
例如,当输入为5时,程序会输出`1:1,2:4,3:9,4:16,5:25`,符合题目要求。
11、提示信息:
假设给出一个数值9876543201,直接看这个数字很难直观准确的读出来,为了准确快速的读出一个数字,想请你编写一个读数系统。
中文读数规则:1.从高位读起,先读亿级,再读万级,最后读个级;2. 读亿级和万级时按读个级的方法来读,读完亿级后加上一个“亿”字,读完万级后加上一个“万”字;3. 每级末尾不管有几个0都不读,每级中间和前面有一个或连续几个0,都只读一个0。
编程实现:
输入一个小于一百亿的正整数n(1≤n<10000000000),按照中文读写的规范转为汉语拼音字串,相邻的两个音节用一个空格符隔开。
例如:给定一个阿拉伯数字串“9876543201”
中文读写的规范:九十八亿七千六百五十四万三千二百零一
汉语拼音字串:jiu shi ba yi qi qian liu bai wu shi si wan san qian er bai ling yi
输入描述:
输入一个小于一百亿的正整数n(1≤n<10000000000)
输出描述:
输出其对应汉语拼音字串,相邻的两个音节用一个空格符隔开
样例输入:
54321001
样例输出:
wu qian si bai san shi er wan yi qian ling yi
参考答案:输入一个小于一百亿的正整数n,按照中文读写的规范转为汉语拼音字串,相邻的两个音节用一个空格符隔开。
解析:【喵呜刷题小喵解析】:
根据题目要求,我们需要编写一个程序,将输入的小于一百亿的正整数n按照中文读写的规范转为汉语拼音字串,相邻的两个音节用一个空格符隔开。
根据中文读数的规则,我们可以将输入的整数按照亿、万、个三个级别进行划分,然后按照规则进行读数。具体来说,我们可以先将输入的整数转换为字符串,然后从高位开始读取每个数字,将其转换为对应的汉字读音,并按照规则添加“亿”、“万”等词语。最后,将得到的读音用空格符隔开,得到最终的答案。
在实际编写程序时,我们可以使用循环遍历输入的整数,将其转换为对应的汉字读音,并按照规则添加“亿”、“万”等词语。具体实现方式可以根据编程语言的特性进行选择,例如使用字符串拼接、循环遍历等方式。
需要注意的是,在将数字转换为汉字读音时,需要考虑到每个数字对应的读音,以及“亿”、“万”等词语的添加规则。同时,还需要注意输入的数字范围,确保程序能够正确处理小于一百亿的正整数。
12、提示信息:
回形取数,是沿着一个数字矩阵的左上角向下开始移动取数,当前方没有数字或者数字已经被取过,就会左转继续移动取数,当没有数可取时回形取数结束。如下图所示:
回形取数结束后会产生一条线路图,也就是数字线路,上图的数字线路为:1,5,9,13,14,15,16,12,8,4,3,2,6,10,11,7
编程实现:
用户分别输入两个正整数,第一个数代表数字矩阵的行数,第二个数代表数字矩阵的列数,数字矩阵的数字为从1开始的正整数。根据回形取数规则将最终的数字线路输出(数字线路中的每个数字之间需要有一个英文逗号格隔开)。
例如:
输入的是2和3数字矩阵为:
1 2 3
4 5 6
数字线路为:1,4,5,6,3,2
输入的是4和3数字矩阵为:
1 2 3
4 5 6
7 8 9
10 11 12
数字线路为:1,4,7,10,11,12,9,6,3,2,5,8
(注:数字矩阵不需要输入,此处只为展示)
输入描述:
第一行输入一个正整数作为行数
第二行输入一个正整数作为列数
输出描述:
根据回形取数规则将数字线路输出(数字线路中的每个数字之间需要有一个英文逗号隔开)
样例输入:
3 2
样例输出:
1,3,5,6,4,2
参考答案:```pythonimport mathdef backtrack(matrix, row, col, total_rows, total_cols, visited, path):if row < 0 or col < 0 or row >= total_rows or col >= total_cols or visited[row][col]:returnvisited[row][col] = Truepath.append(matrix[row][col])if row == 0:if col == total_cols - 1 or visited[row][col + 1]:backtrack(matrix, row, col - 1, total_rows, total_cols, visited, path)else:backtrack(matrix, row, col + 1, total_rows, total_cols, visited, path)elif row == total_rows - 1:if col == 0 or visited[row][col - 1]:backtrack(matrix, row, col + 1, total_rows, total_cols, visited, path)else:backtrack(matrix, row, col - 1, total_rows, total_cols, visited, path)else:if col == 0:if row == 1 or visited[row - 1][col]:backtrack(matrix, row + 1, col, total_rows, total_cols, visited, path)else:backtrack(matrix, row - 1, col, total_rows, total_cols, visited, path)elif col == total_cols - 1:if row == total_rows - 2 or visited[row + 1][col]:backtrack(matrix, row - 1, col, total_rows, total_cols, visited, path)else:backtrack(matrix, row + 1, col, total_rows, total_cols, visited, path)else:if visited[row - 1][col]:backtrack(matrix, row, col + 1, total_rows, total_cols, visited, path)elif visited[row + 1][col]:backtrack(matrix, row, col - 1, total_rows, total_cols, visited, path)else:backtrack(matrix, row - 1, col, total_rows, total_cols, visited, path)def spiral_order(total_rows, total_cols):matrix = [[i + j + 1 for j in range(total_cols)] for i in range(total_rows)]visited = [[False] * total_cols for _ in range(total_rows)]path = []backtrack(matrix, 0, 0, total_rows, total_cols, visited, path)return ','.join(map(str, path))total_rows = int(input().strip())total_cols = int(input().strip())print(spiral_order(total_rows, total_cols))```
解析:【喵呜刷题小喵解析】:
本题要求实现回形取数算法,根据给定的矩阵的行数和列数,输出按照回形取数规则得到的数字线路。
首先,我们定义一个二维数组`matrix`来存储输入的矩阵,然后定义一个二维数组`visited`来记录每个数字是否被访问过。接着,我们定义一个列表`path`来存储数字线路。
然后,我们定义了一个回溯函数`backtrack`,该函数根据当前的位置和矩阵的大小,判断下一步应该向哪个方向移动。如果当前位置超出了矩阵的范围或者已经被访问过,则直接返回。否则,将当前位置的数字添加到`path`中,并标记该位置为已访问。然后,根据当前位置的不同,选择向不同的方向移动。
最后,我们定义了一个函数`spiral_order`,该函数根据输入的矩阵的行数和列数,调用回溯函数得到数字线路,并将数字线路以英文逗号分隔的形式输出。
在主函数中,我们首先读入矩阵的行数和列数,然后调用`spiral_order`函数得到数字线路,并输出。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!