十二届蓝桥杯Python组省赛试题

一、选择题
第一题
设s='Hello Lan Qiao',执行print(s[4:11])输出的结果为(D)。
*选择题严禁使用程序验证
A、lo Lan Qi    B、lo Lan Q    C、o Lan Qi    D、o Lan Q

第二题
循环语句for i in range(8,-4,-2):执行了几次循环(C)。
*选择题严禁使用程序验证
A、4    B、5    C、6    D、7

第三题
导入random模块后,执行print(random.randrange(10,100,2))语句,输出的结果可能是(B)。
*选择题严禁使用程序验证
A、1    B、24    C、63    D、100

第四题
执行以下程序,输出的结果是(A)。
*选择题严禁使用程序验证
height={'小蓝':80,'小青':100,'小圃':70}
height['小青']=70
print(sum(height.values()))
A、220    B、210    C、250    D、70

第五题
导入turtle 模块后,执行turtle.circle(80,steps=6)语句,所绘制的图形以下说法正确的是(D)。
*选择题严禁使用程序验证
A、绘制出一个半径为80像素的圆                          B、绘制出六个半径为80像素的圆
C、绘制出一个半径为80像素的圆和一个六边形    D、绘制出一个半径为80像素的圆内接正六边形

二、编程题
第一题(注:input()输入函数的括号中不允许添加任何信息)
编程实现:
给定一个正整数N,计算N除以7的商。
输入描述:输入一个正整数N
输出描述:输出N除以7的商(商为整数)
样例输入:8
样例输出:1

n=int(input())
print(n//7)

第二题(注:input()输入函数的括号中不允许添加任何信息)编程实现:
给定一个正整数N,计算出1到N之间所有奇数的和。
输入描述:输入一个正整数N
输出描述:输出1到N之间(包含1和N)所有奇数的和
样例输入:5
样例输出:9

n=int(input())
ans=0
for i in range(1,n+1,2):
    ans+=i
print(ans)

第三题(注:input()输入函数的括号中不允许添加任何信息)
提示信息:
“水仙花数”是指一个三位正整数,其各位数字立方的和等于该数本身。
例如:153是一个“水仙花数”,因为1'+5+3等于153。
编程实现:
给定一个正整数N,判断100到N之间有多少个“水仙花数”。
输入描述:输入一个正整数N(100 输出描述:输出100到N之间(包含100和N)有多少个“水仙花数”
样例输入:160
样例输出:1

n=int(input())
ans=0
for i in range(100,n+1):
    a,b,c=map(int,tuple(str(i)))
    if a**3+b**3+c**3==i:
        ans+=1
print(ans)

第四题(注:input()输入函数的括号中不允许添加任何信息)
编程实现:
有一组连续正整数,随机乱序后生成一组数据后,小蓝不小心删掉了其中一个数,已知所删掉的这个数不是这组数据中最小的也不是最大的,现在请你编写程序帮助小蓝找到删除的那个数。
输入描述:
按照“编程实现”中的描述模仿输入一组这样的正整数数(正整数之间以英文逗号隔开),在输入的时候少一个数(这个数不是这组数据中最小的也不是最大的),这个数作为小蓝删除掉的那个数,且加上小蓝删除的那个数这组数据是连续的
输出描述:输出删除掉的是哪个数
样例输入:3,2,4,6,7
样例输出:5

'''
n=input()
ls=n.split(',')
ls=sorted(ls)
'''
ls=sorted(map(int,input().split(',')))
j=0
for i in ls:
    if i!=j+ls[0]:
        print(j+ls[0])
        break
    j+=1
ls=sorted(map(int,input().split(',')))
sum1=0
for i in range(ls[0],ls[-1]+1):
    sum1+=i
print(sum1-sum(ls))

第五题(注:input()输入函数的括号中不允许添加任何信息)
提示信息:
有一个密室逃脱游戏,有100间密室连在一排。密室编号是从1开始连续排列一直排到第100间密室,如下图:
|1|2|3|4|5|6|…|..99|100|
游戏规则:
1.玩家初始位置在1号密室;
2.每次玩家可以进入右边的一个密室,也可以跳过一个密室进入下个密室(如:当玩家当前在3号密室,他可以进入4号密室也可以进入5号密室);
3.有毒气的密室不能进入需要避开。
编程实现:
给定三个正整数X,Y,M(X 例如:X=2,Y=4,M=7,进入M号密室有2种路线方案,分别是1->3->5->6->7路线和1->3->5->7路线。
输入描述:
输入三个正整数X,Y,M(X 输出描述:
输出进入M号密室有多少种路线方案
样例输入:
2,4,7
样例输出:
2

def fibo(x,y,z):
    if z<=0 or z==x or z==y:
        return 0;
    elif z==1:
        return 1;
    else:
        return fibo(x,y,z-1)+fibo(x,y,z-2)

a,b,c=map(int,input().split(','))
print(fibo(a,b,c))
def fibo(x,y,z):
   a=0
   b=1
   for i in range(1,z):
      if i==x or i==y:
         a,b=0,a+0
      else:
         a,b=b,a+b
   return b

a,b,c=map(int,input().split(','))
print(fibo(a,b,c))

第六题(注:inputO输入函数的括号中不允许添加任何信息)编程实现:
有一个NN的矩阵方格和N个棋了,现在需要将N个棋了按要求放置到知阵方格中。
要求如下:
1.任意两个棋了不能在同一行
2.任意两个棋子不能在同一列
3.任意两个棋子不能在同一对角线上(下图红色线段都为对角线)十二届蓝桥杯Python组省赛试题_第1张图片
根据以上要求,问N个棋子放置到N*N矩阵方格中有多少种放置方案
例如:4*4的矩阵方格,4个棋子,有2种放置方案十二届蓝桥杯Python组省赛试题_第2张图片
输入描述:
输入一个正整数N(1 输出描述:
输出N个棋子按要求放置到N*N的矩阵方格中有多少种放置方案
样例输入:4
样例输出:2

def rule(col,row):  # col列表; row当前行
    for i in range(row):
        if col[i]==col[row]:  #在同一行
            return False
        elif abs(col[i]-col[row])==row-i: #在左右斜线
            return False 
    return True
# col列表,索引代表行,数据代表列; row当前行;n总行数
def dfs(col,row,n): 
    global ans
    if row==n:
        ans+=1
        #print(col)
        return
    for i in range(n):
        col[row]=i
        if rule(col,row):
            dfs(col,row+1,n)
ans=0
n=int(input())
dfs([-1]*n,0,n)
print(ans)

你可能感兴趣的:(Python,Class,python)