2.1-2 == 0.1
结果为True。解析:错误。因为在计算机中,对浮点数进行存储是以近似小数的形式进行。因此在计算机求解2.1 - 2 时所得的不是0.1,而是一个与 0.1 非常相近的数字但是不是 0.1 ,所以返回值为False。
解析:错误。因为在计算机中,高级语言所编制的程序不能被直接识别,必须经过转化才能执行。按转换方式可将它们分为两类: 解释类:执行方式类似于我们日常生活中的“ 同声翻译 ”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码 (机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。
解析:错误。赋值语句的右侧不能的是一个等式,只能是一个可以求值的式子。
解析:错误。python 中的不可变对象有整型 (int),浮点型 (float),字符串型 (str), 元组 (tuple)等等,而可变对象有列表 (list),集合 (set), 字典 (dict)等等。
解析:正确。3>2 判别式和 2>=2 判别式返回值均为True,则总式返回值为True。
解析:错误。Python的字符串不是以“\0”结尾。
解析:正确。对于Python中的引号,有格式为:单引号字符串:'python',双引号字符串:"python",三引号字符串:'''python'''(三单引号),"""python"""(三双引号)。
而会有这样的输出效果:单引号中可以使用双引号,中间的会当作字符串输出,双引号中可以使用单引号,中间的会当作字符串输出,三单引号和三双引号中间的字符串在输出时保持原来的格式。
解析:正确。Python不支持dict的key为list或dict类型,因为list和dict类型是unhashable(不可哈希)的,故不能创建一个字典的语句是dict3 = {[1,2,3]: “uestc”}。
x=5
y=6
if(x>y)
print(x)
解析:错误。在if 语句后未加上“:”。
解析:正确。Python中的变量不需要申明就可以直接使用。
二、选择题
1. 下面那个不是Python可以接受的变量名?
A. abc B. _23ac C. i D. good-name
解析:D。Python的变量名不能包含“-”等特殊字符开头。
2. 输入10,下面程序行号为2的语句输出是多少?
the_max = int(input("Enter the upper limit:"))
the_sum = 0
extra = 0
for number in range(1,the_max):
if number%2 and not number%3:
the_sum = the_sum + number
else:
extra = extra + 1
print(the_sum) # 行号为 2
print(extra) # 行号为 3
A. 12 B.7 C.13 D.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.1024 B.1 C.2048 D.10000
解析:C。1KB占用1024字节,则2K = 2KB为占用2048字节。
7.下面语句解释器将抛出什么错误信息?
s=[1,2,3]
y=s[3]
A.NameError B.IndexError C.SyntaxError D.TypeError
解析:B。显然,s=[1,2,3]列表中只有0,1,2三个位置上有值,而y=s[3]要返回的位置超过了s已存储值的上边界,故返回的是越界报错(IndexError)
8.下面代码的输出结果是_____。
a=666666
b="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 math
def 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=' ')
return
factors(18)
A.3 2 3 B.2 9 3 C.3 6 3 D.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]=b
s = 0
for row in b:
if type(row)==list:
for elem in row:
s += elem
else:
s+=row
print(s)
A.9 B.10 C.8 D.其他
解析:D。程序运行的结果是TypeError: unsupported operand type(s) for +=: 'int' and 'list'
11.选择下面程序的运行结果
number = 25
isPrime = True
for i in range(2, number):
if number % i == 0:
isPrime = False
break
print("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=4
x=1
while day>0:
x=(x+1)*2
day-=1
print(x)
A.22 B.46 C.47 D.45
解析:B。输入day = 4,而每次循环都是day的值减1,所以执行四次 x=(x+1)*2操作即可。
13.下列程序运行输出结果为_______。
b,c=2,4
def g_func():
b=1
b=b*c
d=b
print(b,d,end=' ')
g_func()
print(b,c)
A.4 4 2 4 B.4 4 4 4 C.4 2 4 4 D.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 = 0
result_str = '' # empty string
while index_int < (len(my_str) - 1):
if my_str[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 = 0
item = 0
while item < 5:
item += 1
sum += item
if sum > 4: break
print(sum)
答案:6
5.下面程序计算斐波那契数,在下划线处填上正确的表达式
def fastFib(n, memo = {}):
if n == 0 or n == 1:
return 1
try:
return memo[n]
except KeyError:
result = fastFib(n-1, memo) + fastFib(n-2, memo)
____________= result
return result
print(fastFib(20))
答案:memo[n]
6.下面语句的输出是什么?
list1=[1,43]
list2=list1
list1[0]=22
print(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-B
if C:
A.remove(C.pop())
return naive(M,A)
return A
print(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]=6
print(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=0
for 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_count
D) 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]=1
else:
mdict[e]+=1
for 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 = k
for 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-1
D) 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=0
while(___(1)___):
t=x%2
___(2)___
___(3)___
print(y)
在下面9个答案中选择,空格中填编号,如A等。
A) x B) x or y C) not x
D) y=y*10+t E) y *= 2 + t F) y = y//2
G) x= x //10 H) 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 % 16
if single == 15:
hexString = "F" + hexString
elif single == 14:
hexString = "E" + hexString
elif single == 13:
hexString = "D" + hexString
elif single == 12:
hexString = "C" + hexString
elif single == 11:
hexString = "B" + hexString
elif single == 10:
hexString = "A" + hexString
else:
hexString = ___(2)___+ hexString
value = ___(3)___
print(str(decimal) + "'s hex representation is " + hexString)
在下面9个答案中选择,空格中填编号,如A等。
A)single B) decimal C) hexString D) value/16 E) value//16 F)value%16 G) str(single) H)str(hexSting) I)singles
(1)的答案是:B
(2)的答案是:G
(3)的答案是:E