2024年粤港澳青少年信息学创新大赛Python小学组真题试卷
剩余时间 --:--:--
单选题 共 15 题
1.

小明安装软件的时候发现软件要求Windows环境,这个要求限制的是?

2.

关于Python语言说法正确的是?

3.

Python语言中,可以用0b开头表示后面的数字是一个二进制数,那么print(0b001100010 +0b001010011)输出的结果是?


4.

下列关于python变量的说法正确的是?

5.

Python 中,表达式 5>4>2 的取值是?

6.

下列Python代码输出内容是?

n= 7/4
print(int(n))
7.

下列Python代码的输出结果是?

a,n=100,50
n,a=a, n
a=a+n
print(n, a)
8.

下列Python赋值语句错误的是?

9.

对于字典 data ={'1':2,'3':4,'5':6},修改'3':4 键值对为'3':3 的正确操作是?

10.

创建一个包含所有个位和十位不相等的两位数的列表的语句是?

11.

想要求出只含正整数的列表L中第二大的数,应该在横线填入?

L=[3,5,1,4,7,6,9]
a,b=-1,-1
for x in L:
    if x > a:
        _____
    elif x> b:
        b=x
print(b)
12.

想要求出字符串S中所有的小写字母按顺序拼接的结果,应该在横线填入?

S="MyWorldforLower"
A =____
print(A)
13.

运行这个Python程序的输出是什么?

A = 139
cnt = 0
while A:
    A=A&(A>>1|A>>2)
    cnt += 1
print(cnt)
14.

怎样用Python算出方程 ax’+b=0(a > 0,b< 0)较大的近似解?

15.

想要输出列表L中所有恰好只出现了一次的数,应该依次在横线填入?

L=[2,5,3,4,2,5,5,1]
N = 1en(L)
for i in range(N):
    for j in range(N):
        if i == N-l and j == N-1:
            print(L[i])
        ifi== j:
            ______
        if L[i] == L[j]:
            _____
        if j == N-1:
            print(L[i])
判断题 共 10 题
1.

任何一个应用软件都必须先安装到本机后才能运行。

2.

Python表达式3^3的值是27

3.

执行Python代码 list(“12\n 3 4 \n 5".split())可以得到一个7项的列表。

4.

Python表达式 len(tuple(range(1,3))*3)的值是 6。

5.

Python表达式 A[::-1] == A[0::1]可以判断字符串A是否是回文串(从左往右和从右往左读相等的串)。

6.

Python可以用 print(A/B,A%B)计算出两个正整数A,B带余除法的商和余数。

7.

在ASCII编码中,负数值代表不可见和控制字符,正数值代表可见字符。

8.

两个不同的原码表示的数,可能有相同的补码表示。

9.

可以用 chr(ord(ch)-ord('z')+ord('z'))将存储了小写字母的变量 ch 转换成对应的大写字母

10.

(2 =='2')or boo1(0)的运算结果是True

问答题 共 2 题
1.

小明拿到了一个字符串s,仅由小写字母组成。现在他想知道这个字符串中有多少对(i,j),1 =<i<= j=<n 满足 s中第i到j个字符组成的子串是好字符串。

定义字符串t是好字符串,当且仅当t满足以下条件

1、t 的长度是奇数

2、t 中每个字母的出现次数不超过 3

3、t中任意两个相邻字母都不相同

注:子串是指字符串中取出一段连续的部分得到的字符串

输入格式

输入一个非空字符串 s,仅由小写字母组成。

输出格式

输出一个整数,表示s中有多少个子串是好字符串

样例

abcdbca

16

数据范围

s 长度是=< 1000 的正整数

本题时间限制为1秒,空间限制为 256MB。


2.

小明有 n袋糖果,排成一个圈,其中顺时针数第i袋糖果有非负整数 a; 个,3 ≤n≤10000,0 ≤ai ≤10000。第i袋糖果和第i+1袋糖果位置相邻(1 ≤i<n),第n 袋和第 1袋相邻。

之后,小明把每个比相邻两个位置糖果数量都更多的袋子画上了记号

然后,小明把每个画了记号的袋子的糖果取出一半(向下取整)吃掉,把袋子里剩余的糖果都倒进桶里。

最后,小明会把桶里的糖果平均地放回 n个袋子,多余的无法平分的部分也吃掉。

请你算出小明总共吃了多少个糖果,以及结束之后糖果最多的一袋有多少个糖果。

输入格式

输入第一行一个正整数 n 表示袋子数。

输入第二行几 个由空格隔开的正整数 a1,a2,...,an 依次表示每一袋糖果一开始的数量,

输出格式

输出一行两个整数,用空格隔开,依次表示小明总共吃的糖果数量和结束之后糖果最多的一袋的数量

样例

4

2 5 4 7

8 5

样例 1解释

有4袋,一开始糖果数是 2,5,4,7。被标记的袋子是第 2,4袋。

第2袋有5个,吃掉 2个,放桶里3个。

第4袋有 7个,吃掉3个,放桶里 4个。

桶里一共3+4=7个,放回每个袋子1个,多余3个吃掉。

总共吃掉2+3+3=8个,且最后每个袋子数量依次是3,1,5,1,最多的是5个。

数据范围

3 ≤n≤10000,0 ≤ai≤ 10000

本题时间限制为1秒,空间限制为 256MB.

C++ 编辑器
输入
输出