2023年中考信息技术一轮基础复习卷21--算法与程序设计
一、单选题
1.判断或分支用下列哪个图形表示?( )。
A. B.
C. D.
2.程序设计有三种基本结构,下列不属于这三种基本结构的是( )
A.子程序结构 B.顺序结构 C.条件结构 D.循环结构
3.Python中比较运算符的不相等用( )表示。
A.== B.!= C.<> D.≠
4.下图所示的流程图属于哪种控制结构( )
A.顺序结构 B.分支结构 C.交互结构 D.循环结构
5.如果在VB中输入代码Text1.Text=Rnd*10,Text1中得到的数据不可能是 。
A.1.5 B.5.2 C.7 D.121
6.在程序设计中,经常需要借助第三个变量c作为中间变量来交换变量a和变量b的数据,下列操作步骤中正确的是( )
A.a=b;b=c; c=a B.c=a;a=b;b=c C.a=b;b=a;a=c D.c=a;b=a;b=c
7.执行以下Python程序段后,变量x的值为( )。
x=3.772
y=-8
x=int (x) +abs (y)
print (x)
A.3 B.8 C.11 D.-5
8.下列循环语句共执行了( )次。
i = 0
while i <10:
print("我爱Python!")
i = i + 2
A.3次 B.4次 C.5次 D.6次
9.下列逻辑表达式中能完全正确表示条件“year是闰年”的是( )。
A.year mod 4=0
B.year mod 400=0
C.(year mod 400=0) or (year mod 4=0) and (year mod 100<>0)
D.(year mod 400=0) and (year mod 4=0) or (year mod 100<>0)
10.若要编程输出 1-100 以内所有 3 的倍数的和,下列那个程序是正确的( )
A.
a=0 for i in range(1,100): if i%3==0: a=a+i print(a)
B.
a=0 for i in range(1,100): if i%3==0: a=a+1 print(a)
C.
a=0 for i in range(0,100,3): a=a+1 print(a)
D.
a=0 for i in range(0,99,3): a=a+i print(a)
11.设有一个栈,元素的进栈次序为A,B,C,D,E,下列不可能的出栈序列是( )。
A.A,B,C,D,E B.B,C,D,E,A
C.E,A,B,C,D D.E,D,C,B,A
12.有六个元素6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列?( )
A.543612 B.453126 C.346521 D.234156
二、填空题
13.算法的基本控制结构有 、 和 。
14. 是用户通过点击等动作完成程序中的某些操作。
15.已知 a = 5,那么执行语句 a += 3 之后, a 的值为 。
16.该程序可以依据原始成绩,判断证书等级,85(含)分以上为Great,70(含)至85为Good,60(含)至70为Medium,60分以下为Bad。
G=int(input(‘请输入原始成绩:’)) If print(‘Great’) elif G<85 and G>=70: print(‘Good’) print(‘Medium’) else: print(‘Bad’)
17.填空题
(1)将代数 式转换成程序设计中的表达式为 。
(2)表示x是5的倍数或是9的倍数的逻辑表达式为 。
18.以下Python代码,运行之后输出结果是 。
a=4
s=0
while a>=0:
s=s+a
a=a-1
print(s,a)
19.程序完善题
已知摄氏度C转换到华氏度F的公式是 ,设计界面设计如下,请将打乱的代码进行排序。
Private Sub Command1_Click()
End Sub
打乱的代码如下:
A. F=9/5*C+32
B. Text2.Text= str(F)
C. Dim C, F As Single
D. C = Val(Text1.Text)
20.用Python模拟猜数字游戏:
1)系统随机生成一个1~100的数字;
2)用户总共有5次猜数字的机会;
3)如果用户猜测的数字大于系统给出的数字,打印“too big";
4)如果用户猜测的数字小于系统给出的数字,打印"too small";
5)如果用户猜测的数字等于系统给出的数字,打印"恭喜",并且退出循环;
编写程序代码如下,请完善代码:
#导入random模块
#随机生成1-100的整数并赋值给变量game
time=5
while time>0:
guess=int (input ("请输入你所猜的数字:"))
if (guess>game) :
print ("too big")
elif :
print(" too small' )
else:
print ("恭喜”)
break
time=time-1
print("游戏结束,正确的结果是:",game)
三、解答题
21.按以下格式输出诗歌《登高》:
登高
朝代:唐代 作者:杜甫
风急天高猿啸哀,渚清沙白鸟飞回。
无边落木萧萧下,不尽长江滚滚来。
万里悲秋常作客,百年多病独登台。
艰难苦恨繁霜鬓,潦倒新停浊酒杯。
22.编写程序,完成下列星星矩阵。
23.编写程序,完成下列题目。
题目内容:
接收用户输入的一个秒数(非负整数),折合成小时、分钟和秒输出。
输入格式:
请输入一个非负整数:
输出格式:
将小时、分钟、秒输出到一行,中间使用空格分隔。
输入样例:
请输入一个非负整数:70000
输出样例:
19 26 40
24.用流程图描述出两个数互换的过程。
四、综合题
25.家里的吸顶灯一般具备显示多种亮度的功能,通过重复按开关即可调节亮度,根据程序截图回答相关问题。
(1) 是 语句,该语句不循环,只有把它放入 指令块内才会循环。若要增加一行“否则如果为……则”可以单击指令块左下角的 完成。
(2)程序中新建变量的名称是 ;是利用“ ”工具箱中的指令块完成新建。
(3)图中 指令块属于 指令块,它可以独立于程序里的其他部分存在;当按钮A被按下时,是以 为幅度更改改变亮度。
(4)图中 指令块是 指令块,可以独立运行,也可以同时添加多个。
(5) 是使用了 工具箱中的运算符,当满足这个条件时,灯的亮度为 。
26.若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。编写python程序,实现如下功能:输入n的值,统计显示n以内的所有双胞胎数。程序运行界面如图所示:
实现上述功能的程序如下,请在划线处填入合适的代码。
import math
def isprime(x):
for i in range(2,int(math.sqrt(x))+1):
if x % i = = 0 :
f=False
return f
n=int(input("请输入一个正整数 n:"))
c=0
k=3
while k < = n-2:
if isprime( k ) and :
c + = 1
print("第"+ str( c ) +"对双胞胎数:", k ,'和',k+2)
print("共有"+str(c)+"对双胞胎数")
27.阅读下列程序,完成相应的问题。
(1)下列程序运行后,变量s= 。
Private Sub Form_Click( )
Dim a, b, c, s As Integer
a=9
b=41
c=2*(a+b)
s=a*c
(2)若a=50,b=60,则下列程序的执行结果为 。
Private Sub Form_Click( )
Dim a As Integer, b As Integer
If a>b Then
a=a-b
Else
a=b+a
End if
Print a
(3)执行下面的程序后,输出的结果是 , 。
Private Sub Form_Click( )
Dim x As Integer, a As Integer
x=0
a=0
For j=1 to 5
a=a+j
Next j
x=j
Print x, a
End Sub
(4)执行下面的程序后,输出的结果是 , 。
Private Sub Form_Click( )
Dim x As Integer
x=0
Do While x<50
x=(x+2)*(x+3)
n=n+1
Loop
Print x,n
End Sub
28.已知圆柱体的底面半径为r,高为h,(均为实数),小张编写了一个程序计算圆柱体的底面周长、底面积、圆柱体侧面积以及圆柱体体积,其中圆周率定义为:3.14,请根据下列代码回答问题:
c=2*pi*r
s=pi*r**2
S=c*h
V=s*h
print(c,s,S,V)
(1)解决该问题的程序用到的控制结构是: (填:顺序结构、分支结构、循环结构)
(2)请将程序②处的代码补充完整。
(3)请找出程序中①中的错误代码,并改正。
答案解析部分
1.【答案】B
【解析】【解答】判断或分支用菱形表示。故答案选B。
【分析】本题考查的是对流程图图形的认识。 表示程序的开始或结束, 表示连接符, 表示输入或输出。
2.【答案】A
【解析】【解答】顺序结构、条件结构和循环结构是程序设计的三种基本结构。故答案选A。
【分析】本题考查程序设计的三种基本结构。(1)顺序结构是最简单的一种 代码是从上往下一行一行解析的 (2)循环结构包含for,while,do while三种, 其中for用于已知循环次数的情况, while和do while用于不知道循环次数的情况 (3)选择结构包含 if 和 switch 两种: if用于判断条件为范围的情况, switch用于判断条件为离散值的情况。
3.【答案】B
【解析】【解答】>,<,==,!=,<=,>=用于比较两个表达式的值,分别表示大于、小于、等于、不等于、小于等于、大于等于。故答案选B。
【分析】本题考查Python的运算符。
4.【答案】B
【解析】【解答】题目中出现一个分支,执行右分支满足条件。故答案选B。
【分析】本题考查的是算法的控制结构。结构化程序由顺序结构、分支结构(选择结构)、循环结构三种基本结构组成。
5.【答案】D
【解析】【解答】Rnd*10表示会随机得到一个从0到9的数值,121不在0到9的范围。故答案选D。
【分析】本题考查的是常用的基本函数。Rnd[(参数)]:产生一个[0,1)范围内的随机数。
6.【答案】B
【解析】【解答】想要利用中间变量来交换两个变量的数据,应该先用中间变量c存储任一变量的数据(c=a / c=b),后将这一变量赋值给另外一个变量(b=a / a = b),再将中间变量c的值赋值给未变动的变量(a = c / b = c)。故答案选B。
【分析】本题考查的是变量数据的交换。变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息。变量数据交换的三种方法:采用第三个变量做过渡、利用a和b的和与差、利用按位异或运算符。
7.【答案】C
【解析】【解答】int( )是整型函数,abs( )是取绝对值的函数;int(x)+abs(y)=3+8=11。故答案选C。
【分析】本题考查python顺序结构程序的运行及基本函数。
8.【答案】C
【解析】【解答】当i<10时,执行输出语句,i+2,一共执行5次,此时i=10,循环结束。故答案选C。
【分析】本题考查的是while语句的使用。while循环的一般形式为:
while(条件)
语句
while循环表示当条件为真时,便执行语句。直到条件为假才结束循环。 并继续执行循环程序外的后续语句。
9.【答案】C
【解析】【解答】闰年需要满足两个条件:能被4整除但不能被100整除,或者能被400整除。mod是VB中算术运算符中的整除,代表能被某一个数除尽余数为0。and是VB中逻辑算符中代表两个条件同时满足,or是VB逻辑运算符中代表两个条件满足一个即可。根据闰年的条件,考虑VB中的运算符之间的优先级,最终的表达式为 (year mod 400=0) or (year mod 4=0) and (year mod 100<>0)。故答案选C。
【分析】本题考查的是表达式的运算。算术运算符>关系运算符>逻辑运算符,遇到括号先计算括号里的。
10.【答案】A
【解析】【解答】由提议可知,要求1-100之间所有3的倍数的和,就要依次判断1-99是否为3的倍数,如果是就相加,如果不是3的倍数就不进行处理继续进行下一次判断。要实现1-99取值就要用range(1,100)函数进行依次取值,要实现3的倍数的判断就要用分支判断语句进行if(i%3==0),符合上述判断进行累加即可。故答案选A。
【分析】本题考查循环结构程序分析与设计。按照需求就行分布拆解任务,结合所学内容依次达成分解任务的实现即可选出答案。
11.【答案】C
【解析】【解答】根据栈的“先进后出”特点,可以分析出:
选项A:进栈次序为A进A出,B进B出,C进C出,D进D出,E进E出,因此是ABCDE,可能;
选项B:进栈次序为ABC,BC出,D进D出,E进E出,A进A出,因此是BCDEA,可能;
选项D:进栈次序为ABCDE,出栈序列为EDCBA,可能。
故答案选:C。
【分析】本题考查的是栈的应用。栈是一种只能从表的一端存取数据且遵循“先进后出”原则的线性存储结构。
12.【答案】C
【解析】【解答】A选项先进入6-5,再出5,再进4,再出4,再进3 ,再出3,再出6;再进入2,1,再出1,2可实现543612;B选项先654进栈,4出栈,5出栈,3进栈,3出栈,2进栈,1进栈,1出栈,2出栈,最后6出栈可实现453216。D选项先65432进栈,2出栈,3出栈,1进栈,1出栈,5出栈,6出栈可实现234156。C选项先6543进栈,3出栈,4出栈,此时顶栈为5低栈为6,想要6出栈,必须5先出栈,故不可能先6再5出栈。(C选项的将65的位置互换后 也正确)。故答案为:C。
【分析】本题考查栈的应用。栈是一种只能在一端进行插入和删除操作的特殊线性表。栈的特点是先进后出。
13.【答案】顺序结构;分支结构;循环结构
【解析】【解答】算法的基本控制结构分为三种:顺序结构、分支结构、循环结构。故答案为:顺序结构、分支结构、循环结构。
【分析】本题考查算法控制结构。程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。理论和实践证明,无论多复杂的算法均可通过顺序、分支、循环3种基本控制结构构造出来。
14.【答案】按钮
【解析】【解答】按钮是用户通过点击等动作完成程序中的某些操作。故答案为:按钮。
【分析】本题考查App Inventor常用组件及作用。
15.【答案】8
【解析】【解答】a+=3等价于a=a+3=8,然后将8赋值给a。故答案为:8。
【分析】本题考查的是Python赋值语句。=是赋值。
16.【答案】G>=85:;elif G<70 and G>=60:
【解析】【解答】要输出Great,则G需要大于85,故第一空答案为:G>=85:;
要输出Medium,则G范围60(含)至70,故第二空答案为:elif G<70 and G>=60:。
【分析】本题考查的是分支结构程序的设计与分析。
17.【答案】(1)Sqr((x*x+y*y)/(a+b))
(2)X mod 5=0 or X mod 9=0
【解析】【解答】(1)求平方根使用函数函数Sqr(数值),故答案为:Sqr((x*x+y*y)/(a+b));
(2)在VB中判断倍数问题时,可通过取余mod来判断。若取余为0,则表示该变量是某数的倍数。
故答案为: X mod 5=0 or X mod 9=0。
【分析】本题考查的是VB表达式。表达式书写时不可以省略乘号,运算符不可以相邻;表达式必须书写在同一基准,不可以出现上下标;按照各种运算符的优先级别来计算;表达式中只可以使用圆括号来表示优先级,且要成对出现。不可以使用方括号、大括号等。
18.【答案】10 -1
【解析】【解答】a=4,s=0,当a大于等于0时,执行循环。a=4,s=0+4=4,a=4-1=3。a=3,s=4+3=7,a=3-1=2。a=2,s=7+2=9,a=2-1=1。a=1,s=9+1=10,a=1-1=0。a=0,s=10+0=10,a=0-1=-1。a=-1,退出循环。故答案为:10 -1。
【分析】本题考查while循环语句。Python中while 语句的一般形式:
while 判断条件(condition):
执行语句(statements)……
while 循环使用 else 语句,如果 while 后面的条件语句为 false 时,则执行 else 的语句块。
语法格式如下:
while
:
else:
expr 条件语句为 true 则执行 statement(s) 语句块,如果为 false,则执行 additional_statement(s)。
19.【答案】C;D;A;B
【解析】【解答】由选项可知,程序定义了一个可变类型的变量C和单精度数据类型F,分别用来存储摄氏度的值和华氏度的值。根据题目所提供的转换公式将其转化成VB中的表达式为F=9/5*C+32。text1的数据是字符型,要参与到运算中需要转换成数值型,val( )函数的用法就是将字字符型换成数值型,通过公式计算得到的值最后再用str( )函数转换成字符型赋值给text2。赋值语句的用法是变量名=表达式或者对象名.属性名=表达式。根据顺序结构的特点程序代码逐条从上至下依次执行。故答案为:C、D、A、B。
【分析】本题考查的是VB表达式、基本语句以及对顺序结构的分析。考查的内容较多难度也较大,需要具备扎实的VB程序基础。
20.【答案】import random;game=random.randint(1,100);guess【解析】【解答】第一空:在python中导入模块可以使用import;第二空:因为game是变量,所以要在等号左边;生成1~100随机数字,random.randint(a,b);其中参数a是下限,参数b是上限,生成的随机数n:a<=n<=b;第三空:由题意可知,if(guess>game),输出("too big"),否则输出(“too small")。故答案为:import random;game=random.randint(1,100);guess【分析】本题主要考查的是程序的分析。python中的模块导入语句通常使用import.../import...as.../from...import.../from...import...as。在一些特殊场景中,还可以用到import内建函数importlib模块来实现动态导入。random()函数在python中是一个标准库用于生成随机数、随机整数、还有随机从数据中集取数据;random.randint():用于生成一个指定范围内的整数。
21.【答案】print('''
登高
朝代:唐代 作者:杜甫
风急天高猿啸哀,渚清沙白鸟飞回。
无边落木萧萧下,不尽长江滚滚来。
万里悲秋常作客,百年多病独登台。
艰难苦恨繁霜鬓,潦倒新停浊酒杯。''')
【解析】【分析】本题考查的是输出语句在编程中的应用。
22.【答案】for i in range(1,10,2):
a="*"*i
print(a)
【解析】【分析】本题考查的是循环结构的实现。
23.【答案】t=eval(input('请输入一个非负整数:'))
a=t//3600
b=(t%3600)//60
c=(t%3600)%60
print(a,b,c)
【解析】【分析】本题考查的是程序的编写。
24.【答案】解:如图所示:
【解析】【分析】本题考查的是用流程图描述算法。
25.【答案】(1)条件;循环;+
(2)改变亮度;变量
(3)事件;1
(4)控制
(5)逻辑;150
【解析】【解答】(1)图示为如果条件为真,执行一个步骤,否则执行另外一步骤,是“条件”语句;只有放入“循环”指令块才会循环。需要增加一行可以单击指令块左下角的“+”完成。故答案为:条件、循环、+;
(2)从图中可以看出新建变量名为“改变亮度”,利用“变量”来完成。故答案为:改变亮度、变量;
(3)图中指令块属于“事件”,可以独立于程序里的其他部分存在;由此图 可以得知,当按钮A被按下时以“1”为幅度改变亮度。故答案为:事件、1;
(4)图中是“控制”指令块,可以独立运行,也可以同时添加多个。故答案为:控制。
(5)图中使用“逻辑”工具箱中的运算符号,满足条件灯的亮度为150。故答案为:逻辑、150。
【分析】本题考查micro:bit编程。micro:bit编程是可视化的编程。通过代码块嵌套来执行。工具箱有控制、基本、变量等指令块。控制指令块可以独立运行,可以同时添加多个。
26.【答案】f = True;isprime(k+2);k=k+1 或 k+=1 或 k=k+2 或 k+=2
【解析】【解答】第一空:根据函数isprime(x)用来判断x是不是素数,通过用x整除2~int(math.sqrt(x)),如果余数为0则表明该数不是素数,赋值f为假退出循环,应当将f的初值设定为True。
第二空:若两个素数之差为 2,则该对素数称为双胞胎数,如果当前是素数,并且当前值+2也是素数,统计自动增1。因此是 isprime(k+2) 。
第三空:素数都是奇数,此处需要更新k的值继续循环判断,可以将k的值递增1或递增2,故填k=k+1 或 k+=1 或 k=k+2 或 k+=2。
故答案为:f = True、isprime(k+2) 、k=k+1 或 k+=1或k=k+2 或 k+=2。
【分析】本题考查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).
27.【答案】(1)900
(2)110
(3)6;15
(4)72;2
【解析】【解答】(1)a=9,b=41,c=2*(a+b)=100, s=a*c=9*100=900。故答案为:900。
(2)若a=50,b=60。则a(3)程序执行如下: x=0,a=0,j=1,a=a+j=1,x=j=1 ;
x=1,a=1,j=2,a=a+j=3, x=2;
……
故答案为:6、15。
(4)程序执行如下: x=0, x=(x+2)*(x+3) =6;
x=6, x=(x+2)*(x+3) =72。循环2次。故答案为:72、2。
【分析】本题考查循序结构、分支结构与循环结构程序的分析。
28.【答案】(1)顺序结构
(2)pi=3.14
(3)r= input(“请输入半径r:”)
h=input(“请输入高h:”)
【解析】【解答】(1)由题可看出,该程序未使用到分支判断和循环遍历。故答案为:顺序结构。
(2)由题可知,当前程序未对圆周率pi进行赋值,pi应赋值为3.14。故答案为:pi=3.14。
(3)input()函数的作用是返回用户输入的值,不管输入的是数字、字母还是其他字符,其返回的值总是一个字符串,不必强制性转换为数值型数据,不影响数据计算。故答案为:r= input(“请输入半径r:”)、h=input(“请输入高h:”)。
【分析】本题考查的是顺序结构程序分析。一般算法有顺序结构、条件分支结构、循环结构三种基本逻辑结构。
(1)顺序结构:是最简单的算法结构,语句与语句之间是按从上到下的顺序进行的。它是由若干个依次执行的处理步骤组成的;
(2)条件分支结构:先根据条件作出判断,再决定执行哪一种操作;
(3)循环结构:需要重复执行同一操作