循环结构
循环结构
了解程序的循环结构。
知识点出处:详述(7);知识块5|CCF 编程能力等级认证 C++&Python 认证标准(CCF编程能力等级认证标准_C++ & Python_一至八级)(https://gesp.ccf.org.cn/101/1008/10012.html)
本知识点的讲解文案待补(Track D3)。以下为该知识点下的历年真题。
下面Python代码执行后输出是( )。
tnt = 0
for i in range(-1000, 1000):
tnt += i
print(tnt)
下面Python代码执行后输出的是( )。
for i in range(1, 100, 5):
continue
print(i)
下面Python代码执行后输出的是( )。
tnt = 0
for i in range(5, 100, 5):
if i % 2 == 0:
continue
tnt += 1
if i % 3 == 0 and i % 7 == 1:
break
print(tnt)
删除下面Python代码中的continue不影响程序的执行效果。( )
for i in range(100):
if i % 2 == 0:
print("偶数")
continue
else:
print("奇数")
下面Python代码被执行后,将先后输出3和5。( )
for i in range(3, 5, 2):
print(i)
下面Python代码执行后输出是( )。
for i in range(1,11,3):
continue
if i % 2 == 0:
break
print(i,end="#")
else:
print("END")
下面的Python代码用于求N的所有因数,如输入12则将输出 12,6,4,3,2,1,。( )。
N = int(input())
i = N
while ______________:
if N % i == 0:
print(i, end = ",")
i -= 1
print(1)
下面Python代码执行后输出的是( )。
Sum = 0
for i in range(10):
if i % 2 == 0:
continue
if i % 5 == 0:
break
Sum += i
print(Sum)
在下面Python代码中,删除 break 语句对程序执行结果没有影响。( )
for i in range(10):
continue
print(i, end = "#")
break
else:
print("END")
删除下面Python代码中的 continue 后其输出是 0#2#4#6#8# 。( )
for i in range(10):
if i % 2 == 0:
print(i, end = "#")
continue
else:
print("END")
将下面Python代码中的 range(100) 修改为 range(1, 100),其输出与当前代码输出相同。( )
cnt = 0
for i in range(100):
cnt += 1
print(cnt)
交换下面Python代码中的 i += 2 和 cnt += 1,其输出相同。( )
cnt = 0
i = 0
while i < 10:
i += 2
cnt += 1
print(cnt)
下面的Python代码执行后将输出45。( )
i = 0
for i in range(10):
cnt += i
print(cnt)
值日
Python时间 1 s内存 512 MB标准输入输出
小杨和小红是值日生,负责打扫教室。小杨每 m 天值日一次,小红每 n 天值日一次。今天他们两个一起值日,请问至少多少天后,他们会再次同一天值日?
输入格式
第一行,一个正整数 m,表示小杨的值日周期;
第二行,一个正整数 n,表示小红的值日周期。
输出格式
一行,一个整数,表示至少多少天后他们会再次同一天值日。
样例
4 6
12
样例 1:m=4、n=6,最小公倍数为 12。
数据范围
对于所有测试点,保证 1≤m,n≤100。
你的代码(Python)
提交后由评测机编译运行,结果见下方58 B / 64 KB
判题结果
小杨这学期刚开学就选修了一门编程课,然后就想编写程序来计算1到10001之间的所有偶数的和。他希望程序采用简单累加整数的方法,同时希望源程序尽可能清晰、简洁,则下面关于实现累加时采用的主要控制结构的哪个说法最不合适( )。
下面Python代码执行后的输出是( )。
n = 0
for i in range(100):
n += i % 2
print(n)
下面Python代码执行后的输出是( )。
N = 0
for i in range(-100,100):
N += i % 10
print(N)
下面Python代码执行后输出是( )。
for i in range(1, 5):
if i % 3 == 0:
break
print(i,end="#")
else:
print("END")
下面的Python代码用于求N的镜面数(N的个位到最高位的各位数字依次反过来出现在数字中,但高位0将被忽略,不输出),如输入 1234,则将输出 4321,又如输入 120,则将输出 21,错误的选项是( )。
N = int(input("请输入个位数不为0的正整数:"))
rst = 0 #保存逆序结果
while ______________:
rst = rst * 10 + N % 10
N = N // 10
print(rst)
下面Python代码执行后将输出 9 。( )
for i in range(10):
break
print(i)
下面Python代码执行后将输出 55 。( )
n = 0
for i in range(-10):
n = n + i * -1
print(n)
将下面Python代码中的 range(100) 修改为 range(1, 100),其输出与当前代码输出相同。( )
cnt = 0
for i in range(100):
cnt += i
print(cnt)
将下面Python代码中的 i < 10 修改为 i <= 10,其执行后输出相同。( )
n, i = 0, 0
while i < 10:
n += i
i += 1
print(n)
下面的Python代码执行后将输出 45 。( )
n, i = 0, 0
while i < 10:
i += 1
n += i
print(n)
金字塔
Python时间 1 s内存 512 MB标准输入输出
金字塔由 n 层石块垒成。从塔底向上,每层依次需要 n×n、(n−1)×(n−1)、…、2×2、1×1 块石块。请问搭建金字塔总共需要多少块石块?
输入格式
一行,一个正整数 n,表示金字塔的层数。
输出格式
一行,一个正整数,表示搭建金字塔所需的石块数量。
样例
2
5
5
55
数据范围
对于所有测试点,保证 1≤n≤50。
你的代码(Python)
提交后由评测机编译运行,结果见下方58 B / 64 KB
判题结果
下面Python代码执行后的输出是( )。
tnt = 0
for i in range(100):
tnt += 1
print(tnt, i)
有关下面Python代码的说法,错误的是( )。
tnt = 0
for i in range(1, 10, 2):
tnt += i
print(tnt)
下面Python代码执行后输出是( )。
for i in range(10, 100, 10):
if i % 10 == 0:
continue
print(i, end = "#")
下面Python代码执行后将输出 1 。 ( )
for i in range(10):
if i % 3 == 0:
continue
else:
break
print(i)
下面Python代码中的 range(-10) 改为 range(10) 执行结果相同。( )
tnt = 0
for i in range(-10):
if i < 0:
i = -i
tnt += i
print(tnt)
下面Python代码执行后将输出 99 ,因为 range(100) 不包括 100,而是到 99。( )
cnt = 0
for i in range(100):
cnt += 1
print(cnt)
下面的Python代码能用于判断输入的正整数是否为对称数。所谓对称数是指从左到右或从右到左读该数,其值相同,如 121 或 414 等是对称数,而 123 不是对称数。( )
n = int(input("请输入正整数:"))
new_number = 0
while n != 0:
new_number = new_number * 10 + n % 10
n //= 10
if n == new_number:
print("对称数")
else:
print("非对称数")
下面的Python代码执行后将输出 -100 。( )
tnt = 0
for i in range(-100,100):
tnt += i
print(tnt)
下面Python代码执行后,其输出是 -50 。( )
tnt = 0
flag = 1
for i in range(1,100 + 1):
tnt += i * flag
flag = -flag
print(tnt)
下面Python代码执行后的输出是( )。
tnt = 1
for i in range(5):
tnt *= i
print(tnt, i)
下面的Python代码用于求正整数各位数之和(即数位和),约定高位不为0,如123则各位数之和为 1+2+3 结果为6。为实现该目标,横线处应该填写的代码是( )。
N = int(input())
tnt = 0
while N != 0:
____________
____________
print("各位数数之和为:", tnt)
原文保真说明:原卷印刷错误 1 处(照原卷保留,未作修改)
原卷印刷如此错字题干 · 第 7 行
原卷作
各位数数之和为:,常规写法应为各位数之和为:原卷参考程序第 7 行字符串印作「各位数数之和为:」,比题干「各位数之和」多一个「数」(文本层与第 3 页 600 dpi 裁图 crops/p03-q11-3.png、列位重建一致),照原卷转写。
下面Python代码执行后将输出0。 ( )
for i in range(1, 10):
if i % 3 == 0:
break
print(i)
下面的Python代码能实现判断输入的正整数是否为对称数。所谓对称数是指从左到右和从右到左读该数,其值相同,如121或414等是对称数,而123不是对称数。( )
n = int(input("请输入正整数:"))
old_number = n
new_number = 0
while n != 0:
new_number = new_number * 10 + n % 10
n //= 10
if old_number == new_number:
print("对称数")
else:
print("非对称数")
执行下面的 Python 代码,如果输入为大于 0 的整数,则输出一定为 −N。( )
N = int(input())
total = 0
for i in range(-N,N,2):
total += i
print(total)
数字替换
Python时间 1 s内存 512 MB标准输入输出
Alice 不喜欢数字 4,但觉得数字 8 寓意好,她想把数中的 4 全都替换成 8,若数中不含 4 则无需修改,你能帮帮她吗?
输入格式
输入一行,包含一个整数 A,表示替换前的数。
输出格式
输出一行,包含一个整数 B,表示替换后的数。
样例
8459045
8859085
对于样例1,输入 8459045 中有两个 4,都将其替换为了 8,得到 8859085。
123
123
对于样例2,输入 123 中不包含 4,无需修改输入数字,输出 123。
数据范围
0≤A≤108。
你的代码(Python)
提交后由评测机编译运行,结果见下方58 B / 64 KB