第四章 程序设计基础 2024—2025学年高中信息技术粤教版(2019)必修1

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

内容正文:

第四章 程序设计基础 一、选择题 1.王伟东同学准备用下列的变量名来进行编程,在程序运行中不会报错的是(   ) A.we_1 B.3we C.he&amp;w D.input 2.下列有关字符串的说法正确的是(   ) A.是不可变的数据 B.只能使用直双引号创建 C.是1个或多个字符组成的序列 D.可使用“{}”对字符串“切片” 3.下列程序的基本结构属于(  ) a=9 b=a+1 c=a+b print(a,b,c) A.顺序结构 B.分支结构 C.循环结构 D.树形结构 4.变量a,b均为布尔类型,Python表达式功能如下:若变量a,b值相同时表达式结果值为假,变量a,b值不相同时值为真。下列Python表达式描述错误的是(   ) A.a!=b B.(a==True and b==False) or (a==False and b==True) C.(a or b) and (a!=b) D.(a==True and b==False) and (a==False and b==True) 5.在Python中,不同的数据,需要定义不同的数据类型,可用方括号“[]”来定义的是(   ) A.列表 B.元组 C.集合 D.字典 6.定义如下函数: def move(n,a,b,c): if n==1: print(a,”->”,c) return move(n-1,a,c,b) move(1,a,b,c) move(n-1,b,a,c) 执行语句move(3,”A”, ”B”, ”C”),输出的第一行内容是( ) A.B->C B.A->C C.C->A D.A->B 7.有如下Python程序: def hill(n):     if n==1 or n==2:         return 1     elif n==3:         return 2     else:         return hill(n-1)+hill(n-3) x=int(input()) print(hill(x)) 执行该程序,若输入的值为7,输出的结果是(   ) A.7 B.8 C.9 D.10 8.将两个链表a和b按照间隔次序合并为一个链表,并将结果保存到链表a中,具体合并方式为: 原始链表a:  原始链表b: 合并后的链表a: 部分程序如下: # 读取链表a和b,均存储在列表data中,其中ha表示a的头指针,hb表示b的头指针 p, q = ha, hb while p!=-1 and q!=-1: r = data[q][1]      q = r 填入方框处的可选代码有:①data[p][1] = data[q][1]   ②data[q][1] = data[p][1]   ③data[p][1] = q   ④data[q][1] = p   ⑤p = data[p][1]   ⑥p = data[q][1] 已知链表b的长度不超过链表a,则下列选项中,代码顺序正确的是(   ) A.①④⑤ B.②③⑥ C.①④⑥ D.②③⑤ 9.运行下列代码,输出结果是: A.d B.win C.winow D.window 10.在Python中,要读取一个文本文件的内容,可以使用以下哪个语句?(     ) A.open() B.read() C.write() D.append() 11.有如下Python程序段: from random import randint s, i, ans=1,0,0 k= randint (10,24)   # randint(10,24)随机生成10到24(含10和24)之间的整数 for j in range (len (nums)):     s=s * nums [j]     while s >= k:         s=s / nums [i]         i+=1     ans +=j -i+1 若nums的值为[2,3,4,5],执行如下程序段后,变量ans的值不可能是(   ) A.4 B.5 C.6 D.7 12.小爱同学在jhyzoj上编写求1-n之间所有数和的程序如图a所示,本地调试报错信息如图b所示。 小爱同学求助编程大牛的你,她的程序代码运行到程序第(   )行报错。 A.1 B.3 C.4 D.5 13.在Python中,要使用(   )转换为浮点数。 A.for B.int C.str D.float 14.有如下Python 程序段: import random a=[] for i in range(10):        a.append(random.randint(1,100)) i=0 while i <10:        if i==0:             i=i+1        elif a[i-1]<=a[i]:              ①        else:             a[i],a[i-1]=a[i-1],a[i]              ② print(a) 执行该程序段实现了随机生成一个数组,并将其元素递增输出的功能。划线处的代码应该是(  ) A.① i+=1   ② i=1 B.① i-=1   ② i=1 C.① i+=1   ② i+=1 D.① i-=1   ② i-=1 15.在Python中,以下运行结果为真的是(    ) A.3*2>5 and 4//2>2 B.1+1!=2 or 2-1==1 C."python"<"C++" D.not 3>2 16.某校打造智慧食堂,引入了智能结算系统。管理员通过网页平台进行师生账户管理、菜品管理、查询记录。师生在用餐前仅需将盛有菜的碗碟放到结算台,结算台的读写器读取碗碟中的电子标签信息并计算价格,摄像头采集到人脸信息,结算台的软件将人脸信息和消费价格一同发送给服务器,服务器进行人脸识别并返回扣费结果至结算台。 查询菜品信息的部分程序如下: @app.route("/index") def menu_list():     conn=sqlite3.connect("db.db")     cur=conn.cursor()     cur.execute("select * from menus")     food=cur.fetchall()     cur.close()     conn.close()     return render_template("list.html",food=food) 下列说法不正确的是(   ) A.连接的数据库文件名是db.db B.查询的数据表名是food C.当前视图函数是menu_list() D.当前路由是"/index" 17.有如下VB程序段: s ="cbafedgh" m=3:c="":n= Len(s) For i =1 To n     j=(i-1)Mod 3 + 1     If m> n Then Exit For      '退出For循环      c=c+ Mid(s,m-j+1,1)      If j Mod 3 =0 Then m =m+3   Next i   If i < n Then c = Mid(s,i,n-i + 1)+c 执行该程序段后,变量c的值是(    ) A.abcdef B.abcdefgh C.ghabcdef D.hgabcdef 18.有如下Python程序段: a=[10,20,30] a.append(40) a.insert(1,50) a[3]=10 a.remove(10) del a[1:3] print(a.pop()) 程序运行后的输出结果为(   ) A.20 B.30 C.40 D.50 二、填空题 19.Python内置了许多常用函数,如sum(x),max(x),int(x)等,其中int(x)函数用于将变量x转换成 。 20.下列程序,运行结果为( ) import  math x=16 if x<0:   y=abs(x) else:   y=math.sqrt(x) print(y) 21.阅读如下一段程序,回答以下问题。 x=20 if x>=10:    value=4*x else:    value=5*x print(value) 该程序采用 结构,程序输出结果是 22.已知a=2,b=1,以下Python程序段运行结束后,b的值是 。 23.阅读下列程序,写出运行结果 sum=0 for k in range(1,11):     if k%2==0: sum=sum+k print(sum) 程序运行后输出结果是: 。 三、判断题 24.Python类不支持多重继承。( ) 25.在Python语言中,若n=6,m=3,则表达式m+3==n and n-3>=m的值为False。( ) 26.def块中的代码不是主程序的一部分,会跳过该段代码.( ) 27.在Python语言中,数据的输出是通过output()函数实现的。( ) 28.Python语言的变量名要区分英文字母的大小写。( ) 四、操作题 29.小王使用Flask 框架实现了一个简单的 Web 应用,启动程序后, 打开浏览器输入相应网址, 访问的结果如图a、图 b,在 Python 界面看到访问记录如图c 图 a 图b 图 c 程序代码如下所示 from flask import Flask,request app = Flask(__name__) @app.route('/') def index():     return '我的第一个网络应用' @app.route(' ① ') def add():     name = request.args.get("xm")     cont = request.args.get(" ② ")     return name + '的选课: '+cont if __name__=='__main__':     app.run() 请回答下列问题 (1)该系统网络应用软件的实现架构是 (单选,填字母:A .B/S 架构 / B . C/S 架构) (2)根据图b,请在划线处填入合适的代码① ② (3)根据程序代码,路由与视图函数共有 对 (4)根据图c可知,该应用的调试模式状态是 (单选, 填字母: A .打开 / B .关闭) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.A 【详解】本题主要考查Python变量的命名。变量的命名规则有:只能以字母或下划线开头,不能包含特殊符号,不能是关键字。因此在程序运行中不会报错的是we_1,故本题选A选项。 2.A 【详解】本题考查Python字符串相关内容。字符串是一种数据类型,用于表示文本数据,字符串是由一系列字符组成的,可以是字母、数字、符号等。在Python中,字符串是不可变的,这意味着一旦创建,就不能修改其内容。A选项,是不可变的数据,选项说法正确。B选项,可使用三种引号( ' 或 ″ 或''')来创建字符串,选项说法错误。C选项,字符串是0个或多个字符组成的序列,选项说法错误。D选项,使用“[]”对字符串“切片”,选项说法错误。故本题答案是A选项。 3.A 【详解】本题主要考查Python程序基本结构。程序基本结构有:顺序结构、分支结构、循环结构,由图可知,该程序的基本结构是顺序结构,故本题选A选项。 4.D 【详解】本题考查Python基础。 选项D,变量a和b值不同时,逻辑表达式(a==True and b==False)和(a==False and b==True)必然有一个为逻辑假,故选项D返回逻辑假与题意不符。故正确答案为:选项D。 5.A 【详解】本题主要考查Python数据类型。列表用方括号“[]”来定义,元组可以用圆括号“()”来定义,集合可以用大括号“{}”来定义,字典用大括号“{}”来定义,故本题选A选项。 6.B 【详解】本题考查Python程序设计相关内容。该函数为递归函数,描述的是汉诺塔游戏:有三根相邻的柱子,标号为A、B、C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,借助B柱子,将所有盘子一个一个移动到柱子C上,并且每次移动时,同一根柱子上都不能出现大盘子在小盘子上方的情况。本题盘子个数为3,调用move函数时,move(3,“A”, “B”, “C”)运行过程为:。第一行内容是A->C。故本题答案是B选项。 7.C 【详解】本题考查Python函数相关内容。分析程序可知,该函数调用为递归调用。x值为7,则hill(7)=hill(6)+hill(4),分别计算:(1)hill(6)=hill(5)+hill(3)=hill(4)+hill(2)+hill(3)=hill(3)+hill(2)+hill(2)+hill(3)=2+1+1+2=6。(2)hill(4)=hill(3)+hill(1)=2+1=3。所以hill(7)=6+3=9。故本题答案是C选项。 8.B 【详解】本题考查Python程序设计相关内容。本题涉及到链表的相关知识。 根据代码指针情况,链表的初始情况如上图所示。循环体中,要把D和E连接到ha链表中,D链接到A和B之间,E链接到B和C之间。所以第一步让D节点的指针域指向B节点,即执行data[q][1]=data[p][1],如下图1步骤①第二步要让A节点的指针域指向q,即执行代码data[p][1]=q,如下图1步骤②,至此D节点已经链入ha链表。接下来我们要做的工作是为接入E节点做准备,首先让p指向B节点(因为E要链接到B后面),此时B节点没有指针直接指向,但他的地址是q指针指向的D节点的指针域的值,即可以执行p=data[q][1]。接下来把q指针指向r,即执行代码q=r(题中已有代码),接下来第二次循环即可实现把q指针指向的E节点链接到p指针指向的B节点后面。操作顺序为②③⑥。 故本题答案为B选项。 9.B 【详解】本题主要考查Python程序执行。分析程序可知,变量c依次从字符串“window”中取字符,如果c的值是“d”,则循环结束,如果不是则输出该字符,故输出结果是:win,故本题选B选项。 10.B 【详解】本题主要考查Python文件操作函数。open ()是文件打开函数,read ()是文件读函数、write ()是文件写函数,append()是追加函数。故本题应选B。 11.A 【详解】本题考查Python程序。初始化变量s=1,i=0,ans=0。生成随机数k,范围在10到24之间。遍历nums列表,对于每一个元素执行以下操作:更新s的值为s*nums[j]。通过while循环,如果s>=k,则将s除以nums[i]并增加i的值。计算ans的值为ans+(j-i+1)。具体步骤:j=0,ans+=0-0+1=1;j=1,ans+=1-0+1=2;j=2,如果k=10,那么s>=10,s=24/2=12,i=1;s=12/3=4,i=2,跳出循环;如果k=24,那么s=24,s>=24,s=24/2=12,i=1,跳出循环;ans+=2-i+1,根据不同的k值,i的值不同,如果k=10,那么i=2,ans+=2-2+1=1;如果k=24,那么i=1,ans+=2-1+1=2;此时ans的值最少增加1。j=3,如果k=10,s=4*5=20,s>=10,s=20/4=5,i=3,跳出循环;如果k=24,s=12*5=60,s>=24,s=60/3=20,i=2,跳出循环;ans+=3-i+1,根据不同的k值,i的值不同,如果k=10,那么i=3,ans+=3-3+1=1;如果k=24,那么i=2,ans+=3-2+1=2;此时ans的值最少增加1。从上面的分析可以看出:当j=0和j=1时,ans的值已经为3。当j=2和j=3时,ans至少增加1。所以,ans的值最小是5(3+1+1),即不可能是4。 12.B 【详解】本题考查的是Python程序调试运行。由图a可知,错误是因为i再之前没有赋值,导致错误。故她的程序代码运行到程序第3行报错。选B。 13.D 【详解】本题考查的是Python函数。float()函数用于将整数和字符串转换成浮点数。故本题应选D。 14.A 【详解】本题主要考查Python程序执行与调试。分析程序,该程序段实现了随机生成一个数组,并将其元素递增输出的功能,如果a[i-1]<=a[i],满足升序,不用交换,i递增,继续下一个元素的比较,即①处填i+=1;如果不满足a[i-1]<=a[i],则交换以完成升序,同时i赋值为1从头开始继续比较判断,即②处填i=1,故本题选A选项。 15.B 【详解】本题考查Python表达式。A选项,3*2=6,6>5为真,4//2=2,2>2为假,and运算中全真才为真,所以3*2>5 and 4//2>2为假。B选项,1+1=2,1+1!=2为假,2-1=1,2-1==1为真,or运算中一真则真,所以1+1!=2 or 2-1==1为真。C选项,在Python中比较字符串大小是按照字符的ASCII码值比较,'p'的ASCII码值大于'C'的ASCII码值,所以"python"<"C++"为假。D选项,3>2为真,not真为假,所以not 3>2为假。故答案为:B。 16.B 【详解】本题考查Python应用。在程序中执行的查询语句是"select * from menus",表名是"menus",而不是"food"。故答案为:B。 17.C 【详解】本题考查执行VB程序相关的知识点 第一次循环 m-j+1 = 3,截取s中的a赋值给c 第二次循环 i=2,j=2,m-j+1=2,c=ab 第三次循环 i=3,j=3,m-j+1=1,c=abc,m=6 第四次循环 i=4,j=1,m-j+1=6,c= abcd 第五次循环 i=5,j=2,m-j+1=5,c= abcde 第六次循环 i=6,j=3,m-j+1=4,c = abcdef ,m=9 第七次循环 i=7,j=1,退出循环 c= ghabcdef 故本题选C 18.C 【详解】本题考查的是python程序的列表的操作。程序注释见下图: 故本题选项C正确。 19.整型 【详解】本题主要考查Python常用函数的描述。sum函数用于求和,max函数用于求最大值,int函数用于转换为整型。 20.4.0 【详解】本题主要考查Python程序的执行。x=16,不满足if判断条件,执行else部分y=math.sqrt(x)=4.0,故运行结果是4.0。 21. 分支 80 【详解】本题主要考查Python分支结构的应用。①分析程序可知,该程序采用分支结构。②当输入x=20时,满足if条件,执行value=4*x=80,故输出结果是80。 22.4 【详解】本题考查的是Python循环语句。初始a=2,b=1。 a>=b成立,第一次循环,执行b=a*b=2*1=2; a>=b成立,第二次循环,执行b=a*b=2*2=4; a>=b不成立,跳出循环,故b的值是4。 23.30 【详解】本题考查的是Python循环语句。sum=0,变量i的范围是1~10,如果是偶数,则执行sum=sum+i,故程序执行完,sum=sum+i=0+2+4+6+8+10=30。 24.错误 【详解】本题考查Python基础。 实际上,Python 类是支持多重继承的。多重继承允许一个类继承自多个父类,这使得类可以继承多个父类的属性和方法。在 Python 中,这通过使用逗号分隔的基类列表在类定义时指定。故错误。 25.错误 【详解】本题主要考查Python表达式的运算。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。若n=6,m=3,则表达式m+3==n值为True,表达式 n-3>=m值为True,则表达式m+3==n and n-3>=m的值为True,故表述错误。 26.对 【详解】本题考查Python相关知识。def是自定义函数,是用户自己编写的一段程序,一般包括函数名,参数,返回值和函数体等四部分,其中参数和返回值可根据需要进行定义。def块中的代码不是主程序的一部分,会跳过该段代码。题干说法正确。 27.错误 【详解】本题考查的知识点是Python语言中的输出语句。在Python语言中,实现数据的输出是使用print函数,故答案为错误。 28.正确 【详解】本题考查Python。Python语言的变量名是区分英文字母大小写的,这意味着在Python中,变量名var和Var被视为两个不同的变量。故说法正确。 29. A /sub xk 2 B 【详解】本题主要考查Python程序Flask框架的应用。 (1)通过浏览器访问Web服务器,所以该系统网络应用软件的实现架构是B/S架构,选A选项。 (2)由图b可知,路由是/sub,故第一空填/sub。变量cont获取选课信息,故第二空填xk。 (3)根据程序代码,路由与视图函数共有2对。 (4)根据图c “Debug mode:off”可知,该应用的调试模式状态是关闭,故选B选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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