1.(多選題,分值 2)以下能實現 1-100 偶數求和的有?(ABD)

A

sum=0
for i in range(2,101,2): 
    sum+=i
B

sum=0
i=1
while i<=100:
    if i%2==0: 
        sum +=i
        i+=1
Csum(range(1,101,2))
Dsum(i for i in range(1,101) if i%2==0)
解析:

A:range(2,101,2)直接生成 2-100 的偶數,累加正確。  

B:while循環中,若i為偶數則累加,每次循環i遞增1,邏輯正確。 

C:range(1,101,2)生成奇數,求和結果為奇數和,錯誤。 

D:生成器表達式篩選偶數後求和,正確。

2.(單選題,分值 1.5)print("Py"+"thon"[1:3])的輸出是?(D)

A "Pyth"

B "Python"

C "Pyt"

D "Pyho"
解析:
thon對應的索引分別是0123,[1:3]表示從1開始到3結束(不包括3),所以最後是ho,再加上前面的Py,最後答案為Pyho,選D

3.(單選題分值1.5)列表a=[5,2,8,1],執行a.sort(reverse=True)後,a的值是?(B)

A [1,2,5,8]

B [8,5,2,1]

C [5,2,8,1]

D [1,8,2,5]
解析:
a.sort(reverse=True)對列表原地降序排序,[5,2,8,1]降序後為[8,5,2,1]。
4.(判斷題,分值 1)函數內部定義的局部變量,在函數調用結束後就會被銷燬。(✔)
解析: 
函數內局部變量僅在函數調用時存在,調用結束後被銷燬。
5.(單選題,分值 1.5)以下代碼的輸出結果是?(C)

def recursive(n):
   if n==0:
      return 1
  return n * recursive(n -1)//2
