NCTPython编程一级模拟卷4含答案.docx

上传人:b****6 文档编号:4410338 上传时间:2022-12-01 格式:DOCX 页数:13 大小:118.33KB
下载 相关 举报
NCTPython编程一级模拟卷4含答案.docx_第1页
第1页 / 共13页
NCTPython编程一级模拟卷4含答案.docx_第2页
第2页 / 共13页
NCTPython编程一级模拟卷4含答案.docx_第3页
第3页 / 共13页
NCTPython编程一级模拟卷4含答案.docx_第4页
第4页 / 共13页
NCTPython编程一级模拟卷4含答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

NCTPython编程一级模拟卷4含答案.docx

《NCTPython编程一级模拟卷4含答案.docx》由会员分享,可在线阅读,更多相关《NCTPython编程一级模拟卷4含答案.docx(13页珍藏版)》请在冰豆网上搜索。

NCTPython编程一级模拟卷4含答案.docx

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。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1