蓝桥等考Python组别
十七
级
第一部分:选择题
1、Python L
17
(15分)
运行下面程序,输出的结果是( )。
def func(x
, y
):
return
(x - y) // 2
print(func(
7, 5
))
2
1
6
12
正确答案:
B
2
、Python L
17
(
15
分)
运行下面程序,输出的结果是( )。
def func(x):
for i in range(2, x):
if x % i == 0:
print(i, end = ' ')
func(16)
2
2 4 8
1 2 4 8
2 4 8 16
正确答案:
B
3、Python L
17
(20分)
运行下面程序,输入
哪个
数时,输出的是
True?
( )
def palindrome(x):
if x[ : : -1] == x:
return True
return False
n = input()
print(palindrome(n))
12321
1212
12212
23312
正确答案:
A
第二部分:编程题
4
、Python L
1
7 特别的回文数
(
5
0分)
题目描述:
若将一个自然数的各位数字反向排列所得的数与原数相等,则称这个自然数为回文数。(例如1001,12321都是回文数)。
输入一个正整数x,判断x是否符合以下特点:
1.x是回文数;
2.x中任何数字重复出现的次数都不大于2。
如果x符合上述特点,输出“yes”,否则输出“no”。
例如:
12321是回文数,在这个数中,数字1和2分别出现2次,数字3出现1次,任何数字重复出现的次数都不大于2,符合上述特点;
12233221也是回文数,但数字2出现了4次,不符合上述特点。
输入:
一个正整数x(1<=x<=100000)。
输出:
一个字符串,如果x符合题目描述中的两个特点,输出“yes”,否则输出“no”。
输入样例1:
12321
输出样例1:
yes
输入样例2:
12233221
输出样例2:
no
参考程序
1
:
def palindrome(x): #判断x是不是回文字符串
if x[ : : -1] == x:
return True
return False
def check(x): #判断一个回文字符串,任何字符重复出现的次数是否不大于2
s = set(x)
if len(s) == (len(x) + 1) // 2:
return True
return False
n = input()
if palindrome(
n
) and check(
n
):
print('yes')
else:
print('no')
参考程序
2
:
def palindrome(x): #判断x是不是回文字符串
if x[ : : -1] == x:
return True
return False
def check(x): #判断一个回文字符串,任何字符重复出现的次数是否不大于2
dic={}
for i in x:
dic[i] = x.count(i)
for i in dic.values():
if i > 2:
return False
return True
n = input()
if palindrome(n) and check(n):
print('yes')
else:
print('no')
测试数据:
1.in
12321
1.out
yes
2.in
12233221
2.out
no
3.in
54677645
3.out
yes
4.in
2332
4.out
yes
5.in
12341234
5.out
no
蓝桥杯青少组Python组别17级编程练习真题(第2套,共8套)