一、单选题
1、执行print(5**3)语句后,输出的结果是( )。
A 0
B 15
C 125
D 2
解析:【喵呜刷题小喵解析】在Python中,`**` 是指数运算符。`5**3` 表示5的3次方,即5乘以5乘以5,结果为125。因此,执行`print(5**3)`语句后,输出的结果是125,选项C正确。
2、在Python中,使用以下哪个关键字创建自定义函数?( )
A function
B public
C func
D def
解析:【喵呜刷题小喵解析】:在Python中,创建自定义函数的关键字是`def`。因此,正确答案是D选项。其他选项如`function`、`public`和`func`都不是Python中创建自定义函数的关键字。
3、已知:L = ['a', 1, 'b', 2 , 'a', 2, 'c', 2 ],执行print(len(set(L)))语句后,输出的结果是( )。
A 2
B a
C 5
D 8
解析:【喵呜刷题小喵解析】:在Python中,`set`是一个无序且不重复的元素集。给定列表L,首先将其转换为集合,即`set(L)`,这会去除列表中的重复元素。然后,使用`len()`函数计算集合中元素的数量。对于列表L,其元素为['a', 1, 'b', 2, 'a', 2, 'c', 2],转换为集合后变为{'a', 1, 'b', 2, 'c'},共有5个元素,因此`len(set(L))`的值为5。执行`print(len(set(L)))`后,输出的结果是5。因此,正确选项为A。
4、下列方法描述不正确的是( )。
A tuple()可以将元组转换成列表
B insert()可以在列表的指定位置添加元素
C find()可以检索字符串中是否包含指定的字符串
D index()可以查询某元素在列表中第一次出现的下标(索引)位置
解析:【喵呜刷题小喵解析】:在Python中,`tuple()`函数是用于将其他可迭代对象(如列表、元组等)转换为元组,而不是将元组转换为列表。所以选项A的描述是不正确的。
选项B,`insert()`是列表的一个方法,用于在指定位置插入元素,描述是正确的。
选项C,`find()`是字符串的一个方法,用于检索字符串中是否包含指定的子字符串,并返回子字符串第一次出现的位置(索引),描述是正确的。
选项D,`index()`也是列表的一个方法,用于查询某元素在列表中第一次出现的下标(索引)位置,描述是正确的。
5、以下对可选参数描述不正确的是( )。
A 可选参数写在必选参数前边
B 可选参数定义时必须指定默认值
C 多个可选参数之间需要逗号分隔
D 可选参数可以只有1个
解析:【喵呜刷题小喵解析】:在选项中,A描述"可选参数写在必选参数前边"是不正确的。在Python等编程语言中,函数的参数通常遵循先必选参数后可选参数(即默认参数)的顺序。如果可选参数在必选参数前面,这违反了编程语言的常规规则,可能会导致语法错误或理解困难。
B选项"可选参数定义时必须指定默认值"是正确的。可选参数,也称为默认参数,在定义时确实需要指定一个默认值,这样当调用函数时没有提供该参数的值时,就会使用默认值。
C选项"多个可选参数之间需要逗号分隔"也是正确的。在定义函数时,如果有多个可选参数,它们之间确实需要用逗号分隔。
D选项"可选参数可以只有1个"也是正确的。可选参数的数量不是固定的,可以有一个、两个或多个。这取决于函数的需求和设计。
因此,选项A"可选参数写在必选参数前边"是不正确的描述。
二、实操题
6、编程实现:
给定一个正整数N(2≤N≤100),输出N个连续的大写字母“A”(字母之间没有空格)。
例如:N = 3,则输出“AAA”。
输入描述:
输入一个正整数N(2≤N≤100)
输出描述:
输出N个连续的大写字母“A”(字母之间没有空格)
样例输入:
3
样例输出:
AAA
参考答案:br />```pythonN = int(input())print('A' * N)```
解析:【喵呜刷题小喵解析】
题目要求输出N个连续的大写字母“A”(字母之间没有空格),其中N是一个正整数,范围在2到100之间。
这个问题可以通过Python编程语言来解决。首先,我们需要从用户那里获取输入,即N的值。然后,我们可以使用Python的字符串乘法操作来生成N个连续的“A”字符,最后输出这个字符串。
在这个Python程序中,我们首先使用`input()`函数从用户那里获取输入,然后使用`int()`函数将输入的字符串转换为整数。接着,我们使用字符串乘法操作`'A' * N`来生成N个连续的“A”字符,最后使用`print()`函数输出这个字符串。
注意,这个程序假设用户会输入一个有效的正整数,并且这个正整数在2到100的范围内。如果用户的输入不符合这些要求,程序可能会产生错误。在实际使用中,你可能需要添加一些错误处理代码来确保程序的健壮性。
7、编程实现:
小明将A、B两种卡片摆成一排(每种卡片若干张),请找出这排卡片中A卡片的数量。
输入描述:
输入一个只包含A、B两种字符组成的字符串(1<字符串长度<1000),表示这排卡片的摆放情况
输出描述:
输出一个整数,表示字符串中字符“A”的个数
样例输入:
ABBAA
样例输出:
3
参考答案:br />```pythondef count_A(cards):count = 0for card in cards:if card == 'A':count += 1return count# 测试cards = input()print(count_A(cards))```
解析:【喵呜刷题小喵解析】
这是一个简单的编程问题,要求统计字符串中字符'A'的数量。我们可以定义一个函数`count_A`,它接收一个字符串作为输入,然后遍历这个字符串,每次遇到字符'A',计数器就加1。最后返回计数器的值。
在Python中,我们可以使用`input()`函数获取用户输入的字符串,然后调用`count_A`函数计算'A'的数量,并使用`print()`函数输出结果。
在给定的样例输入`ABBAA`中,'A'的数量为3,所以样例输出为3。
8、编程实现:
有N(2≤N≤80)堆玻璃球,且已知每堆玻璃球的数量。小明每次只能从其中一堆玻璃球中拿出1颗或者2颗。
请你帮助小明计算出,最少需要拿多少次才能把N堆玻璃球全部拿完。
例如:
N = 3,3堆玻璃球的数量分别为6,5,3,最少需要拿8次,具体拿法如下:
6颗的玻璃球最少需要拿3次,第一次拿2个,第二次拿2个,第三次拿2个;
5颗的玻璃球最少需要拿3次,第一次拿2个,第二次拿2个,第三次拿1个;
3颗的玻璃球最少需要拿2次,第一次拿2个,第二次拿1个。
输入描述:
第一行输入一个正整数N(2≤N≤80),表示玻璃球总堆数
第二行输入N个正整数(1≤正整数≤50),分别表示每堆玻璃球的数量,正整数之间以一个英文逗号隔开
输出描述:
输出一个整数,表示拿完N堆玻璃球最少需要拿取的次数
样例输入:
3 6,5,3
样例输出:
8
参考答案:br />```pythondef min_times(玻璃球堆数, 玻璃球数量列表):玻璃球总数 = sum(玻璃球数量列表)拿取次数 = 0拿取次数 += ceil(玻璃球总数 / 2)return拿取次数玻璃球堆数 = int(input().strip())玻璃球数量列表 = list(map(int, input().strip().split(',')))print(min_times(玻璃球堆数, 玻璃球数量列表))```
解析:【喵呜刷题小喵解析】
本题要求计算小明最少需要拿多少次才能把N堆玻璃球全部拿完。小明每次只能从其中一堆玻璃球中拿出1颗或者2颗。
我们可以先计算出所有玻璃球的总数,然后按照每次最多拿2颗玻璃球的方式计算最少需要拿多少次。具体步骤如下:
1. 计算所有玻璃球的总数。
2. 计算拿取次数,每次最多拿2颗玻璃球,因此拿取次数应该等于玻璃球总数除以2向上取整。
因此,我们可以编写如下的Python代码实现:
```python
def min_times(玻璃球堆数, 玻璃球数量列表):
玻璃球总数 = sum(玻璃球数量列表)
拿取次数 = 0
拿取次数 += ceil(玻璃球总数 / 2)
return拿取次数
玻璃球堆数 = int(input().strip())
玻璃球数量列表 = list(map(int, input().strip().split(',')))
print(min_times(玻璃球堆数, 玻璃球数量列表))
```
其中,`ceil`函数表示向上取整,`input().strip()`表示去除输入字符串两端的空格,`split(',')`表示将输入字符串按照逗号分隔成列表。
需要注意的是,本题中玻璃球的数量可能很大,因此计算拿取次数时应该使用整数除法并向上取整,而不是直接进行除法运算。
9、编程实现:
某比赛有N(2≤N≤50)名选手参加,给定每名参赛选手的编号(1到N)和比赛得分(0≤得分≤100),请按照分数从高到低的顺序排序,如果分数相同就按照编号排序,编号小的排前边。
输入描述:
第一行输入一个正整数N(2≤N≤50),表示参赛人数
第二行开始,共输入N行,每行两个正整数,分别表示参赛选手的编号和比赛得分(0≤得分≤100),正整数之间以一个空格隔开
输出描述:
按照排序规则,输出N行,每行两个正整数,分别表示编号和得分,正整数之间以一个空格隔开
样例输入:
3 3 84 1 87 2 84
样例输出:
1 87 2 84 3 84
参考答案:br />```pythonN = int(input())scores = []for i in range(N):num, score = map(int, input().split())scores.append((num, score))scores.sort(key=lambda x: (-x[1], x[0]))for num, score in scores:print(f"num score")```
解析:【喵呜刷题小喵解析】
该题要求实现的功能是,根据给定的N名选手的编号和得分,按照分数从高到低排序,如果分数相同则按照编号排序。
首先,我们需要读取输入的选手编号和得分,并将它们存储在一个列表中。这里,我们使用元组来表示每个选手的编号和得分,即`(num, score)`。
然后,我们使用Python的内置函数`sort()`对列表进行排序。在`sort()`函数中,我们传入一个`key`参数,指定排序的规则。这里,我们使用一个lambda函数作为`key`参数,它接受一个元组,返回两个值:`-x[1]`和`x[0]`。其中,`-x[1]`表示按照分数从高到低排序,`x[0]`表示如果分数相同则按照编号排序。
最后,我们遍历排序后的列表,输出每个选手的编号和得分。这里,我们使用Python的`print()`函数,将每个选手的编号和得分以空格分隔输出。
需要注意的是,在读取输入时,我们使用`map()`函数将输入的字符串转换为整数类型,以便后续的计算。
10、编程实现:
一条笔直的公路沿途有N(2≤N≤100)个充电站,包含起点和终点各一个。小明驾驶电动汽车要从公路的起点到达终点。
已知电动汽车充满电后可行驶的里程数D(10≤D≤10000),及N个充电站每相邻的两个充电站之间的距离,并且小明在起点第一次给电动汽车充满电。请帮助小明计算出最少充电几次才能从起点到达终点(需包含起点的第一次充电)。
注意:
1)到达终点后不需要再充电;
2)每次充电都要充满。
例如:D = 10,N = 7,7个充电站之间的距离依次为1,3,6,8,1,4,最少需要充电3次。
第一次充电在起点(第1个充电站);
第二次充电在第4个充电站(此时行驶里程为10,刚好电量耗尽);
第三次充电在第6个充电站(此时在第二次充满电后行驶了9,剩余电量只能行驶1,距离下一充电站的距离为4,所以必须在此充电站充电)。
输入描述:
第一行输入两个正整数D(10≤D≤10000)和N(2≤N≤100),分别表示电动汽车充满电后可行驶的里程数和公路沿途充电站的个数,正整数之间以一个空格隔开
第二行输入N-1个正整数(1≤正整数≤100000),依次表示相邻两个充电站之间的距离,正整数之间以一个空格隔开
输出描述:
输出一个整数,表示电动汽车从公路的起点到达终点最少充电的次数,如果不能到达终点输出-1(需包含起点的第一次充电)
样例输入:
10 7 1 3 6 8 1 4
样例输出:
3
参考答案:```pythonN, D = map(int, input().split())distances = list(map(int, input().split()))total_distance = 0charge_times = 1for i in range(N-1):total_distance += distances[i]if total_distance > D:charge_times += 1total_distance = distances[i]if total_distance < D:print(-1)else:print(charge_times)```
解析:【喵呜刷题小喵解析】:
首先,我们需要读取输入的两个整数D和N,以及N-1个整数,分别表示电动汽车充满电后可行驶的里程数、公路沿途充电站的个数和相邻两个充电站之间的距离。
然后,我们初始化总行驶距离total_distance为0,充电次数charge_times为1。
接着,我们遍历所有的充电站,累加相邻两个充电站之间的距离到total_distance中。如果total_distance超过了D,说明电动汽车已经不能行驶到下一个充电站了,需要充电。此时,我们将charge_times加1,并且将total_distance重置为下一个充电站的距离。
最后,我们检查电动汽车是否能行驶到终点。如果不能,我们输出-1,否则输出charge_times。
样例输入中,D=10,N=7,充电站之间的距离依次为1,3,6,8,1,4。电动汽车充满电后可行驶的里程数为10,总行驶距离为1+3+6+8+1+4=23,超过了10,所以需要在第4个充电站和第6个充电站之间充电。因此,最少需要充电3次。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!