NCTPython编程一级模拟卷4含答案.docx
《NCTPython编程一级模拟卷4含答案.docx》由会员分享,可在线阅读,更多相关《NCTPython编程一级模拟卷4含答案.docx(13页珍藏版)》请在冰豆网上搜索。
NCTPython编程一级模拟卷4含答案
NCT-Python编程一级-模拟卷4(含答案
一、选择题
1.以下Python表达式中,哪项的值与其它三项不同()
A.len(“mynameisjames”.split())B.int(4.99)
C.sum([1,2,1,1])D.max([1,2,3,4])
2.已知a=-2,b=10/3,则python表达式round(b,1)+abs(a)的值为()
A.1.3B.5.33C.5.4D.5.3
3.已知列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)的值为()
A.5B.34C.7D.12
4.以下Python代码输出结果中说法正确的是()。
x=0
foriinrange(1,100):
x=x+i
print(x)
A.1+100的和B.1+99的和
C.1~99所有整数的和D.1~100所有整数的和
5.有如下python程序段:
a="Doingisbetterthansaying."
print(r"\n"+a[:
15])
该程序运行后,输出的结果是()
A.直接输出:
'\nDoingisbetter'
B.直接输出:
\nDoingisbetterth
C.直接输出:
\nDoingisbetter
D.先换行,然后在新的一行中输出:
Doingisbetter
6.下面哪个不是Python合法的标识符()
A.int_3B.30XLC.selfD._abc
7.在PythonIDLE编辑器中书写正确的表达式()
A.b**2-4acB.1/2gt2C.pi*r^2D.2*pi*r
8.Python表达式中,可以使用()控制运算的优先顺序。
A.圆括号()B.方括号[]C.大括号{}D.尖括号<>
9.在python中,运行下列程序,正确的结果是()
x=1
whilex>0:
x=x+1
print(x)
A.1B.123456789…………………
C.无输出D.100
10.以下哪种语言属于高级程序设计语言()
①python②c++③visualbasic④java
A.①②③B.②③C.②③④D.①②③④
11.在Python语言中,用来定义函数的关键字是()。
A.returnB.defC.functionD.import
12.在Python中,若x=10,y=20,下面程序段执行后,变量x、y的值分别是()
x=y
y=x
A.10、10B.10、20C.20、20D.20、10
13.关于Python语言的特点,以下选项描述正确的是()
A.Python语言不支持面向对象B.Python语言是解释型语言
C.Python语言是编译型语言D.Python语言是非跨平台语言
14.在Python中要交换变量a和b中的值,应使用的语句组是()。
A.a,b=b,aB.a=c;a=b;b=c
C.a=b;b=aD.c=a;b=a;b=c
15.在python中,以下哪个选项a的数据类型为整型()
A.a=5B.a=input()C.a='5'D.a=5.0
二、程序填空
16.(项目情境)一元二次方程ax2+bx+c=0(a≠0),当b2-4ac≥0,方程有两个不同的实数根,当b2-4ac<0时,方程无实数根。
(问题求解)下面的python程序实现的功能是判断方程是否有实数根。
请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。
importmath
a=int(input("请输入a的值:
"))
b=int(input("请输入b的值:
"))
c=int(input("请输入c的值:
"))
d=_____#将表达式b2-4ac的值赋给变量d
if____
print("x1=",(-b+math.sqrt(d))/(2*a))#输出方程的其中一个实数根
print("x2=",(_________)#输出方程的另一个实数根
else:
_________#输出“方程无实数根”
17.某字符转置算法描述如下:
将字符串(均为大写字符)s依次转换为相对应的数值(字符A~Z对应数值1~26);
·转换后的数值以K个数据为一段,将n个待处理的数据依次分割成若干段(最后一段不足部分用0来补充);
每一段中K个数据与K*K转置矩阵进行乘法运算;
将乘法运算得到的每一个结果值除以26求余数,依次转换成相应字符(数值1~26对应字符A~Z),最后按原始字符串长度输出。
乘法运算规则如下:
第i个元素c(i)=第j个元素a(j)*转置矩阵第j行第i个元素b(t)的乘积之和(其中j=1,2…K)
例如:
字符串s=PYTHON,区块大小K=4,的转置过程如下:
(1)根据算法描述,上述示例中,字符“N”的相乘结果(即图中(★)处)为________。
(2)请在划线处填入合适代码。
PrivateSubCommandl_Click()
Dima(1To100)AsInteger´存储字符串,长度不超过100个字符
Dimb(1To100)AsInteger存储转置矩阵,长度不超过10*10
Dimc(1To100)AsLong
DimsAsString,tmpAsString
DimkAsInteger,tAsInteger,iAsInteger,jAsInteger
DimnAsInteger,mAsInteger,lensAsInteger
s=Textl.Text´在Textl中输入原始字符串
k=Val(Text2.Text)´在Text2中输入区块大小K
Randomize
Fori=1Tok^2
b(i)=Int(Rnd*9)+1
tmp=tmp十Str(b(i))
IfiModk=0Then
List2.AddItemtmp
tmp="".
EndIf
Nexti
lens=Len(s):
n=lens
Fori=1Ton
tmp=Mid(s,i,1)
①__________
Listl.AddItemStr(a(i))
Nexti
DoWhilenModk<>0
n=n十1
a(n)=0
Listl.AddItemStr(a(n))
Loop
Fori=1Ton
m=(i―1)Modk+1
t=1
Forj=②__________
c(i)=a(j)*b((m-1)*k+t)+c(i)
t=t+1
Nextj
Nexti
Fori=1Ton
List3.AddItemStr(c(i))
Nexti
s=″″
Fori=1Tolens
③__________
s=s+Chr(t+64)}
Nexti
Text3.Text=s´在Text3中输出转置后的字符串
EndSub
18.现在有一个程序用来解决以下问题:
如果有总量共1020个西瓜,第一天卖掉总数的一半后多卖出了两个,以后每天卖剩下的一半多两个,那么几天以后卖完呢?
请将下列程序补充完整。
tc=1020
c=0
while______________:
tc=tc-(tc/2+2)
_____________
print(c)
19.操作说明:
编写一个程序实现以下功能,将程序以“Y:
/3/3.py”作为文件名保存。
题目:
设计100以内的数中能同时被3或5整除的个数。
20.编写程序,用*打印一个如下所示的等腰直角三角形,将测试结果截图。
*
**
***
****
21.请在空格处填写正确的代码,使程序完善。
实现功能:
用辗转相除法求解两个正整数的最大公约数。
x=int(input('请输入第一个正整数:
'))
y=int(input('请输入第二个正整数:
'))
m=max(x,y)#找出x,y中的最大值
n=min(x,y)#找出x,y中的最小值
r=m%n#求得最大值除以最小值后的余数
whiler!
=0:
#如果余数不等0,则进行以下循环
m=________#把最小值赋给m
n=_________#把余数赋给n
r=m%n#求得最大值除以最小值后的余数
print('这两个数的最大公约数为:
',______)
input("运行完毕,请按任意键退出....")
【参考答案】***试卷处理标记,请不要删除
一、选择题
1.C
【详解】
本题考查的是Python函数。
split()通过指定分隔符对字符串进行切片,无参数即分隔所有,len()方法返回对象(字符、列表、元组等)长度或项目个数,故len(“myname
解析:
C
【详解】
本题考查的是Python函数。
split()通过指定分隔符对字符串进行切片,无参数即分隔所有,len()方法返回对象(字符、列表、元组等)长度或项目个数,故len(“mynameisjames”.split())=4;int函数可以将数字转换为整数,直接取整,不会四舍五入,int(4.99)=4;sum()方法对系列进行求和计算,sum([1,2,1,1])=5;max()方法返回给定参数的最大值,参数可以为序列,max([1,2,3,4])=4。
故应选C。
2.D
【详解】
本题主要考查Python表达式的运算。
round(x,n)方法返回x的小数点四舍五入到n个数字,abs是求绝对值,已知a=-2,b=10/3,则表达式round(b,1)+abs(
解析:
D
【详解】
本题主要考查Python表达式的运算。
round(x,n)方法返回x的小数点四舍五入到n个数字,abs是求绝对值,已知a=-2,b=10/3,则表达式round(b,1)+abs(a)=3.3+2=5.3,故本题选D选项。
3.D
【详解】
本题主要考查Python表达式的运算。
列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)=5+7=12,故本题选D选项。
解析:
D
【详解】
本题主要考查Python表达式的运算。
列表list1=[8,22,34,9,7],则python表达式len(list1)+min(list1)=5+7=12,故本题选D选项。
4.C
【详解】
本题考查的是Python代码程序。
本题的关键点是range()函数,其取到的区间数值为前闭后开,所以为1-99的整数。
循环过程就是执行1-99所有整数的求和过程。
故答案为C。
解析:
C
【详解】
本题考查的是Python代码程序。
本题的关键点是range()函数,其取到的区间数值为前闭后开,所以为1-99的整数。
循环过程就是执行1-99所有整数的求和过程。
故答案为C。
5.C
【详解】
本题主要考查Python程序运行。
r标识\后面的字符不转义,a[:
15]表示从a的右边往左第15位到最左边全部输出,故该程序运行后,输出的结果是直接输出:
\nDoingis
解析:
C
【详解】
本题主要考查Python程序运行。
r标识\后面的字符不转义,a[:
15]表示从a的右边往左第15位到最左边全部输出,故该程序运行后,输出的结果是直接输出:
\nDoingisbetter,故本题选C选项。
6.B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字。
故30XL不是Python合法的标识符,故本题选B选项。
解析:
B
【详解】
本题主要考查Python变量的命名。
变量的命名规则有:
只能以字母或下划线开头,不能包含特殊符号,不能是关键字。
故30XL不是Python合法的标识符,故本题选B选项。
7.D
【详解】
本题主要考查Python表达式知识点。
书写表达式时运算符号不能省略,+加、-减、*乘、**幂、/除、//整除、%取模,A、B、C正确的表达式分别是b**2-4*a*c,1/2*g*t*
解析:
D
【详解】
本题主要考查Python表达式知识点。
书写表达式时运算符号不能省略,+加、-减、*乘、**幂、/除、//整除、%取模,A、B、C正确的表达式分别是b**2-4*a*c,1/2*g*t**2,pi*r**2,2*pi*r是正确的表达式,故本题选D选项。
8.A
【详解】
本题考查Python运算顺序相关的知识点
Python表达式中,可以使用圆括号()控制运算的优先顺序。
故本题选A选项
解析:
A
【详解】
本题考查Python运算顺序相关的知识点
Python表达式中,可以使用圆括号()控制运算的优先顺序。
故本题选A选项
9.C
【详解】
本题主要考查Python程序的执行。
x>0为真,所以一直做x=x+1语句,print()语句要在循环结束后再执行此行代码,所以无输出,故本题选C选项。
解析:
C
【详解】
本题主要考查Python程序的执行。
x>0为真,所以一直做x=x+1语句,print()语句要在循环结束后再执行此行代码,所以无输出,故本题选C选项。
10.D
【详解】
本题考查计算机语言相关知识。
高级语言是面向用户的、基本上独立于计算机种类和结构的语言。
其最大的优点是:
形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。
高级语言的一个命令
解析:
D
【详解】
本题考查计算机语言相关知识。
高级语言是面向用户的、基本上独立于计算机种类和结构的语言。
其最大的优点是:
形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。
高级语言的一个命令可以代替几条,几十条甚至几百条汇编语言的指令。
因此,高级语言易学易用,通用性强,应用广泛。
高级语言种类繁多,可以从应用特点和对客观系统的描述两个方面对其进一步分类。
python,c++,visualbasic,java都属于高级程序设计语言。
故本题选D。
11.B
【详解】
本题主要考查Python关键字。
return[表达式]结束函数,选择性地返回一个值给调用方;def用来定义函数;import用来导入模块,故本题选B选项。
解析:
B
【详解】
本题主要考查Python关键字。
return[表达式]结束函数,选择性地返回一个值给调用方;def用来定义函数;import用来导入模块,故本题选B选项。
12.C
【详解】
本题主要考查Python程序的执行。
x=10,y=20,x=y=20,y=x=20,故程序段执行后,变量x、y的值分别是20、20,故本题选C选项。
解析:
C
【详解】
本题主要考查Python程序的执行。
x=10,y=20,x=y=20,y=x=20,故程序段执行后,变量x、y的值分别是20、20,故本题选C选项。
13.B
【详解】
本题主要考查Python语言。
Python语言是解释型语言,支持面向对象和跨平台使用,故本题选B选项。
解析:
B
【详解】
本题主要考查Python语言。
Python语言是解释型语言,支持面向对象和跨平台使用,故本题选B选项。
14.A
【详解】
本题主要考查Python赋值语句。
选项A可以实现交换变量a和b中的值,其余选项均不可以实现交换变量a和b中的值,故本题选A选项。
解析:
A
【详解】
本题主要考查Python赋值语句。
选项A可以实现交换变量a和b中的值,其余选项均不可以实现交换变量a和b中的值,故本题选A选项。
15.A
【详解】
本题考查Python数据类型。
Python数据类型有字符串,布尔类型,整数,浮点数等。
a=5,a为整数型;a=‘5’,则a为字符串;a=5.0,则a为浮点数。
故本题选A。
解析:
A
【详解】
本题考查Python数据类型。
Python数据类型有字符串,布尔类型,整数,浮点数等。
a=5,a为整数型;a=‘5’,则a为字符串;a=5.0,则a为浮点数。
故本题选A。
二、程序填空
16.b*b-4*a*c或b**2-4*a*cd>=0-b-math.sqrt(d))/(2*a)print("方程无实数根")
【详解】
本题主要考查Python程序的调试。
①此处将表达式b2-4ac的值赋给变量d,故填b*b-4*a*c或b**2-4*a*c。
②当b2-4ac≥0,方程有两个不同的实数根,故此处if判断条件是d>=0。
③当b2-4ac≥0时,方程的两个根分别为x1=(-b+math.sqrt(d))/(2*a),x2=(-b-math.sqrt(d))/(2*a),故此处填-b-math.sqrt(d))/(2*a)。
④else部分,即x<0时,输出“方程无实数根”,故此处填print("方程无实数根")。
17.①a(i)=Asc(tmp)-64或a(i)=Asc(tmp)-Asc("A")+1②i–m+1Toi–m+k③t=(c(i)–1)Mod26+1
【详解】
本题考查乘法运算规则的理解以及转置矩阵中行列数据的读取。
(1)根据算法描述,图中
(1)处的值为15×5+14×1+0×2+0×9=89。
(2)程序先随机生成数组b,其下标为1到k×k,并以行列的形式显示在列表框list2中(即为转置矩阵),然后读取大写字符串s中的每个字符,并将每个字符转换成相应字母表中的位置存储在数组a中。
代码①处为字符转成相应的字母表中位置值,下方代码将a(i)输出在列表框listl中,故此处应获取a(i)的值。
根据题干描述“字符A~Z对应数值1~26”,此处为将tmp获取的字符通过Asc函数进行转换,语句为“a(i)=Asc(tmp)-64”,还可以是“a(i)=Asc(tmp)-Asc(″A″)+1”。
代码②处为循环变量j的取值范围,根据乘法规则,变量j的范围是每一段中的1到k之间的值,需要获取每一段的起始位置下标,结合上文得到的m值,可得循环变量的范围是“i-m+1Toi-m十k”。
代码③处是将计算结果c(i)按原长度转换成相应大写字符,计算结果要求除以26取余,若直接写成c(i)Mod26,则导致数值26的结果为0,因此需要先减1,Mod后再加1这样的处理技巧,因此答案为“(c(i)-1)Mod26+1”。
18.tc>0c=c+1或者c+=1
【详解】
本题主要考查Python程序执行与调试。
①变量tc保存西瓜数量,当tc大于0时,一直循环,故第一空填tc>0。
②变量c保存天数,每循环一次,变量c递增1,故第二空填c=c+1或者c+=1。
19.c=0
print("能同时被3或5整除的数是:
",end="")
foriinrange(1,101):
ifi%3==0andi%5==0:
c+=1
print(i,end="")
print("")
print("能同时被3或5整除的个数是:
"+str(c))
【详解】
本题主要考查Python程序设计。
设计100以内的数中能同时被3或5整除的个数,使用for循环变量i的范围是从1~99,用变量c统计能同时被3或5整除的个数,如果满足if判断条件,则变量c递增,循环完输出c的值,具体代码及运行结果如下:
20.layer=int(input("请输入需要打印的层数:
"))
forxinrange(1,layer+1):
foryinrange(1,x+1):
print("*",end="")
print("")
【详解】
本题主要考查Python循环结构。
Pythonfor循环可以遍历任何序列的项目,如一个列表或者一个字符串。
range可以生成一个整数列表,列表范围根据接收的layer来确定。
外层循环用于确定输出行数,内层循环用于控制每行符号个数。
【点睛】
21.nrn
【详解】
本题考查的是Python循环语句。
辗转相除法:
用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。
如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。
由n=min(x,y)可知最小值为n,故①处为n,由r=m%n可知余数为r,故②处为r,最后的除数是n(即最大公约数为n),故③处为n。