分数:100
题数:28
测试时长:90min
一、单选题(共15题,共30分)
1.运行下列程序,变量“结果”的值为?(A)
A. 23
B. 22
C. 21
D. 20
答案解析:程序先判断S是否>100,若成立,则结束循环,否则执行循环体中的程序。“重复执行直到”的逻辑是先判断条件表达式是否成立,若成立则退出循环,否则执行循环体中的程序,当S等于121时,n为23,故A选项正确。
2.已知程序和运行效果的对应关系如下图所示,下列哪个选项有可能是下图中“?”处的效果图?(D)
D.
答案解析:本题考察学生的观察能力、逻辑推理能力和对函数、循环的掌握情况。根据表格第一行可以推测,程序甲的作用可能是将造型换成“圆”再进行图章/克隆,次数取决于实际参数。根据表格第二行和第三行可知,程序乙的作用可能是先将造型换成“正方形”再进行图章/克隆,次数取决于实际参数,同时在中间穿插“圆”,个数也是取决于实际参数。因此程序乙的结构可能是循环嵌套,外层循环和内层循环的次数都与实际参数有关(也有可能是程序乙的循环中调用了程序甲)。因此D选项正确。程序甲和程序乙的代码如下图所示
3.运行下列程序,关于小猫运动状态说法正确的是?(C)
A. 小猫会停留在(0,0)的位置。
B. 小猫从(0,0)移动到(150,0)的位置后,静止不动。
C. 小猫会在(0,0)和(150,0)两点间来回不停地移动。
D. 小猫从(0,0)移动到(150,0)的位置后,然后再移动到(0,0)的位置,然后静止不动。
4.运行下列程序,说法正确的是?(C)
A. 角色会重复11次说“我为中华崛起而读书!”,共22秒
B. 说出来的是一串数字
C. 角色说出“我为中华崛起而读书!”共2秒
D. 说出的内容是“说出的话”
答案解析:在程序中,变量【说出的话】存储的是每次要说出的新字符串,变量【i】每多说出一个字就会增加1,循环的次数是一句话的字符数,第一次执行循环体,【说出的话】中存储这句话的第一个字符“我”,【i】增加1,角色说出【说出的话】中的字符,下一次循环,【说出的话】中会连接下一个字符“和”,变量【i】变为3,角色说出“我和”,这样每次循环会多说出一个字,直到循环结束。最后说出:“我为中华崛起而读书!”因此选项C正确。
5.运行下列程序,说法正确的是?(A)
A. 程序中采用了自制积木的功能
B. 自制积木“绘制正方形”,一次可以画出4个正方形
C. 四个正方形是顺时针依次画出的
D. 每个正方形边长200
答案解析:自制积木定义了一个正方形的实现过程,并且边长是50,选项B,D错误,在主程序中,每次画完一个正方形,左转90度,表示逆时针旋转,因此三个正方形是逆时针排布依次画出的,选项C错误。
6.使用冒泡排序算法对数据:32、40、21、46、69,进行从小到大排序,第一轮排序的结果是?(D )
A. 32、40、21、46、69
B. 40、32、21、46、69
C. 21、32、40、46、69
D. 32、21、40、46、69
答案解析:冒泡排序的排序过程是重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来。 排序过程:32和40比较,32<40,不改变位置,40和21比较,40>21,交换位置,40和46比较,40<46,不改变位置,46和69比较,46<69,不改变位置。正确答案为 D。
7.补充程序中①和②的参数值,该程序运行后可画出右侧图形?(A)
A. 5 60
B. 6 72
C. 60 5
D. 72 5
8.下列哪个程序可以统计字符串中“am”出现的次数?( B)
答案解析:本题主要是按照顺序遍历输入字符串中的各个字符,找出字符串中出现相邻两个字符是“am”的次数,注意必须是“am”紧密挨着。
9.下列哪个程序能够绘制如下图所示的六边形?(A)
答案解析:要绘制上述图形,可以将画笔初始位置面向90方向,然后重复以下动作6次:执行三次“移动20步,右转120度”,将画笔右转60度”。
10.运行下列程序,输出的结果是?(C)
A. 葡萄
B. 橡皮
C. 奶糖
D. 铅笔
答案解析:将列表第一项替换为橙子后,列表中的项分别为橙子、铅笔、奶糖,插入葡萄和橡皮后,列表中的项分别为橙子、葡萄、橡皮、铅笔、奶糖,删除第4项铅笔后,奶糖变为第4项。
11.在1至10之间取随机数加入列表,共取10次,统计列表中数字10出现的次数,下列哪个程序能够实现这个功能?(B )
答案解析:通过逐项判断列表中的各项是否等于10,如果等于,则将i增加1,从而由i完成计数。以列表中是否包含10这个作为判断条件,只要列表有一个10,那么i的值就会加1。
12.数学老师将全班数学成绩录入到列表“数列”中,大于等于60分为及格,下列哪个程序可以统计出及格人数?( D)
答案解析:要计算及格人数,只需要逐项与60对比,如果大于等于60,则保存数量的变量n加1,最终n的值就是所求及格人数。
13.运行下列程序后,小猫的坐标是?(D)
A. (60,50)
B. (60,100)
C. (200,-40)
D. (100,60)
14.在列表“数据”中存有10个数,运行如下图所示的程序,实现随机删除列表“数据”中的任意一项,然后将删除的该项保存到列表“删除数据”中。那么程序中A和B应该分别填写?(D)
15.斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,......这个数列从第3项开始,每一项都等于前两项之和。要让小猫间隔1秒依次说出斐波那契数列的每一项,如下图所示程序的循环中,应该补充的是?(A)
二、判断题(共10题,共20分)
16.点击绿旗,反复按下空格键,可以使变量a的值在0和1之间反复变化。(错 )
17.单数日期(如1,3,5,7,9)只有车号末尾数字是单数的私家车可以上路;双数日期(如2,4,6,8,0)只有尾号是双数的私家车可以上路。下图所示程序运行后可以判断某车牌号的车辆今日是否限行。(错)
答案解析:本题考察考生对字符串的掌握程度。变量“车牌号”的字符数为8,获取“车牌号”的第8个字符也就是最后一个字符。若当前日期除以2的余数为0,则说明当前日期为双数,否则为单数,同理,可以根据除以2的余数来判断尾号是单数还是双数,若余数相等,则说明当前日期和尾号都为双数或者都为单数(也就是奇偶性相同),不限行,反之限行。因此图示程序符合题意,题干说法正确。
18.图1为学生信息,“姓名”、“班级”和“学号”列表中编号相同的项为同一名学生的信息,如蔡小培所在班级为(1)班,学号为11。图2程序可以将(3)班学号为偶数的同学姓名加入到列表“名单”中。(错)
答案解析:本题考察考生对列表知识(多表查询)的掌握情况,另外本题对考生的程序阅读能力有一定要求。图2程序通过遍历列表“学号”,搜索“(3)班”,显然是搜索不到的;“班级”列表中的项均为字符串类型,因此判断奇偶性无意义。题干说法错误。正确的程序是将列表下拉菜单选项“学号”和“班级”调换。
19.运行下列程序,角色说出的结果永远不可能为3。(对 )
答案解析:分析如下: 点击绿旗后,将会在1和3之间取随机数,神秘数字可能为1,2,3中的任意一个,函数中进行条件判断,如果n>3,说出n,否则说出n-1,由此可得,随机数中最大可能为3,不满足条件,所以说出n-1的结果,结果永远不可能为3
20.下列这段程序,当i=40,n=6时,会画出一个边长为40的六边形的一半。(对 )
答案解析:运行后得到的图形是六边形的一半,由于重复执行的次数除以2,只剩下一半,因此只能画出6边形的3条边,所以题目的说法正确。
21.运行下列程序后,列表中项目数量是5。(错)
答案解析:列表中初始只有4项,因此程序中的两个判断条件都不满足,因此没有执行,所以最后列表中还是原来的四项物品。
22.二分查找能将乱序的一组数据,按照某种规则进行排序。(错 )
答案解析:二分查找法实质上是不断地将有序数据集进行对半分割,并检查每个分区的中间元素。
23.n的阶乘用符号“n!”表示,如1!=1,2!=2*1=2,3!=3*2*1=6,下列程序能正确计算出10!。(对)
答案解析:本题通过“将a从10减到1,在这个过程中重复执行结果=结果*a”的形式求阶乘,最终由1 X 10 X 9 X 8……X 1得出10的阶乘。
24.运行下列程序后,最终m的值是64。(对)
答案解析:本题主要是考察“1+3+5+9+11+13”=49,当m=49时,最后一次执行循环体,m的值为49+15,n为15,之后n增加2变为17。
25.光明小学学生学号的编码规则为:入学的年份+一年级+入学一年级的班级+班级中的编号,如某同学的学号为“2018010512”,表示这个同学是2018年入学“01”表示一年级,“05”表示5班,“12”表示编号为12。运行如下图所示的程序:输入“2021011218”,先后说出“1年级12班”、“编号为18”。 (对)
三、编程题(共3题,共50分)
26.简易抗疫物资管理系统
1. 准备工作
(1)角色:从角色库中添加4个按钮,添加文字“增加”、“删除”、“修改”、“查询”,修改角色名字为“增加按钮”、“删除按钮”、“修改按钮”、“查询按钮”;
(2)列表:新建列表“抗疫物资清单”。
2. 功能实现
(1)点击“增加按钮”,询问“请输入物资名称”,输入物资名称,若“抗疫物资清单”中已存在该物资,则提示“该物资已存在”;否则将物资名称存入列表,并继续询问“请输入该物资存量”,输入物资存量后,将其存入列表中,再在下一项增加分隔标记“------------”,最后提示“新物资已录入”;
(2)点击“删除按钮”,询问“请输入要删除的物资名称”,输入物资名称,若“抗疫物资清单”中存在该物资,则将列表中该物资名称、物资数量及分隔标记全部删除,最后提示“删除成功”;
(3)点击“修改按钮”,询问“请输入要修改的物资名称”,若该物资存在,则继续询问“请输入修改后的物资存量”,输入物资存量后,更新该物资的存量,并提示“修改成功”;
(4)点击“查询按钮”,询问“请输入要查询的物资名称”,若该物资存在,则提示当前存量,例如:格式为“当前【外科口罩】的剩余存量为【5000】件”。
评分标准:
(1)按要求添加角色、修改角色造型和角色名称,按要求新建列表,未修改造型扣除1分;(4分)
(2)可通过增加按钮新增物资及存量,未判断重复物资扣除1分;(4分)
(3)可通过删除按钮删除物资及存量,未同时删除物资名称、物资存量和分隔标记扣除1分;(4分)
(4)可通过修改按钮修改物资的存量;(4分)
(5)可通过查询按钮查询物资当前存量,反馈格式不正确扣除1分。(4分)
参考答案:
27.求最大公约数
如果6除以2的余数是0,那么我们就说2是6的约数。4除以4的余数是0,4也是4的约数。同理可以求出,4的约数有1、2和4,6的约数有1、2、3和6。两个数的最大公约数是指两个数相同的约数中最大的那一个,如4和6两个数的最大公约数是2。
辗转相除法求最大公约数的步骤如下:
正整数a和b(a>b),
步骤①:如果a除以b的余数m等于0,那么a和b的最大公约数是b。
步骤②:如果a除以b的余数m不等于0,那么将a的值设为b,将b的值设为m,重复进行步骤①。
请你根据上述方法编写程序求出两个整数的最大公约数。
1.准备工作
(1)保留小猫角色,默认位置;
(2)白色背景。
2.功能实现
(1)建立两个变量a和b,将这两个变量设为1至99之间的随机数;
(2)根据上面给出的步骤使用递归法,求这两个数a和b的最大公约数;
(3)最终小猫能正确说出这两个数的最大公约数,输出的格式为“最大公约数为X”,其中X为通过程序计算出来的两个数的最大公约数的值。
本题使用循环作答即扣4分,11分评分标准如下:
(1)在1至99之间取两个随机数;(2分)
(2)能判断余数为0,说出最大公约数;(3分)
(3)用循环没用自制积木递归的。(6分)
参考图1和图2程序均得6分本题
图一
图二
使用自制积木递归作答满分15分,15分评分标准如下:
(1)在1至99之间取两个随机数;(2分)
(2)能判断余数为0,说出最大公约数;(3分)
(3)能建自制积木;(6分)
(4)能在自制积木里改变参数调用自己。(4分)
参考答案:
28.金牌百分比
计算金牌榜前十的国家获得的金牌总数占金牌总数的百分比。金牌榜前十的国家获得的金牌总数占金牌总数的百分比等于(金牌榜前十国家的金牌总数÷本届冬奥会金牌总数)×100,并将这个数向下取整。
1. 准备工作
(1)保留舞台默认背景及角色小猫;
(2)建立变量“金牌总数”,建立列表“金牌榜前十”。
2. 功能实现
(1)添加十个5到20之间的随机数到列表“金牌榜前十”中;
(2)设置变量“金牌总数”为一个200到300之间的随机数;
(3)让角色小猫说出金牌榜前十的国家获得的金牌总数占金牌总数的百分比,注意必须为整数,如上图所示。
评分标准:
(1) 能建立变量“金牌总数”,初始化变量为200到300的随机数;(2分)
(2) 能建立列表,用随机数初始化列表;(3分)(注意没有删除列表的全部项目,扣1分)
(3) 利用循环控制变量累加;(6分)(如果没用循环,将前十项直接相加,扣1分)
(4) 正确说出金牌总数百分比。(4分)(注意没有向下取整扣1分,没有乘以100扣1分,没有用连接加%扣1分)
参考程序: