高中信息技术期学科Python语言基础期中考试word.docx

上传人:b****7 文档编号:9176954 上传时间:2023-02-03 格式:DOCX 页数:17 大小:86.95KB
下载 相关 举报
高中信息技术期学科Python语言基础期中考试word.docx_第1页
第1页 / 共17页
高中信息技术期学科Python语言基础期中考试word.docx_第2页
第2页 / 共17页
高中信息技术期学科Python语言基础期中考试word.docx_第3页
第3页 / 共17页
高中信息技术期学科Python语言基础期中考试word.docx_第4页
第4页 / 共17页
高中信息技术期学科Python语言基础期中考试word.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

高中信息技术期学科Python语言基础期中考试word.docx

《高中信息技术期学科Python语言基础期中考试word.docx》由会员分享,可在线阅读,更多相关《高中信息技术期学科Python语言基础期中考试word.docx(17页珍藏版)》请在冰豆网上搜索。

高中信息技术期学科Python语言基础期中考试word.docx

高中信息技术期学科Python语言基础期中考试word

高中信息技术期学科Python语言基础期中考试word

一、选择题

1.Python语言源代码程序编译后的文件扩展名为()

A..pyB..cC..javaD..c++

2.运行下列Python程序

i=1

s=1

while①:

s=s*i

i+=2

print(s)

当输出结果为105时,则①处应填入()

A.i<=7B.i<7C.i>=7D.i>7

3.Python表达式a=b中“=”表示()

A.交换“=”左右两边变量的值

B.把“=”右边变量的值赋值给左边变量

C.把“=”左边变量的值赋值给右边变量

D.比较“=”左右两边变量的值是否相等

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程序,结果正确的是()

s="abcdefg"

c=len(s)#len求字符串长度

foriinrange(0,c):

ifi<2:

print(chr(ord(s[i])+2),end="")#ord()函数是chr()函数配对函数,将字符转ASCII值

else:

print(chr(ord(s[i])+3),end="")

A.cdfghaB.cdfghbC.cdfghijD.cdfghc

6.下列有关信息的说法,不正确的是()。

A.Python程序设计语言也是一种信息

B.给微信朋友圈点赞也是一种信息评价方式

C.信息在传输过程中,必须遵循一定的规则

D.对相关数据进行加工处理,使数据之间建立相互联系,从而形成信息

7.下列不可以作为Python合法变量名的是()

A.c0B.2aC.a_3D.小河

8.以下不属于高级程序设计语言的是()。

A.C++B.VBC.机器语言D.Python

9.Python表达式中,可以使用()控制运算的优先顺序。

A.圆括号()B.方括号[]C.大括号{}D.尖括号<>

10.有python程序如下:

S=input()

print(S*3)

运行后通过键盘输入6,则运算结果是()

A.666B.SSSC.18D.S*3

11.下列哪个语句在Python中是非法的?

(  )

A.x=y=z=1B.x=(y=z+1)

C.x,y=y,xD.x += y

12.已知字符串a="python",则a[-1]的值为()

A."p"B."n"C."y"D."o"

13.下列python表达式结果为5的是()

A.abs(int(-5.6))B.len("3+5>=6")C.ord("5")D.round(5.9)

14.下列python表达式结果最小的是()

A.2**3//3+8%2*3B.5**2%3+7%2**2C.1314//100%10D.int("1"+"5")//3

15.下列属于正确的Python变量名的是()

A.True

B.88abc

C.abc&88

D._abc88

二、程序填空

16.阅读程序。

分析以下两段Python程序并回答问题。

#程序1

i=1

whilei<101:

print('把这句话打印100遍')

i+=1

#程序2

i=100

whilei:

print('把这句话打印100遍')

i=i-2

(1)在程序1中,i+=1这句话的含义是______________。

(2)在程序1中,‘把这句话打印100遍’实际输出了_____遍。

(3)在程序2中,i的初值是___。

(4)在程序2中,‘把这句话打印100遍’实际输出了_____遍。

(5)在程序2中,whilei的含义是_________。

