4.1程序设计语言的基础知识2023—2024学年高中信息技术粤教版(2019)必修1

2024-08-11
| 14页
| 120人阅读
| 0人下载

内容正文:

4.1 程序设计语言的基础知识 一、选择题 1.下列选项中属于字符串常量的是(  ) A.1457 B.a*b C."890" D.Abc 2.王伟东同学准备用下列的变量名来进行编程,在程序运行中不会报错的是(   ) A.we_1 B.3we C.he&amp;w D.input 3.Python的数据类型不包含以下哪种(   ) A.Number B.Long C.List D.Dictionary 4.在Python语言中,数据的输出是通过(   )来实现的。 A.input()函数 B.print()函数 C.output()函数 D.abs()函数 5.有如下Python程序段: def f(x): if x == 1 or x == 2: return 1 else: return f(x - 1) + f(x - 2) s = 0 for i in range(1, 4): s += f(i) print(s) 执行该程序段后,f函数被调用的次数是(   ) A.3 B.4 C.5 D.10 6.以下不能创建一个字典的语句是 ( ) A.dict1 = {  } B.dict2 = { 3 : 5 } C.dict3 = {[1,2,3]: “uestc”} D.dict4 = {(1,2,3): “uestc”} 7.有如下程序段: def f(x):     for i in b:         if x==i:             return True     return False a=[2,0,9,3,10] b=[10,9,16,2,7] for i in a:     if f(i):         cnt+=1 print(cnt) 程序执行后的输出结果是() A.1 B.2 C.3 D.4 8.下列关于 random. random()函数的叙述,不正确的是(   ) A.生成一个0~1之间的随机浮点数 B.生成数范围包括0但不包括1 C.程序中需使用 import random D.生成数范围不包括0但包括1 9.c=0 for i in range(1,26): If i%2==0: c=c+1 Print(c) 上面程序运行结果是( ) A.12 B.13 C.14 D.15 10.同桌在用python编程时总是分不清“=”和“==”,请为他解释一下在python表达式a==b中“==”表示的意思是(    ) A.交换“==”左右两边变量的值 B.把“==”左边变量的值赋值给右边变量 C.把“==”右边变量的值赋值给左边变量 D.判断“==”左右两边的值是否相等 11.文件st.xlsx第一张Excel工作表存放了学生信息,单元格A1、B1、C1的值分别为“姓名”、“性别”、“出生年龄”,部分程序代码如下: import pandas as pd s1=pd.read_excel(″st.xlsx″) s1.insert(0,column='班级',value='-(1)') s2=s1.sort_values('出生年龄') 执行该程序代码后,下列说法错误的是(  ) A.对象s1中对象一定是按“出生年龄”升序排列 B.除索引列外,对象s1有4列数据 C.对象s2中,每一行的班级列的值均为'-(1)' D.对象s1中,索引列的值是升序排列的 12.与关系表达式x==0等价的表达式是(    ) A.x=0 B.not x C.x D.x!=1 13.下列 Python 程序段的功能:统计出物化技组合成绩大于等于270分的人数。 # 某次测试七名学生的物理、化学、技术成绩被存储在变量 score 中 score={"物理":[87,85,83,90,85,88,91],"化学":[91,92,85,90,89,84,92], "技术":[97,89,93,95,93,87,94]} count=0 km=["物理","化学","技术"] for i in range(7): sum=0 for j in km: __________ if sum>=270: count+=1 print("成绩大于等于 270 分的人数",count) 为实现上述功能,划线处正确的 Python 表达式是(   ) A.sum+=score[i][j] B.sum+=score[j][i] C.sum+=score[j] D.sum+=score[i] 14.在Python中,要交换变量x和y,应使用语句(   ) A.x=y; y=x B.x=y; у=z; z=x C.z=x;y=x;y=z D.x, y=y, x 15.有如下 Python 程序段: import random        a=[0]*6 for i in range(6):     x=int(random.random()*10)+1     if i%2==1:         a[i]=2*x+1     elif x%2==0:         a[i]=x//2     else:         a[i]=x-1 print(a) 执行该程序段后,列表 a 中的值可能是 (  ) A.3,11,4,19,2,13 B.3,11,7,9,2,3 C.9,3,1,23,4,17 D.3,3,9,0,19,8 16.对于连续函数f(x),如果在区间[a,b]上满足:f(a)f(b)<0,则区间[a,b]内至少存在一点e,使得f(ε)=0。如此,可以引入二分查找法求解复杂函数的零点,思路如下:取区间中点c=(a+b)/2,如果f(a)f(c)<0,则零点位于区间[a,c]内;否则零点位于区间[c,b]内。对零点存在的区间继续取中点,以此类推,直到当前中点对应函数值的绝对值小于可接受误差为止。对于函数f(x)=ex*lnx-x2,使用二分法求零点的Python程序如下: import math def fun(x):    return math.exp(x)*math.log(x)-x**2    "'math.exp(x)返回 e 的x次幂, math.log(x)返回x的自然对数"' def binary(c,left,right):    cur root=left    while ① _ :       if abs(fun(left))<c:          return left       elif abs(fun(right))<c:          return right       else:          mid=(left+right)/2    if ② :       right=mid    else:       left=mid    cur_root=left ③ c,left,right=le-6,1,4 print("函数的零点为: ",binary(c,left,right)) 划线处应填入的代码为(    ) A.①abs(fun(cur_root))<c ②(fun(left)*fun(mid))<0   ③return mid B.①abs(fun(mid))>c  ②(fun(left)*fun(mid))<0  ③return cur_root C.①abs(fun(mid))<c  ②(fun(left)*fun(mid))>0   ③return mid D.①abs(fun(cur_root))>c  ②(fun(left)*fun(mid))<0   ③return cur_root 17.有以下程序段: a,b,c,d=input( ).split( ) a=int(a) b=int(b) c=int(c) d=int(d) print(c) 如果输入的是4 3 6 9,则程序运行的结果为 (   ) A.6 B.4 C.3 D.9 18.在Python中,表达式23//2**3的值是(    ) A.2 B.2.3 C.3 D.1331 二、填空题 19.在Python中,(13 % 5)**2的结果是 。 20.我们还可以利用计算机来模拟“割圆术”计算验证圆周率。如图所示,设圆的半径为1,正n边形的边长AB=xn,弦心距为hn,面积为Sn,正2n边形的边长AC=x2n;由勾股定理即可推导出,其中x6=1。观察发现,正2n边形的面积等于正n边形的面积加上n个等腰三角形的面积,即。利用这个推导公式,编写如下程序,求解π的近似值。据此完成下面小题。 from math import* #从math模块调用常用的数学函数 n=int(input("请输入多边形的边数:")) i=6 x=1 s=6*sqrt(3)/4    #sqrt():math中的函数,用于求算术平方根 while i<=n/2:   #当i>n/2时,结束循环,执行print() h=sqrt(1-(x/2)**2) s=s+i*x*(1-h)/2 x=sqrt((x/2)**2+(1-h)**2) i=2*i print("当正多边形的边数为",n,"时,π的近似值为:",s) 1. 按照数字化工具的功能分类,Python语言编程软件属于( ) A.信息传输工具    B.信息加工工具    C. 信息检索工具    D.信息存储工具 2. Python文件的后缀名为( ) A..c    B..jar    C. .xls    D..py 3. s=6*sqrt(3)/4是一条( ) A.输入语句    B.赋值语句    C. 输出语句    D.注释语句 4. “(x/2)**2+(1-h)**2”表达的代数式是( ) A.    B. C.     D. 5. “i<=n/2”中包含①算术表达式②逻辑表达式③关系表达式④赋值表达式( ) A.①②    B.①③    C. ②④    D.②③ 6. 程序中“#当i>n/2时,结束循环,执行print()”的功能为( ) A.数据输入    B.数据输出    C. 注释或解释    D.赋值 7. “print("当正多边形的边数为",n,"时,π的近似值为:",s)”的作用是( ) A.数据输入    B.数据输出    C. 运算    D.赋值 8. 在h=sqrt(1-(x/2)**2)语句中,**是( )运算符。 A.乘    B.除    C. 求余    D.幂 9. 在Python程序设计语言中,数据输入通过input函数来实现,input函数的返回值是( ) A.数值    B.字符串    C. 字典    D.列表 10. 利用计算机模拟“割圆术”,计算验证圆周率,体现了数字化学习的( )特点。 A.多样性    B.局限性    C. 创造性    D.单一性 11. 编制计算机程序解决问题的一般过程为①设计算法②编写程序③调试运行程序④分析问题,正确的排序是( ) A.①②③④    B.④①②③    C. ④②①③    D.①④②③ 21.现有一程序模拟竞猜某商品价格,总共有五次竞猜机会。根据程序功能,请在划线处填入合适的代码。 import random a=random.randint (0, 100) chance=5 print("共%d次机会"% (chance)) for i in     b=int (input("请输入一个整数: "))     if a < b:         print("大啦!!!还剩%d次机会"% (chance-i))     elif a > b:         print("小啦!!!还剩%d次机会"% (chance-i))     else:         print("恭喜您,答对啦!!!数字是%d,共用次数%d"%(a, i)) Break 22. 模块用于科学计算(随机数、数组运算等); 模块基于numpy实现,主要用于数据的处理和分析; 用于绘图库。 23.以下流程图是一个算法的描述,该算法是对A、B值进行判断,如果A不大于B,则A与B的值互换,最后输出A,B的值。    (1)根据题目中对算法的描述,则流程图中①处填写 。 (2)如果用Python语言实现“输出A,B的值”,则应该写为 。 三、操作题 24.App活跃人数存储在″app.xlsx″文件中,如下图所示,现要编程进行统计结果,请回答下列问题: 若要把“app.xlsx”第1张工作表中的信息导入到s1对象中,并进行统计,实现这个功能的python代码如下,将程序划线处填入合适的代码。 import pandas as pd s1= ①________#读取app.xlsx文件数据,并存储在s1对象中 s1_sum= ②________#计算10月人数之和 s1_aver= ③________#计算11月人数平均值 g= ④________#按应用领域分组统计 s1_sort= ⑤________#按11月人数值,降序排序 print(″10月人数之和:″,s1_sum) print(″11月人数平均值:″,s1_aver) print(″各应用领域最多人数:″, ⑥________)#输出各个应用领域12月最多人数 print(________⑦ )#按11月人数值最多的3条记录 print(________⑧ )#按11月人数值最少的3条记录 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题主要考查Python数据类型。Python字符串常量是用单引号或双引号括起来,"890"属于字符串常量,故本题选C选项。 2.A 【详解】本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。因此在程序运行中不会报错的是we_1,故本题选A选项。 3.B 【详解】本题主要考查Python数据类型。Python的六大数据类型:数字(Number)、字符串(String)、元组(Tuple)、列表(List)、集合(Set)、字典(Dictionary),故本题选B选项。 4.B 【详解】本题主要考查Python常见函数。input( )是数据输入函数,print( )是输出函数,abs( )是求绝对值函数,故本题选B选项。 5.C 【详解】本题考查Python程序。程序的执行步骤如下:定义了一个递归函数f(x),计算斐波那契数列的第x项。初始化变量s为0。使用循环遍历i在范围1到4(不包括4)之间,计算并累加f(i)到变量s。输出变量s。对于给定的循环范围1到4,程序会分别计算f(1)、f(2)和f(3),并将它们累加到变量s。在计算这些值的过程中,f(x)会涉及递归调用。具体调用次数如下:f(1)被调用1次f(2)被调用1次f(3)被调用3次(f(3)=f(2)+f(1),其中f(2)被调用1次,f(1)被调用1次)总的来说,f(x)被调用的次数为1+1+3=5次。故答案为:C。 6.C 【详解】本题主要考查字典数据类型。Python不支持dict的key为list或dict类型,因为list和dict类型是unhashable(不可哈希)的,故不能创建一个字典的语句是dict3 = {[1,2,3]: “uestc”},故本题选C选项。 7.C 【详解】本题考查Python程序设计相关内容。分析代码段可知,该代码段功能是比较两个列表a、b,统计相同元素的个数。a=[2,0,9,3,10]、b=[10,9,16,2,7],比较两者,可得出相同元素个数为:3。故本题答案是C选项。 8.D 【详解】本题主要考查Python随机函数。random.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b。random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0,故本题选D选项。 9.A 【详解】本题主要考查Python程序的执行。变量i的范围是1~25,当i是偶数时,c递增1,偶数有:2、4、6、8、10、12、14、16、18、20、22、24,故程序运行完,c=12,故本题选A选项。 10.D 【详解】本题考查Python表达式。在Python中,“==”是比较运算符,用于判断两个变量或表达式的值是否相等。当使用“==”时,Python会比较左右两边的值,如果它们相等,则返回True,否则返回False。故答案为:D。 11.A 【详解】本题考查的是pandas库相关知识。该程序的功能是读入st.xlsx中第一张工作表内容,并在索引列前增加一列班级,值均为'-(1)',将s1按出生年龄升序排列后赋值给s2,因此s1中的数据并未经过排序。 12.B 【详解】本题考查的是Python表达式。在Python中,0代表False,非0代表True,not是取反。x为0时,x==0值为True,not x值为True;x为非0时,x==0值为False,not x值为False。故选B。 13.B 【详解】本题考查Python数据字典及程序设计相关内容。分析代码段可知,若要统计出物化技组合成绩大于等于270分的人数,需要对每个人的物化技成绩进行求和。数据字典score中,每个键对应7个键值,即7个学生的同课程成绩。i的取值范围是0-6,j从["物理","化学","技术"]内取值,即score["物理"][0]、score["化学"][0]、score["技术"][0]对应第一个学生的物化技成绩,依次类推,可以使用sum+=score[j][i]来求得每个学生的物化技组合成绩。故本题答案是B选项。 14.D 【详解】本题考查的是Python赋值。在Python中,要交换变量x和y,应使用语句:z=x;x=y;y=z 或x, y=y, x。故本题应选D。 15.A 【详解】本题主要考查Python程序的调试。random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0, x=int(random.random()*10)+1,则x随机生成1~10之间的整数。如果i是奇数,则 a[i]=2*x+1也是奇数,排除选项D;如果i和x是偶数,则a[i]=x//2可能是奇数也可能是偶数;如果i是偶数,x是奇数,则a[i]=x-1是偶数,选项C中a[0]=9不符合题意,选项B中a[2]=7不符合题意,均排除。故本题选A选项。 16.D 【详解】本题主要考查二分查找及Python程序实现。变量c是精度,如果计算后的精度大于c,则进入循环继续执行,cur_root是最后的求解值,故①处while循环条件是abs(fun(cur_root))>c;由代码“right=mid”可知,此处零点位于区间[a,c]内,故②处if判断条件是(fun(left)*fun(mid))<0; cur_root=left,返回最后的解 cur_root,即③处填return cur_root,故本题选D选项。 17.A 【详解】本题考查的是Python函数。input( )是输入函数,split()通过指定分隔符对字符串进行切片,int()是转换为整型,print()是输出函数。如果输入的是4 3 6 9,程序运行后a值为4,b值为3,c值为6,d值为9,print(c)故输出的值为c的值:6。选项A正确。 18.A 【详解】本题考查的是Python表达式。**表示幂运算,优先级最高,//表示整除。23//2**3=23//8=2。故本题应选A。 19.9 【详解】本题主要考查Python表达式的运算。(13 % 5)**2=3**2=9。 20. B D B D B C B D B C B 【详解】本题主要考查Python程序的综合应用。(1)Python语言编程软件属于信息加工工具,选B选项。(2)Python文件的后缀名为.py,选D选项。(3)s=6*sqrt(3)/4是一条赋值语句,将等号右边的表达式赋给左边的变量s,选B选项。(4)Python中幂运算用“**”,故“(x/2)**2+(1-h)**2”表达的代数式是,选D选项。(5)“i<=n/2”中包含算术表达式(n/2)和关系表达式(i>n/2),选B选项。(6)“#”用于注释,故选C选项。(7)print()是输出函数,故选B选项。(8)在h=sqrt(1-(x/2)**2)语句中,**是幂运算符,选D选项。(9)input函数的返回值是字符串类型,选B选项。(10)利用计算机模拟“割圆术”,计算验证圆周率,体现了数字化学习的创造性,选C选项。(11)编制计算机程序解决问题的一般过程为:分析问题、设计算法、编写程序、调试运行程序,故选B选项。 21.range(1,chance+1,1):或range(1,chance+1):或range(1,6):或range(1,6,1): 【详解】本题考查Python函数。这个程序模拟了竞猜商品价格的过程,总共有5次竞猜机会。在划线处,应该填入一个循环来表示5次竞猜的过程。可以使用range()函数来生成一个包含1到5的整数序列,然后在循环中遍历这个序列,每次表示一次竞猜机会。在 for 循环的空白处,我们需要使用 range 函数来指定循环的次数。循环的次数应该是 chance 的值,也就是五次。所以可以有多种方式来指定循环的次数,如for i in range(1, chance+1)::这使用 range 函数指定了循环的范围,从 1 到 chance(包括 1 和 chance)。故答案为:range(1,chance+1,1):或range(1,chance+1):或range(1,6):或range(1,6,1):。 22. numpy pandas matpoltlib 【详解】本题考查的是Python库相关知识。numpy模块用于科学计算(随机数、数组运算等);pandas模块基于numpy实现,主要用于数据的处理和分析;matpoltlib用于绘图库。 23. A<=B? print(A,B) 【详解】本题主要考查算法流程图及Python语言。①该算法是对A、B值进行判断,如果A不大于B,则A与B的值互换,最后输出A,B的值,故此次判断条件是A<=B?。②如果用Python语言实现“输出A,B的值”,输出函数是print(),则应该写为print(A,B)。 24. pd.read_excel(″app.xlsx″) s1[″10月人数″].sum() s1[″11月人数″].mean() s1.groupby(″应用领域″,as_index=False) s1.sort_values(″11月人数″,ascending=False) g[″12月人数″].max() s1_sort.head(3) s1_sort.tail(3) 【详解】本题主要考查Python程序的综合应用。①取app.xlsx文件数据,并存储在s1对象中,使用read_excel()方法,故此处填pd.read_excel(″app.xlsx″)。②计算10月人数之和,使用sum()函数,故此处填s1[″10月人数″].sum()。③计算11月人数平均值,使用mean()函数,故此处填s1[″11月人数″].mean()。④按应用领域分组统计,使用groupby()函数,故此处填s1.groupby(″应用领域″,as_index=False)。⑤按11月人数值,降序排序,使用sort_values()函数,因为是降序,故参数ascending=False,故填s1.sort_values(″11月人数″,ascending=False)。⑥输出各个应用领域12月最多人数,使用max()函数,故此处填g[″12月人数″].max()。⑦按11月人数值最多的3条记录,使用head()函数,故此处填s1_sort.head(3)。⑧按11月人数值最少的3条记录,使用tail()函数,故此处填s1_sort.tail(3)。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

4.1程序设计语言的基础知识2023—2024学年高中信息技术粤教版(2019)必修1
1
4.1程序设计语言的基础知识2023—2024学年高中信息技术粤教版(2019)必修1
2
4.1程序设计语言的基础知识2023—2024学年高中信息技术粤教版(2019)必修1
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。