本文收录于专栏《Python等级认证CCF-GESP真题解析》,专栏总目录:点这里,订阅后可阅读专栏内所有文章。
一、单选题(每题 2 分,共 30 分)
第 1 题
小杨父母带他到某培训机构给他报名参加CCF组织的GESP认证考试的第1级,那他可以选择的认证语言有几种?( )
A. 1
B. 2
C. 3
D. 4
答案:C
第 2 题
下面流程图在yr输入2024时,可以判定yr代表闰年,并输出 2月是29天 ,则图中菱形框中应该填入( )。
A. (yr%400==0) || (yr%4==0)
B. (yr%400==0) || (yr%4==0 && yr%100!=0)
C. (yr%400==0) && (yr%4==0)
D. (yr%400==0) && (yr%4==0 && yr%100!=0)
答案:B
第 3 题
下列流程图的输出结果是?( )
A. 5
B. 10
C. 20
D. 30
答案:B
第 4 题
将十进制2024转化成八进制,可以使用下列哪个表达式?( )
A. bin(2024)
B. int(2024)
C. oct(2024)
D. hex(2024)
答案:C
第 5 题
执行下面Python代码后,输出的结果是?( )
a = {'name': 'Tom', 'age': 12}
b = {'name': 'Join', 'email': 'join@qq.com'}
b.update(a)
print(len(b))
A. 1
B. 2
C. 3
D. 4
答案:C
第 6 题
执行下面Python代码后,输出的结果不可能是哪一项?( )
a = dict(zip(range(8, 0, -2), range(0, 8, 2)))
print(a)
A. {0: 8, 4: 4, 6: 2, 2: 6}
B. {8: 0, 6: 2, 4: 4, 2: 6}
C. {4: 4, 6: 2, 8: 0, 2: 6}
D. {8: 0, 2: 6, 4: 4, 6: 2}
答案:A
第 7 题
执行下面Python代码后,输出的结果是?( )
t1 = ("python", "c++", "scratch")
t2 = tuple(i for i in t1[::-1])
print(t2)
A. (‘scratch’, ‘c++’, ‘python’)
B. (‘python’, ‘scratch’, ‘c++’)
C. (‘scratch’, ‘python’,‘c++’)
D. ( ‘c++’,‘python’,‘scratch’)
答案:A
第 8 题
执行下面Python代码后,输出的结果是?( )
t1 = (1, 2, 3, 4, 5, 6, 7)
t2 = ('a', 'b', 'c', 'd', 'e', 'f')
s = t1[2:] + t2[5:2:-1]
print(s)
A. (3, 4, 5, 6, 7, ‘c’, ‘d’, ‘e’)
B. (3, 4, 5, 6, 7, ‘f’, ‘e’, ‘d’, ‘c’)
C. (3, 4, 5, 6, ‘f’, ‘e’, ‘d’, ‘c’)
D. (3, 4, 5, 6, 7, ‘f’, ‘e’, ‘d’)
答案:D
第 9 题
执行下面Python代码后,输出的结果是?( )
a = [i % 10 for i in range(10, 20)]
b, c = [], []
while len(a) > 0:
s = a.pop()
if s % 2 == 0:
b.append(s)
else:
c.append(s)
print(b, c)
A. [9, 7, 5, 3, 1] [8, 6, 4, 2, 0]
B. [8, 6, 4, 2, 0] [9, 7, 5, 3, 1]
C. [0, 2, 4, 6, 8] [1, 3, 5, 7, 9]
D. [1, 3, 5, 7, 9] [0, 2, 4, 6, 8]
答案:B
第 10 题
执行下面Python代码后,输出的结果是?( )
a = ['o', 'r', 'a', 'n', 'g', 'e']
a.sort()
a.reverse()
print(a)
A. [‘a’, ‘e’, ‘g’, ‘n’, ‘o’, ‘r’]
B. [‘e’, ‘g’, ‘n’, ‘a’, ‘r’, ‘o’]
C. [‘r’, ‘o’, ‘n’, ‘g’, ‘e’, ‘a’]
D. [‘o’, ‘r’, ‘a’, ‘n’, ‘g’, ‘e’]
答案:C
第 11 题
下面可以正确输出 They’re planning a party for their friend’s birthday. 的Python语句是?( )
A. print(‘They’re planning a party for their friend’s birthday.")
B. print("They’re planning a party for their friend’s birthday.’)
C. print(‘They’re planning a party for their friend’s birthday.’)
D. print(‘They’re planning a party for their friend’s birthday.’)
答案:D
第 12 题
执行下面Python代码后,输出的结果是?( )
s = 'gesp.ccf.org.cn'
print(s.split('.', 1))
A. [‘gesp’, ‘ccf.org.cn’]
B. [‘gesp’, ‘ccf’, ‘org.cn’]
C. [‘gesp’, ‘ccf’, ‘org’, ‘cn’]
D. [‘gesp.ccf.org.cn’]
答案:A
第 13 题
执行下面Python代码后,输出的结果可能是?( )
str="Happy new year"
a = set(str)
print(a)
A. {‘H’, ‘p’, ‘w’, ‘e’, ‘y’, ‘a’, ‘r’, ‘p’, ‘n’}
B. {‘p’, ‘n’, ‘w’, ‘r’, ‘H’, ‘y’, ‘a’, ‘e’}
C. {‘r’, ‘y’, ‘w’, ‘n’, ‘e’, ‘a’, ‘p’, ‘H’, ’ '}
D. {‘r’, ‘p’, ‘e’, ‘a’, ‘H’, ‘w’, ‘n’, ‘a’, ‘y’}
答案:C
第 14 题
小杨在做数学题,题目要求找出从1到35中能被7整除的数字,即[7, 14, 21, 28, 35],以下哪个解析式可以完成这样的任务?( )
A. [i for i in range(36) if i % 7 == 0]
B. [i for i in range(1, 36) if i % 7 == 0]
C. [i for i in range(1, 35) if i % 7 == 0]
D. [i for i in range(1, 36) if i // 7 == 0]
答案:B
第 15 题
某小学男子篮球队招募新成员,要求加入球队的成员身高在135厘米以上(不含135厘米)。本次报名的人员有10人,她们的身高分别是125、127、136、134、137、138、126、135、140、145。完善以下代码,求出本次球队能够招募到新成员的人数?( )
a = [125, 127, 136, 134, 137, 138, 126, 135, 140, 145]
b = [i > 135 for i in a]
c = __________
print(c)
A. a.index(135)
B. sum(b)
C. len(b)
D. b.count(‘True’)
答案:B
二、判断题(每题 2 分,共 20 分)
第 16 题
GESP测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。( )
答案:正确
第 17 题
在Python中,print(list(“GESP”))将输出[‘G’, ‘E’, ‘S’, ‘P’]。( )
答案:正确
第 18 题
集合是一个无序的不重复元素序列,用{}作为界定符,如集合 {1, 2, {3: 4}, 5, 6} 。
答案:错误
第 19 题
集合支持索引操作,可以通过索引访问元素。
答案:错误
第 20 题
整数-6的16位补码可用十六进制表示为FFFA。
答案:正确
第 21 题
十六进制FB 转成八进制为363。
答案:错误
第 22 题
a,b为整数,如果表达式 a ^ b == 0 为True,那么说明a与b相等。
答案:正确
第 23 题
执行下面Python代码后,输出的结果是8。
a = 0b1010
b = 0o1100
c = a & b
print(c)
答案:错误
第 24 题
执行下面Python代码后,输出的结果不可能是89781。( )
import random
i = 1
s = ""
while i <= 5:
a = random.randint(0, 9)
if a % 3 == (i + 1) % 3:
s += str(a)
i += 1
print(s)
答案:正确
第 25 题
把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,计算结果又等于原数。(30 + 25) × (30 + 25) = 55 × 55 = 3025,这样的数叫“雷劈数”。可以使用枚举的方法求出所有符合这样条件的四位数。( )
答案:正确
三、编程题(每题 25 分,共 50 分)
第 26 题
试题名称:移位
时间限制:1.0 s
内存限制:512.0 MB
题面描述
小杨学习了加密技术移位,所有大写字母都向后按照一个固定数目进行偏移。偏移过程会将字母表视作首尾相接的环,例如,当偏移量是3的时候,大写字母 A 会替换成 D,大写字母 Z 会替换成 C,总体来看,大写字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ 会被替换成 DEFGHIJKLMNOPQRSTUVWXYZABC。
注:当偏移量是26的倍数时,每个大写字母经过偏移后会恰好回到原来的位置,即大写字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ 经过偏移后会保持不变。
输入格式
第一行包含一个正整数 n。
输出格式
输出在偏移量为 n 的情况下,大写字母表 ABCDEFGHIJKLMNOPQRSTUVWXYZ 移位替换后的结果。
样例1
3
DEFGHIJKLMNOPQRSTUVWXYZABC
样例解释
当偏移量是3的时候,大写字母 A 会替换成 D,大写字母 Z 会替换成 C,总体来看,大写字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ 会被替换成 DEFGHIJKLMNOPQRSTUVWXYZABC。
数据范围
对于全部数据,保证有 1 ≤ n ≤ 100。
参考程序
n = int(input())
s = ""
for i in range(0,26):
j = (i+n)%26
x = chr(ord('A')+j)
s+=x
print(s)
第 27 题
试题名称:寻找倍数
时间限制:1.0 s
内存限制:512.0 MB
题面描述
小杨有一个包含 个正整数的序列
A
=
[
a
1
,
a
2
,
.
.
.
,
a
n
]
A = [a_1, a_2,..., a_n]
A=[a1,a2,...,an],他想知道是否存在 i(i ≤ i ≤ n) 使得
a
i
a_i
ai 是序列 A 中所有数的倍数。
输入格式
第一行包含一个正整数 t,代表测试用例组数。
接下来是 t 组测试用例。
对于每组测试用例,一共两行。其中,第一行包含一个正整数 n;第二行包含 n 个正整数,代表序列 A。
输出格式
对于每组测试用例,如果存在 i(1 ≤ i ≤ n )满足对于所有 k(1 ≤ k ≤ n )
a
i
a_i
ai是
a
k
a_k
ak 的倍数,输出 Yes,否则输出 No。
样例1
2
3
1 2 4
5
1 2 3 4 5
Yes
No
样例解释
对于第一组数据,对于
a
3
=
4
a_3 = 4
a3=4,满足
a
3
a_3
a3 是
a
1
a_1
a1 和
a
2
a_2
a2 的倍数。
数据范围
对于全部数据,保证有
1
≤
t
≤
10
,
1
≤
n
≤
1
0
5
,
1
≤
a
i
≤
1
0
9
1 ≤ t ≤ 10, 1 ≤ n ≤ 10^5, 1 ≤ a_i ≤ 10^9
1≤t≤10,1≤n≤105,1≤ai≤109。
参考程序
import math
t = int(input())
for i in range(0,t):
n = int(input())
a = input().split()
b = []
x = 0
for i in a:
b.append(int(i))
x = max(x,int(i))
fl = 0
for i in b:
if x%i!=0:
fl=1
break
if fl==0:
print("Yes")
else:
print("No")