感谢中国大学MOOC提供的学习平台,以下内容皆为自己测试的记录
测验1: Python基本语法元素 (第1周)
单项选择题
点击选项选择正确答案,每题有且仅有一个正确答案
1
1 分
#0032003700380032003300331588486939470Guido van Rossum正式对外发布Python版本的年份是:
A
2008
B
1991
C
1998
D
2002
正确答案 B
Python成功了,所以早年的开发历史也受到关注,以下是Guido自述的启动阶段时间表:
"
December, 1989 Implementation started
1990 Internal releases at CWI
February 20, 1991 0.9.0 (released to alt.sources)
February, 1991 0.9.1
"
鉴于Internal release不算对外发布,普遍认为Python语言诞生于1991年。
2
1 分
#0032003700380032003300331588486939473以下关于Python语言中“缩进”说法正确的是:
A
缩进在程序中长度统一且强制使用
B
缩进统一为4个空格
C
缩进是非强制的,仅为了提高代码可读性
D
缩进可以用在任何语句之后,表示语句间的包含关系
正确答案 A
Python语言的缩进只要统一即可,不一定是4个空格(尽管这是惯例)。
3
1 分
#0032003700380032003300331588486939475以下不属于IPO模型的是:
A
Input
B
Process
C
Program
D
Output
正确答案 C
IPO:Input Process Output
4
1 分
#0032003700380032003300331588486939476字符串是一个字符序列,给字符串s,以下表示s从右侧向左第三个字符的是:
A
s[3]
B
s[0:-3]
C
s[:-3]
D
s[-3]
正确答案 D
字符串有正向递增和反向递减两套序号体系
5
1 分
#0032003700380032003300331588486939479以下不是Python语言合法命名的是:
A
MyGod
B
MyGod5
C
5MyGod
D
_MyGod_
正确答案 C
合法命名的首字符不能是数字。
6
1 分
#0032003700380032003300331588486939481在Python中,用于获取用户输入的函数是:
A
eval()
B
print()
C
get()
D
input()
正确答案 D
get()不是Python内置函数,获得用户输入只有一种方式:input()。
7
1 分
#0032003700380032003300331588486939483下面不属于Python保留字的是:
A
type
B
import
C
elif
D
def
正确答案 A
type不是Python保留字,而是内置函数 type()。
8
1 分
#0032003700380032003300331588486939484以下不是Python数据类型的是:
A
字符串
B
实数
C
整数
D
列表
正确答案 B
实数是数学中的概念,在Python中对应浮点数。
9
1 分
#0032003700380032003300331588486939486哪个选项给出的保留字不直接用于表示分支结构?
A
elif
B
in
C
else
D
if
正确答案 B
if-elif-else是分支表达,in用来进行成员判断。
10
1 分
#0032003700380032003300331588486939488利用print()格式化输出,哪个选项用于控制浮点数的小数点后两位输出?
A
{:.2f}
B
{:.2}
C
{.2}
D
{.2f}
正确答案 A
:.2f 哪一个都不能少
300331588487018712
获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:
如果输入值是0,直接输出"Hello World"
如果输入值大于0,以两个字符一行方式输出"Hello World"(空格也是字符)
如果输入值小于0,以垂直方式输出"Hello World"
输入 | 输出 | |
---|---|---|
示例 1 | 0 | Hello World |
a = int(input())
hi = 'Hello World'
if a == 0:
print(hi)
elif a > 0:
for i in range(0, len(hi)-1, 2):
print(hi[i], hi[i + 1])
print('d')
else:
for i in hi:
print(i)
03300331588487042308
获得用户输入的一个字符串,格式如下:
M OP N
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)
根据OP,输出M OP N的运算结果,统一保存小数点后2位。
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。
输入 | 输出 | |
---|---|---|
示例 1 | 10 + 100 1 / 20 | 110.00 0.05 |
a = input()
print('{:.2f}'.format(eval(a)))
测验2: Python基本图形绘制 (第2周)
单项选择题
点击选项选择正确答案,每题有且仅有一个正确答案
1
1 分
#0032003700380032003300331588487104032哪个选项不能正确引用turtle库进而使用setup()函数?
A
import setup from turtle
B
import turtle as t
C
from turtle import*
D
import turtle
正确答案 A
import只有三种使用方法,以turtle库为例:
import turtle
from turtle import setup 或 from turtle import *
import turtle as t (其中t是别名,可以更换其他名称)
2
1 分
#0032003700380032003300331588487104034关于turtle库,哪个选项的描述是错误的?
A
turtle坐标系的原点默认在屏幕左上角
B
turtle库最早成功应用于LOGO编程语言
C
turtle绘图体系以水平右侧为绝对方位的0度
D
turtle库是一个直观有趣的图形绘制函数库
正确答案 A
turtle坐标系的原点默认在窗体正中间
3
1 分
#0032003700380032003300331588487104038哪个选项是turtle绘图中角度坐标系的绝对0度方向?
A
画布正左方
B
画布正下方
C
画布正右方
D
画布正上方
正确答案 C
坐标系类似这样,角度坐标系的绝对0度方向是右侧
4
1 分
#0032003700380032003300331588487104041
哪个选项是下面代码的执行结果?
turtle.circle(-90,90)
A
绘制一个半径为90像素的弧形,圆心在小海龟当前行进的左侧
B
绘制一个半径为90像素的弧形,圆心在小海龟当前行进的右侧
C
绘制一个半径为90像素的弧形,圆心在画布正中心
D
绘制一个半径为90像素的整圆形
正确答案 B
circle(x, y) 表示 以x长度为半径,y为角度,当前方向左侧x出为圆心,画圆。其中x和y都可以是负数,相应取反。
5
1 分
#0032003700380032003300331588487104043关于turtle库绘图函数,哪个选项的描述是错误的?
A
turtle.seth(to_angle)函数的作用是设置小海龟当前行进方向为to_angle,to_angle是角度的整数值
B
turtle.fd(distance)函数的作用是向小海龟当前行进方向前进distance距离
C
turtle.circle(radius, extent=None)函数的作用是绘制一个椭圆形,extent参数可选
D
turtle.pensize(size)函数的作用是改变画笔的宽度为size像素
正确答案 C
circle()函数不能绘制椭圆形。
6
1 分
#0032003700380032003300331588487104044关于turtle库的画笔控制函数,哪个选项的描述是错误的?
A
turtle.width()和turtle.pensize()都可以用来设置画笔尺寸
B
turtle.pendown()作用是落下画笔,并移动画笔绘制一个点
C
turtle.penup()的别名有turtle.pu(),turtle.up()
D
turtle.colormode()的作用是设置画笔RGB颜色的表示模式
正确答案 B
turtle.pendown()只是放下画笔,并不绘制任何内容。
7
1 分
#0032003700380032003300331588487104046哪个选项不能改变turtle画笔的运行方向?
A
right()
B
seth()
C
bk()
D
left()
正确答案 C
bk()只能后退,但不改变方向,"后退"不是"转向"。
8
1 分
#0032003700380032003300331588487104049哪个选项所列保留字能够实现对一组语句的循环执行?
A
if和else
B
while和def
C
for和in
D
range()
正确答案 C
循环相关保留字是:for..in和while,但def用于定义函数,不相关。
9
1 分
#0032003700380032003300331588487104050哪个选项能够使用turtle库绘制一个半圆形?
A
turtle.circle(100, 90)
B
turtle.circle(100)
C
turtle.fd(100)
D
turtle.circle(100, -180)
正确答案 D
circle(x,y)函数的用法,绘制半圆,第二个参数y是180的奇数倍。
10
1 分
#0032003700380032003300331588487104052哪个选项对turtle.done()的描述是正确的?
A
turtle.done()用来隐藏turtle绘制画笔,一般放在代码最后
B
turtle.done()用来暂停画笔绘制,用户响应后还可以继续绘制
C
turtle.done()用来停止画笔绘制,但绘图窗体不关闭
D
turtle.done()放在代码最后,是turtle绘图的必要要求,表示绘制完成
正确答案 C
建议在每个turtle绘图最后增加turtle.done()。
3300331588487136939
使用turtle库,绘制一个八边形。
注意:这是一个自动评阅题目,请补充"编程模板"中横线内容,横线不保留。
八边形效果如下:
#请在横线中填写Python表达式或语句,实现所需要的功能
#注意:补充代码将以匹配方式评阅,代码中不要出现空格
import turtle as t
t.pensize(2)
for i in range(8):
t.fd(100)
t.left(45)
使用turtle库,绘制一个八角图形。
注意:这是一个自动评阅题目,请补充"编程模板"中横线内容,横线不保留。
八角图形效果如下:
#请在横线中填写Python表达式或语句,实现所需要的功能
#注意:补充代码将以匹配方式评阅,代码中不要出现空格
import turtle as t
t.pensize(2)
for i in range(8):
t.fd(150)
t.left(135)
测验3: 基本数据类型 (第3周)
单项选择题
点击选项选择正确答案,每题有且仅有一个正确答案
1
1 分
#0032003700380032003300331588487176741pow(x, 0.5)能够计算x的平方根,计算负数的平方根将产生:
A
复数
B
无输出
C
程序崩溃
D
ValueError错误
正确答案 A
>>> pow(-1, 0.5)(6.123233995736766e-17+1j)
2
1 分
#0032003700380032003300331588487176743以下关于字符串.strip()方法功能说明正确的是:
A
去掉字符串两侧指定字符
B
按照指定字符分割字符串为数组
C
连接两个字符串序列
D
替换字符串中特定字符
正确答案 A
"去掉字符串两侧指定字符"对应功能是.strip()
"按照指定字符分割字符串为数组"对应功能是.split()
"替换字符串中特定字符"对应功能是.replace()
"连接两个字符串序列"对应功能是+操作符
3
1 分
#0032003700380032003300331588487176745字符串是一个连续的字符序列,哪个选项可以实现打印字符信息的换行?
A
使用“换行”
B
使用空格
C
使用转义符\
D
使用
正确答案 D
换行符 ,与C语言中一致。
4
1 分
#0032003700380032003300331588487176746val=pow(2,1000),请用一行代码返回val结果的长度值。
A
len(str(val))
B
以后均不正确
C
len(val)
D
len(pow(2,1000))
正确答案 A
len(str(val))首先通过str(val)将数字类型val变成字符串,再通过len()获得字符串长度,即val的数字个数。
5
1 分
#0032003700380032003300331588487176747下面关于time库引用不正确的是?
A
from * import time
B
import time
C
from time import strftime
D
from time import *
正确答案 A
from * import time 应该是: from time import *
6
1 分
#0032003700380032003300331588487176749哪个选项不是Python语言的整数类型?
A
0B1010
B
88
C
0E99
D
0x9a
正确答案 C
十进制:一般表示
二进制:0b 或 0B 开头
八进制:0o 或 0O 开头
十六进制:0x 或 0X 开头
没有0E开头
7
1 分
#0032003700380032003300331588487176751关于整数类型的4种进制表示,哪个选项的描述是正确的?
A
二进制、四进制、八进制、十进制
B
二进制、四进制、十进制、十六进制
C
二进制、四进制、八进制、十六进制
D
二进制、八进制、十进制、十六进制
正确答案 D
Python不支持四进制整数
8
1 分
#0032003700380032003300331588487176752哪个选项是Python语言%运算符的含义?
A
x与y之商的余数
B
x与y的整数商
C
x与y之商
D
x的y次幂
正确答案 A
%是取余数,与C语言相同。
9
1 分
#0032003700380032003300331588487176753
哪个选项是下面代码的执行结果?
name="Python语言程序设计课程"print(name[0],name[2:-2],name[-1])
A
P thon语言程序设计课 程
B
P thon语言程序设计 程
C
P thon语言程序设计课 课
D
P thon语言程序设计 课
正确答案 B
s[N:M]表示对字符串s的切片操作,从N到M,但不包含M
10
1 分
#0032003700380032003300331588487176754
哪个选项是下面代码的执行结果?
s='PYTHON'print("{0:3}".format(s))
A
PYTHON
B
PYTHON
C
PYT
D
PYTH
正确答案 A
{0:3}表示输出的宽度是3,但如果字符串超过长度3,则以字符串长度显示。
获得用户输入的一个整数a,计算a的平方根,保留小数点后3位,并打印输出。
输出结果采用宽度30个字符、右对齐输出、多余字符采用加号(+)填充。
如果结果超过30个字符,则以结果宽度为准。
输入 | 输出 | |
---|---|---|
示例 1 | 10 | +++++++++++++++++++++++++3.162 |
num = int(input())
result = pow(num, 0.5)
print("{:+>30.3f}".format(result))
获得输入的一个字符串s,以字符减号(-)分割s,将其中首尾两段用加号(+)组合后输出。
输入 | 输出 | |
---|---|---|
示例 1 | Alice-Bob-Charis-David-Eric-Flurry | Alice+Flurry |
a = input()
result = a.split('-')
print(f'{result[0]}+{result[-1]}')
测验4: 程序的控制结构 (第4周)
单项选择题
点击选项选择正确答案,每题有且仅有一个正确答案
1
1 分
#0032003700380032003300331588487349438
for var in ___:
print(var)
哪个选项不符合上述程序空白处的语法要求?
A
{1;2;3;4;5}
B
(1,2,3)
C
"Hello"
D
range(0,10)
正确答案 A
for .. in .. 中 in 的后面需要是一个迭代类型(组合类型),{1;2;3;4;5}不是Python的有效数据类型。
2
1 分
#0032003700380032003300331588487349440
for i in range(0,2):
print(i)
哪个选项是以上程序的输出结果?
A
1
B
0 1 2
C
1 2
D
0 1
正确答案 D
range(0, 2)输出两个值:0和1。
3
1 分
#0032003700380032003300331588487349442
k=10000while k>1:
print(k)
k=k/2
哪个选项给出了上述程序的输出次数?
A
15
B
14
C
1000
D
13
正确答案 B
请跟随程序计算或在IDLE中运行程序获得结果。
4
1 分
#0032003700380032003300331588487349444哪个选项是程序的三种基本结构?
A
过程结构,对象结构,函数结构
B
顺序结构,跳转结构,循环结构
C
顺序结构,循环结构,分支结构
D
过程结构,循环结构,分支结构
正确答案 C
无对象结构、跳转结构、过程结构等说法。
5
1 分
#0032003700380032003300331588487349446哪个选项关于循环结构的描述是错误的?
A
循环是一种程序的基本控制结构
B
条件循环和遍历循环结构都是基本的循环结构
C
循环是程序根据条件判断结果向后反复执行的一种运行方式
D
死循环无法退出,没有任何作用
正确答案 D
死循环能够用于测试性能,形式上的死循环可以用break来退出,例如:
x = 10while True:
x = x - 1
if x == 1:
break
死循环是有其作用的。
6
1 分
#0032003700380032003300331588487349449关于Python语句P=-P,哪个选项的描述是正确的?
A
给P赋值为它的负数
B
P的绝对值
C
P=0
D
P等于它的负数
正确答案 A
Python中的=是赋值符号,==是判断相等性的等于符号。
7
1 分
#0032003700380032003300331588487349450哪个选项是用来判断当前Python语句在分支结构中?
A
缩进
B
大括号
C
引号
D
冒号
正确答案 A
缩进表达层次关系。
8
1 分
#0032003700380032003300331588487349452
哪个选项是下面代码的执行结果?
for s in "PYTHON":
if s=="T":
continue
print(s,end="")
A
PYHON
B
TT
C
PYTHON
D
PY
正确答案 A
continue结束当次循环,但不跳出当前循环。
9
1 分
#0032003700380032003300331588487349453哪个选项是random库中用于生成随机小数的函数?
A
randrange()
B
random()
C
randint()
D
getrandbits()
正确答案 B
randint()、getrandbits()、randrange()都产生随机整数,random()产生0到1之间的随机小数。
10
1 分
#0032003700380032003300331588487349455关于try-except,哪个选项的描述是错误的?
A
NameError是一种异常类型
B
表达了一种分支结构的特点
C
使用了异常处理,程序将不会再出错
D
用于对程序的异常进行捕捉和处理
正确答案 C
使用了异常处理,程序可能运行不会出错,但逻辑上可能出错。程序错误是一个大概念,不仅指代码运行错误,更代表功能逻辑错误。
描述
四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数。
请输出所有4位数的四位玫瑰数,按照从小到大顺序,每个数字一行。
输出仅表示格式,不表示对错。
输入 | 输出 | |
---|---|---|
示例 1 | 无 | 1111 2222 3333 |
for i in range(1000, 10000):
t = str(i)
if pow(eval(t[0]),4) + pow(eval(t[1]),4)
+ pow(eval(t[2]),4)+ pow(eval(t[3]),4) == i :
print(i)
求100以内所有素数之和并输出。
素数指从大于1,且仅能被1和自己整除的整数。
提示:可以逐一判断100以内每个数是否为素数,然后求和。
该题目没有输入
输入 | 输出 | |
---|---|---|
示例 1 | 1234(这是示例,不是真实输出) |
result = 0
for i in range(2,101):
if i%2==0 and i!=2:
continue
sign = True
for j in range(2,i):
if i%j==0:
sign =False
break
if sign:
result+=i
print(result)
单项选择题
点击选项选择正确答案,每题有且仅有一个正确答案
1
1 分
#0032003700380032003300331588487401105以下选项不是函数作用的是:
A
提高代码执行速度
B
降低编程复杂度
C
复用代码
D
增强代码可读性
正确答案 A
函数不能直接提高代码执行速度。
2
1 分
#0032003700380032003300331588487401107
下列程序的输出结果为:
def f(a,b):
a=4
return a+bdef main():
a=5
b=6
print(f(a,b),a+b)main()
A
11 11
B
11 10
C
10 10
D
10 11
正确答案 D
这里没有全局变量,都是函数局部变量的运算。
3
1 分
#0032003700380032003300331588487401108
以下关于Python函数说法错误的是:
def func(a,b):
c=a**2+b
b=a
return c
a=10
b=100
c=func(a,b)+a
A
执行该函数后,变量b的值为100
B
该函数名称为func
C
执行该函数后,变量c的值为200
D
执行该函数后,变量a的值为10
正确答案 C
这里没有全局变量,请在IDLE中执行代码观察结果。
4
1 分
#0032003700380032003300331588487401110以下关于函数调用描述正确的是:
A
自定义函数调用前必须定义
B
函数在调用前不需要定义,拿来即用就好
C
Python内置函数调用前需要引用相应的库
D
函数和调用只能发生在同一个文件中
正确答案 A
函数调用前必须已经存在函数定义,否则无法执行。
Python内置函数直接使用,不需要引用任何模块。
5
1 分
#0032003700380032003300331588487401112以下关于模块化设计描述错误的是:
A
应尽可能合理划分功能块,功能块内部耦合度高
B
应尽可能合理划分功能块,功能块内部耦合度低
C
高耦合度的特点是复用较为困难
D
模块间关系尽可能简单,模块之间耦合度低
正确答案 B
模块内高耦合、模块间低耦合。
6
1 分
#0032003700380032003300331588487401116以下对递归描述错误的是:
A
执行效率高
B
书写简单
C
一定要有基例
D
递归程序都可以有非递归编写方法
正确答案 A
递归不提高程序执行效率。
任何递归程序都可以通过堆栈或队列变成非递归程序(这是程序的高级应用)。
7
1 分
#0032003700380032003300331588487401117以下关于函数说法错误的是:
A
函数是一段具有特定功能的、可重用的语句组
B
函数可以看做是一段具有名字的子程序
C
函数通过函数名来调用
D
对函数的使用必须了解其内部实现原理
正确答案 D
调用函数不需要知道函数内部实现原理,只需要知道调用方法(即接口)即可。
8
1 分
#0032003700380032003300331588487401120哪个选项对于函数的定义是错误的?
A
def vfunc(a,*b):
B
def vfunc(a,b=2):
C
def vfunc(a,b):
D
def vfunc(*a,b):
正确答案 D
def vfunc(*a, b) 是错误的定义:*a表示可变参数,可变参数只能放在函数参数的最后。
9
1 分
#0032003700380032003300331588487401121关于return语句,以下选项描述正确的是:
A
函数中最多只有一个return语句
B
return只能返回一个值
C
函数必须有一个return语句
D
函数可以没有return语句
正确答案 D
函数可以包含0个或多个return语句
10
1 分
#0032003700380032003300331588487401123以下关于递归函数基例的说法错误的是:
A
每个递归函数都只能有一个基例
B
递归函数的基例不再进行递归
C
递归函数的基例决定递归的深度
D
递归函数必须有基例
正确答案 A
每个递归函数至少存在一个基例,但可能存在多个基例。
补充编程模板中代码,完成如下功能:
以整数17为随机数种子,获取用户输入整数N为长度,产生3个长度为N位的密码,密码的每位是一个数字。每个密码单独一行输出。
产生密码采用random.randint()函数。
输入 | 输出 | |
---|---|---|
示例 1 | 3 | 634 524 926 |
#请在...补充代码
import random
def genpwd(length):
a = 10**(length-1)
b = 10**length - 1
return "{}".format(random.randint(a, b))
length = eval(input())
random.seed(17)
for i in range(3):
print(genpwd(length))
31588487431757
补充编程模板中代码,完成如下功能:
获得用户输入数字N,计算并输出从N开始的5个质数,单行输出,质数间用逗号,分割。
注意:需要考虑用户输入的数字N可能是浮点数,应对输入取整数;最后一个输出后不用逗号。
输入 | 输出 | |
---|---|---|
示例 1 | 12 | 13,17,19,23,29 |
# 请在...补充一行或多行代码
def prime(m):
for i in range(2,m):
if m % i == 0:
return False
return True
n = eval(input())
a = int(n)
a = a+1 if a < n else a
count = 5
while count > 0:
if prime(a):
if count > 1:
print(a, end=",")
else:
print(a, end="")
count -= 1
a += 1