《Python程序设计》第4次作业
一、单选题(共10题,50分)
1、在 if...elif...else 的多个语句块中只会执行一个语句块。( )
例:
g = int(input(" 成绩 =?")
if g>=60 and g<80:
print("成绩合格!“)
print(" 好好学习,天天向上!“)
leif g>=80 and g<90:
print("成绩良好!“)
print(" 百尺杆头,更进一步!“)
leif g>=90 :
print("成绩优秀!“)
print(" 棒!您是好样的!继续努力!“)
else:
print("成绩不合格!“)
print(" 好好努力吧!相信你一定会进步的!“)
A、 正确。
B、 错误。
C、根据条件决定。
D、 Pyhton 中没有 elif 语句。
正确答案:
2、for i in [1, 0]:
print(i+1)
以上代码输出结果为?
A、2
1
B、 [2,1]
C、 [1,0]
D、 0
正确答案:
3、i = sum = 0
while i <= 4:
sum += i
i = i+1
print(sum)
以上代码输出的结果是?
A、 0
B、 10
C、 6
D、 以上结果都不对
正确答案:
4、#有下面的程序段
k=int(input ("k= "))
x=-1
if k<=10 and k >0:
if k >5:
if k>8:
x=0
else:
x=1
else:
if k>2:
x=3
else:
x=4
print("x=",x)
#其中k取那组值时 x =3 ( )
A、 3,4,5
B、 3,4
C、 5,6,7
D、 4,5
正确答案:
5、正则表达式是一种用来匹配字符串的强有力的武器。
设计思想是用一种描述性的语言来给字符串定义一个规则,
凡是符合规则的字符串,就认为它“匹配”,否则就不匹配。
#示例:
import re # 导入Python的re模块
pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$'
#中国移动手机号码规则 以13开头,第3位是【4-9】之一,后面是8位数字。
# 或者以15开头,第3位是【01289】之一,后面是8位数字。
print("为你检验某一手机号码是否是有效的中国移动手机号码。“)
mobile =input( '请输入手机号码:')
match = re.match(pattern,mobile) # 进行模式匹配
if match == None: # 判断是否为None,为真表示匹配失败
print(mobile,'不是有效的中国移动手机号码。')
else:
print(mobile,'是有效的中国移动手机号码。')
上面示例语句中,哪些语句是体现正则表达式应用的关键?
A、
import re
pattern = r'(13[4-9]\d{8})|(15[01289]\d{8})$'
match = re.match(pattern,mobile)
B、
mobile =input( '请输入手机号码:')
print(mobile,'不是有效的中国移动手机号码。')
C、
print("为你检验某一手机号码是否是有效的中国移动手机号码。“)
mobile =input( '请输入手机号码:')
D、
if match == None: # 判断是否为None,为真表示匹配失败
print(mobile,'不是有效的中国移动手机号码。')
else:
print(mobile,'是有效的中国移动手机号码。')
正确答案:
6、正则表达式模块re的____方法用来在整个字符串中进行指定模式的匹配。
A、 sub()
B、
findall()
C、 search()
D、
match()
正确答案:
解析:
import re
re.match #从开始位置开始匹配,如果开头没有则无
re.search #搜索整个字符串
re.findall #搜索整个字符串,返回一个list
[object Object]
7、正则表达式模块re的____方法用来在字符串开始处进行指定模式的匹配。
A、 match()
B、 search()
C、 sub()
D、 split()
正确答案:
解析:![]()
8、以下哪个 if 语句是正确的?
B、 if (a >= 22)
正确答案:
9、以下代码中哪个是正确的 for 循环语句是?
正确答案:
10、以下代码中哪个是正确的 while 循环语句是?
正确答案:
二、多选题(共10题,50分)
1、关于正则表达式,下面描述正确的是: ( )
A、 正则表达式元字符“^”一般用来表示从字符串开始处进行匹配,用在一对方括号中的时候则表示反向匹配,不匹配方括号中的字符。
B、 正则表达式元字符“\s”用来匹配任意空白字符。
C、 正则表达式’^\d{18}|\d{15}$’只能检查给定字符串是否为18位或15位数字字符,并不能保证一定是合法的身份证号。
D、 正则表达式 元字符“\d”用来匹配任意数字字符。
正确答案:
解析:
2、阅读下面python程序:
for i in range(1, 10): # 外循环,控制行数 循环9次
for j in range(1, i+1):
print(i, "*", j, "=", i*j, end=" ") # 在print语句中end=" "表示不换行
print("") # 换行
下面叙述正确的是( )。
A、 这是一个利用到双循环技术的程序,
B、 程序的功能是:输出一个9行9列排列的乘法九九表。
C、 程序的功能是:输出一个9行10列排列的乘法表。
D、循环语句的基本格式是:
for 循环变量 in range(初值, 终值, 步长值):
循环体语句
程序中,i、j是循环变量,i 控制外循环次数,j 控制内循环次数。 步长值默认为1。
正确答案:
3、定义函数的一般格式:
def 函数名(参数):
函数体
return 返回值 # 若函数无返回,return可以省略
函数调用时,通过函数名调用。
阅读下面程序:
def sun(n):
s=0
for i in range(1, n+1):
s =s + i
return s
k = 100
ss=sun(k)
print(ss)
下面叙述正确的是( )。
A、 程序中,定义了一个名称为sun的函数,函数的功能是计算1+2+3+...+n之和,并返回计算和的值。
B、代码段:
k = 100
ss=sun(k)
print(ss)
的作用是调用 函数sun 计算1+2+3+...+100的值,并输出。
C、增加语句:
print(sun(50))
可以输出1+2+3+...+50之和。
D、 此程序,可以省略 return s
正确答案:
4、#函数的应用
import math
x=eval(input(" 输入一个数 x= "))
a=abs(x) #求绝对值
t=math.sqrt(a) # 计算平方根
print(t) #输出结果
关于上面程序,下面叙述正确的是( )。
A、 程序的功能是:输入一个数,计算其绝对值的平方根,并输出其结果。
B、用input( )函数从键盘上输入数据,从键盘上输入的任何数据都当作字符处理。
当需要输入数值时,用eval()函数将字符转换成数值。
abs(x)是计算x的绝对值的函数。
C、import math 是导入模块语句
t=math.sqrt(a) 是引用math 模块的计算平方根函数sqrt(),计算a有平方根。
D、 当输入的是非数值串时(如:123abc),程序运行会出错。
正确答案:
5、下面叙述正确的是( )。
A、很多程序都提供了“空语句”支持,Python 也不例外,Python 的 pass 语句就是空语句。
有时候程序需要占一个位、放一条语句,但又不希望这条语句做任何事情,此时就可通过 pass 语句来实现。
B、break和continue语句用在while和for循环中,
break跳出整个循环,而continue跳出本次循环 。
C、下面程序代码,可以输出九九乘法表。
for i in range(1,10):
for j in range(1,10):
print('{0}*{1}={2:2}'.format(i,j ,i * j),end=" ") #格式化输出
print()
D、编程:求2+4+6+8+……+n<100成立的最大的n值
i = 2; sum = 0
while True:
sum+= i
if sum>=100:
break
else:
i+= 2
print("the max number is ",i)
这程序是正确的。
正确答案:
6、下面叙述正确的是( )。
A、 尽管可以使用import语句一次导入任意多个标准库或扩展库,但是仍建议每次只导入一个标准库或扩展库。
B、 为了让代码更加紧凑,编写Python程序时应尽量避免加入空格和空行。
C、 Python列表、元组、字符串都属于有序序列。
D、 对于带有else子句的循环语句,如果是因为循环条件表达式不成立而自然结束循环,则执行else子句中的代码。
正确答案:
解析:
7、编写程序,实现分段函数计算:
下面程序设计,正确的是( )
A、x= eval(input("x= "))
if x<0 :
y=8*x-7
elif x>10:
y=-3*x*x+2*x-5
else :
y=2*x**3+6
print("y=",y)
B、x= eval(input("x= "))
if x<0 :
y=8*x-7
elif x>=0 and x<=10:
y=2*x**3+6
else :
y=-3*x*x+2*x-5
print("y=",y)
C、x= eval(input("x= "))
if x<0 :
y=8x-7
elif x>=0 and x<=10:
y=2x**3+6
else :
y=-3x*x+2x-5
print("y=",y)
D、def y(x):
if x<0 :
y=8*x-7
elif x>=0 and x<=10:
y=2*x**3+6
else :
y=-3*x*x+2*x-5
return y
x= eval(input("x= "))
print( "y= ",y(x) )
正确答案:
8、设 a=80;b=90
交换两个变量的值,下面程序段,正确的是( )
A、 a,b=b,a
B、 a=b;b=a
C、t=a
a=b
b=t
D、 a;b=b;a
正确答案:
9、下面循环结构程序,出现“死循环”的是( )。
A、i=1
while i<=10:
if i%2==0:
print("### 你对此事要负责! ###")
continue
print(i,end='\n')
i+=1
B、i=1
while i<=10:
if i%5==0:
print("### 你对此事要负责! ###")
break
print(i,end='\n')
i+=1
C、for i in range(10) :
if i%2==0:
print("### 你对此事要负责! ###")
continue
print(i,end='\n')
D、i=10
while i<=10:
print(i,end=' ')
i-=1
else:
i+=1
正确答案:
10、编写计算 s=1+2+3+...+100的程序,
下面能完成计算任务的程序有( )。
A、
s=0
for i in range(101):
s+=i
print(s)
B、
s=0;i=0
while i<=100:
s+=i
i+=1
print(s)
C、s=s1=s2=0;i=0
while i<100:
i+=1
if i%2==0:
s1=s1+i
else:
s2=s2+i
s=s1+s2
print(s)
D、s=0;i=0
while i<100:
s+=i
i+=1
print(s)
正确答案:

