📝 【APCS 程式識讀題課程教材】CH4 串列應用
請先填寫您的資料
進度:1 / 10
總分:100 分
題目 1:題目 1 / 10
單選題 - 10分請問執行以下程式,arr 串列的輸出結果何者正確?
arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in range(0, 10, 2):
arr[i] = arr[9-i]
for i in range(9, -1, -1):
print(arr[i], end=' ')
9 8 7 6 5 5 6 7 8 9
0 1 2 3 4 4 3 2 1 0
9 1 7 3 5 5 3 7 1 9
0 8 4 2 0 9 1 7 3 5
題目 2:題目 2 / 10
單選題 - 10分decrypy() 是一個字串解密的程式,能夠輸入一個加密字串後,回傳解密的結果
若現在呼叫函式 decrypy("babababa"),請問為解密後正確的字串?
def decrypy(msg):
half = len(msg)//2
front = msg[:half]
back = msg[half:]
result = []
for i in range(half):
result.append(front[i])
result.append(back[i])
if len(front) > len(back):
result.append(front[-1])
print("".join(result))
bbbbaaaa
abababab
abbaabba
bbaabbaa
題目 3:題目 3 / 10
單選題 - 10分請問下列的程式執行後,缺少的程式部分應該要填入什麼程式碼,才會讓輸出為 9 9 8 7 6 5 4 3 2 1
num = [1, 3, 5, 7, 9, 8, 6, 4, 2]
n=9
for i in range(0, n):
t = num[i]
num[i] = num[n-i-1]
num[n-i-1] = t
for i in range(n//2, -1, -1):
print(_____, _____, end=' ')
num[i], num[n-i-1]
num[i], num[i+1]
num[n-i-1], num[i]
num[i], num[i-1]
題目 4:題目 4 / 10
單選題 - 10分下列是一個找出數列中的指定元素a[i],前一項a和後一項都比a[i]小的程式
請找出「錯誤描述」的選項。
a = [1, 3, 6, 4, 2, 7, 9, 0, 4, 5]
for i in range(1, 9):
if a[i-1]<a[i] and a[i]>a[i+1]:
print(a[i], end=' ')
條件式應該修改為「if a[i-1]<=a[i] or a[i+1]>=a[i]:」
輸出的結果為 6 9
這個程式能夠找出 a 串列中的區域最大值
迴圈一共執行8次
題目 5:題目 5 / 10
單選題 - 10分執行下列程式後,串列 C 的內容會是哪些?
A = [0, 0, 0, 0, 0]
B = [0, 0, 0, 0, 0]
C = [0, 1, 1, 1, 0]
for i in range(5):
A[i] = 2+i*4
B[i] = i*5
for i in range(5):
if B[i]>A[i]:
C[i] = C[i]+(B[i]%A[i])
else:
C[i] = C[i]-1
-1 0 0 2 2
1 1 1 2 2
0 1 1 2 0
0 1 1 3 3
題目 6:題目 6 / 10
單選題 - 10分下列程式碼為兩個串列與迴圈的計算應用,請問執行程式後的輸出結果為何?
s1 = ['a', 'b', 'c']
s2 = ['1', '2', '3', '4', '5']
for i in range(3):
print(s1[i], end='')
for j in range(i, -1, -1):
print(s2[(j+i)%3], end='')
print()
a1
b21
c321
c1
b12
a123
a1
b32
c213
a3
b21
c321
題目 7:題目 7 / 10
單選題 - 10分執行以下程式,請問 s3 串列的結果為何?
s1 = [[0, 1, 0], [1, 1, 1], [0, 1, 0]]
s2 = [[1, 0, 1], [0, 1, 0], [1, 0, 1]]
s3 = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
for i in range(3):
for j in range(3):
if (s1[i][j] or s2[i][j]) and i!=j :
s3[i][j] = s1[i][j]+s2[i][j]
else:
s3[i][j] = -1
1 1 1
1 1 1
1 1 1
1 1 1
1 -1 1
1 1 1
1 1 -1
1 -1 1
-1 1 1
-1 1 1
1 -1 1
1 1 -1
題目 8:題目 8 / 10
單選題 - 10分reverse 函式能夠將字串反轉,請問 for 迴圈缺少的程式碼應該要填入哪個條件才會正確?
註:a串列的反轉後結果應為 ['f', 'e', 'd', 'c', 'b', 'a']
def reverse(arr, n):
for i in range(_________):
temp = a[i]
a[i] = a[n-1-i]
a[n-1-i] = temp
return arr
a = ['a', 'b', 'c', 'd', 'e', 'f']
result = reverse(a, 6)
print(result)
n+1
n//2
n//2+1
n//2-1
題目 9:題目 9 / 10
單選題 - 10分以下一個特殊的文字重組程式,請問當執行程式後,會輸出什麼字串?
a = [3, 8, 6, 2, 8, 7]
c = ['s', 'g', 't', 'o', 'a',
'p', 'r', 'e', 'y', 'n']
for i in range(6):
if i%2==0:
print(c[a[i]-3], end='')
else:
print(c[a[i]+1], end='')
orange
gotogo
snoopy
python
題目 10:題目 10 / 10
單選題 - 10分下列程式會根據字串 s 中的字元與其在字串中的位置,進行運算轉換,產生一段加密過的內容 請問,當 encrypt("secret") 執行後,輸出結果為何?
def encrypt(s):
chars = list(s)
result = []
for i in range(len(chars)):
ch = chars[i]
code = ord(ch)
if i%2==0:
code = code + i
else:
code = code - i
result.append(chr(code))
print("".join(result))
rdfnkp
sdeoio
sdfqio
tcdpln
🎉 測驗完成!
--
計算中...