一、判断题
1.2.1-2 == 0.1结果为True。

解析:错误。因为在计算机中,对浮点数进行存储是以近似小数的形式进行。因此在计算机求解2.1 – 2 时所得的不是0.1,而是一个与 0.1 非常相近的数字但是不是 0.1 ,所以返回值为False。

2.高级语言程序要被机器执行,只有用解释器来解释执行。

解析:错误。因为在计算机中,高级语言所编制的程序不能被直接识别,必须经过转化才能执行。按转换方式可将它们分为两类: 解释类:执行方式类似于我们日常生活中的“ 同声翻译 ”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码 (机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。

3.z已赋值,x=(y=z+1)语句是错误语句。

解析:错误。赋值语句的右侧不能的是一个等式,只能是一个可以求值的式子。

4.元组对象是可变对象

解析:错误。python 中的不可变对象有整型 (int),浮点型 (float),字符串型 (str), 元组 (tuple)等等,而可变对象有列表 (list),集合 (set), 字典 (dict)等等。

5.3>2>=2 的值为True。

解析:正确。3>2 判别式和 2>=2 判别式返回值均为True,则总式返回值为True。

6.Python字符串以’0’为结束符。

解析:错误。Python的字符串不是以“\0”结尾。

7.在三引号的字符串中可以包含单引号,双引号字符。

解析:正确。对于Python中的引号,有格式为:单引号字符串:’python’,双引号字符串:”python”,三引号字符串:”’python”'(三单引号),”””python”””(三双引号)。

而会有这样的输出效果:单引号中可以使用双引号,中间的会当作字符串输出,双引号中可以使用单引号,中间的会当作字符串输出,三单引号和三双引号中间的字符串在输出时保持原来的格式。

8.dict={[1,2,3]:”user”}不能创建一个字典。

解析:正确。Python不支持dict的key为list或dict类型,因为list和dict类型是unhashable(不可哈希)的,故不能创建一个字典的语句是dict3 = {[1,2,3]: “uestc”}。

9. 下面语句是正确的。
x=5y=6if(x>y)print(x)

解析:错误。在if 语句后未加上“:”。

10.变量不需事先声明就可使用。

解析:正确。Python中的变量不需要申明就可以直接使用。

二、选择题

1. 下面那个不是Python可以接受的变量名?

A. abcB. _23acC. iD. good-name

解析:D。Python的变量名不能包含“-”等特殊字符开头。

2.输入10,下面程序行号为2的语句输出是多少?

the_max = int(input("Enter the upper limit:"))the_sum = 0extra = 0for number in range(1,the_max):if number%2 and not number%3: the_sum = the_sum + numberelse: extra = extra + 1print(the_sum) # 行号为 2print(extra) # 行号为 3

A. 12B.7C.13D.8

解析:A。对于number%2 and not number%3的判别,为number%2 不为0 而 number%3 为0时成立,所以在sum里面求的是3+9=12 。

3. 下面哪种方法读文件“input.txt”是正确的.

A.in_file = open(‘input.txt’,’w’)

B.in_file = open(‘input.txt’,r)

C.in_file = open(‘input.txt’,’r’)

D.都不正确.

解析:C。对于打开文件使用函数open,而函数中使用的后缀在只用于读时则为用‘w’,而用于写则为‘w’。

4. continue语句用于______.

A.退出循环程序B.结束本次循环C.空操作D.根据if语句的判断进行选择

解析:B。continue表示结束本次循环然后继续执行循环程序中的下一次(步)。

5.下面定义字典的语句那个是正确的?

A.momthdays=dict(Jan=31,Feb=28,Mar=31,Apr=30)

B.momthdays=dict(“Jan”=31,”Feb”=28,”Mar”=31,“Apr”=30)

C.momthdays={Jan:31,Feb:28,Mar:31,Apr:30}

D.momthdays={Jan=31,Feb=28,Mar=31,Apr=30}

解析:A。dict为字典类型,则在定义时需要用“()”来将值赋入其中。而在赋值时,需要将键(keys)和对应的值(values)用等号连接。

6.2K字节是_____个字节。

A.1024B.1C.2048D.10000

解析:C。1KB占用1024字节,则2K = 2KB为占用2048字节。

7.下面语句解释器将抛出什么错误信息?

s=[1,2,3]y=s[3]

A.NameErrorB.IndexErrorC.SyntaxErrorD.TypeError

解析:B。显然,s=[1,2,3]列表中只有0,1,2三个位置上有值,而y=s[3]要返回的位置超过了s已存储值的上边界,故返回的是越界报错(IndexError)

8.下面代码的输出结果是_____。

a=666666b="T"print("{0:{2}^{1}}\n{0:{2}>{1}}\n{0:{2}<{1}}".format(a,20,b))

A.TTTTTTT666666TTTTTTT
TTTTTTTTTTTTTT666666
666666TTTTTTTTTTTTTT

B.666666TTTTTTTTTTTTTT
TTTTTTTTTTTTTT666666
TTTTTTT666666TTTTTTT

C.TTTTTTTTTTTTTT666666
666666TTTTTTTTTTTTTT
TTTTTTT666666TTTTTTT

D.TTTTTTTTTTTTTT666666
TTTTTTT666666TTTTTTT
666666TTTTTTTTTTTTTT

解析:A。表现为三种输出格式,第一个“^”指居中,第二个“>”指向右对齐,第三个“<”指向左对齐,而空余空间用{2}(也就是b = T)来填满。

9.下列程序运行输出结果为_______。

import mathdef factors(x):y=int(math.sqrt(x))for i in range(2,y+1): if (x %i ==0):print(i,end=' ');factors(x//i)break else: print(x,end=' ')returnfactors(18)

A.3 2 3B.2 9 3C.3 6 3D.2 3 6

解析:B。输入18,而为y是4。则在i = 2时,满足18%2 == 0 ,则先输出i = 2,再进行factor(9)。而此时y是3,则在i = 2时,不满足9%2 == 0,则进行输出x = 9 。 在i = 3时,有满足9%3 == 0,则进行输出i = 3,在进行factor(3)。而此时y = 1小于2,循环不执行,程序结束。

10.下面程序的运行结果是什么?

b=[1,2,3]b[2]=bs = 0for row in b:if type(row)==list:for elem in row:s += elemelse:s+=rowprint(s)

A.9B.10C.8D.其他

解析:D。程序运行的结果是TypeError: unsupported operand type(s) for +=: ‘int’ and ‘list’

11.选择下面程序的运行结果

number = 25isPrime = Truefor i in range(2, number):if number % i == 0:isPrime = Falsebreakprint("i is", i, "isPrime is", isPrime)

A.i is 5 isPrime is True

B.i is 5 isPrime is False

C.i is 6 isPrime is True

D.i is 6 isPrime is False

解析:B。程序是判别是否是素数的程序,在输入25后,循环进行到i = 5时,有得到25%5 == 0,即5是25的因子之一,于是输出为i is 5 isPrime is False。

12.下列程序运行输出结果为_______。

day=4x=1while day>0:x=(x+1)*2day-=1print(x)

A.22B.46C.47D.45

解析:B。输入day = 4,而每次循环都是day的值减1,所以执行四次x=(x+1)*2操作即可。

13.下列程序运行输出结果为_______。

b,c=2,4def g_func():b=1b=b*cd=bprint(b,d,end='')g_func()print(b,c)

A.4 4 2 4B.4 4 4 4C.4 2 4 4D.2 4 2 4

解析:A。这显然是一个局部变量和全局变量的覆盖问题。在运行函数中对b的值进行的改变并不会对于其在整个程序中b的值进行改变,所以先在函数中输出b=4和c=4,之后再执行最后一行的输出语句,得到b=2,c=4 。

14.以下哪句打印出smith\exam1\test.txt?

A.print("smith\exam1\test.txt")

B.print("smith\\exam1\\test.txt")

C.print("smith\"exam1\"test.txt")

D.print("smith"\exam1"\test.txt")

解析:B。对于Python中,若是想要输出“\”号,需要用\\来表示(前一个用于表示转义字符)。

15.对于正确的表达式a[2],a不可能是以下哪个类型?

A.集合B.列表C.元组D.字典

解析:A。集合是不支持所以,切片,相加,相乘操作的,所以不能这样获取集合内的元素。若是想获取集合里面的某一个元素需要进行转化,比如把即可转成列表再获取内容等等。

三、填空题

1.执行下列语句后v的显示结果是什么?

values = [[3, 4, 5, 1], [33, 6, 1, 2]]v = values[0][0]for row in range(0, len(values)):for column in range(0, len(values[row])):if v < values[row][column]:v = values[row][column]print(v)

答案:33

2.输入为‘dbc’时,行号为3的语句输出是多少?

my_str = input("Input a string: ")index_int = 0result_str = '' # empty stringwhile index_int  my_str[index_int + 1]: result_str = result_str + my_str[index_int] else: result_str = result_str * 2 index_int += 1 print(result_str) # 行号为 3

答案:dd

3.Python的数学模块是什么?

答案:math

4.执行下列语句后的显示结果是什么?

sum = 0item = 0while item  4: breakprint(sum)

答案:6

5.下面程序计算斐波那契数,在下划线处填上正确的表达式

def fastFib(n, memo = {}):if n == 0 or n == 1:return 1try:return memo[n]except KeyError:result = fastFib(n-1, memo) + fastFib(n-2, memo)____________= resultreturn resultprint(fastFib(20))

答案:memo[n]

6.下面语句的输出是什么?

list1=[1,43]list2=list1list1[0]=22print(list2[0])

答案: 22

7.下面语句的输出是

m=[2,1,0,5,3,5,7,4]def naive(M,A=None):if A is None:A=set(range(len(M)))if len(A)==1:return(A)B=set(M[i] for i in A)C=A-Bif C:A.remove(C.pop())return naive(M,A)return Aprint(sum(list(naive(m))))

答案:8

8.下面语句的结果是什么?

print(len(set([1,2,1,2,3])))

答案:3

9.表达式:—3*2+5的值是

答案:-1

10.运行下面程序的输出结果是

d1=[1,5,7]d2=d1.copy()d1[0]=6print(d1[0]+d2[0])

答案:7

11.文件populationdata.txt是部分国家的人口数据。每行一个国家人口数据。统计人口数中以“1”开头的百分比数,“2”开头的百分比数,“3”开头的百分比数,“4”开头的百分比数,“5”开头的百分比数,“6”开头的百分比数,“7”开头的百分比数,“8”开头的百分比数,“9”开头的百分比数。下面结果表示[(1, 27.586206896551722), (2, 19.396551724137932), (3, 12.931034482758621), (4, 9.482758620689655),(5, 7.327586206896552), (6, 9.051724137931034),(7,5.603448275862069), (8, 5.172413793103448),(9, 3.4482758620689653)],“1”开头的百分比数27.586206896551722,“2”开头的百分比数19.396551724137932,以此类推!下面是程序。

populationfile=open('populationdata.txt',_(1)_)digit_counts={d:0 for d in "123456789"} total=0for line in _(2)_: line=line.strip()if line and _(3)_: first_digit=line[0] digit_counts[first_digit]+=1 total+=1 percents=sorted([(int(digit),count*100/total)for digit,count in digit_counts.items()])print( percents)

在下面9个答案中选择,空格中填编号,如A等。

A) digit_counts B) 'w' C) digit_countD) line[1].isalpha()E)line[0].isalnum()F)'a'G) line[0].isdigit()H) 'r'I)populationfile

(1)的答案是:H

(2)的答案是:I

(3)的答案是:G

12.统计字符串中各字符出现次数

mstr = "Hello world, I am using Python to program, it is very easy to implement."mlist = list(mstr)___(1)______(2)___if mdict.get(e,-1)==-1:mdict[e]=1else:mdict[e]+=1for key,value in ___(3)___:print (key,value)

可在下面9个答案中选择,空格中填编号,如A等

A)mdict.values() B)mdict.items()C) mdict.keys()D) mdict = {} E)mdict = [] F) mdict = ()G)for key in mlist: H)for e in mlist:I) for value in mstr:

(1)的答案:D
(2)的答案:H
(3)的答案:B

13.下面程序随机生成10个整数,将它们从大到小排序后输出。如有多个答案可选,选顺序在先的答案。

from random import * def sort1(___(1)___):for k in range(n-1):index = kfor i in ___(2)___:if(a[i] > a[index]):index = i a[k],a[index]=a[index],a[k]c=[]for i in range(10):b=randint(1,10000)c.append(b)___(3)___print(c)

在下面9个答案中选择,空格中填编号,如A等。

A)range(k,n) B)range(k+1,n-1)C)a,n-1D) a, n E)sort1(c)F) sort1(c[], 10) G)a[] H)range(k+1,n)I) sort1(c, 10)

