一、单选题
1、执行以下代码,输出的结果是 ( ) 。
lst = "abc"
print(lst+lst)
A abcabc
B abc
C lst+lst
D abc+abc
2、导入random标准库,执行print(random.randrange(2,20,2)语句,可能输出的结果是 ( )
A 2
B 5
C 13
D 20
3、以下关于Python中复数描述,错误的是 ( )
A 复数可以看作二元有序浮点数(x,y)
B 实部和虚部都是浮点数
C 虚数部分的后缀可以是“j”也可以是 “J”
D 已知复数a,可以使用real获得虚数部分
4、下列选项哪一个是转为整数的函数? ( )
A str()
B int()
C float()
D list()
5、执行以下代码,输出的结果是 ( ) 。
age={16,18,7}
print(type(sorted(age)))
A <class ‘set’>
B <class ‘int’>
C <class ‘str’>
D <class ‘list’>
二、实操题
6、题目描述:(注.input()输入函数的括号中不允许添加任何信息)
编程实现:
给定一个正整数N,计算出N+N的值。
例如:N = 4,4+4的值为8(8=4+4)。
输入描述
输入一个正整数N
输出描述
输出N+N的值
样例输入
3
样例输出
6
参考答案:```pythonN = int(input())result = N + Nprint(result)```
7、题目描述:(注.input()输入函数的括号中不允许添加任何信息)
编程实现:
给定一个只包含小写字母的字符串S(S长度≥3),请输出字符串S的第一个字符和最后一个字符。
例如:
当S =“abc”,abc的第一个字符为a,最后一个字符为c,故输出ac。
输入描述
输入一个只包含小写字母的字符串S(S长度≥3)
输出描述
输出字符串S的第一个字符和最后一个字符,两个字符之间没有空格及其他字符
样例输入
abc
样例输出
ac
参考答案:根据题目要求,我们需要输出字符串S的第一个字符和最后一个字符,两个字符之间没有空格及其他字符。
8、题目描述:(注.input()输入函数的括号中不允许添加任何信息)
提示信息:
合数:合数指自然数中除了能被1和本身整除外,还能被其它正整数整除的数。
例如4,4除了能被1和4整除,还可以被2整除。
编程实现:
小明收藏了N(2≤N≤25)个数字币,每个数字币上都有一个面值(面值可以重复)。从数字币中任选K(2≤K≤N)个,有多种选法,请将每次选择的数字币上的面值累加,然后解决以下两个问题。
问题1:累加的和中有多少种不同的结果;
问题2:累加的和中有多少个不同的合数。
例如:N=5,K=3,5个数字币上的面值分别为2、1、4、5、3,任选3个数字币,有10种选法,将每种选法上的面值累加:
2+1+4=7、2+1+5=8、2+1+3=6、2+4+5=11、2+4+3=9、2+5+3=10、1+4+5=10、1+4+3=8、1+5+3=9、4+5+3=12。
其中累加的和中有7种不同的结果,分别是7、8、6、11、9、10、12,
累加的和中有5个不同的合数,分别是8、6、9、10、12。
输入描述
第一行输入一个正整数N(2≤N≤25),表示数字币的个数
第二行输入N个正整数(1≤正整数≤1000),表示数字币上的面值,正整数之间以一个英文逗号隔开
第三行输入一个正整数K(2≤K≤N),表示所要选取的数字币个数
输出描述
输出两个整数,分别表示累加的和中不同结果的个数以及累加的结果中不同合数的个数,两个整数之间以一个英文逗号隔开
样例输入
5 2,1,4,5,3 3
样例输出
7,5
参考答案:首先,我们需要读入数字币的个数N、数字币的面值以及要选取的数字币个数K。然后,使用回溯法生成所有可能的选取方式,并计算累加结果中不同结果的个数以及累加结果中不同合数的个数。
9、题目描述:(注.input()输入函数的括号中不允许添加任何信息)
提示信息:
杨辉三角就是一个用数排列起来的三角形(如下图),杨辉三角规则如下:
1)每行第一个数和最后一个数都为1,其它每个数等于它左上方和右上方的两数之和;
2)第n行有n个数。
注意:“列”指的是如图所标注的斜列。
编程实现:
小青对杨辉三角的特点和规律研究得很明白,现要考察你对杨辉三角的熟悉程度,首先告知你这是一个N行的杨辉三角,然后又告知了两个数值X和Y(X表示第几行,Y表示第几列),让你根据杨辉三角的特点和观察到的规律解决以下两个问题。
1)第X行第Y列对应的数是多少;
2)求出N行的杨辉三角中第Y列中所有数的和。
例如:N=5,5行的杨辉三角如下图:
X=5,Y=3,第5行第3列对应的数为6;第3列中所有数的和为10(10 = 6 + 3 + 1)。
输入描述
第一行输入一个正整数N(2≤N≤30),表示杨辉三角的行数
第二行输入两个正整数X和Y(1≤Y≤X≤N),分别表示第X行和第Y列,正整数之间以一个英文逗号隔开
输出描述
输出两个整数,分别表示N行的杨辉三角中第X行Y列对应的数,及第Y列上所有数的和,两个整数之间以一个英文逗号隔开
样例输入
5 5,3
样例输出
6,10
参考答案:输入N=5,X=5,Y=3输出6,10
10、题目描述:
(注.input()输入函数的括号中不允许添加任何信息)
编程实现:
工人砌了一面奇特的砖墙,该墙由N列砖组成(1≤N≤106),且每列砖的数量为Ki(1≤Ki≤104,相邻两列砖之间无缝隙),每块砖的长宽高都为1。
小蓝为了美化这面墙,需要在这面墙中找到一块面积最大的矩形用于涂鸦,那么请你帮助小蓝找出最大矩形,并输出其面积。
例如:N = 6,表示这面墙有6列,每列砖的数量依次为3、2、1、5、6、2,如下图:
图中虚线部分是一块面积最大的矩形,其面积为10。
输入描述
第一行输入一个正整数N(1≤N≤10^6),表示这面砖墙由几列砖组成
第二行输入N个正整数Ki(1≤Ki≤10^4),表示每列砖的数量,正整数之间以一个空格隔开
输出描述
输出一个正整数,表示最大矩形的面积
样例输入
6 3 2 1 5 6 2
样例输出
10
参考答案:```pythonN = int(input())K = list(map(int, input().split()))heights = [0] * 10001max_height = 0max_area = 0for i in range(N):for j in range(K[i], 0, -1):heights[j] = max(heights[j], heights[j-1] + 1)max_area = max(max_area, j * heights[j])max_height = max(max_height, heights[j])print(max_area)```
11、题目描述:
(注.input()输入函数的括号中不允许添加任何信息)
编程实现:
在一个神奇空间里有N个房间,房间从1到N编号,每个房间可能有一个或多个传送门,每个传送门都有一个编号,如果相同编号的传送门同时出现在多个房间中,表示这些房间可以互通。
给定两个房间的编号A和B,请找出从房间A到达房间B最少需要经过几个传送门。
例如:N=3,3个房间中传送门的编号分别为:
房间1:1、4、6;
房间2:2、3、4,8;
房间3:3、6、9。
其中房间1和房间2互通,共用4号传送门;房间1和房间3互通,共用6号传送门;房间2和房间3互通,共用3号传送门;当A=1,B=2,从房间1到达房间2,共有两种路线:
路线1:从房间1通过4号传送门进入房间2,共经过1个传送门;
路线2:从房间1通过6号传送门进入房间3,再从房间3通过3号传送门进入房间2,共经过2个传送门;故从房间1到达房间2最少需要经过1个传送门。
输入描述
第一行输入一个正整数N(2≤N≤20),表示房间数量
接下来输入N行,每行包含多个正整数(1≤正整数≤100),第2行到第N+1行依次表示1到N号房间内所有传送门的编号,正整数之间以一个英文逗号隔开
最后一行输入两个正整数A和B(1≤A≤N,1≤B≤N,且A≠B),表示两个房间的编号,正整数之间以一个英文逗号隔开
输出描述
输出一个整数,表示从房间A到达房间B最少需要经过几个传送门,如果房间A不能到达房间B,则输出-1
样例输入
3 1,4,6 2,3,4,8 3,6,9 1,2
样例输出
1
参考答案:```pythonN = int(input())rooms = [list(map(int, input().split(','))) for _ in range(N)]A, B = map(int, input().split(','))# 使用字典来记录每个房间能够到达的房间reachable = i: [] for i in range(1, N+1)# 深度优先搜索def dfs(room, path):for door in rooms[room-1]:if door not in path:path.append(door)if door == B:return len(path)for i in range(1, N+1):if door in rooms[i-1]:if i not in reachable[room]:reachable[room].append(i)if i not in reachable[door]:reachable[door].append(i)path.pop()min_steps = min(dfs(i, path) for i in reachable[room] if i != room)if min_steps != float('inf'):return min_steps + 1return float('inf')min_steps = dfs(A, [])if min_steps == float('inf'):print(-1)else:print(min_steps)```
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!