第三章 算法的程序实现 章节测试(含答案) 2023—2024学年浙教版(2019)高中信息技术必修1

资源下载
  1. 二一教育资源

第三章 算法的程序实现 章节测试(含答案) 2023—2024学年浙教版(2019)高中信息技术必修1

资源简介

第三章 算法的程序实现 章节测试
一、选择题
1.王伟东同学准备用下列的变量名来进行编程,在程序运行中不会报错的是( )
A.we_1 B.3we C.he&w D.input
2.利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做( )。
A.分析问题 B.设计算法 C.编写程序 D.调试程序
3.下面Python函数的作用,选项错误的是( )
A.增加代码的维护难度 B.实现代码的复用
C.增强代码的可读性 D.使代码的逻辑结构更清晰
4.已知字典dict1={1001:”mali”, 1002:”lucy”, 1003:”jack”, 1004:”jhon” },要得到字典中的“jack”,下列方法可行的是( )
A.dict1[2] B.dict1{1003}
C.dict1[1003] D.dict1[“jack”]
5.某公司在第一年初购买了一台价值为120万元的设备,该设备的价值在使用过程中逐年减少。已知从第2年到第6年,每年初的价值比上年初减少10万元;从第7年开始,每年初的价值为上年初的75%。编写Python程序计算第10年初设备的价值,程序第5行下划线处应填入( )
1 #计算设备现有价值
2 value=120
3 for i in range(2,11):
4 if i<=6:
5 __________
6 else:
7 value=value*0.75
8 print(“该设备第10年初的价值为:”,value,“万元”)
A.value=120-10 B.value=value-10 C.value=120-i D.value=value-i
6.用高级语言编写的程序( )。
A.占用内存空间非常少
B.很复杂且难以理解
C.必须由翻译程序将其编译成机器语言,才能在计算机上执行
D.只能在某种计算机上运行
7.小张收集了近阶段要学习的英文单词,存储为“data.txt”文件,格式如图所示。
处理“data.txt”文件中英文单词的 Python 程序段如下:
file=“data.txt”
n=0
for word in open(file): #打开文件准备读
if word[0:1]=='c': #word每次读到第一行信息,word[0:1]则是当前行字符的第1个字符
n=n+1
print(n)
运行该程序段后,输出的值为( )
A.1 B.2 C.3 D.5
8.input()函数的返回结果都是( ),有时需要将其转化为相应的类型再处理。
A.数值 B.字符串 C.列表 D.元组
9.在Python中,表达式18//3**2+15%4的结果是( )
A.39 B.15 C.5 D.3
10.下列不属于 Python 的数据类型关键字的是( )
A.int B.double C.float D.str
11.有如下Python程序段:
from random import randint
n=8
a=[0]*n
k=randint(1,3)
for i in range(n):
a[i]=randint(0,50)
for i in range(0,n//k+1):
j=0
while j+k< n:
if a[j]>a[j+k]:
t=a[j];a[j]=a[j+k];a[j+k]=t
j+=1
print(a)
执行该程序段后,输出的结果不可能是( )
A.[3,14,17,25,28,31,32,37] B.[31,6,29,12,18,31,17,34]
C.[1,4,20,5,48,23,49,46] D.[3,6,30,14,38,32,41,45]
12.小曲使用Python编写了下面一个函数,如果执行fact(5)语句的值为( )
1 def fact(n)
2 i=1
3 f=1
4 while i<=n:
5 f=f*i
6 i=i+1
7 return f
A.1 B.120 C.24 D.720
13.小明用某种语言编写了段源代码如下图所示,实现了“任意输入一个整数,输出其绝对值”的功能。如下说法正确的是( )
A.这是机器语言编写的指令序列,计算机可以直接指行
B.这是汇编语言编写的指令序列,计算机可以直接指行
C.这是高级语言编写的指令序列,计算机可以直接指行
D.这是高级语言编写的指令序列,需转换成机器语言才能执行
14.python单行注释和多行注释分别是什么?( )
A.""" """和''' ''' B.#和""" """ C.//和''' ''' D.#和//
15.在学习PythonTurtle,小曲编写绘制图形的代码如下所示,此代码绘制的图形是( )
1 import turtle as t
2 t.speed(0)
3 for x in range(100):
4 t.circle(x)
5 t.left(92)
6 t.done()
A. B. C. D.
二、填空题
16.计算机编程解决问题的过程分为4步,分别是 、 、 、 ,其中 是信息编程加工的核心步骤。
17.Python表达式50-9*3%4的运算结果是 。
18.阅读以下程序,写出程序运行结果。
def jc(n):
s=1
for i in range(2,n+1):
s=s*i
return s
total=jc(4) #调用jc函数
print(total)
程序运行后,其输出结果为
19.要达到在窗口显示不同位置的福字,需要完成两个步骤:(1)在新的位置上 ;(2)把原来的图像 。要“擦掉”某个图像,可以选择 它,通常采用 或者用 来覆盖的方式。
20.Python语言,在循环体中可以使用break语句和continue 语句控制程序的流程。 语句用于终止某个循环,使程序跳到循环体以外的第一个可执行语句。
三、判断题
21.能够产生随机数的Python扩展模块是pandas。( )
22.def块中的代码不是主程序的一部分,会跳过该段代码.( )
23.注释语句是对程序代码的解释和说明,在运行程序时不会被执行。( )
24.下列程序段中,赋值语句s=s+i被重复执行了4次。
s=0
For i in range(3,10,2):
s=s+i ( )
25.Python是解释型语言,翻译一行就执行一行。( )
四、操作题
26.Base64 编码是计算机常见的一种编码方式,规则是把 3 个字节(24 位)的数据按 6 位一组分成 4 组(24÷6=4),然后将每组数据分别转换为十进制,根据图1将这些十进制数所对应的字符连接,即为 Base64 编码。
图1-Base64 编码表
以编码字符“Web”为例,如图2所示,字符“Web”对应的 ASCII 编码分别是 87,101,98,分别转换为 8 位二进制数,按 6 位二进制数分组后再转换成十进制,查找它们对应的字符,得到“Web”的 Base64 编码为“V2Vi”。
图2
编写一个 Python 程序,实现上述功能。程序运行时,输入若干个字符(ASCII码,个数必须是3的倍数),输出Base64 编码。
请回答以下问题:
(1)编码字符“Wea”的 Base64 编码为:
(2)实现上述功能的 Python 代码如下,请在划线处填入合适的代码
s1 = input("请输入编码字符: ")
tmp = 0
s = ""
ans = ""
Base64 = "ABCDEFGHIJKLMNOPQRSTUVWSXYabcdefghijklmnopqrstuvwxyz012345678+/"
for x in s1:
n =
t = ""
for i in range(8): # 将十进制数 n 转换为 8 位二进制
r = n % 2
t =
n = n // 2
s = s + t
for i in range(len(s)): # 6位二进制一组转换成十进制,查找Base64对应字符
tmp =
if i % 6 == 5:
ans = ans + Base64[tmp]
tmp = 0
print("Base64 编码:", ans)
27.为了督促学生寒假坚持体育锻炼,老师采用线上打卡的方式收集学生锻炼情况,数据如图a所示。
为统计冬锻完成情况,编写Python程序。请回答下列问题:
(1)定义outdata函数,其中参数dftmp是DataFrame数据类型,数据由图a所示的Excel表导入。函数功能是:统计每天每个学生的锻炼项目个数,返回含有“学籍号”、“姓名”和“项目个数”信息的二维列表。函数代码如下,划线处应填入的代码为 。
A.dftmp.at[i,j]==″√″ B.dftmp[i][j]=″√″ C. dftmp.at[j,i]==″√″ D.dftmp[j][i]=″√″
def outdata(dftmp):
a=[]
for i in dftmp.index: #dftmp的行索引
itemn=0
for j in dftmp.columns[4:]: #dftmp中从“跑步”开始的列标题
if______:
itemn+=1
a.append([str(df[″学籍号″][i]),df[″姓名″][i],itemn])
return a
(2)冬锻打卡成功的标准为累计运动15天,每天锻炼项目达到3项及以上。统计输出寒假体育锻炼达标的学生名单,并制作四个项目的运动次数对比图,部分界面如图b和图c所示。部分Python程序如下,请在划线处填写合适的代码或改正加框处代码。
import pandas as pd
import matplotlib. pyplot as plt
df=pd.read_excel(″sport.xls″)
1st=outdata(df)
print(″冬锻打卡成功名单:″)
i=0:flag=[False]*len(1st)
while iif #
xjh=1st[i][0]
flag[i]=True
for j in range(i+1,len(1st)):
if 1st[j][0]==xjh and lst[j][2]>=3:
flag[j]=True
days+=1
if days>=15:
print(1st[i][0]+″/″+1st[i][1]+″/″+str(days)+″天″)
ydl=df.count() #统计各列非空单元格数量,结果为Series
iten=[″跑步″,″跳绳″,″俯卧撑″,″仰卧起坐″]
nums=
plt.bar(item,nums,label=″运动次数″)
#设置绘图参数,代码略
28.阅读程序。阅读求水仙花数的代码并回答问题。
“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33,请计算并输出所有三位数的水仙花数。
for n in range(100,1000):
i=n//100
j=n//10%10
k=n%10
if n==i*i*i+j*j*j+k*k*k:
print(n)
(1)//的符号作用是 。
(2)%的符号作用是 。
(3)==的符号作用是 。
(4)在代码中,变量i表示的是三位数中的 位。
(5)在代码中,变量j 表示的是三位数中的 位。
(6)在代码中,变量k表示的是三位数中的 位。
(7)在range(100,1000)这个区域内,变量n无法取到的数值是 。
29.回文素数是一个既是素数又是回文数的整数。如果一个整数只能被1和本身整除,这个数就是素数。如果一个数从左向右和从右向左读是一样的,这个数就是回文数。
(1)实现判断回文素数的Python程序如下,请在划线处填入合适的代码。
def ss(i):  #判断素数
for j in range(2,i):
if  ①  :
return False
return True
def hw(i):  #判断回文数
x=i
k=0
while x!=0:
k=k*10+x%10

if k==i:
return True
else:
return False
n=int(input("请输入待检测数据范围:"))
for i in range(2,n+1):
if  ③  :
print(i)
程序划线①处应填入的代码为 ;
程序划线②处应填入的代码为 ;
程序划线③处应填入的代码为 。
(2)本程序通过判断并输出回文素数,这种算法属于 (选填:“解析算法”或“枚举算法”)。
30.输入一段长度为n的英文字母,对其进行某种加密方法,描述如下:
(1)将原文转换为若干行m列(m为奇数)的矩阵,最后一行若不足m个数据则以“#”填充。
(2)将矩阵中的数据,从末行末列数据开始以回路的方式提取字符。按顺序生成加密字符。例如对字符“helloworld”,m=3的加密过程如下图,其加密结果为“#lwleor#dolh”
程序窗口界面如图:
请回答下列问题:
(1)字符串“helloworld""”经过加密后密文为“dollrleowh,则加密矩阵列数m为 。
(2)上述加密算法对应解密的VB程序代码如下,请在划线处填入合适的代码。
Private Sub commandl_click()
Dim a As String, n As Integer, yw As String
Dim i As Integer, j As Integer
Dim index As Integer, k As Integer, x As Integer
s= Text1.ext'文本框text中为待解密的字符串
m =Val(Text2.Text)
n = Len(s)
yw=″″
k=0
x=n/m
For i= 1 To
index=n-i+1
yw = yw+ Mid(s, index, 1)
Forj=2 To m
If Then
index = index-2*(x-i)-1
Else
index = index-2*(i-1)-1
End If
If Mid(s, index, 1) = "#" Then
yw = yw+ Mid(s,index, 1)
Next j
Next i
Label1. Caption = Mid(yw, 1, Len(yw) - k)
End Sub
五、简答题
31.实现一个简单的出租车计费系统,当输入行程的总里程时,输出乘客应付的车费(车费保留一位小数)。计费标准具体为起步价10元/3千米,超过3千米以后,每千米费用为1.2元,超过10千米以后,每千米的费用为1.5元。
32.编写一个程序,从键盘上输入3个数,计算这三个数的和,并输出结果。
33.从键盘上输入一个字符,当输入的是英文字母时,输出“输入的是英文字母”;当输入的是数字时,输出“输入的数字”;当输入的是其他字符时,输出“输入的是其他字符”。
34.编写一个程序,它将找到所有这些数字,可被7整除,但不是5的倍数,2000年至3200年(包括在内)。得到的数字应按逗号分隔的顺序打印在一行上。
提示:考虑使用range(#begin,#end)
35.利用python程序设计语言,编写一个输出1-10以内的偶数(包含10)的代码。
参考答案
1.A
2.C
3.A
4.C
5.B
6.C
7.B
8.B
9.C
10.B
11.B
12.B
13.D
14.B
15.A
16.分析问题 设计算法 编写代码 调试运行 算法设计
17.47
18.24
19.画出图像 擦掉 “覆盖” 重绘背景 其他对象
20.break
21.错误
22.对
23.正确
24.正确
25.正确
26.V2Vh ord(x) str(r) + t tmp * 2 + int(s[i])或tmp=tmp*2+ord(s[i])-ord('0')
27.AD not flag[i] and lst[i][2]>=3 days=1 i+=1 yd1[4:]或ydl.values[4:]
28.整除 取余 判断是否相等 百 十 个 1000
29.i%j==0 x=x//10 ss(i) and hw(i)或ss(i)=True and hw(i)=True 枚举算法
30.5 x j mod 2=0 k=k+1
31.km=float(input("请输入千米数:"))
if km<=0:
print("千米数输入错误,重新输入")
elif km<=3:
print("您需要支付10元车费")
elif km<=10:
cost=10+(km-3)*1.2
print("您需要支付{:.1f}元车费".format(cost))
else:
cost=18.4+(km-10)*1.5
print("您需要支付{:.1f}元车费".format(cost))
32.a = input ( )
b= input( )
c = input( )
d=int(a)+int(b)+int(c)
print (d)
33.ch=input("请输入一个字符:")
if ch.isdigit()==True:
print("输入的是数字")
elif ch.isalpha()==True:
print("输入的是英文字母")
else:
print("输入的是其他字符")
34.
l=[]
for i in range(2000,3201):
if (i%7==0)and (i%5!=0):
l.append(str(i))
print (','.join(1))
35.代码1:
for value in range(2,11,2):
print(value)
代码2:
i=2
while i<11:
print(i)
i=i+2

展开更多......

收起↑

资源预览