(1)的答案是:D
(2)的答案是:H
(3)的答案是:I

14.输入一个十进制正整数,将它对应的二进制数的各位反序,形成新的十进制数输出。如有多组答案可选,则选答案字符序在先的那组答案。
如:13–>1101–>1011–>11
如:10–>1010–>0101–>5

x=eval(input())y=0while(___(1)___): t=x%2 ___(2)___ ___(3)___print(y)

在下面9个答案中选择,空格中填编号,如A等。

 A) xB) x or yC) not xD) y=y*10+t E) y *= 2 + tF) y = y//2G) x= x //10H) x= x // 2 I) y = y*2+t

(1)的答案是:A
(2)的答案是:I
(3)的答案是:H

15.10进制转16进制

decimal = eval(input("Enter an integer: "))hexString = ""value = ___(1)___while value != 0:single = value % 16if single == 15: hexString = "F" + hexStringelif single == 14:hexString = "E" + hexStringelif single == 13:hexString = "D" + hexStringelif single == 12:hexString = "C" + hexStringelif single == 11:hexString = "B" + hexStringelif single == 10:hexString = "A" + hexStringelse:hexString = ___(2)___+ hexStringvalue = ___(3)___print(str(decimal) + "'s hex representation is " + hexString)

在下面9个答案中选择,空格中填编号,如A等。

A)singleB) decimal C) hexString D) value/16 E) value//16F)value%16 G) str(single)H)str(hexSting)I)singles

(1)的答案是:B

(2)的答案是:G

(3)的答案是:E