浙江省杭州市2022-2023学年高一技术下学期期末考试试题(Word版附解析)
展开这是一份浙江省杭州市2022-2023学年高一技术下学期期末考试试题(Word版附解析),共9页。试卷主要包含了选择题,非选择题等内容,欢迎下载使用。
2023届高一年级技术学科期末试卷
第一部分信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
1. 关于python程序设计语言,下列说法不正确的是( )。
A. python源文件以***.py为扩展名
B. python的默认交互提示符是:>>>
C. python只能在文件模式中编写代码
D. python具有丰富和强大的模块
【答案】C
【解析】
【详解】本题主要考查Python程序设计语言。python源文件以***.py为扩展名,python的默认交互提示符是:>>>,python能在文件模式中编写代码,也能在交互模式中编写代码,python具有丰富和强大的模块,故本题选C选项。
2. 下列可以作为python变量名是( )
A 'a1' B. 6key
C. False D. i_f
【答案】D
【解析】
【详解】本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。故i_f可以作为python变量名,故本题选D选项。
3. 已知变量x=5,执行语句x*=x+3,变量x的值为( )
A. 8 B. 13
C. 28 D. 40
【答案】D
【解析】
【详解】本题主要考查Python表达式的运算。语句x*=x+3等价于x=x*(x+3)=5*(5+3)=40,故本题选D选项。
4. 二进制数110110转换成十六进制数是( )
A. 66 B. D2 C. D8 D. 36
【答案】D
【解析】
【详解】本题主要考查进制数的转换。二进制转换成十六进制的方法是,取四合一法,将四位二进制按权相加,得到的数就是一位十六进制数,然后按顺序排列。因此二进制数110110转换成十六进制数是36,故本题选D选项。
5. 语句print( 'abd' > 'abc' and 20%6 = = 10%4 )的结果为( )
A. False B. True C. 3 D. 编译错误
【答案】B
【解析】
【详解】本题主要考查Python表达式的运算。 表达式 'abd' > 'abc' 值为True,表达式20%6 = = 10%4 值为True,逻辑运算符and两边值均为真时值才为真,否则值为假,故表达式 'abd' > 'abc' and 20%6 = = 10%4值为True,故本题选B选项。
6. 某算法的部分流程图如图所示,执行这部分流程后,变量C的值是( )
A. 2 B. 3 C. 4 D. 5
【答案】B
【解析】
【详解】本题考查的是流程图识读。初始值:m=18,n=7,c=1
18>7成立,c=c+1=2,m=m-n=18-7=11;
11>7成立,c=c+1=3,m=m-n=11-7=4;
4>7不成立,循环结束。c=3,故本题应选B。
7. 已知list=["World"," tourism","Ninghai","open","tour"],则list[2][2]的返回值为( )
A. "o" B. "u" C. "i" D. "n"
【答案】D
【解析】
【详解】本题考查的是列表中元素的编号。元素编号从左到右编号由0依次增大,故list[2][2]是指的"Ninghai"中的n,故选项D正确。
8. 已知str="3.1415926535898",则str[4:6]+str[-6:-4]的返回值为( )
A. "415535" B. "159535" C. "1553" D. "'4153"
【答案】C
【解析】
【详解】本题考查的是字符串中的字符编号。从左到右是由0依次加1,从右到左是由-1依次减1。切片操作的方法是:consequence[start_index: end_index: step],end_index其实是你第一个不想要获取的对象的索引。str[4:6]得到的是15,str[-6:-4]得到的是53。故选项C正确。
9. 已知字典dict1={1:2, 2:(1,2), (1,2):'b', 'b':'b1','b1':'b2' },要得到字典中的值'b',下列方法可行的是( )
A. dict1[(1,2)] B. dict1{'b'} C. dict1[3] D. dict1['b1']
【答案】A
【解析】
【详解】本题主要考查Python字典数据类型。由字典dict1={1:2, 2:(1,2), (1,2):'b', 'b':'b1','b1':'b2' },可知'b'的键是(1,2),故要得到字典中的值'b',可以通过语句dict1[(1,2)],故本题选A选项。
10. 小王编写了出租车收费的python程序,代码如下:
s1=float(input('请输入行驶路程(公里):'))
if s1<=3:
f=10
elif s1<=10:
f=10+2.5*(s1-3)
else:
f=27.5+3.5*(s1-10)
print(f)
要测试所有分支程序代码是否正确,以下测试数据中,最恰当的一组是( )
A. 3,8 B. -1,5,12
C. 1,6,20 D. 3,12,20
【答案】C
【解析】
【详解】本题主要考查Python条件分支结构。分析代码可知,程序采用条件分支结构,第一个条件是s1<=3,第二个条件是3<s1<=10,第三个条件是s1>10,故最恰当的一组测试数据是1,6,20,故本题选C选项。
11. 有如下Python程序段:
a = [2,1,3,4,5]
c = 0
for i in range(2,len(a)):
if a[i-2] + a[i-1] == a[i]:
c = c + 1
print(c)
该程序段运行后,最后输出的内容是( )
A. 1 B. 2 C. 3 D. 4
【答案】B
【解析】
【详解】本题主要考查Python程序的执行。分析程序可知,变量c用于统计列表a中前两项之和等于第三项的个数,a[0]+a[1]=a[2],a[1]+a[2]=a[3],故c的值为2,故本题选B选项。
12. 小林编写一段文件读写操作代码,文件如图,代码段如下:
file=open('ceshi.txt','w')
file.write("python is a programming language.")
file.close( )
file=open('ceshi.txt','r')
print(file.read( ))
该代码段运行后,输出的结果为( )
A. IA Distributed System Based on Python.
B. python is a programming language.
C IA Distributed System Based on Python. python is a programming language.
D. 程序编译错误,不会输出结果
【答案】B
【解析】
【详解】本题主要考查Python文件读写操作。首先打开ceshi.txt文件进行写操作,写入python is a programming language.会覆盖之前的内容,故该代码段运行后,输出的结果为python is a programming language.,故本题选B选项。
二、非选择题(本大题共3小题,其中第13小题6分,第14小题7分,第15小题6分,第16小题7分共26分。)
13. 广场上有许多(有数百人)小朋友在玩分组游戏,当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个。编写程序求出这些小朋友的可能人数。
实现上述功能的程序如下,请在程序划线处填入合适的代码。
________
a=[ ]
for i in range(100,1000):
if_____________:
a.append(i)
total + = 1
print("这群小朋友总的人数有:")
for j in range(len(a)):
print(____end='、')
print('')
print('可能情况数为:',total,'种')
划线处①处应该填入的语句为: ;
划线处②处应该填入的语句为: ;
划线处③处应该填入语句为: 。
【答案】 ①. total=0 ②. i%3 == 2 and i%5 == 3 and i%7 == 2 ③. a[j]
【解析】
【分析】
【详解】本题主要考查Python程序的执行与调试。①变量total用来统计有多少种情况,初始值为0,第一空填total=0。②当他们分成三人一组时,发现最后多出两个;当他们分成五人一组时,发现最后多出三个;当他们分成七人一组时,发现最后多出两个,即if判断条件为i%3 == 2 and i%5 == 3 and i%7 == 2,满足if条件时,将该值加到列表a中,故第二空填i%3 == 2 and i%5 == 3 and i%7 == 2。③最后通过for循环输出所有可能的数,用变量j控制,故第三空填a[j]。
14. 小王编写了“字符串缩写”程序,实现如下功能:
1.输入一串由英文字母和数字组成的字符串,
2.如果字符串有连续字符构成的升序段(后面字符的ASCII值比前面的字符的ASCII值大1),则把升序段缩写成由第一个字符加上“ — ”和最后一个字符组成的新字符段,
3.例如:字符串为“abcdf12345becomexy”,则缩写成“a-df1-5becomex-y”。
程序运行时,输入一串字符,输出缩写的字符串,程序运行效果如下图所示:
实现上述功能的程序如下,请在程序划线处填入合适的代码。
s=input("请输入字符串s:")
_______
flag = False
result=" "
for i in range( 0 , k-1):
if ___________________ :
result=result+s[i]+"-"
flag = True
elif ord(s[i]) ! = ord(s[i+1])-1:
result=result+s[i]
_____
result=result + s[i+1]
print("缩写后的字符串为:",result)
划线处①处应该填入的语句为: ;
划线处②处应该填入的语句为: ;
划线处③处应该填入的语句为: 。
【答案】 ①. k=len(s) ②. ord(s[i])==ord(s[i+1])-1 and flag==False 或 ord(s[i])==ord(s[i+1])-1 and not flag 或 ord(s[i])+1==ord(s[i+1]) and flag==False 或 ord(s[i])+1==ord(s[i+1]) and not flag ③. flag = False
【解析】
【分析】
【详解】本题主要考查Python程序的执行与调试。①第一空将输入的字符串s的长度赋给变量k,故填k=len(s)。②flag用来标记是否有连续字符构成的升序段,第二空判断相邻位置后面字符的ASCII值是否比前面的字符的ASCII值大1且flag为False,故填ord(s[i])==ord(s[i+1])-1 and flag==False 或 ord(s[i])==ord(s[i+1])-1 and not flag 或 ord(s[i])+1==ord(s[i+1]) and flag==False 或 ord(s[i])+1==ord(s[i+1]) and not flag。③如果不满足if判断条件,则需要将该字符加到变量result中,同时赋值flag为False,表示当前没有连续字符构成的升序段,需要继续判断寻找,故填flag = False。
15. 用Python程序编写一个找最大值的程序,程序功能:输入一组数字串(所有数字均大于0,相互间用逗号分隔),输出其中最大的数值。实现该功能的程序代码段如下,该程序运行的部分界面如图所示,请在程序划线处填入合适的代码。
s=input("请输入一组数字串")
max=-1
i=0 #每一个数字起始位置
j=0
while j<len(s)
①
if ch==",":
tmp=int(s[i:j]
if tmp>max:
max=tmp
②
③
tmp=int(s[i:j])
if tmp>max
max=tmp
print(max)
划线处①处应该填入的语句为:_______
划线处②处应该填入的语句为:_______
划线处③处应该填入的语句为:_______
【答案】 ①. ch=s[j] ②. i=j+1 ③. j=j+1
【解析】
【详解】本题主要考查Python程序的综合应用。①此处是初始化ch的值,由下面代码可知,ch是取字符串s索引j处的字符,故填ch=s[j]。②如果tmp>max,则更新max=tmp,同时更新i的值为j+1,继续取下一个数字进行判断,故填i=j+1。③此处j递增1,继续循环,故填j=j+1。
16. 一个整数n(n>=11 and n<1000)从左向右和从右向左读其结果相同,且是素数,则称n为回文素数,例如133020331是回文素数。下列Python程序段用于找出1000以内的所有回文素数。(提示:如果n不能被内的任何一个整数整除,则n是素数)
import math
def hws(num):
m=str(num)
if ① :
return True
return False
def sushu(num):
②
for i in range(2,int(math.sqrt(num)+1)):
if num%i==0:
③
return flag
n=11
while n<1000
if ④
print(n)
n=n+1
上述程序段中划线处可选语句为:________
划线处①处应该填入的语句为:______
划线处②处应该填入的语句为:______
划线处③处应该填入的语句为:______
划线处④处应该填入的语句为:______
【答案】 ①. m==m[::-1] ②. flag=True ③. flag=False ④. sushu(n) and hws(n)
【解析】
【详解】本题主要考查Python程序的综合应用。①本题用于找出1000以内所有的回文素数,主程序段采用枚举法,用于判断是否为回文,即该正序与逆序相同,则应填入m==m[::-1]。②sushu(num)函数用于判断num是否为素数,用flag标记,flag初值为True。③如果num%i==0,说明num不是素数,赋值flag为False,故填flag=False。④此处使用sushu(n) 、 hws(n)函数分别用于判断n是否是素数和回文数,故填sushu(n) and hws(n)。
相关试卷
这是一份浙江省杭州市2023-2024学年高三上学期期中技术试题(Word版附解析),共13页。
这是一份浙江省台州市2022-2023学年高一技术下学期期末试题(Word版附解析),共5页。试卷主要包含了0C. “98”D. “请输入等内容,欢迎下载使用。
这是一份浙江省台州市2022-2023学年高二技术下学期期末考试试题(Word版附解析),共13页。试卷主要包含了 有如下pythn程序段等内容,欢迎下载使用。