print(recursive(5))
A 120
B 60
C 0
D 報錯
解析:
若假設代碼縮進正確(return n * recursive(n -1)//2與if語句對齊),計算過程為:
recursive(5) = 5 * recursive(4) // 2
recursive(4) = 4 * recursive(3) // 2
recursive(3) = 3 * recursive(2) // 2
recursive(2) = 2 * recursive(1) // 2
recursive(1) = 1 * recursive(0) // 2 = 1 * 1 // 2 = 0
逐步回溯可得結果為0,因此正確答案為 C。
6.(多選題,分值 2)以下哪些代碼可以正確地創建一個包含 1 到 5 的列表?(ABD)
A list(range(1,6))
B [x for x in range(1,6)]
C list(12345)
D [int(x) for x in "12345"]
解析:

A:range(1,6)生成 1-5,轉為列表正確。 

B:列表推導式遍歷 1-5,正確。

C:list(12345)報錯(整數不可迭代),錯誤。  

D:將字符串 "12345"每個字符轉為整數,正確。

7.(多選題,分值 2)以下哪些代碼會產生異常?(ABCD)

A print([1,2,3][3])

B print(1/0)

C print(int('abc',11))

D print(len(None))
解析:

A:1,2,3訪問索引 3(列表最大索引為 2),觸發IndexError,產生異常。 

B:1/0除數為0,觸發ZeroDivisionError,產生異常。 

C:int('abc', 11)中,11 進制的有效字符範圍是 0-10(對應 'a'),而'b'在 11 進制中代表 11,超出基數範圍(基數為 11 時,最大數字為 10),實際會觸發ValueError: invalid literal for int() with base 11: 'abc',產生異常。

D:len(None)中,None不是可迭代對象,無len方法,觸發TypeError,產生異常。

8.(單選題,分值 1.5)以下代碼的輸出結果是什麼?(A)

list1 = [1,2,3]
list2 = [4,5,6]
print([x * y for x in list1 for y in list2])
A [4,5,6,8,10,12,12,15,18]

B [[4,5,6],[8,10,12],[12,15,18]]

C [4,8,12,5,10,15,6,12,18]

D [1,2,3,4,5,6]
解析:
列表推導式 [x * y for x in list1 for y in list2] 邏輯是:
遍歷 list1 中每個 x ,再遍歷 list2 中每個 y ,計算 x * y 。
list1 = [1,2,3],list2 = [4,5,6] 。
當 x=1 時,y 取 4、5、6 → 14=4,15=5,16=6 。
當 x=2 時,y 取 4、5、6 → 24=8,25=10,26=12 。
當 x=3 時,y 取 4、5、6 → 34=12,35=15,3*6=18 。
結果列表為 [4,5,6,8,10,12,12,15,18] ,對應選項 A 。

9.(單選題,分值 1.5)以下代碼的輸出結果是什麼?(B)

def func(n):
   if n <= 1:
       return n
   return func(n-1)+func(n-2)
print(func(4))
A 2

B 3

C 4

D 5
解析:
func(n)計算斐波那契數列第 n 項
func(4) = func(3) + func(2) = (func(2)+func(1)) + (func(1)+func(0)) = (1+1)+(1+0) = 3。

10.(單選題,分值 1.5)以下代碼的輸出結果是什麼?  ( C )

x = 10
def foo():
   global x
   x +=5
   return x
def bar():
   x = 5
   return foo()
print(bar())
A 5

B 10

C 15

D 報錯
解析:
foo()中用global聲明x為全局變量,調用foo()時x從 10 變為 15;bar()中局部變量x=5不影響全局,最終輸出 15。

11.(判斷題,分值 1)if x:中的x可以是任意 Python 對象。(✔)
解析:
Python 中任何對象都可作為if條件,非零 / 非空對象為True,否則為False。

12(判斷題,分值 1)a = [1,2]和b = [1,2]使a和b指向同一對象。(✖)
解析:
a = [1,2]和b = [1,2]創建兩個獨立列表對象,a is b結果為False。

13.(判斷題,分值 1)列表的remove()方法通過索引刪除元素。(✖)
解析:
remove()通過值刪除第一個匹配元素,pop()通過索引刪除。
14.(多選題,分值 2)關於列表切片a = [1,2,3,4,5],正確的有?(ABCD)

A a[1:3] → [2,3]

B a[ : 3]→[1,2,3]

C  a[-1] → 5

D  a[::2] → [1,3,5]
解析:

A:a[1:3]取索引 1-2,結果[2,3]。 

B:a[:3]取開頭到索引 2,結果[1,2,3]。 

C:a[-1]取最後一個元素 5。

D:a[::2]步長為 2,取[1,3,5]。

15.(多選題,分值 2)if-elif-else結構的特點有?(ABD)

A 可以有多個elif

B else必須放在最後

C 所有分支都會被執行

D 只能有一個分支被執行
解析:

A:可包含多個elif分支。 

B:else必須在最後(可選)。 

C:僅第一個滿足條件的分支執行,錯誤。 

D:分支互斥,僅一個執行。

16.(多選題,分值 2)以下輸入轉換正確的有?(ABC)

A int("12") → 12

B float("3.14") → 3.14

C str(100) → "100"

D list(123) → [1,2,3]
解析:
D:list(123)報錯(整數不可迭代),錯誤。

17.(多選題,分值 2)以下遞歸函數可能陷入無限遞歸的有?(AC)

A

 def f(n): 
     return n*f(n-1)
B

 def f(n): 
     if n ==0: 
         return 1
     return n*f(n-1)
C

 def f(n): 
     return f(n)

def f(n):
    if n>0: 
       return f(n-1)
解析:

A:無終止條件,遞歸調用f(n-1)會無限進行(直到棧溢出)。 

B:有n==0的終止條件,正確遞歸。

C:直接調用f(n),無終止,無限遞歸。

D:當n<=0時無返回,但不會無限遞歸(僅對n>0遞歸)。

18.(多選題,分值 2)以下能跳出循環的語句有?(AC)

A break

B continue

C return

D pass
解析:

A:break直接終止循環。 

B:continue跳過當前循環,進入下一次。 

C:return在函數中直接返回,終止循環。    

D:pass僅佔位,不影響循環。

19.(判斷題,分值 1)Python 中的列表切片操作list[1:]會返回索引為 1 和 3 的元素。(✖)
解析:
list[1:]返回從索引 1 到末尾的所有元素,而非僅索引 1 和 3。

20.(判斷題,分值 1)在 Python 中,函數內部定義的變量默認是全局變量。(✖)
解析:
函數內變量默認是局部變量,需用global聲明為全局變量。

21.(判斷題,分值 1)Python 中的列表可以包含不同類型的元素。(✔)
解析:
Python 列表可包含不同類型元素(如[1, "a", True])。

22.(判斷題,分值 1)在 Python 中,a is b和a == b的含義完全相同。(✖)
解析:
a is b判斷是否為同一對象(內存地址),a == b判斷值是否相等。

23.(判斷題,分值 1)Python 中的字符串是不可變類型,一旦創建就不能修改。(✔)
解析:
字符串創建後不能修改單個字符(如s[0] = 'a'報錯)。

24.(判斷題,分值 1)Python 中的變量不需要聲明類型,可以直接賦值使用。(✔)
解析:
Python 是動態類型語言,變量無需聲明類型,直接賦值即可。

25.(多選題,分值 2)在 Python 中,以下哪些方法可以用於獲取列表的元素?(ACD)

A list[index]

B list.get(index)

C list.pop(index)

D list[start:end]
解析:

A:list[index]通過索引訪問,正確。

B:列表無get()方法(字典有),錯誤。

C:pop(index)刪除並返回指定索引元素,正確。     

D:切片list[start:end]返回子列表,正確。

26.(多選題,分值 2)在 Python 中,以下哪些是列表的合法操作?(ABD)

A [1,2] + [3,4]

B [1,2] * 2

C  [1,2] - [1]

D [1,2,3][1:]
解析:

A:+用於列表拼接,正確。 

B:*用於重複列表,正確。 

C:列表不支持-操作,錯誤。 

D:切片操作合法,正確。

27.(多選題,分值 2)以下哪些是 Python 中的基本數據類型?(ABD)

A 整數(int)

B 浮點數(float)

C 數組(array)

D 字符串(str)
解析:

A:整數(int)是基本類型。 

B:浮點數(float)是基本類型。 

C:數組(array)需導入模塊,非基本類型。

D:字符串(str)是基本類型。

28.(多選題,分值 2)關於 Python 變量,以下説法正確的是?(ABCD)

A 變量無需聲明類型

B 變量存儲的是對象的引用

C 不可變對象無法修改

D 可變對象的修改會影響所有引用
解析:

A:變量無需聲明類型,正確。 

B:變量存儲對象引用,正確。 

C:不可變對象(如字符串)本身不可修改,正確。

D:可變對象(如列表)修改後,所有引用該對象的變量都會受影響,正確。

29.(單選題,分值 1.5)以下代碼的輸出結果是?(B)

def func(n):
    if n == 0:
       return []
    else:
         return func(n-1) + \[n]
print(func(3))
A [3,2,1]

B [1,2,3]

C [0,1,2,3]

D 拋出異常
解析:
func(3) = func(2) + [3],func(2) = func(1) + [2],func(1) = func(0) + [1],func(0) = [],最終結果[1,2,3]。

30.(多選題,分值 2)關於遞歸函數,以下説法正確的是?(ACD)

A 遞歸函數必須有終止條件

B 遞歸函數效率一定高於循環

C 遞歸過深可能導致棧溢出

D 所有遞歸函數都可以轉化為循環
解析:

A:遞歸必須有終止條件,否則無限遞歸,正確。 

B:遞歸效率通常低於循環(有棧開銷),錯誤。

C:遞歸過深會導致棧溢出(如RecursionError),正確。     

D:所有遞歸都可轉為循環,正確。