2023年5月电子学会Python四级考试真题(含答案和解析)
分数:100 题数:38
一、单选题(共25题,共50分)
1. 下列程序段的运行结果是?( A )
def s(n):
if n==0:
return 1
else:
return n +s(n-1)
print(s(7))
A. 29
B. 27
C. 1
D. 0
答案解析:递归公式。
2. 当n为6时,运行下列Python程序后的结果是?( B )
def f(n):
if n<=2:
return 1
else:
return f(n-1)+f(n-2)
n=int(input("请输入一个正整数:"))
print(f(n))
A. 5
B. 8
C. 11
D. 13
答案解析:每一项为前两项之和。
3. 有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。问第n年的时候,共有多少头母牛?由递推法可推测,当年数小于等于4的时候,第几年就是有几头牛,即a[1]=1;a[2]=2;a[3]=3;a[4]=4。当n大于4的时候,这时候第一年出生的那个小母牛就也可以生出小母牛了,也就是该考虑小母牛是否可以生了,所以n>4的时候,a[n]=?( A )
A. a[n-1]+a[n-3]
B. a[n-1]+a[n-4]
C. a[1]+a[3]
D. a[-1]+a[-3]
答案解析:前四年共有四只,从第五年开始,第二年出生的小母牛也会生一只母牛(而且以后每年初都会生一只母牛),加上第一年那只母牛生的小母牛,共有六只母牛;第六年的时候得加上第三年那只母牛生的母牛,共九只母牛;依次类推。
4. 二分查找又称折半查找,下列数列中适合二分查找算法的是?( D )
A. 11 99 4 25 3 39
B. 43 71 78 81 6 55
C. 67 62 68 4 1 17
D. 85 78 59 53 19 18
答案解析:根据二分查找的实现原理,首先数列元素必须是有序的。
5. 在32枚崭新的金币中,有一枚外表与真金币完全相同的假币(质量小一点),现在只有一台天平,则应用二分法的思想最多称几次就可以发现这枚假币?( B )
A. 4
B. 5
C. 6
D. 7
答案解析:二分查找法,每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。
6. 已知在某程序中,有一个全局变量名为a。在程序中的某个函数中,再次定义了一个变量a,且该变量非组合类型变量。
下面哪个说法是对的?( B )
A. 如果在该函数中将a声明为global,则对a的操作与全局变量a无关。
B. 如果在该函数中未将a声明为global,则对a的操作与全局变量a无关。
C. 如果在该函数中未将a声明为global,则对a的操作即为对全局变量a的操作。
D. 不管在该函数中是否将a声明为global,对a的操作都是对全局变量a的操作。
答案解析:未声明为global,就是局部变量,因此与全局变量a无关。
7. 对于程序中的列表来说,哪个选项中的参数填写在range()中的横线上,算法执行效率最高?( C )
a=[1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,1]
for i in range _____:
if a[i]==1:
print(i)
A. (0,16,1)
B. (0,16,2)
C. (0,16,3)
D. (0,16,4)
答案解析:数据变化的步长为3。