第二单元 编程计算 单元测试(含答案)2022—-2023学年教科版(2019)高中信息技术必修1
2023-11-17 18:11:06 学考宝 作者:佚名
Word文档版
学考宝(xuekaobao.com)友情提示:html格式不完整,如有需要请根据文末提示下载并进行二次校对Word文档。
第二单元 编程计算 单元测试
一、选择题
1.有如下Python程序:
import random
a=[0,0,0,0,0,0]
for i in range(6):
a[i]=random.randint(1,10)
for i in range(0,6):
if i%2==0 and a[i]%2==0:
a[i]//=2
else:
a[i]+=1
print(a)
执行程序后,列表a各元素可能是( )
A.1,5,1,11,2,11 B.7,2,8,10,5,9 C.6,9,3,7,8,12 D.3,9,0,8,2,7
2.有如下Python程序段:
dic={1:"2023",2:["杭州亚运会"],3:"心心相融@未来",4:["Heart to Heart","@Future"]}
cnt=0
for i in range(3):
cnt+=len(dic[i+1])
print(cnt)
该程序段运行后,输出的结果是( )
A.16 B.12 C.10 D.3
3.有如下Python程序段:
s="2023hz923yy108!"
sum=t=0
for i in s:
if "0"<=i<="9":
t=t*10+int(i)
else:
sum+=t
t=0
print(sum)
执行该程序段后,变量sum的值为( )
A.2023 B.2946 C.2131 D.3054
4.有如下Python程序段:
s="PYTHON"
ch=""
i=0
while i
n=int(input("请输入数字:"))
t=(n+1)%6
ch=ch+s[t]
i=i+1
print(ch)
运行程序后,依次输入3、1、4、5、2、6,输出ch的值是( )
A.THONPY B.OTNPHY C.YPNOHT D.TOPHNY
5.在程序设计当中,主要使用( )来实现判断和选择。
A.顺序结构 B.选择结构 C.循环结构 D.判断结构
6.在Python程序设计语言当中,能够实现将变量x转化成整型数据的函数是( )
A.input() B.int() C.len() D.print()
7.Python中的比较运算符是( )
A.!= B.=< C.= D.=>
8.Pyhon中下列哪个变量命名是非法的( )
A.8a B.a8 C. a8 D. 8a
9.有如下Python程序段,若输入的数据为“321AqC56”,则输出的内容为( )
s=input("请输入要处理的数据:")
t=0;sum=0
for i in s:
if "0"<=i<="9":
t=t*10+int(i)
elif "A"<=i<="Z":
sum+=t
else:
t=0
print(sum)
A.642 B.321 C.698 D.377
10.善于利用代码复用的方法,可以( )
A.减少代码书写的工作量 B.使程序的结构更加清晰
C.提高程序的效率 D.提高数字化分享的意识
11.小张同学考虑用代码复用的方法提高程序的编写效率,下列做法可取的是( )
A.自己编写一些函数或模块
B.所有的算法都使用循环结构来实现
C.别人编写的代码不符合自己的习惯,从来都不用
D.到代码共享社区去下载函数或者模块
12.下列叙述错误的是( )
A.continue 语句的作用是结束整个循环的执行
B.只能在循环体内使用break语句
C.在循环体内使用break 语句或continue语句的作用相同
D.从多层循环嵌套中退出时,只能使用goto语句
13.下列循环语句的循环体执行次数相同的是( )
A.for i in range (10) B.for i in range (1,10) C.for i in range (2,10,2) D.for i in range (10,20)
14.下列关于 for 循环的说法正确的是( )
A.for 循环通常用于循环次数未知的情况
B.在 for 循环中,循环变量也称为循环体
C.在 for 循环中,可以用 break 语句跳出循环体
D.在 for 循环中,循环体必须相对关键词for有缩进
15.下列选项能表示完全结束循环的是( )
A.close B.break C.continue D.ESC
16.下面的程序用来输出九九乘法表,外层循环一次,内层循环最多执行( )次。
for i in range( 1,10):
for j in range( 1,i+1):
print("{0:1} *{1:1} ={2:2} ".format(j,i,j*i),end="")
print()
A.1 B.10 C.11 D.9
17.while 循环的条件表达式取值为( )时,执行循环体的语句组。
A.True B.False C.True或False D.0
18.如图所示程序,循环执行的次数及运行结果是( )
n=18
S=0
for i in range(3,n):
if n%i==0:
S=S+1
print(i,S)
A.9 6 B.16 3 C.17 3 D.17 4
19.某python程序如下,程序运行完后,变量k的值是( )
s="Good-Luck-2023!"
n=0;m=0;k=0
for i in range(len(s)):
ch=s[i]
if ch>="0" and ch<="9":
m=m+1
elif ch>="a" and ch<="z":
n=n+1
else:
k=k+1
A.2 B.3 C.4 D.5
20.某python程序如下,程序运行完后,输出s2的值是( )
s1="today"
s2=""
for c in s1:
s2=c+s2
print(s2)
A.today B.yadot C.odayt D.tdyoa
二、填空题
21.写出运行结果。
s=0
while s<=30:
s=s+10
print(s)
结果:
22.以下Python程序运行结束后,循环变量i的值是 。
23.下面程序的运行结果为( )
24.def fun(n, k):
arr = list(range(1, n+1))
index = 0
while arr:
temp = arr. pop(0)
index += 1
if index == k:
#print(temp)
index = 0
continue
arr.append(temp)
if len(arr) == 1:
print(arr[0])
break
fun(41,3)
输出:
25.删除①②③,在该处填写代码,不要更改、删除其他代码,完善程序,实现功能:输入 3 个数,按照从大到小的顺序输出。
a=float(input())
b=float(input())
c=float(input())
if b>a:
a,① ,a
if c>a:
a,c=c,a
if ② :
b,c=c,b
print("从大到小的顺序是:", ③ )
三、判断题
26.顺序结构和分支结构的程序中每一条语句都会被执行,且只执行一次。( )
27.在信息的编程加工里,算法设计是编程的核心。( )
28.在for循环语句中,遍历结构不可以是字符串。( )
29.编程解决问题的核心步骤是编写程序。( )
30.下列程序段中,赋值语句 s=s+i 被重复执行了 3 次。( )
s=0
for i in range(3,10,2):
s=s+i
四、操作题
31.为迎接亚运以便更好地接待外宾,兰兰在亚运会前苦学英语,在学习英语的过程中他发现部分英语单词,正反拼写都一样,比如level(水平),pop(流行音乐)等,现在他想在一篇英语文章中统计有几个“回文单词”,大小写不影响回文判定,即“Level”也为回文单词,程序运行界面如图所示。
部分程序代码如下:
text=input("请输入文章:")
s=""
①
for i in range(len(text)):
if "a"<=text[i]<="z":
s+=text[i]
elif "A"<=text[i]<="Z":
s+=②
else:
if ③ :
c+=1
print("第",c,"个:",s)
s=""
print("这篇文章中一共有",c,"个回文单词")
(1)若输入的文章为“Chinese radar is at a high level”,程序会输出有 个回文单词
(2)请在以上Python程序段划线①②③处填入正确的代码。
32.Base64编码是计算机中常见的一种编码方式,规则是把3个字节的数据按6位1组分成4组(24÷6=4),然后将每组数据分别转换为十进制,根据表1将这些十进制数所对应的字符连接,即为Base64编码。
表1 Base64编码表
以编码字符串"Web"为例,如题表2所示,字符串"Web"对应的ASCII编码分别是87,101,98,分别转换为8位二进制数,按6位二进制数分组后再转换成十进制,查找它们的对应字符,得到字符串"Web"的Base64编码为“V2Vi”。
题表2Base64编码方法
请仔细阅读题目和代码,回答下列问题:
(1)若某字符串的Base64编码为“QW55”,则该字符串是( )
A."An" B."Any" C."Love"
(2)主程序。
Base64=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/']#创建Base64编码表
a="Webweb"
b=ASCII_to_Base64(a)
根据题目描述,可知执行该段程序后,变量b的值为 。
(3)自定义函数to_Byte(ch)能将字符ch对应的ASCII编码转换成8位二进制字符串,例如to_Byte("W")的返回值为"01010111"。请在划线处填入合适的代码。
def to_Byte(ch):
ac=ord(ch)#获取ch的ASCII编码值
bc=""
for i in range(8):
bc=①
ac=ac//2
return bc
(4)自定义函数ASCII_to_Base64(a)能将字符串a转换成Base64编码字符串(为简单起见,规定字符串a的长度为3的整数倍)。例如,当a="Web"时,函数返回"V2Vi"。
def ASCII_to_Base64(a):
bite_code="" #用来存储二进制字符串
for ch in a:
bite_code+=to_Byte(ch)
n=len(bite_code)
ans=""
for c in :
group=bite_code[c:c+24]
for j in range(0,24,6):
i=int(② )
ans=ans+Base64[i]
return ans
已知函数int(s,k)的作用是将k进制字符串s转换成十进制整数,例如int("101",2)的值为5,则第②空处应该填写代码 ;
(5)已知上述(4)小题中方框处代码有错误,请修改,其正确的代码应该是 。
参考答案
1.A
2.B
3.D
4.B
5.B
6.B
7.A
8.A
9.B
10.ABCD
11.AD
12.ABCD
13.AD
14.CD
15.B
16.D
17.A
18.C
19.D
20.B
21.40
22.3 6 9
23.1
1
1
1
1
1
……
24.31
25.b=b c>b a,b,c
26.错误
27.正确
28.错误
29.错误
30.错误
31.c=0 chr(ord(text[i])+32) s==s[::-1] 2
32.B "V2Vid2Vi" str(ac%2)+bc group[j:j+6],2 range(0,n,24)或其他等效答案