欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python--大一下期中考试试题及答案

程序员文章站 2022-07-07 19:36:51
一. 选择题(36分,每小题2分)1. python不支持的数据类型有:(A)A. charB. intC. floatD. list2.x = ‘foo’y = 2print(x + y) ( E )A. fooB. foofooC. foo2D. 2E. An exception is thrown3. 关于字符串下列说法错误的是(B)A. 字符应该视为长度为1的字符串B. 字符串以\0标志字符串的结束C. 既可以用单引号,也可以用双引号创建字......

一. 选择题(36分,每小题2分)

1. python不支持的数据类型有:(A)
A. char
B. int
C. float
D. list

2. 
x =
‘foo’
y = 2
print(x + y)           (
E )
A. foo
B. foofoo
C. foo2
D. 2
E. An exception is thrown

3. 关于字符串下列说法错误的是 (B)
A. 字符应该视为长度为1的字符串
B. 字符串以\0标志字符串的结束
C. 既可以用单引号,也可以用双引号创建字符串
D. 在三引号字符串中可以包含换行回车等特殊字符


4. 以下不能创建一个字典的语句是  ( C )
A. dic1 = {}
B. dic2 = {123:345}
C. dic3 = {[123]:'uestc'}
D. dic4 = {(1,2,3):'uestc'}

注:字典的keys必须是不可变数据类型

5. 
kvps = {'1':1,'2':2}
theCopy = kvps
kvps['1'] = 5
sum = kvps['1'] + theCopy['1']
print(sum)     ( 
D )
A. 1
B. 2
C. 7
D. 10

6. 以下何者是不合法的布尔表达式 ( B )
A. x in range(6)
B. 3 = a
C. e > 5 and 4 == f
D. (x - 6) > 5

7. 下列哪个是“3 and 4”的运算结果 ( D )
A. 0
B. 1
C. 3
D. 4

8. 在Python中对两个集合对象实行操作A&B得到结果是 ( B )
A. 并集

B.交集

C.差集

D.异或集

9. Python的赋值功能很强大,当a=11时,运行a+=11后a的结果是 ( D )
A. 11
B. 12
C. True
D. 22

10. 下列Python语句正确的是(多选) ( AD )
A. min = x if x < y else y
B. max = x > y ? x : y (C
语言里的,python里不对)
C. if (x>y) print(x) (没有冒号)
D. while True :pass

11. Python中的数据结构可分为可变类型与不可变类型,下面属于不可变类型的是 ( C )

A. 字典
B. 列表
C.字典中的键
D.集合(set类型)

12. 以下叙述正确的是 ( B )
A. continue语句的作用是结束整个循环的执行
B. 只能在循环体内使用break语句
C. 在循环体内使用break或continue语句的作用相同
D. 从多层循环嵌套中退出时只能用使用goto语句

13. for i in range(6)这个语句中i的取值是 ( D )

A.[1,2,3,4,5,6]

B.[1,2,3,4,5]

C.[0,1,2,3,4]

D.[0,1,2,3,4,5]

14. 下面的语句哪个会无限循环下去 ( B )

 

A. for a in range(10):
    time.sleep(10)
B. while 1<10:
    time.sleep(10)
C. while True:
    break
D. a = [3,-1,’,’]for I in a[:]:
    if not a :
        break

 

注:只要看到无限循环,带for的都不可能

 

15. 下面的代码,哪些会输出1,2,3,三个数字(多选)( BD )

 

A. for i in range(3):
    Print(i)            
B. aList = [0,1,2] for i in aList:
print(i+1)       
C. i = 1while i<3:
    print(i)            
    i+=1
D. for i in range(3):
    Print(i+1)       

16. 列表推导式[i+6 for i in range(0,3)]返回的结果是:( C )

A.[1,2,3]

B.[0,1,2]

C.[6,7,8]

D.[7,8,9]

17.有一个列表L=[4,6,8,10,12,5,7,9],列表推导式[x for x in L if x%2==0]返回的结果: ( C )

A.[4,8,12,7]

B.[6,10,5,9]

C.[4,6,8,10,12]

D.[5,7,9]

18.可变参数*args传入函数时的存储方式为:  (A)

A.元组

B.列表

C.字典

D.数据框

二.填空题(22分,每空2分)

1. 表达式[1, 2, 3]*3的执行结果为

答案:[1, 2, 3, 1, 2, 3, 1, 2, 3]

2.L = range(100)

(1) 取第一到第三个元素 

答案:list(L[:3])


(2) 取倒数第二个元素 

答案 L[-2] 或 L[98]


(3) 取后十个元素

答案  list(L[-10::])


3. 判断dict有没有某key用的方法:

答案 in

