加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python期末考试复习试卷

(2017-11-30 09:33:20)
标签:

python

考题

分类: 编程与数学Math

http://s7/mw690/001x0xHQzy7gcU1FD2S16&690

 

Python程序设计期中考试卷 

      

一、单选题 (20%) 每题四个选项,请在确切答案前用标记 (1) 执行下列语句后的显示结果是什么

>>> world=”world” 

>>> print “hello”+ world 

[A]  helloworld    [B] “hello”world  [C] hello world    [D] 语法错  

 

(2)  下列标识符中哪个是合法的[A] i'm    [B]    [C] 3Q   [D] for  

 

(3)  执行下列语句后的显示结果是什么

>>> from math import sqrt 

>>> print sqrt(3)*sqrt(3) == 

[A]   [B] True  [C] False   [D] sqrt(3)*sqrt(3) ==  

 

(4)  ”Happy New Year”, s[3:8]的值为:

 [A] ‘ppy Ne’  [B] ‘py Ne’   [C] ‘ppy N’   [D] ‘py New’  

 

(5)算法是指

[A] 数学的计算公式    [B] 程序设计语言的语句序列 [C] 对问题的精确描述   [D] 解决问题的精确步骤  

 

(6)  

type(1+2L*3.14)的结果是

[A]     [B]   [C]   [D]   

 

(7) 以下何者是不合法的布尔表达式: 

[A] in range(6)  [B]  3=a   [C]  e>5 and 4==f    [D]  (x-6)>5  

 

(8) k为整形, 下述while循环执行的次数为  k=1000  while k>1:   print   k/2 

[A]     [B] 10      [C]11     [D] 1000  

 

(9) 选出对下列语句不符合语法要求的表达式: 

for var in ____________  print var 

[A]  range(0,10)  [B] ”Hello”    [C] (1,2,3)     [D] {1,2,3,4,5}  

 

(10) 计算思维能力和下述其他方面能力相比,何者更相近? [A] 阅读、写作和算术     [B]逻辑推理   [C] 形象思维       [D] 技巧体操

 

 

二、填空题 (10%, 每小题2 

(1)Python中调用open函数打开文件,调用close函数关闭文件,调用            

(            )函数可实现对文件内容的读取。 

read() or readline() or readlines() 

(2). 表达式 1/4+2.75 的值是                   2.75 

(3). 高级程序设计语言必须由                或者                翻译成低级语言。   编译器 解释器 

(4). 给出range(1,10,3)的值                      [1,4,7] 

(5). 请给出计算231次方−1Python表达式                                      2**31-1  

 

三、是非题 (20%) 请在语句后的 ]内填写标记或X:  

(1) 函数eval_r()用于数值表达式求值,例如eval_r(2*3+1)         

(2) 执行了import math之后即可执行语句print sin(pi/2)        

(3) Python可以不加声明就使用变量。          √   

(4) Python可以不对变量如a初始化就可在表达式如b=a+1中使用该变量。     

(5) 选择排序算法是一个时间复杂度为nlogn算法。           

(6) Hanoi塔的解法体现了分而治之(divide-and-conquer)方法的典型用途。     

(7) 一个函数中只允许有一条return语句。            

(8) 可用open(“file1”,”r”)方式打开文件并进行修改。        

(9) Python语言是面向对象的。           √   

(10) 存在一个程序判别一个Python程序的运行是否可以停止。      ]

 

四、理解题 (24%) 写出下列程序的运行结果: (1) 



def func(s, i, j):
if i < j:
func(s, i + 1, j - 1)
s[i],s[j] = s[j], s[i]

def main():
a = [10, 6, 23, -90, 0, 3]
func(a, 0, len(a)-1)
for i in range(6):
print( a[i])
print ("\n")

main()

‐90 23 10  

 

(2). 

while 1:  if 4: 

  print "%d\n"   +=   break 

 print "%d\n"  +=  += 

 

(3). 

def foo(s):     if == "":         return     else: 

        return foo(s[1:]) s[0]  

print foo("Happy New Year")

 

(4). 

def func(a, n, m):     if ==  0:         return     else: 

        num func(a,n/2,m)     if n%2 == 0:     

        return num num     else:         

        return num num  

print func(5,6,7)   

 

(5). 

def foo(list,num):    if num == 1: 

           list.append(0)    elif num == 2: 

           foo(list,1)            list.append(1)    elif num 2: 

           foo(list,num-1) 

           list.append(list[-1]+list[-2])  

mylist [] foo(mylist,10) print mylist 

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]  

 

(6). 

def func(a,b):     if (a b):         a, b,         if == 0:         return     else: 

        return func(b,r)  

ans func(342,84) print ans 

 

 

 

 

五、程序填空题 (10%) 

(1).打印100200间的全部素数,输出格式为每行10个: [----1----] 

for in range(101, 201, 2):  int(math.sqrt(m)) 

 for in range([----2----], k+1):   if == 0:    [----3----]  if == [----4----]: 

 if 10 == 0:   print "\n"   print "%d m,   [--   --]  

import math 

break 

+=  

 

(2)选择排序算法对数组中的数据按由小到大排序

 

 def sort([----1----]):  for in range(n-1):   [----2----] 

  for range(i 1, n):    if [----3----]     

  a[k], a[i] a[i], a[k] def main(): 

 list [12,5,61,8,11,32,111,94,37,55]  [----4----] 

 print "The sorted list:\n"  for in [----5----]:   print list[i],  print "\n"  

main() a,n 

a[j] a[k] 

sort(list,len(list)) range(10)  

 

 

六、程序设计题 (16% 每小题8

(1) 编写函数,检测给定的两维数组中是否有重复数据(已知该数组中保存了正整数):check_data(mat),如果没有重复,则函数返回真。要求算法的时间复杂度不大于O(n)

 

 def expand_list(list,num):  

if len(list) num:   

return 

 for in range(len(list),num):   

list.append(0)  

 

def check_data(list):     

count [] 

    expand_list(count,10)    

 for line in list:         

for var in line: 

     if var len(count): 

      expand_list(count,var+1)             

if count[var] == 0:                 

count[var] +=            

 else: 

                return False     

return True 

 

(2) 设有一个背包能承受重量s(s>0), 又有n(n≥1)件物品其重量列表为

w=[w1,w2,...,wn]. 要从物品中挑选若干件放入背包使得放入的物品重量之和正好是s. 试设计递归函数f(w,s,n): 当有解时返回True,并显示所选物品是哪些无解时返回False[提示:递归之处在于f(w,s,n)的真假等于f(w,s−wn,n−1) or f(w,s,n−1)]  

def f(w,s,n):     if s==0: 

        return True 

elif (s<0) or (s>0 and n<1):         

return False 

elif f(w,s-w[n-1],n-1):         

print w[n-1],        

 return True     

else: 

        return f(w,s,n-1) 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有