python期末複習(5.2)
阿新 • • 發佈:2022-05-12
第5章課後小測
1、
ls = [] def func(a, b): ls.append(b) return a*b s = func("hi", 2) print(s, ls)
輸出結果是hihi[2]
2、函式的定義中錯誤的是def vfunc(*a,b)
3、關於程式說法正確的是
ls = [] def func(a, b): ls.append(b) return a*b s = func("hi", 2) print(s, ls)
1)count是一個遞迴函式
2)函式的基例是N >9;
3) 呼叫count(6)時,count函式返回前被呼叫5次
4、
def my_function(s,*ks): print(ks[0]) my_function("a", "b", "c")
執行結果是“b”
5、
def test(): return 'abc', 100, [0, 1, 2] a, b, c = test() print(a)
輸出結果是'abc'
6、 關於函式呼叫,出錯的函式是f({1,2})
def f(s): return s+s
而f([1,2])、f('a')、f((1,2))
7、遞迴函式特點:函式內部包含對本函式的再次呼叫
8、關於遞迴函式說法錯誤的是:每個函式都只能有一個基例
9、不屬於遞迴特徵的是:基例需要多次遞迴迴圈
10、對遞迴描述錯誤的是:執行效率高
11、
def reverse (s):
return reverse (s[1:])+s[0]
執行會出錯
12、說法正確的是
def reverse (s): if s=="": return s else: return reverse (s[1:])+s[0]
1)程式碼的作用是實現字串的反轉
2)基例是空字串
3)s[1:]是除首字母外的剩餘字串
13、關於模組化設計描述正確的是
1)儘可能合理劃分功能塊,功能塊內部耦合度高
2)模組間關係儘可能簡單,模組之間耦合度低
3)高耦合度的特點使複用較為困難
14、函式是程式的抽象,通過封裝實現程式碼複用,可以利用函式對程式進行模組化設計
15、計算pi(n)不適合使用遞迴實現
16、
cnum= 1 acc= 0 def rsum(): global cnum global acc if cnum== 6: return acc else: acc = acc + cnum cnum = cnum + 1 return rsum()
說法正確的有
1)rsum是一個遞迴函式
2)函式的基例是cnum == 6
3) 呼叫rsum()時,rsum函式返回前被呼叫5次
4)呼叫rsum()時,函式返回值是21
17、函式呼叫錯誤的是vfunc()
18、
def f(s): return s+s
函式呼叫時,引數不可以是集合型別
19、
c=1 def add(): c=100 return c+1
呼叫add()以後,c的值為101
20、
n = 0 def func(a,b): n = b return a+n s = func(1, 2) print(s, n)
語句的輸出結果是3 0
21、
x = 54321 y = 0 fac = 10000 while x: y += fac*(x%10) x = x//10 print(y) print(x+y)
#執行結果是
150000
150000
22、
a,b,c=-2,4,6 s,w,t=1,3,5 if c>0: s=a+b if a<=0: if c<=0: w=a-b else: if c>0: w=a-b else: t=c #else以後的結果沒有機會執行c=a+b
print("a={},b={},c={}".format(a,b,c))
print("s={},w={},t={}".format(s,w,t))
#執行結果
a=-2,b=4,c=2
s=2,w=3,t=5
23、
sum = 0 for i in range(1,100): sum = sum+i print(sum)
24、
sum = 0 i = 100 while i>0: if i%3==0: sum = sum + 1 i=i-1 print(sum)
25、
len = eval(input("輸入要列印的行數:")) for i in range(len): for j in range(0, len - i): print(end=" ") for t in range(2 * i + 1): print("*", end="") print()
26、
m=eval(input("請輸入一個整數:"))
t=0
for i in range(2,m):
if m%i==0:
t=1
break #退出迴圈
if t==0:
print(m,"是素數")
else:
print(m,"不是素數")
27、
n=eval(input("請輸入一個正整數:")) s=str(n)+"=1" #儲存結果,最後再輸出 ,是因為後面的因式分解是在迴圈中計算的,剛開始並沒有列入式子 a=2 while n>=a: if n%a==0: s=s+"*"+ str(a) n=n//a else: a=a+1print(s)
28、輸出m個1-10範圍內的隨機浮點數,計算並顯示其平均值
import random random.seed(100) m=eval(input()) s=0 for j in range(m): f=random.uniform(1,10) s+=f print(f) print('平均值是:',s/m)
29、輸入整數n,計算12+22+...+n2的值
def f(n): sum = 0 for i in range(n): sum = sum + (i+1)*(i+1)return sum n = int(input("請輸入數字:")) r = f(n) print("1~{}的平方和是{}".format(n, r))
30、
def fib(n): if n==1 or n==2: return 1 else: return fib(n-1)+fib(n-2) n = eval(input(“輸入正整數N”)) print(fib(n))
31、
def reverse(s): if s=="": return s else: return s[1:]+ s[0] str = input("請輸入一個字串: ") print(reverse(str))
32、
def myMax(a,b): if a>b: return a else: return b a = eval(input()) b = eval(input()) print(myMax(a,b))
33、
def mul(n): if n==1: return 1else: return mul(n-1)*n n = int(input()) print(mul(n))