2.4常见算法的程序实现2024—2025学年高中信息技术人教/中图版(2019)必修1

2024-08-05
| 10页
| 85人阅读
| 0人下载

内容正文:

2.4 常见算法的程序实现2024—2025学年高中信息技术人教/中图版(2019)必修1 一、选择题 1.有如下Python程序段: s=″328ud*YourDay″ t=″″ for i in range(len(s)):   if s[i]>=″a″ and s[i]<=″z″: t=t+s[i] print(t) 该程序段的功能是(  ) A.输出字符串t中的所有小写字母 B.输出字符串s中的小写字母个数 C.输出字符串s中的所有的非数字字符 D.输出字符串s中的所有小写字母 2.变量S的定义为:char S'\092';,下列说法正确的是(    ) A.S的值包含一个字符 B.定义不合法 C.S的值包含三个字符 D.S的值包含四个字符 3.下列Python代码中,不能够实现两个整数a和b交换的是(   ) A.t=a;a=b;b=t B.a=a+b;b=a–b;a=a-b C.a,b=b,a D.a=a*b;b=a/b;a=a/b 4.有Python程序段如下: import pandas as pd s=pd.Series(["205","李光明","男","17"],index=["班级","姓名","性别","年龄"]) s[0]= "201" print(s) 该程序段运行后输出结果是(   ) A.班级 姓名 性别 年龄 B.201 "李光明""男" 17 C.班级    201   姓名   李光明 性别    "男"   年龄   17 D.0   201   1   李光明   2   "男"   3    17 A.A B.B C.C D.D 5.Python 表达式“a**2+3*b/c+d”对应的数学代数式是(   ) A. B. C. D. 6.有如下Python程序段: def f(n):     if n<=1:         return 1     else:         return f(n-1)+f(n-2) print(f(3)) 程序运行后,输出的结果为3,函数f被调用的次数是(   ) A.5 B.4 C.3 D.2 7.有如下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] 8.在Visual Basic中,下列能作为变量名的是(    ) A.My B.If C.a+y D.2nd 9.使用Python 语言对 SQLite 数据库进行操作,实现创建名为my.db 的数据库文件以及 user 表 的语句如下。 ①import sqlite3;②conn.commit();③c.execute(sql);④c.close();⑤conn.close(); ⑥c = conn.cursor();⑦conn = sqlite3.connect("my.db") ⑧sql = "CREATE TABLE user(username TEXT,password TEXT)" 语句执行的先后顺序正确的是(    ) A.①⑦②⑧③④⑤⑥ B.①②⑦⑥⑧③④⑤ C.①②⑦③⑥⑧④⑤ D.①⑦⑥⑧③②④⑤ 10.有如下Python程序段: s=input("输入字符串:") s1=""; flag=False for i in range(1, len(s)): if ord(s[i-1])+1==ord(s[i]) and not flag: s1=s1+s[i-1]+"-" flag=True elif ord(s[i-1])+1!=ord(s[i]): s1=s1+s[i-1] flag=False s1=s1+s[i] print(s1) 程序运行时,若输入“234ac5mnoq”,则输出结果是(    ) A.2-4a-c5m-q B.2-4ac5m-oq C.2-3-4ac5m-n-oq D.2-3-4a-c5m-n-oq 11.元旦活动,为了提高全班同学的参与感,班长决定在节目表演间隙加入游戏环节,参与游戏的同学名单由随机点名小程序随机生成,如图,是班长设计的随机点名小程序的算法。结合材料内容,完成小题。 names=存储全班学生的名字 f='yes' while(f≠'no')            #当输入'no'时,点名结束 n=统计当前学生总人数 i=随机生成一个学生序号 print(显示:序号为i的学生名字) names. remove(将被点名的学生从names中移除) if n=1.            #当前总人数是否为1 print(显示:所有同学均已全部参与!) break            #跳出循环 print(显示:是否继续?输入no退出!) f=input()        #用户输入“yes”或“no” print(显示:点名结束) 由于Python语言的简洁性、易读性以及可扩展性,已成为最受欢迎的编程语言。在下列运行环境中可以编辑、调试Python语言的是(   ) ①Visual C++ ②Jupyter Notebook ③PyCharm ④IDLE A.①②③ B.①②④ C.①③④ D.②③④ 12.在数学课堂上,小智正尝试判断一个数是否既是2的倍数又是3的倍数,如果是2的倍数又是3的倍数则打印出“YES”,否则打印出“NO”,并写出了下列程序,由于操作失误误删了一行代码,请你为他选出正确的选项: num=int(input()) if _______________:     print("YES") else:     print("NO") A.num%2 = 0 or num%3 =0 B.num%2 == 0 or num%3 ==0 C.num%2 == 0 and num%3 ==0 D.num%2 = 0 and num%3 =0 13.Python语言中的“ord”是将字符转换为对应存储编码的函数,编码值以十进制数形式显示,例如>>>ord(‘a’) ,输出的结果是:97,则>>>ord(d)输出结果为(   ) A.102 B.100 C.98 D.110 14.有如下python加密程序段,以下说法正确的是(    ) def encrypt(code,key):    code_new=""    for s in code:            code_new+=chr(s1)    return code_new code=input("code=") print(encrypt(code,2)) A.该加密程序段所用的加密算法是换位密码法 B.若输入字符串code为“App”,则输出的结果为crr C.若要对数字字符逐个右移进行加密,则只需将加框处语句修改为“(int(s)+key)%10” D.假设原文为小写字母,将加框处语句修改为“ord('a')+((ord(s)-ord('a'))-key)%26”可将加密的密文还原为明文 15.pandas函数中,Series是一种一维数据结构,包含一组数据和与数据关联的索引(index),索引值默认从0开始递增。下面这段Python程序的运行结果为(  ) A. B. C. D. 16.用变量a来表示一个三位十进制数b的百位上的数字,以下用法正确的是(    ) A.a=b/100 B.a=b%100 C.a=b//100 D.a=b*100 17.下列选项中,全部属于Python语言中标准算术运算符的是(  ) A./、//、** B.!、^、/ C.+、-、&amp; D.++、--、%% 18.下列Python程序段的运行结果是(    ) st=”上海市建平中学” print(len(st),st[5]) A.7 平 B.7 中 C.6 平 D.6 中 19.在Python程序中要使用sqrt()函数,应调用(    ) A.math模块 B.random模块 C.numpy模块 D.Image模块 20.某 Python 程序段如下: import random fibo = [1] * 11 for i in range(2, 11): fibo[i] = fibo[i - 1] + fibo[i - 2] n = random.randint(1,10) print(fibo[n]) 运行该程序段,输出结果不可能是(  ) A.1 B.21 C.35 D.89 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.D 【详解】本题Python循环语句。考查的是本题字符串t中输出的是字符串s中的所有小写字母,因此答案为D。 2.B 【详解】本题主要考查C语言变量的定义。'\0' 在c语言中是字符串的结束符,C语言标准库中对字符串的处理都会以\0作为字符串结束标志,任何字符串之后都会自动加上'\0',因此该定义不合法,故本题选B选项。 3.D 【详解】本题考查Python基础。 选项D中若变量b的值为0,则变量a不可以与变量b相除。故正确答案为:选项D。 4.C 【详解】本题考查Python基础。 s为Series对象,通过s[0]= "201"修改s对象中索引值为1的数据,即将"205"修改为"201",并给数据指定索引为"班级","姓名","性别","年龄",因此答案为C。 5.B 【详解】本题考查Python运算符与表达式相关内容。A选项,转换为表达式为:a**2+3*b/(c+d) 。B选项,转换为表达式为:a**2+3*b/c+d。C选项,转换为表达式为:sqrt(a)+3*b/c+d。D选项,转换为表达式为:2*a+3*b/(c+d)。故本题答案是B选项。 6.A 【详解】本题考查Python程序。函数f是一个递归函数,用于计算斐波那契数。当调用f(3)时,函数的调用过程如下:f(3)调用了f(2)和f(1),f(2)进一步调用了f(1)和f(0)。具体调用过程为:f(3)->f(2)+f(1),f(2)->f(1)+f(0)。因此,函数f的调用顺序为:f(3)、f(2)、f(1)、f(0)、f(1),共计5次。故答案为:A。 7.A 【详解】本题考查Python基础。 ①处为循环查找插入的位置,所以q要不断地更新为下一个元素的地址,即为data[q][1];②处为插入元素到列表data,由p=q,可知新插入元素后继地址为 data[p][1]。故正确答案为:选项A。 8.A 【详解】本题主要考查变量名的命名。变量名的命名规则有:只能以字母或下划线开头、不能是关键字,如if,不能含有特殊字符,故能作为变量名的是My,故本题选A选项。 9.D 【详解】本题主要考查Python操作数据库。使用Python语言将采集到的数据利用SQLite数据库进行存储,需要实现打开、选择、关闭等功能。则首先是导入splite3模块(sqlite3是一个增长最快的数据库引擎),即①import sqlite3;其次是链接数据库操作,即⑦conn = sqlite3.connect("my.db");再使用conn.cursor方法, 相当于操作的一双手,即⑥c = conn.cursor();然后是使用sql语句创建studen数据表,即⑧sql = "CREATE TABLE user(username TEXT,password TEXT)";再执行sql语句,即③c.execute(sql);最后是关闭游标和释放资源,即②conn.commit()和④c.close()⑤conn.close(),故执行的先后顺序是①⑦⑥⑧③②④⑤,故本题选D选项。 10.B 【详解】本题考查的是Python的循环及选择语句。阅读程序可知,如果读取的字符跟前面字符差1,同时flag为假,则将前面字符与“-”连接到s1中,并将flag为真,否则如果读取的字符跟前面字符不相差1,则将前面字符连接到s1中,并将flag为真,其它情况不处理。若输入“234ac5mnoq”。 字符2和3差1,同时flag为假,故将2与“-”连接到s1中,并将flag为真,s1为:2-; 字符3和4差1,同时flag为真,不处理; 字符4和a差不为1,故将4连接到s1中,并将flag为假,s1为:2-4; 字符a和c差不为1,故将a连接到s1中,并将flag为假,s1为:2-4a; 字符c和5差不为1,故将c连接到s1中,并将flag为假,s1为:2-4ac; 字符5和m差不为1,故将5连接到s1中,并将flag为假,s1为:2-4ac5; 字符m和n差1,同时flag为假,故将m与“-”连接到s1中,并将flag为假,s1为:2-4ac5m-; 字符n和o差为1,同时flag为真,不处理; 字符o和q差不为1,故将o连接到s1中,并将flag为假,s1为:2-4ac5m-o; 循环结束,将最后一个字符连接到sl,s1为:2-4ac5m-oq,故选B。 11.D 【详解】本题主要考查Python语言的描述。Jupyter Notebook 、PyCharm 、IDLE可以编辑、调试Python语言。Visual C++ 可以编辑、调试C/C++语言,故本题选D选项。 12.C 【详解】本题主要考查Python逻辑连接词。判断一个数是否既是2的倍数又是3的倍数,应该用逻辑连接词“and”,如果是2的倍数又是3的倍数则打印出“YES”,否则打印出“NO”,故填num%2 == 0 and num%3 ==0,选C选项。 13.B 【详解】本题主要考查Python函数的应用。Python语言中的“ord”是将字符转换为对应存储编码的函数,编码值以十进制数形式显示,例如>>>ord(‘a’) ,输出的结果是:97,则>>>ord(d)输出结果为97+3=100,故本题选B选项。 14.D 【详解】本题主要考查Python程序的执行与调试。该加密程序段所用的加密算法是替代密码;若输入字符串 code 为" App ",则输出的结果为 wrr ;若要对数字字符逐个右移进行加密,则只需将加框处语句修改为“s1= ord ('0')+(( ord ( s )- ord ('0'))+ key )%10”;若原文全部由小写字母组成,将加框处语句修改为“ord (' a ')+(( ord ( s )- ord (' a '))- key )%26”可将加密的密文还原为明文,故本题选 D 选项。 15.B 【详解】本题主要考查Python数据结构的应用。range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。由代码“s=pd.Series(range(2,8,2))”可知数据是2、4、6,索引值默认从0开始递增,故程序运行的结果是,故本题选B选项。 16.C 【详解】本题主要考查Python表达式的运算。用变量a来表示一个三位十进制数b的百位上的数字,则a=b//100,故本题选C选项。 17.A 【详解】本题考查的是Python算术运算符。在Python中算术运算符包括“+”“-”“*”“/”“%”“**”和“//”,分别表示加、减、乘、除、求余、幂运算和整除。故选项A正确。 18.B 【详解】本题主要考查Python程序的执行。字符串st的长度len(st)=7,字符串的索引从0开始,因此st[5]="中",所以运行结果是7中,故本题选B选项。 19.A 【详解】本题主要考查Python函数的应用。math模块主要包括数论与表示函数、幂函数与对数函数、三角函数、双曲函数、特殊函数,还有常量。在Python程序中要使用sqrt()函数,应调用math模块,故本题选A选项。 20.C 【详解】本题主要考查Python程序的执行。分析程序可知,该程序是斐波那契数列的应用。变量n的范围是1~10,当n依次取1~10时,输出的结果依次是1、2、3、5、8、13、21、34、55、89,故本题选C选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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