内容正文:
第2单元 编程计算
一、选择题
1.以下不属于编制计算机程序解决问题的必备步骤的是( )
A.列出算式 B.编写程序 C.调试运行 D.设计算法
2.things=["香蕉","苹果","橙子","猕猴桃"],若想输出things元素“橙子”,正确的Python表达式为( )
A.print(things[-2]) B.print(things[3]) C.print(things["橙子"]) D.print(things[-1])
3.有如下Python程序段,列表data为[[14,2],[4,0],[24,4],[44,-1],[34,3]],data[i][1]为data[i][0]元素的后继元素地址,head为1时开始读取列表,则可得4 14 24 34 44的有序序列。下面代码是在这个有序序列基础上,插入一个[5,55]区间的任意数x,使得输出的序列保持有序。
head=1;q=head
while q!=-1:
if x>data[q][0]:
p=q
q=①
else:
break
data.append(② )
data[p][1]=len(data)-1
q=head
while q!=-1:
print(data[q][0],end=' ')
q=data[q][1]
则①②处正确代码为( )
A.①data[q][1] ②[x,data[p][1]] B.①data[q][1] ②[x,p]
C.①data[q][0] ②[x,data[p][1]] D.①data[q][0] ②[x,p]
4.已知闰年的判断条件是:年份能被4整除但不能被100整除,或者能被400整除。下列VB表达式中,能判断某年份(year)是否是闰年的是( )
A.year Mod 4 <> 0 And year Mod 100 = 0 Or year Mod 400 = 0
B.year Mod 4 = 0 And year Mod 100 <> 0 Or year Mod 400 = 0
C.year Mod 4 = 0 And year Mod 100 <> 0 Or year\400 = 0
D.year \ 4 = 0 And year \ 100 <> 0 Or year \ 400 = 0
5.下列Python程序,运行的结果是( )
a=1
if(a==4) or (a<6):
print("你好!",a)
else:
print("退出!")
A.你好! B.退出 C.你好!1 D.你好!6
6.在Python中,下面代码的运行结果是( )
x=365
g=x%10 #%为求余的意思
s=x//10%10 # //为整除的意思
b=x//100
sum=g*100+s*10+b #sum英文是求和的意思
print(sum)
A.365 B.14 C.563 D.41
7.下列Python程序段的运行结果是( )
a=123
b=100
if a>b:
a=a+b
else:
b=a-b
c=a+b
print(c)
A.323 B.223 C.77 D.-23
8.下列属于Python的Web应用框架的是( )
A.Flask B.pandas C.plotly D.numpy
9.有两个VB程序段,如下所示:
已知程序段中①②两处内容相同,数组元素a(1)到a(10)的值依次为:6,43,21,78,33,16,80,45,12,90,执行“程序段1”后,数组元素a(1)~a(10)的值依次为80,78,90,45 ,43,33,21,16,12,6,则下列说法正确的是()
A.①和②处的填空为7
B.两程序段的比较次数不一样,交换次数一样
C.执行完程序段2后,数据6移动到了a(10)
D.两段程序的得到的运行结果相同
10.Python中,分支语句使用的关键字是( )
A.if B.while C.for D.def
11.有如下程序段:
p=input ("请输入明文字符(由字母组成):")
e=""
for i in p:
if "a" <=i<="z":
e+="L"
i=chr (ord (i) -32)
else:
e+="U"
s=ord (i)-ord ("A")
e+=str(s//5)+str (s%5)
print (e)
若输入p的值为“Ad”,则程序执行后输出的结果是( )
A.U00L03 B.U00L70 C.L00U03 D.UOL3
12.计算两数的最小公倍数算法如下:
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
k = 2
Lcd = 1
while a != 1 or b != 1:
if a % k == 0 or b % k == 0:
if : a = a // k
if : b = b // k
else:
print("最小公倍数为:", Lcd)
方框中的代码由以下四部分组成:
①Lcd = Lcd * k ②k = k + 1 ③b % k == 0 ④a % k == 0
则(1)(2)(3)(4)处代码顺序依次为( )
A.③④②① B.③④①② C.④③②① D.④③①②
13.下列适合用计算机程序解决问题的选项是( )
A.整理收藏夹 B.用电子邮件发送会议通知
C.求100以内奇数的和 D.更新QQ空间
14.下列Python表达式中,值为True的是( )
A.9/3**2!=1 B."12"=="12345"[1:3]
C.abs(-4.3)>9//2 D."ac" in "abcaab"
15.选择结构程序应用的分支语句是( )
A.if B.for C.while D.print
16.有如下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
二、填空题
17.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)
该程序段运行后,最后输出的内容是 。
18.写出运行结果。
s=0
while s<=30:
s=s+10
print(s)
结果:
19.在数字逻辑中,逻辑与运算通常用符号 表示。
20.阅读下列程序,写出运行结果
sum=0
for k in range(1,11):
if k%2==0:
sum=sum+k
print(sum)
程序运行后输出结果是: 。
21.有以下程序段:
sum=0
for i in range(1,10):
if i%2==0:
sum=sum+i
print(sum)
程序运行后,其输出结果为( )。
三、判断题
22.在Python 3中,使用内置函数input()接收用户输入时,不论用户输入什么格式的内容,一律按字符串进行返回。( )
23.CPU的厂商比较出名的有Intel公司和AMD公司 ( )
24.在Python3.x语言中,input()函数的返回值类型是字符串。( )
四、操作题
25.某阅卷系统可以根据学生输入的选择题答案进行对照并判分。每道选择题2分,题型为单选、多选,判分规则如下:单选题和标准答案一致得全部分数,错选或不选不得多选题和标准答案一致得2分,漏选给1分,错选或不选不得分。程序输入及输出结示例如下:
请输入你的答案,并以逗号结尾:A,B,A,B,C,ACD,AB,AD,
最终得分为:7
你的平均分为:0.88
(1)若标准答案为["A","C","A","D","B","ACD","ABD","AC"],当输入的答案是"A,C,A,B,C,ACD,ABC,A,"时,得分为 。
(2)编写Python程序如下,在划线处填入合适的代码。
def check(x,y): #x为输入的选择题答案,y为标准答案
f=0;t=0
for i in x:
if ① :
t=0
break #break表示中断循环
else:
t+=1
if t !=0:
if t==len(y):
f=2
else:
②
return f
bzda=["A","C","A","D","B","ACD","ABD","AC"]
s=input("请输入你的答案,并以逗号结尾:")
tmp="";n=0;sum=0
for i in s:
if i!=",":
tmp=tmp+i
else:
sum=sum+③
n=n+1
tmp=""
print("最终得分为:",sum)
print("你的平均分为:",round(④ ))#结果保留两位小数
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查计算机编程解决问题相关内容。使用计算机解决问题的一般步骤为:分析问题、设计算法、编写程序、调试运行。故本题答案是A选项。
2.A
【详解】本题考查Python基础。
things是列表,列表中单个元素的访问可以通过索引号来完成,索引号的编号有两种方式:从左到右递增,从0开始编号;从右到左递减,从-1开始编号。题目中输出橙子,从右到左递减,在列表的第二位,故索引为-2。故正确答案为:选项A。
3.A
【详解】本题考查Python基础。
①处为循环查找插入的位置,所以q要不断地更新为下一个元素的地址,即为data[q][1];②处为插入元素到列表data,由p=q,可知新插入元素后继地址为 data[p][1]。故正确答案为:选项A。
4.B
【详解】本题主要考查VB条件判断。年份能被4整除但不能被100整除(可使用逻辑运算符and连接),表示为year Mod 4 = 0 And year Mod 100 <>0,或者能被400整除(使用逻辑运算符Or连接),表示为Or year Mod 400 = 0,故能判断某年份(year)是否是闰年的是year Mod 4 = 0 And year Mod 100 <>0 Or year Mod 400 = 0,故本题选B选项。
5.C
【详解】本题考查的是Python选择语句。a=1,满足(a==4)or(a<6)条件,故执行print("你好!",a),运行的结果是你好!1。选项C正确。
【点睛】
6.C
【详解】本题主要考查Python基本运算。%为求余, //为整除,程序实现了提取了变量x各位上的数值,然后倒置形成新数,因此C选项正确。
【点睛】
7.A
【详解】本题主要考查Python程序的执行。a=123,b=100,满足a>b,执行a=a+b=223,再执行c=a+b=223+100=323,故本题选A选项。
8.A
【详解】本题考查Python库。pandas是Python的数据分析库,plotly是Python的可视化库,numpy是Python的科学库。故答案为:A。
9.A
【详解】本题考查冒泡排序。根据题干,执行“程序段1”后,数组元素a(1)~a(10)的值依次为80,78,90,45 ,43,33,21,16,12,6,可知a(10)-a(4)实现排序,故整个排序执行了七趟。根据程序段1,双重for循环的内循环for j=1 to 10-i,这是一个下沉的排序,对整个程序段总共要执行七趟,那么i的变化是1-7,故外循环填入7。选项A正确。两个程序段都执行七趟,比较次数一样。执行完程序段2后,数据6移动到了a(8)。故本题选A。
10.A
【详解】本题考查的是Python分支语句。if是分支语句使用的关键字;while、for是循环语句使用的关键字;def是自定义函数的关键字。故选A。
11.A
【详解】本题考查的是Python循环语句。阅读程序可知,依次对输入的字符进行加密,如果字符是小写字母,则转换为大写字母,并转换为密文格式:L加上与字母A的差值对5取整和对5取余;如果字符是大写字母,则转换为密文格式:U加上与字母A的差值对5取整和对5取余。若输入p的值为“Ad”,A加密后为:U00,d加密后为:L03。故选项A正确。
12.D
【详解】本题考查的是Python循环语句。分析程序可知,采用的是分解质因数法来求最小公倍数。如果k是a的质因数,求下一个质因数前,则要将执行a // k;如果k是b的质因数,求下一个质因数前,则要将执行b // k;相同的质因数只取1个,各自独有的质因数全部乘上,得出的值就是最小公倍数,故(1)(2)(3)依次为④a % k == 0③b % k == 0①Lcd = Lcd * k,逐个验证是否为a、b质因数,故(4)处代码为 ②k = k + 1。选项D正确。
13.C
【详解】本题考查的是计算机编程相关知识。在浏览器中,已经自带整理收藏夹,不需要编程;现有的QQ等邮箱就可以发送邮件,不需要编程;QQ里有更新QQ空间的功能,不需要编程。故本题应选C。
14.C
【详解】本题考查Python运算符、表达式相关知识。A选项,3**2结果为9,9/9结果为1,1!=1结果为False;B选项,"12345"[1:3]结果为"23","12"=="23",结果为False;C选项,abs(-4.3)值为4.3,9//2结果为4,4.3>4,结果为True。D选项,"ac"不是"abcaab"的子串,"ac" in "abcaab"结果为False。故本题答案是C选项。
15.A
【详解】本题程序设计语言相关内容。选择结构程序应用的分支语句是if,故本题应选A。
16.A
【详解】本题考查的是Python循环语句。random.randint(1,10)生成1~10的随机整数。经 a[i]//=2或 a[i]+=1不可能为0、12,故选项C、D不可能;选项A中,a[0]=7,只能由a[i]+=1得到结果(如果由a[i]//=2得到,则初始a[0]=14,超出1~10),故初始a[0]=6,初始a[0]=6满足if条件,应执行a[i]//=2,与执行a[i]+=1矛盾了,故选项B不可能。本题应选A。
17.2
【详解】本题考查程序设计。
该程序输出,统计列表中前面两个数相加等于第三个数的个数。第一次循环1+2等于3,c+=1。第二次循环1加3等于4,c+=1;第三次循环3+4不等于5。故正确答案为:2。
18.40
【详解】本题考查循环结构。这段代码使用了一个while循环。循环开始时,s的值为0。然后,循环检查s是否小于或等于30。如果条件成立,循环体内的代码将被执行。在循环体内,s的值增加10,然后再次检查循环条件。这个过程会一直重复,直到s的值大于30。循环结束后,最后一次s增加10的操作也会执行,将s的值增加到40。所以,打印出的结果是40。故答案为:40。
19.∧
【详解】本题考查运算符。逻辑与运算通常用符号 ∧ 表示。它是一种二元逻辑运算,当两个操作数都为真时,结果才为真。故答案为:∧。
20.30
【详解】本题考查的是Python循环语句。sum=0,变量i的范围是1~10,如果是偶数,则执行sum=sum+i,故程序执行完,sum=sum+i=0+2+4+6+8+10=30。
21.20
【详解】本题考查的是Python循环语句。sum=0,变量i的范围是1~9,如果是偶数,则执行sum=sum+i,故程序执行完,sum=sum+i=0+2+4+6+8=20。
22.正确
【详解】本题考查Python基础。
在Python 3中,使用内置函数input()接收用户输入时,不论用户输入什么格式的内容(包括数字、字符、特殊符号等),该函数一律将输入内容作为字符串(str)返回。故正确。
23.正确
【详解】本题主要考查计算机CPU知识点。CPU的厂商比较出名的有Intel公司(如酷睿系列)和AMD公司(如锐龙系列),表述正确。
24.正确
【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。
25. 9 i not in y f=1 check(tmp,bzda[n]) sum/n,2
【详解】本题考查程序分析。
(1)若标准答案为["A","C","A","D","B","ACD","ABD","AC"],当输入的答案是"A,C,A,B,C,ACD,ABC,A,"时,判断出单选题对3道,得6分。多选题全对1道,得2分。漏选1道,得1分。故正确答案为:9。
(2)①if条件判断输入的选择题是否在标准答案中,如果不在标准答案中,则答案长度变量t为0,如果在答案长度变量t加1。故正确答案为:i not in y。②当答案长度变量t和标准答案长度相等时,则表示全对,得2分。否则漏选答案得1分。故正确答案为:f=1。③调用答案核对函数,获得每道题的得分,然后累加到总分变量sum中。故正确答案为:check(tmp,bzda[n])。④调用round函数,保留平均分两位小数。平均分计算为总分除以题目数量。故正确答案为:sum/n,2。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$