17.(项目情境)水仙花数是指一个三位数,它的每个位上的数字的3次方之和就等于它本身,例如:

1**3+5**3+3**3=153。

这类三位数也被叫做自恋数、自幂数或者阿姆斯特朗数。

(问题求解)设这个数存放于变量x中,变量g、s、b分别存放个位、十位、百位上的数。

需得分离数字得到每位上的数,即将变量g、s、b表示为x的形式。

请阅读如下python程序,在空白处填写适当的表达式或语句,使程序完整。

print("三位数之内的水仙花是:

")

forxin_____:

b=x//100

s=_____

g=_____

ifx==(b**3+s**3+g**3):

_____

18.某种数据加密方法描述如下(加密前数据是ASCII字符):

●以8个数据为一段,将n个待加密数据依次分割成若干个数据段,剩余数据(个数小于8)为独立数据段。

●数据加密规则:

数据个数等于8的数据段,对各个字符进行位置变换;数据个数小于8的数据段,不进行位置变换。

位置变换:

用位置变换密钥数组c,将数据段每个字符进行位置变换,方法如下:

加密后某数据段的第i个元素=对应原数据段的第c(i)个元素,其中i=1,2,……,8。

数值变换:

位置变换后,依次取出各个字符进行数值变换:

把该字符的ASCII码转二进制,然后与密钥m对应的二进制数(m为1到255之间的整数)按位异或运算。

异或运算(⊕)规则:

如果a、b两个值不相同,则a⊕b结果为1;如果a、b两个值相同,则a⊕b结果为0,即:

0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0。

●把上述处理的得到二进制数依次拼接,即构成最后的加密数据例如,待加密数据为“python3.50”,数组c各元素的值依次是

数组c

3

6

1

5

2

8

4

7

则数据位置变换如下:

如值变换密钥m为35(二进制表示是00100011),则字符“t”(ASCII码值是116,二进制表示是010100)的数值变换过程如下:

变换前

0

1

1

1

0

1

0

0

密钥m

0

0

1

0

0

0

1

1

变换后

0

1

0

1

0

1

1

1

(1)已知“A”的ASCII码值是65,m=35,则“A”数值变换后的结果是_______(填二进制数据)。

(2)小李根据上述算法,设计了一个数据加密程序,其VB代码如下,请在划线处填入合适的代码。

Constn=1024

Dimc(1To8)AsInteger

PrivateSubForm_Load()

‘产生位置变换密钥数组c,代码略

EndSub

Functionconvert(cAsInteger)AsString

‘程序功能:

把整数c转成8位二进制数,代码略

EndFunction

PrivateSubCommand1_Click()

DimsAsString,stAsString,ssAsString,resAsString

DimiAsInteger,jAsIntegerstartAsInteger

Dima(1Ton)AsString,b(1Ton)AsString

s=Text1.Text

st=convert(Val(Text2.Text))

Fori=1ToLen(s)

a(i)=Mid(s,i,1)

Nexti

i=1:

start=-8

DoWhile①________

IfiMod8=1Thenstart=start+8

b(i)=②_______

i=i+1

Loop

Forj=iToLen(s)

b(j)=a(j)

Nextj

Fori=1ToLen(s)

③________

Forj=1To8

IfMid(ss,j,1)=Mid(st,j,1)Then

res=res+"0"Elseres=res+"1"

'按位异或

Nextj

Nexti

Text3.Text=res

EndSub

19.辗转相除法,又称欧几里德算法,用于计算两个正整数m、n的最大公约数。

它是已知最古老的算法,其可追溯至公元前300年前。

辗转相除法的算法步骤是,对于给定的两个正整数m、n(m>n),用m除以n得到余数r,若余数r不为0,就将n和r构成新的一对数(m=n,n=r),继续上面的除法,直到余数为0,这时m就是原来两个数的最大公约数。

因为这个算法需要反复进行除法运算,故被形象地命名为“辗转相除法”。

小曲设计了辗转相除法的算法,请根据下面算法回答问题。

描述一

描述二

描述三

①输入两个正整数m,n(m>n);

②计算m除以n所得的余数r;

③m=n,n=r;

④若r=0,则m,n的最大公约数等于m;否则转到步骤②;

⑤输出最大公约数m;

⑥结束。

(1)描述一是________描述法;描述二是流程图描述法;描述三是计算机程序语言描述法。

(2)在描述三中代码4到6行作用是__________。

(3)在描述三程序设计中,补充代码第8行划线处为__________。

20.现在有一个程序用来解决以下问题:

如果有总量共1020个西瓜,第一天卖掉总数的一半后多卖出了两个,以后每天卖剩下的一半多两个,那么几天以后卖完呢?

请将下列程序补充完整。

tc=1020

c=0

while______________:

tc=tc-(tc/2+2)

_____________

print(c)

21.(项目情境)在中国古代,出自数学家张丘建的《算经》中这样一个值得研究的问题:

今有鸡翁一,直钱五;鸡母一,直钱三;鸡雏三,直钱一。

凡百钱,买鸡百只。

问鸡翁、母、雏各几何?

这个问题就是著名的“百钱买百鸡问题”。

即:

现有100文钱,公鸡5文钱一只,母鸡3文钱一只,小鸡一文钱3只,要求:

公鸡,母鸡,小鸡都要有,把100文钱买100只鸡,买的鸡是整数。

问公鸡、母鸡和小鸡各几何?

(问题求解)设用变量g、m、x三个变量分别存放公鸡、母鸡和小鸡的数量,请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。

forginrange(1,20):

formin_______:

forxinrange(3,98,3):

if_________and__________==100:

print("公鸡:

",g,"母鸡:

",m,"小鸡:

",x)

【参考答案】***试卷处理标记,请不要删除

 

一、选择题

1.A

【详解】

本题主要考查Python文件。

Python语言源代码程序编译后的文件扩展名为py,BCD选项分别为C语言、java语言、C++语言源代码程序编译后的文件扩展名,故本题选A选项。

解析:

A

【详解】

本题主要考查Python文件。

Python语言源代码程序编译后的文件扩展名为py,BCD选项分别为C语言、java语言、C++语言源代码程序编译后的文件扩展名,故本题选A选项。

2.A

【详解】

本题考查循环语句。

在循环体内,s=s*i,i的初值为1,循环内i每次递增2,则s=1*3*5*7=105,最后结果为105,可知条件为whilei<=7,故本题选A。

解析:

A

【详解】

本题考查循环语句。

在循环体内,s=s*i,i的初值为1,循环内i每次递增2,则s=1*3*5*7=105,最后结果为105,可知条件为whilei<=7,故本题选A。

3.B

【详解】

本题主要考查Python赋值语句。

Python表达式a=b中“=”表示把“=”右边变量的值赋值给左边变量,故本题选B选项。

解析:

B

【详解】

本题主要考查Python赋值语句。

Python表达式a=b中“=”表示把“=”右边变量的值赋值给左边变量,故本题选B选项。

4.C

【详解】

本题考查的是Python代码程序。

本题的关键点是range()函数,其取到的区间数值为前闭后开,所以为1-99的整数。

循环过程就是执行1-99所有整数的求和过程。

故答案为C。

解析:

C

【详解】

本题考查的是Python代码程序。

本题的关键点是range()函数,其取到的区间数值为前闭后开,所以为1-99的整数。

循环过程就是执行1-99所有整数的求和过程。

故答案为C。

5.C

【详解】

本题主要考查Python程序的执行。

c是字符串s的长度,变量i的范围是0~c-1,如果i<2,将该字符后移2位并输出,否则将该字符后移3位并输出,故程序运行的结果是cdfgh

解析:

C

【详解】

本题主要考查Python程序的执行。

c是字符串s的长度,变量i的范围是0~c-1,如果i<2,将该字符后移2位并输出,否则将该字符后移3位并输出,故程序运行的结果是cdfghij,故本题选C选项。

6.A

【详解】

本题考查的是信息相关知识。

信息是一种具体的含义,语言是信息的载体,故选项A错误;给微信朋友圈点赞是个人推荐,故选项B正确;表达信息时要遵照一定的标准,计算机、通信、网络等规范了一系列的

解析:

A

【详解】

本题考查的是信息相关知识。

信息是一种具体的含义,语言是信息的载体,故选项A错误;给微信朋友圈点赞是个人推荐,故选项B正确;表达信息时要遵照一定的标准,计算机、通信、网络等规范了一系列的协议,故选项C正确;对相关数据进行加工处理,使数据之间建立相互联系,从而形成信息,选项D正确。

7.B

【详解】

本题主要考查Python变量的命名。

变量的命名规则有:

不能以数字开头,可以以字母或下划线开头,不能包含特殊字符,不能是关键词,故2a不可以作为Python合法变量名,故本题选B选项。

解析:

B

【详解】

本题主要考查Python变量的命名。

变量的命名规则有:

不能以数字开头,可以以字母或下划线开头,不能包含特殊字符,不能是关键词,故2a不可以作为Python合法变量名,故本题选B选项。

8.C

【详解】

本题考查计算机语言。

C++,VB,Python都属于高级程序设计语言。

机器语言则不是。

故本题选项C不属于高级程序设计语言。

解析:

C

【详解】

本题考查计算机语言。

C++,VB,Python都属于高级程序设计语言。

机器语言则不是。

故本题选项C不属于高级程序设计语言。

9.A

【详解】

本题考查Python运算顺序相关的知识点

Python表达式中,可以使用圆括号()控制运算的优先顺序。

故本题选A选项

解析:

A

【详解】

本题考查Python运算顺序相关的知识点

Python表达式中,可以使用圆括号()控制运算的优先顺序。

故本题选A选项

10.A

【详解】

本题主要考查Python程序的执行。

input()函数是通过键盘输入,将其以字符类型返回,故S=“6”,输出S*3=“666”,故运算结果是666,故本题选A选项。

解析:

A

【详解】

本题主要考查Python程序的执行。

input()函数是通过键盘输入,将其以字符类型返回,故S=“6”,输出S*3=“666”,故运算结果是666,故本题选A选项。

11.B

【详解】

本题主要考查Python赋值语句。

语句x=y=z=1,赋值x、y、z值均为1;语句x,y=y,x交换x、y的值;x+=y等价于x=x+y;语句x=(y=

解析:

B

【详解】

本题主要考查Python赋值语句。

语句x=y=z=1,赋值x、y、z值均为1;语句x,y=y,x交换x、y的值;x+=y等价于x=x+y;语句x=(y=z+1)是非法的,故本题选B选项。

12.B

【详解】

本题主要考查Python序列索引值。

任意长度的字符串,最后一个元素的索引值是-1,故a[-1]的值为"n",故本题选B选项。

解析:

B

【详解】

本题主要考查Python序列索引值。

任意长度的字符串,最后一个元素的索引值是-1,故a[-1]的值为"n",故本题选B选项。

13.A

【详解】

本题主要考查Python表达式。

int是取整函数,abs求绝对值函数,len返回字符串的长度,ord()函数主要用来返回对应字符的ascii码,round是四舍五入函数,故abs(in

解析:

A

【详解】

本题主要考查Python表达式。

int是取整函数,abs求绝对值函数,len返回字符串的长度,ord()函数主要用来返回对应字符的ascii码,round是四舍五入函数,故abs(int(-5.6))=5,len("3+5>=6")=6,ord("5")=53,round(5.9)=6,故本题选A选项。

14.A

【详解】

本题主要考查Python表达式的运算。

2**3//3+8%2*3=8//3+0*3=2,5**2%3+7%2**2=25%3+7%4=1+3=4,1314//100%10=13%10=

解析:

A

【详解】

本题主要考查Python表达式的运算。

2**3//3+8%2*3=8//3+0*3=2,5**2%3+7%2**2=25%3+7%4=1+3=4,1314//100%10=13%10=3,int("1"+"5")//3=5,故本题选A选项。

15.D

【详解】

本题主要考查Python变量名命名规则。

Python变量名命名规则如下:

(1)Python变量名可以由字母、数字、下划线(_)组成,其中数字不能打头;

(2)Python变量名不能是P

解析:

D

【详解】

本题主要考查Python变量名命名规则。

Python变量名命名规则如下:

(1)Python变量名可以由字母、数字、下划线(_)组成,其中数字不能打头;

(2)Python变量名不能是Python关键字,但可以包含关键字;(3)Python变量名不能包含空格。

由上可知D选项正确。

【点睛】

二、程序填空

16.i=i+1无数遍100无数遍i!

=0或i>0或其他等价答案

【详解】

本题主要考查Python程序的执行与调试。

①在程序1中,i+=1这句话的含义是i=i+1(即i递增1)。

②i的初值为1,while循环条件i<101为真,会一直执行循环体,无法跳出循环体执行i+=1,故‘把这句话打印100遍’实际输出了无数遍。

③在程序2中,i的初值是100。

④i=100,whilei(即while100)一直为真,会一直执行循环体,无法跳出循环体执行i=i-2,故‘把这句话打印100遍’实际输出了无数遍。

⑤在程序2中,whilei的含义是i!

=0或i>0或其他等价答案

17.range(100,1000)x//10%10x%10print("三位数之内的水仙花是:

"+str(x))

【详解】

本题主要考查Python程序的执行与调试。

①水仙花数是指一个三位数,即[100,999],forxinrange(100,1000)表示x的范围是100-999,故此处填range(100,1000)。

②变量g、s、b分别存放个位、十位、百位上的数,故s=x//10%10(“//”表示整除,“%”表示取余)。

③g=x%10。

④如果满足x==(b**3+s**3+g**3),则输出“三位数之内的水仙花是:

x”,故此处填print("三位数之内的水仙花是:

"+str(x))。

18.①i<=(Len(s)\8)*8②a(start+c((i-1)Mod8+1))③ss=convert(Asc(b(i)))

【详解】

(1)“A”的ASCII码值是65,用二进制表示为0100001,m=35,用二进制表示为0010001,位做异或运算,相同为0,相异为1,可得:

01100010。

(2)①以8个数据为一段进行分段处理,个数等于8的数据段需进行位置变换,故需进行位置变换的数据段有(Len(s)\8)个,数据个数为i<=(Len(s)\8)*8。

②位置变换方法:

加密后数据段的第ⅰ个元素=原数据段的第c(i)个元素,其中i=1,2,……,8,i表示段内位置。

代码“DoWhilei<=(Len(s)\8)*8”中的i对应段内位置可为“1+(i-1)Mod8”,start表示该数据段第一个数据的前个位置,故数组b第i位置元素是来自数组a第start+c(1+(i*-1)Mod8)位置,故②处代码为“a(start+c(i-1)Mod8+1))”。

③位置变换后的数据需转二进制,再按位做异或运算,故③处的代码是调用自定义函数convert把b(i)中字符的ASCII码转二进制后存入变量ss,故此处代码为“ss=convert(Asc(b(i))”。

19.自然语言确保m>=nr!

=0

【详解】

本题主要考查算法及Python程序实现。

①描述一是自然语言描述法;描述二是流程图描述法;描述三是计算机程序语言描述法。

②在描述三中代码4到6行,当m=n。

③由题干可知,循环条件是余数r不等于0,故代码第8行划线处为r!

=0。

20.tc>0c=c+1或者c+=1

【详解】

本题主要考查Python程序执行与调试。

①变量tc保存西瓜数量,当tc大于0时,一直循环,故第一空填tc>0。

②变量c保存天数,每循环一次,变量c递增1,故第二空填c=c+1或者c+=1。

21.range(1,33)g+m+x==1005*g+3*m+x/3

【详解】

本题考查的是算法中的经典问题。

百鸡百钱问题是典型的枚举算法解决,枚举算法的关键就是找到问题解决的条件和枚举范围。

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

当前位置:首页 > 医药卫生 > 中医中药

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

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