内容正文:
4.1程序设计语言的基础知识 2023—2024学年高中信息技术粤教版(2019)必修1
1.小曲使用Python 编写了一个计算某月天数的程序,她先将十二个月的天数存储到列表中,程序会根据用户输入的月份,输出该月份有多少天。程序第3行划线处应填写的代码是( )
1 m=int(input("请输入月份(1~12):"))
2 d=[31,28,31,30,31,30,31,31,30,31,30,31]
3
4 print(n)
A.n=d[m] B.n=d[0] C.n=d[m+1] D.n=d[m-1]
2.有如下Python程序:
stack A=[0]*6
stack B=[0]*6
top A=-1
top B=-1
d=[5,9,4,8,7,2]
for i in range (len (d)):
while top A !=-1 and d[i] < stack A[top A]:
top B+=1
stack B [top B]=stack A[top A]
top A-=1
top A+=1; stack A [top A]=d[i]
while top B !=-1:
top A+=1
stack A [top A]=stack B[top B]
top B-=1
程序执行过程中,变量topB的最大值为( )
A.1 B.2 C.3 D.4
3.哥德巴赫猜想是近代三大数学难题之一,即任一大于2的偶数,都可表示成两个素数之和。采用Python验证100以内哥德巴赫猜想的正确性,则划线处的代码为:( )
import math
def isprime(num):
i=2
while i<=int (math.sqrt(num)):
if num % i==0:
return False
i+=1
return True
n=6
while n<=100:
for j in range(3,int (n/2)):
if ____________________:
print (n,'=',j, '+',n-j)
n+=2
A.isprime(j) and isprime(n-j) B.isprime (j) and isprime(j+1)
C.isprime(n) and isprime(j) D.isprime(j) and isprime(j-1)
4.有如下Python程序段:
import random
a=[0]*6
for i in range(1,6):
a[i]=random. randint(1,9)
if i%2==a[i]%2:
a[i]+=1
else:
a[i]+=a[i-1]
执行该程序段后,a的值不可能的是( )
A.[0,4,5,7,12,10] B.[0,8,9,8,16,21]
C.[0,8,5,10,19,4] D.[0,4,7,15,9,6]
5.已知列表p1=[1,2,3],p2=[3,2,1],p3=[1,2,3,″1″,″2″,″3″],则表达式p1==p2 and p1<=p3的值为( )
A.0 B.1 C.True D.False
6.在Python语言中,以下不可以用作变量名的是( )
A.2_password B.Area C.bmp1 D. _3text
7.有如下程序段:
def bubbleSort (n):
if n == 1:
return
for i in range (n - 1):
if arr [i] > arr[i+1]:
arr[i], arr[i+1] =arr [i+1], arr[i]
bubbleSort(n-1)
from random import randint
n=randint(3, 5)
bubbleSort(n)
若数组arr的值为“64,34,25,12,22,11,90”,则调用函数bubbleSort(n)后 arr[3]的值不可能的是( )
A.12 B.25 C.34 D.64
8.在Python程序设计语言中,表达式3+5*2-2**3%5的结果为( )
A.10 B.5 C.3 D.0
9.在Python语言中,表达式“16-8∥3”的值为( )
A.8 B.16 C.14 D.13
10.在Python语言中,用来定义函数的关键字是( )
A.return B.def C.function D.define
11.阅读下列创建游戏窗口示例
import pygame
pygame.init()
screen=pygame.display.set_mode([600,400])
screen.fill((144,238,144))
img=pygame.image.load('ball.png')
screen.blit(img,[200,200])
pygame.display.update()
input("运行完毕,请按回车键退出...")
下列说法错误的是()
A.窗口的大小为600x400
B.窗口中图“ball.png”的大小为200x200
C.窗口的填充色为RGB(144,238,144)
D.以上都不对
12.用Python程序对分辨率为500*500的图像文件white.jpg(如图所示)进行处理,程序段如下:
from PIL import Image
im = Image.open("white.jpg").convert("L")#打开图像文件,并将其转换为灰度图像
pix=im.load()#加载图像像素数据
width,height=im.size#获取图像宽度值和高度值
for x in range(width):
for y in range(height):
if x<= width//2 and y<= height//2:
if x%50 == 0 or y%50 == 0:
pix[x,y]=0
elif y > height//2:
if x == y:
pix[x,y]=0
im.show()
执行上述程序段后,显示的图像效果是( )
A. B. C. D.
13.Python表达式round(3.1415,3)+abs(-3)+9//2 的值为( )
A.10.142 B.10.642
C.10.141 D.10
14.以下Python语言程序中,说法正确的是( )
A.r和s都是变量 B.只有s是变量 C.只有r 是变量 D.只有r是常量
15.若对变量r的值进行0和1之间的转换运算,下列选项中无法实现此功能的是( )
A.r=1-r B.r=abs(r-1)
C.r=(r+1)%2 D.r=r%2+1
16.编写Python程序,功能是提取字符串中二维列表结构的数据,例如字符串s="[[11,2],[2,31,2],[1]]",经过处理转化成列表[[11,2],[2,31,2],[1]]并输出,程序如下:
s="[[11,2],[2,31,2],[1]]"
res=[]; num=0
for i in s[1:-1]:
if i=="[":
tmp=[]; flag=True
elif i=="]":
flag=False
tmp.append(num); res.append(tmp) #①
elif i==",":
if : tmp.append(num)
num=0
else:
num=num*10+int(i)
print(res)
关于上述代码,下列说法正确的是( )
A.加框处代码可以替换为len(tmp)>0 B.将①处的两句代码对换,程序不受影响
C.若字符串s为"[[]]",则程序的输出不正确 D.若字符串s中存在空格,则程序运行依然正确
17.下列Python表达式中,能正确表示“变量x能够被4整除且不能被100整除”的是( )
A.(x%4==0) or (x%100!=0)
B.(x%4==0) and (x%100!=0)
C.(x/4==0) or (x/100!=0)
D.(x/4==0) and (x/100!=0)
18.若用整型变量k表示某天是星期几(例如k=1表示该天是星期一、k=2表示该天是星期二……k=7表示该天是星期天),则下列能够正确表示k的下一天是星期几的python表达式为( )
A.k+1 B.k % 7 + 1 C.(k+1) %7 D.(k+1)%7-1
19.Python中表达式a==b中“==”表示的意思是( )。
A.交换“==”左右两边变量的值
B.判断“==”左右两边的值是否相等
C.把“==”右边变量的值赋值给左边变量
D.把“==”左边变量的值赋值给右边变量
20.下列表达式的值为FALSE 的是( )
A.5>6==6 B.'abc'>'xyz' C.('3', '2') > ('a', 'b') D.(9-6) >1
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题主要考查Python程序的执行。Python中,列表的索引从0开始,因此程序第3行划线处应填写的代码是n=d[m-1],故本题选D选项。
2.D
【详解】本题考查栈数据结构及Python程序综合应用。 外循环一共执行6次, 具体执行过程如下:
第一个while循环中topB每循环一次会递增1,第二个while循环中topB每循环一次会递减1,因此第一个while循环结束后topB会出现最大值。由上表可知,程序执行过程中,变量topB的最大值为4。故选D。
3.A
【详解】本题主要考查Python程序的调试。isprime(num)用于判断num是否为素数,哥德巴赫猜想是近代三大数学难题之一,即任一大于2的偶数,都可表示成两个素数之和。划线处的代码需要判断j与n-j是否均为素数,若满足if判断条件则输出,故填isprime(j) and isprime(n-j) ,故本题选A选项。
4.B
【详解】本题主要考查Python程序的执行与调试。i取值1~5,循环5次,a[i]是随机生成1~9之间的整数,在if结构中,即i和生成a[i]具有同样的奇偶性时,则a[i]递增1,同时a[i]的奇偶性与i的奇偶性相反。在else结构中,即i和生成a[i]奇偶性相反,则执行a[i]=a[i]+a[i-1]。选项B中,由于a[i]是随机生成1~9之间的整数,a[5]=21,显然只能执行else部分得到,即21=16+5,即生成的a[5]=5,与i=5的奇偶性相同,矛盾,因此a的值不可能的是[0,8,9,8,16,21],故本题选B选项。
5.D
【详解】本题考查的是表达式的计算。本题主要考查的是列表操作。列表中的元素和位置有关,因此表达式p1==p2的值为False,列表p3中的元素包含列表p1中的元素,因此表达式p1<=p3的值为True,and运算时,只有两边同时为True时,结果才为True,其他情况均为False,故选项D正确。
6.A
【详解】本题考查的是Python变量名。Python程序设计语言规定变量名由字母(A~Z,a~z)、数字(0~9)、下划线组成,并且其第一个字符必须是字母或下划线,而不能是数字,如s1,k,num,pai等。选项A以数字开头,不可以用作python变量名。故本题应选A。
7.B
【详解】本题主要考查冒泡排序算法及Python程序实现。n=randint(3, 5),n可取3、4、5,当n=3时,排序后数组arr的值为“25,34,64,12,22,11,90”;当n=4时,排序后数组arr的值为“12,25,34,64,22,11,90”;当n=5时,排序后数组arr的值为“12,22,25,34,64,11,90”。显然调用函数bubbleSort(n)后 arr[3]的值不可能的是25,故本题选B选项。
8.A
【详解】本题主要考查Python表达式的运算。表达式3+5*2-2**3%5=3+10-8%5=13-3=10,故本题选A选项。
9.C
【详解】本题主要考查Python表达式的运算。16-8//3=16-2=14,故本题选C选项。
10.B
【详解】本题主要考查Python关键字。def是Python中用于定义函数的关键字。通过使用def关键字,可以定义一个函数,指定函数的名称、参数和函数体。故本题选B选项。
11.D
【详解】本题主要考查Python程序的执行与调试。分析程序可知,第3、4行代码分别表示窗口的大小为600x400,窗口的填充色为RGB(144,238,144);第6行代码表示窗口中图“ball.png”的大小为200x200,故本题选D选项。
12.D
【详解】本题考查的知识点是Python中循环语句和分支语句的相关知识。阅读程序段,分支部分的if语句部分是将四边形的四条边的中线作为坐标轴,主要是满足第二象限,Y>=0并且x<=0的画图,程序elif部分,主要是当y<0时满足y >height/2,且满足x=-y,所以在第四象限的y=-x线上,所以选项D符合题意。 故选答案为D选项。
13.A
【详解】本题考查的是Python表达式。round() 方法返回浮点数x的四舍五入值。abs()求绝对值,故round(3.1415,3)+abs(-3)+9//2=3.142+3+4=10.142,选项A正确。
14.A
【详解】本题考查Python变量的描述。Python中的变量,都指向一个值,值就是与该变量相关联的信息。变量就像一个房子,变量的值就像房子里面的东西。房子的名就是变量名,变量名被定义之后就不变了。当房子里面的东西变了,则就说明变量的值发生了变化。分析程序可知,r和s都是变量。故选A。
15.D
【详解】本题考查表达式。r = r % 2 + 1: 这不是有效的,因为对于 r 的取值范围0和1,无论 r 为何,它都不会有效地将 r 从 0 到 1 或从 1 到 0 进行转换。这将使 r 的值总是在 1 , 2 之间变化。故答案为D选项。
16.C
【详解】本题主要考查Python程序的执行与调试。如果加框处代码替换为len(tmp)>0,当遇到[11,2]与[2,31,2]之间的逗号时会出错,因此加框处代码不可以替换为len(tmp)>0;将①处的两句代码对换,程序将受影响;若字符串s为"[[]]",则程序的输出不正确,输出为[[0]];若字符串s中存在空格,则程序运行会出错,故本题选C选项。
17.B
【详解】本题主要考查Python表达式的运算。逻辑运算符“且”用and表示,“或”用or表示,变量x能够被4整除用x%4==0表示,不能被100整除用x%100!=0,故本题选B选项。
18.B
【详解】本题主要考查Python表达式的运算。一周7天,周期为7,故表示k的下一天是星期几的python表达式为k % 7 + 1,故本题选B选项。
19.B
【详解】本题主要考查Python表达式。Python中表达式a==b中“==”表示的意思是判断“==”左右两边的值是否相等,故本题选B选项。
20.ABC
【详解】本题主要考查Python逻辑判断式。5>6==6等价于5>6 and 6==6,其值为False;数字的ASCII码值小于小写字母的ASCII码值,因此'abc'>'xyz'、('3', '2') > ('a', 'b')值均为False;(9-6) >1等价于3>1,其值为True。故选ABC。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$