高中信息技术期学科Python语言基础期中考试word.docx
《高中信息技术期学科Python语言基础期中考试word.docx》由会员分享,可在线阅读,更多相关《高中信息技术期学科Python语言基础期中考试word.docx(17页珍藏版)》请在冰豆网上搜索。
高中信息技术期学科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
【详解】
本题考查的是算法中的经典问题。
百鸡百钱问题是典型的枚举算法解决,枚举算法的关键就是找到问题解决的条件和枚举范围。