4.获取list的元素个数方法:

答案len(list)


向末尾追加元素的方法:

答案  list.append()

 

5. 表达式 [x for x in [1,2,3,4,5] if x<3] 的值为

答案:[1, 2] 

 

6.表达式 'abcab'.replace('a','yy') 的值为

答案:'yybcyyb'

 

7.下面程序运行的结果是

l1=[1,2,3,6,87,3]

l2=['aa','bb','cc','dd','ee','ff']

d={}

for index in range(len(l1)):

    d[l1[index]]=l2[index]

print d

答案:{1:'aa',2:'bb',3:'ff',6:'dd',87: 'ee'}

 

8.下面程序运行的结果为

list1=[1,2]

list2=list1

list1[0]=3

print(list1,list2)

答案 [32] [32]

三. 编程题,请将代码截图后分别上传。(44分)

1. d = {'a':1,'b':2,'c':3}请打印出key,value对  (本题4分)

答案:
d = {'a':1,'b':2,'c':3}
for k,v in d.items():
    print(k,v,end=" ")

2. 请写出一段python代码实现删除一个list里面的重复元素    (本题4分)

答案:用集合:
lis = [1,2,3,4,1,2,5]
print(set(lis))

不用集合:

lis = [1,2,3,4,1,2,5]
lis1 = []
for i in lis:
    if i not in lis1:
        lis1.append(i)
lis = lis1
print(lis)

3.输入一串字符,统计每个字符数,用字典输出    (本题5分)

答案:

s=input("输入一行字符串或句子:")

char_counts={}

for char in s:

        char_counts[char]= char_counts.get(char,0)+1

print(char_counts)

s=input("入的字符串")

dic={}

for j in s:

    if s.count(j)>=1:

        dic[j]=s.count(j)

print(dic)

4.已知 dicta = {‘a’:1,’b’:2,’c’:3,’d’:4,’f’:’hello’}
dictb = {‘b’:3,’d’:5,’e’:7,’m’:9,’k’:’world’}
要求写一段代码,实现两个字典的相加,不同的key对应的值保留,相同的key对应的值相加后保留,如果是字符串就拼接,如上示例得到的结果应为:(本题8分)

答案:

dicta = {'a':1,'b':2,'c':3,'d':4,'f':'hello'}
dictb = {'b':3,'d':5,'e':7,'m':9,'k':'world'}
dictc={}
for ia in dicta.keys():
    if ia in dictb.keys():
        dictc[ia]=dicta[ia]+dictb[ia]
    else:
        dictc[ia]=dicta[ia]
for ib in dictb.keys():
     if ib not in dicta.keys():
         dictc[ib]=dictb[ib]
print(dictc)

结果:
{'a': 1, 'b': 5, 'c': 3, 'd': 9, 'f': 'hello', 'e': 7, 'm': 9, 'k': 'world'}

5.1-2+3-4+5 ... 99的所有数的和     (本题7分)

答案:

sum=0
count=1
while count<100:
    if count%2==0:
        sum=sum-count
    else:
        sum=sum+count
    count+=1
print(sum)

6.已知li = ['xiaobai ','aldxC','AdC ','dgon',' Gitian',' Xusir','  aqc']查找列表li中的元素,利用函数移除每个元素左右两边的空格,并找出以’A’或者’a’开头,并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。提示可以利用函数和切片。  (本题7分)

答案:
li = ['xiaobai ','aldxC','AdC ','dgon',' Gitian',' Xusir','  aqc']
b=[]
for i in li:
    s=i.strip()
    if s[0].upper()=='A' and s[-1]=='c':
        b.append(s)
for x in b:
    print(x)

结果:
aqc

7.已知产品列表如li = ["手机", "电脑", '鼠标垫', '游艇'], 编程循环输出序号(从1开始)和商品名称(如1 手机),如果用户输入选择的商品序号,则能输出商品名称,然后再次循环要求用户输入序号。如果用户输入的不是数字,则提示请输入数字。

如果用户输入的商品序号有误,则提示请输入有效数字,并重新输入,如果用户输入Q或者q,则退出程序。(本题7分)
参考答案:
flag=True
while flag:
    li = ["手机", "电脑", "鼠标垫", "游艇"]
    for i in li:
        print("{}\t\t{}".format(li.index(i)+1,i))
    choice=input("请输入选择的商品序号/输入Q或者q退出程序:")
    if choice.isdigit():
        choice=int(choice)
        if choice >0 and choice <=len(li):
            print(li[choice-1])
        else:
            print('请输入有效的数字!')
    elif choice.upper()=='Q':
        break
    else:
        print('请输入数字!')

 

本文地址:https://blog.csdn.net/zqdhugoNion/article/details/107152125