资源简介 中小学教育资源及组卷应用平台3.3计算机程序与程序设计语言(2)-粤教版(2019)高中信息技术必修一练习学校:___________姓名:___________班级:___________考号:___________一、选择题1.计算机能直接识别和执行的的语言是()A.汇编语言B.机器语言C.高级语言D.C语言【答案】B【解析】【详解】本题考查的是计算机语言。计算机语言有:机器语言、汇编语言、高级语言。机器语言能被计算机直接识别和执行。汇编语言、高级语言需要翻译成机器语言才能执行。故选项B正确。【版权所有:21教育】2.现有流程图如下,关于流程图的说法正确的是()A.运行后,输入语句一定会被执行三次B.程序运行后,输入语句至少会被执行一次C.该程序的循环次数为3次D.第一次输入guess的值为8,则程序运行结果为“对不起,你失败了!”【答案】B【解析】【分析】【详解】本题考查流程图相关知识点输入语句执行次数,取决于cout值,不一定为三次。故选项A说法错误程序是要与guess值进行比较,故输入语句至少会被执行一次。故本题选B选项该程序的循环次数受cout制约,有多种可能。故选项C说法错误第一次输入guess的值为8,则程序运行结果为“对不起,您猜错了!”。故选项D说法错误3.计算机能够直接识别和执行的程序设计语言是()。A.低级语言B.汇编语言C.机器语言D.高级语言【答案】C【解析】【详解】本题考查的是程序语言。程序设计语言可以分为:机器语言、汇编语言(低级语言)、高级语言。机器语言是由二进制0、1代码指令构成,能够被计算机直接识别和执行。汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系。高级语言是面向用户的、基本上独立于计算机种类和结构的语言。故选项C正确。4.x和n都是正整数且x<=n,下列选项中,与语句“x=xModn+1”功能相同的是()21世纪教育网版权所有A.x=(x+1)ModnB.x=x+1Ifx=nThenx=1C.x=x+1Ifx=n+1Thenx=1D.x=x+1Ifx=n+1Thenx=0【答案】C【解析】【详解】本题考查赋值语句,VB运算。题干x=xModn+1,有两种情况。(1)x5.下面程序执行结束,文本框Text1中显示()PrivateSubForm_Click()a="123":b="456"c=Val(a)+Val(b)Text1.Text=str(c\100)EndSubA.123B.3C.5D.579【答案】C【解析】【分析】【详解】本题主要考查VB程序设计的相关知识。a="123"是将字符串型数据”123”赋值给a,b="456"将字符串型数据”456”赋值给b,c=val(a)+val(b)是分别把a和b的值转换为数值型,然后相加,此时c=579,Text1.Text=str(c\100)是将c整除100后,转换为字符类型赋值给Text1.Text,因此,文本框Text1中显示5,故C选项正确。二、简答题6.高级语言的编译过程和解释过程各有什么优势和不足。【答案】(1)编译型语言优点是程序执行速度快,程序执行效率高,同等条件下对系统要求较低。不足之处是跨平台性差些。(2)解释型语言优点是不同系统平台间的兼容性高。不足之处是程序执行效率比较低。【解析】【详解】本题考查的是高级语言的编译与解释的区别。(1)编译型语言优点是程序执行速度快,程序执行效率高,同等条件下对系统要求较低。不足之处是跨平台性差些。(2)解释型语言优点是不同系统平台间的兼容性高。不足之处是程序执行效率比较低。7.程序设计语言有哪些,分别具备什么特点。【答案】(1)机器语言:是由“0”和“1”这样的二进制代码指令组来表示。每一条机器指令包含两个主要部分:操作(指出计算机应做什么)和被操作的对象(指出处理的数据或它的地址),计算机能直接识别和执行。21cnjy.com(2)汇编语言:使用了一种类似英文缩略词且带有助记性符号的语言,来替代一个特定的指令的二进制串,每条指令都和一条机器指令相对应。需要一个专门的语言翻译器,负责将程序中的每条语句都翻译成用二进制数表示的机器语言。(3)高级语言:接近于数学语言或人的自然语言,并且不再过度地倚赖某种特定的机器或环境,必须经过翻译器将其翻译成机器语言。www-2-1-cnjy-com【解析】【分析】【详解】本题考查程序设计语言及其特点相关知识点(1)机器语言:是由“0”和“1”这样的二进制代码指令组来表示。每一条机器指令包含两个主要部分:操作(指出计算机应做什么)和被操作的对象(指出处理的数据或它的地址),计算机能直接识别和执行。2·1·c·n·j·y(2)汇编语言:使用了一种类似英文缩略词且带有助记性符号的语言,来替代一个特定的指令的二进制串,每条指令都和一条机器指令相对应。需要一个专门的语言翻译器,负责将程序中的每条语句都翻译成用二进制数表示的机器语言。(3)高级语言:接近于数学语言或人的自然语言,并且不再过度地倚赖某种特定的机器或环境,必须经过翻译器将其翻译成机器语言。三、填空题8.以下流程图描述的算法,执行结果是_______。【答案】@@@@########【解析】【分析】【详解】本题考查的知识点是程序的识读。初始值t=0,n=1,执行输出“@@@@”语句,再执行判断n>2表达式,不符合该条件表达式,故执行输出“####”,再执行n=n+1语句,即n=2,再执行判断t=1表达式,不符合该条件表达式,故执行判断n>2表达式,不符合该条件表达式,故执行输出“####”,再执行n=n+1语句,即n=3,再执行判断t=1表达式,不符合该条件表达式,故执行判断n>2表达式,符合该条件表达式,故执行输出“”,再执行t=1语句,再执行n=n+1语句,即n=4;再执行判断t=1表达式,符合该条件表达式,故程序结束。21cnjycom所以流程图的执行结果为:@@@@########。故答案为@@@@########。9.编写VB程序,实现如下功能:单击“计算”按钮,在列表框List1中产生10个[1,99]随机数,文本框Text1显示相邻两个数字之间相差最大的差值。运行界面如图所示。(1)窗体上,“计算”按钮的对象名是_____。(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。Privatesubcmd1_click()Dimb(1to10)asintegerDimIasinteger,maxasinteger,aasinteger,casintegerMax=0Fori=1to10RandomizeA=int(rnd99)+1_______________________List1.additemstr(a)NextiFori=2to10C=________________Ifc>maxthen__________________NextI____________________________Endsub【答案】Cmd1b(i)=aabs(b(i﹣1)﹣b(i))max=ctext2.text=str(max)【解析】【详解】(1)Cmd1_ClickCmd1表示对象名称,Click表示它是一个点击事件,“计算”按钮的对象名是Cmd1;(2)①该处获取的a是一个随机数,需要将a存储在b(i)中,所以该处为:b(i)=a;②次数将所有的随机数逐个比较,c表示临时生成的最大差值,所以该处为:abs(b(i﹣1)﹣b(i));③根据条件Ifc>max,可以看出如果差值比最大差值大,改变最大差值max的值为c,所以该处为max=c,④结果在文本框中输出,所有答案为text2.text=str(max),此题同等类似答案都可,不唯一。四、判断题10.需求分析之后、程序设计之前,需要对系统进行总体设计和详细设计。总体设计就是在需求分析的基础上对模型细化、分解任务,明确程序由哪些模块组成。(____)【答案】对【解析】【详解】本题考查的是程序设计。需求分析之后、程序设计之前,需要对系统进行总体设计和详细设计。总体设计就是在需求分析的基础上对模型细化、分解任务,明确程序由哪些模块组成。题干说法正确。五、操作题11.某数据解密算法描述如下:(1)在输入的数字字符串中依次提取有效的密文,有效的密文的特点:①是一组连续的,都小于5的三位数字串;②每个位置上的数字不能被重复提取;(2)对有效密文进行解密的过程:将密文作为一个五进制数转换为对应的十进制数值,根据ASCII字符的十进制编码表,得出对应的明文字符(提示:空格符所对应的ASCII码值为十进制数32,小写字母“z”所对应的ASCII码值为十进制数122).例如,密文242转换成十进制数为72,对应的明文字符为大写字母“H”。程序运行界面如下图所示,在文本框Text1中输入密文,单击“解密”按钮,在文本框Text2中输出解密后的明文密码。(1)若输入的密文为“841497230235”,则对应的明文是__________。(2)实现上述功能的VB代码如下,划线处的语句有错,应改为__________________。(3)请在划线处填入合适的代码.'以下代码是将有效密文数字转换为十进制数的函数Functionconv(pAsString)AsIntegerDimkAsInteger,qAsString,iAsIntegerk=0:g=""Fori=1To3q=Mid(p,i,1)________________Nexticonv=kEndFunctionPrivateSubCommand1_Click()DimstAsString,pAsString,resAsStringDimc1AsString,c2AsString,c3AsStringDimiAsInteger,dAsInteger,nAsIntegerst=Text1.Text:n=Len(st)i=1:res=""DoWhilei<=n–2'提取有效密文,并进行转换c1=Mid(st,i,1):c2=Mid(st,i+1,1):c3=Mid(st,i+2,1)【来源:21cnjy.com】Ifc1<"5"Orc2<"5"Orc3<"5"Then______________d=conv(p)Ifd>=32Andd<=122Thenres=res+Chr(d)______________Elsei=i+1EndIfLoopText2.Text=resEndSub【答案】mAc1<"5"Andc2<"5"Andc3<"5"或其它等价答案①k=k5+Val(q)或k=k+Val(q)5^(3-i)或其它等价答案②p=Mid(st,i,3)③i=i+3【解析】【详解】本题考查VB综合能力。(1)若输入的密文为“841497230235”,可知,414转为m,230转为A。(2)改错语句条件是同时小于5,故改为c1<“5”Andc2<“5”Andc3<“5”(3)代码第一空,将有效密文数字转换为十进制数的函数,采用位权相加,故填入k=k5+Val(q)。(4)代码第二空,将连续的三个字符取出,填入p=Mid(st,i,3)。(5)第三空,继续往下判断,故填入i=i+3。21教育名师原创作品12.如果一个正整数从左到右读与从右到左读是一样的,就称它为回文式数(简称回数),如图321。“回数猜想”的主要思想是,对任意正整数,若它不是回数,则按下列算法即可获得一个回数:(1)把该整数的数字顺序颠倒,求得该数的逆序数;(2)将该整数和其对应的逆序数相加;(3)若相加结果不是回数,则将结果作为新的整数,返回步骤(1)。小林按照上述算法,设计了验证回数猜想的VB程序(猜想次数不超过10次),程序功能如下:在文本框Text1中输入一个正整数,单击“验证”按钮(Command1),获取文本框Text1中的数,当该数不是回数时,采用回数猜想的方法进行验证,并在列表框List1中输出每次验证的过程,若验证成功或验证次数超过10次,则停止验证,最后在列表框List1中输出验证结果。程序运行效果如图所示。实现上述功能的VB程序如下:PrivateSubCommand1_Click()DimtAsString,aAsLong,bAsLongDimcountAsInteger'count用于存储回数猜想的验证次数t=Text1.Textcount=1DoWhileCheck(t)=FalseAndcount<=10a=Val(t)①c=a+bList1.AddItemStr(a)&"+"&Str(b)&"="&Str(c)count=count+1t=cLoopIfCheck(t)ThenList1.AddItem"验证成功!"ElseList1.AddItem"10次内未验证成功!"EndIfEndSub'自定义函数TurnFunctionTurn(xAsString)AsLongDimsAsString,iAsIntegers=""Fori=Len(x)To1Step-1s=s&Mid(x,i,1)NextiTurn=②EndFunction'自定义函数Check,检查x是否为回文数FunctionCheck(xAsString)AsBooleanDimiAsIntegerCheck=TrueFori=1ToLen(x)\2Step1IfMid(x,i,1)<>③ThenCheck=Falsemid(x,len(x)+1-i,1)NextiEndFunction(1)程序代码中,自定义函数Turn(x)的功能是(2)请在划线处填入合适代码。【答案】(1)求x的逆序数(2)①b=turn(t)②Val(s)③mid(x,len(x)+1-i,1)【解析】【分析】【详解】本题主要考查VB程序的执行与调试。(1)函数Turn(x)通过for循环从后开始截取数实现求x的逆序数(2)①将文本框中的原始数赋值给a,将t的逆序数赋值给b,然后将两数相加,故此处填b=turn(t)②最后将逆序数s的值转为整型赋值给Val(s)③判断是不是回文数,截取两端的数进行比较是不是相等,故此处填mid(x,len(x)+1-i,1)。13.某高一班主任需要对刚入学的新生排座位,教室座位按6排8列进行摆放(班级学生数不超过48个),并且要求每列的学生按身高从低到高排列。编写VB程序,实现教室排座位功能:单击“读取数据”按钮Command1,从数据库中读取该班所有同学的班内学号(两位数字)和身高数据(3位数字),并在列表框List1中按8个一行显示;单击“排座位”按钮Command2,对每列数据按身高从小到大排列,并显示在列表框List2中。程序运行界面如图所示,请回答下列问题:(1)要使窗体的标题栏文字显示为“排座位”,则应设置窗体的______属性(单选,填字母:A.Text/B.Name/C.Caption)。(2)程序中加框处代码有错,请改正。________(3)实现上述功能的VB程序如下,请在划线处填入合适的代码。Constm=6Constn=8Dima(1Tomn)AsString'存储学号Dimb(1Tomn)AsInteger'存储身高DimnumAsInteger'班级总人数PrivateSubCommand1_Click()'从数据库中读取该班的学号和身高数据存入数组a和数组b,班级人数存入变量num,代码略.'以下代码为在列表框List1中输出数据s="":List1.AddItem"(讲台)"Fori=1Tonum=s=s&Str(b(i))&"["&a(i)&"]"Ifi=mThenList1.AddItems:s=""EndIfNextiIfs<>""ThenList1.AddItemsEndSubPrivateSubCommand2_Click()DimiAsInteger,jAsInteger,iminAsIntegerwww.21-cn-jy.comDimt1AsString,t2AsInteger,sAsStringList2.AddItem"(讲台)"Fori=1To①_______s=""Forj=(i-1)n+1To(i-1)n+nIfj<=numThen②__________Ifimin<>jThent1=a(imin):a(imin)=a(j):a(j)=t1t2=b(imin):b(imin)=b(j):b(j)=t2EndIfs=s&Str(b(j))&"["&a(j)&"]"EndIfNextjList2.AddItemsNextiEndSubFunctionfPos(pAsInteger)AsIntegerDimiAsInteger,jAsInteger,kAsInteger21教育网k=pFori=③_____________Ifb(i)<b(k)Thenk=iNextifPos=kEndFunction【答案】CIModn=0或i/n=i\n或i/n=int(i/n)(注此处n可以用8替换.)其他等价答案①(num-1)\n+1或其他等价答案imin=fPos(j)p+nTonumStepn或其他等价答案2-1-c-n-j-y【解析】【分析】【详解】本题主要考查VB程序的执行与调试。(1)要使窗体的标题栏文字显示为“排座位”,则应设置窗体的Caption属性,故本题选C选项。(2)输出数据为每8个数据一行,此处条件应为I是8(或N)的整数倍。所以此处要写的表达式意义为i能被n整除,故应改为iModn=0,或i/n=i\n或i/n=int(i/n),这里n可以用8代替。故此处填iModn=0或i/n=i\n或i/n=int(i/n)。(3)①根据班级实际人数num计算共几排,例如num<8为1排,8<=num<=16为2排,我们要的表达式要实现这个目标,表达式肯定要用到整除运算,如果用num直接整除8,num<8时则为0排。要实现有1排则表达式应为num\8+1。当num=8时代入这个表达式,如现成了两排与事实不符,为了让num=8时也是1排,则表达式中num需要减1。(num-1)\n+1,经过验证此表达式条例num变化实现。故此处填(num-1)\n+1。④根据Forj=(i-1)n+1To(i-1)n+n可知,该循环是生成第i行数据,比如当i等于2时,应选择从第2行到最后一行中该列身高最小值所在的位置,然后将该位置的数据和第j个元素交换。故该处为代码为fPos函数的调用,该函数返回第j个学生所在的这一列且行号大于等于i的身高最小的元素位置。故此处填imin=fPos(j)。⑤该自定义函数内的循环体功能是寻找第p个元素所在的这一列中最小身高所在的位置(但不包含第p个元素之前的身高数据)。因此该处所填代码为p+nTonumStepn。14.某校老师编写一个VB程序分析学生技术成绩,功能如下:在列表框List1中显示原始学生信息,单击“分析”按钮Command1,统计各班参加考试人数、高分(97及以上)人数和均分,并按班级均分从大到小显示在列表框List2中,程序运行界面如图所示。实现上述功能的VB程序段如下,请回答下列问题:(1)学生成绩存储在数据表中,其字段名是(2)请在划线处填入合适的代码。DimrecCountAsInteger'存放学生人数DimsClass(1To1000)AsInteger'存放学生班级DimsName(1To1000)AsString'存放学生姓名DimsScore(1To1000)AsInteger'存放学生成绩PrivateSubCommand1_Click()DimiAsInteger,tAsInteger,ncAsIntegerDima(1To20)AsInteger,b(1To20)AsInteger'分别存放班级高分人数和班级参加考试人数21·cn·jy·comDimsum(1To20)AsInteger,ave(1To20)AsSingle'分别存放班级总分和班级均分Dimc(1To20)AsIntegerFori=1TorecCount①b(t)=b(t)+1Ifb(t)=1Thennc=nc+1②EndIfIfsScore(i)>=97Thena(t)=a(t)+1sum(t)=sum(t)+sScore(i)NextiFori=1Toncave(c(i))=Int(sum(c(i))/b(c(i))100+0.5)/10021·世纪教育网NextiFori=1Tonc-1Forj=ncToi+1Step-1If③Thent=c(j):c(j)=c(j-1):c(j-1)=tEndIfNextjNextiFori=1ToncList2.AddItemStr(c(i))+""+Str(b(c(i)))+""+Str(a(c(i)))+""+Str(ave(c(i)))NextiEndSubPrivateSubForm_Load()'链接数据库,代码略recCount=0DoWhileNotrs.EOFrecCount=recCount+1sClass(recCount)=rs.Fields("class")sName(recCount)=rs.Fields("name")sScore(recCount)=rs.Fields("score")rs.MoveNextLoop'将数据显示在列表框List1中,代码略EndSub【答案】(1)score(2)①t=sClass(i)②c(nc)=t或其他相同答案③ave(c(j))>ave(c(j-1))【来源:21·世纪·教育·网】【解析】【分析】【详解】本题考查VB综合能力,VB连接数据库等(1)根据sScore(recCount)=rs.Fields(score)这条代码可知,学生成绩存储在数据表中,其字段名是score。(2)代码第一空,联系上下代码,可知此处关于t的赋值,t代表班级,故t=sClass(i)是该空答案。(3)代码第二空是c数组赋值,c数组中存放的是按顺寻访问到的是第几个班级,故c(nc)=t是该空答案。(4)第三空是冒泡排序内循环,根据平均分降序排序,故填入ave(c(j))>ave(c(j-1))。【出处:21教育名师】15.某地区中考录取采用“平行志愿”的投档录取方式,该录取方式的具体规则为:①根据考生的考试总分从高到低依次对考生的填报志愿进行投档;②每位考生可填三个志愿学校,轮到该考生投档时依次对其三个志愿进行投档,若第一志愿学校还有剩余招生名额,就被第一志愿学校录取,结束该考生的投档,否则需对其后续志愿学校进行同样的投档操作,若该考生所填的所有志愿学校都没有剩余招生名额,则该考生无法被任何学校录取,该考生的投档结束。21cnjycom③当所有学校都已完成计划招生数时,停止投档,录取结束。编写VB程序,实现上述“平行志愿”投档录取的功能,单击“读取考生数据”按钮Command1,则从数据库中获取所有考生的成绩、志愿信息以及每个学校的计划招生数,单击“投档录取”按钮Command2,开始进行投档录取,并在列表框List1中输出每个学校的计划招生数、实际招生数、录取分数线和最低录取名次信息,程序运行界面如图所示。请回答下列问题:(1)若A校计划招生520人,B校计划招生480人,C校计划招生540人,某同学的考分名次为490名,其三个志愿学校依次为B校、A校、C校,且已知同名次的人数最多有30人,则该同学不可能被哪所学校录取:______。(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。ConstschCnt=5'学校数量ConststuMaxCnt=10000'最多考生人数DimzsCnt(1ToschCnt)AsInteger'存储每个学校的计划招生人数DimzsCnt2(1ToschCnt)AsInteger'存储每个学校的实际招生人数Dima(1TostuMaxCnt)AsSingle'存储考生总分成绩Dimb(1TostuMaxCnt3)AsInteger'存储考试志愿,每个考生有3个志愿,每个志愿为学校编号DimstuCntAsInteger'实际考生总人数PrivateSubCommand1_Click()'从数据库中读取所有考生的总分和志愿信息存储到数组a和数组b中(第1个考生总分存储到a(1),第1个考生的3个志愿分别存储到b(1)、b(2)、b(3)中,…),然后按总分对数组a和数组b进行降序排序,总分相同时,需根据各科成绩决定排序先后,但名次相同,考生总人数存储到stuCnt变量中;'读取每个学校的计划招生数,存储到数组zsCnt中;'以上功能代码略EndSubPrivateSubCommand2_Click()DimschAsInteger'学校代码,用1~5中的一个数字表示某学校代码DimiAsInteger,jAsInteger,finishedAsInteger,prevScoreAsSingleDimstuMc(1TostuMaxCnt)AsIntegerDimMinScore(1ToschCnt)AsSingleDimMinMc(1ToschCnt)AsIntegerfinished=0:i=1prevScore=-1DoWhile①______Ifa(i)=prevScoreThenstuMc(i)=stuMc(i-1)Else②____________EndIfprevScore=a(i)Forj=1To3③________IfzsCnt2(sch)<zsCnt(sch)ThenzsCnt2(sch)=zsCnt2(sch)+1MinScore(sch)=a(i)MinMc(sch)=stuMc(i)ExitForEndIfNextjfinished=0Forj=1ToschCntIfzsCnt2(j)=zsCnt(j)Thenfinished=finished+1EndIfNextji=i+1Loop'在List1中输出每所学校的代码、计划招生数、实际招生数、录取分数线、最低录取名次,代码略EndSub【答案】C校i<=stuCntAndfinishedstuMc(i)=isch=b((i-1)3+j)【解析】【详解】本题主要考查VB程序的执行与调试。①某同学的考分名次为490名,且已知同名次的人数最多有30人,所以该同学可能被B校或A校录取,不可能被C校录取,故本题填C校。②此处通过while循环完成每个学校的录取工作,循环条件是,变量i小于等于学校数,并且已完成的学校数小于总的学校数,故此处填i<=stuCntAndfinished3+j)。21世纪教育网www.21cnjy.com精品试卷·第2页(共2页)21世纪教育网(www.21cnjy.com)中小学教育资源及组卷应用平台3.3计算机程序与程序设计语言(2)-粤教版(2019)高中信息技术必修一练习学校:___________姓名:___________班级:___________考号:___________一、选择题1.计算机能直接识别和执行的的语言是()A.汇编语言B.机器语言C.高级语言D.C语言2.现有流程图如下,关于流程图的说法正确的是()A.运行后,输入语句一定会被执行三次B.程序运行后,输入语句至少会被执行一次C.该程序的循环次数为3次D.第一次输入guess的值为8,则程序运行结果为“对不起,你失败了!”3.计算机能够直接识别和执行的程序设计语言是()。A.低级语言B.汇编语言C.机器语言D.高级语言4.x和n都是正整数且x<=n,下列选项中,与语句“x=xModn+1”功能相同的是()21世纪教育网版权所有A.x=(x+1)ModnB.x=x+1Ifx=nThenx=1C.x=x+1Ifx=n+1Thenx=1D.x=x+1Ifx=n+1Thenx=05.下面程序执行结束,文本框Text1中显示()PrivateSubForm_Click()a="123":b="456"c=Val(a)+Val(b)Text1.Text=str(c\100)EndSubA.123B.3C.5D.579二、简答题6.高级语言的编译过程和解释过程各有什么优势和不足。7.程序设计语言有哪些,分别具备什么特点。三、填空题8.以下流程图描述的算法,执行结果是_______。9.编写VB程序,实现如下功能:单击“计算”按钮,在列表框List1中产生10个[1,99]随机数,文本框Text1显示相邻两个数字之间相差最大的差值。运行界面如图所示。(1)窗体上,“计算”按钮的对象名是_____。(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。Privatesubcmd1_click()Dimb(1to10)asintegerDimIasinteger,maxasinteger,aasinteger,casinteger2·1·c·n·j·yMax=0Fori=1to10RandomizeA=int(rnd99)+1_______________________List1.additemstr(a)NextiFori=2to10C=________________Ifc>maxthen__________________NextI____________________________Endsub四、判断题10.需求分析之后、程序设计之前,需要对系统进行总体设计和详细设计。总体设计就是在需求分析的基础上对模型细化、分解任务,明确程序由哪些模块组成。(____)【来源:21·世纪·教育·网】五、操作题11.某数据解密算法描述如下:(1)在输入的数字字符串中依次提取有效的密文,有效的密文的特点:①是一组连续的,都小于5的三位数字串;②每个位置上的数字不能被重复提取;(2)对有效密文进行解密的过程:将密文作为一个五进制数转换为对应的十进制数值,根据ASCII字符的十进制编码表,得出对应的明文字符(提示:空格符所对应的ASCII码值为十进制数32,小写字母“z”所对应的ASCII码值为十进制数122).21教育名师原创作品例如,密文242转换成十进制数为72,对应的明文字符为大写字母“H”。程序运行界面如下图所示,在文本框Text1中输入密文,单击“解密”按钮,在文本框Text2中输出解密后的明文密码。21cnjycom(1)若输入的密文为“841497230235”,则对应的明文是__________。(2)实现上述功能的VB代码如下,划线处的语句有错,应改为__________________。(3)请在划线处填入合适的代码.'以下代码是将有效密文数字转换为十进制数的函数Functionconv(pAsString)AsIntegerDimkAsInteger,qAsString,iAsIntegerk=0:g=""Fori=1To3q=Mid(p,i,1)________________Nexticonv=kEndFunctionPrivateSubCommand1_Click()DimstAsString,pAsString,resAsStringDimc1AsString,c2AsString,c3AsStringDimiAsInteger,dAsInteger,nAsIntegerst=Text1.Text:n=Len(st)i=1:res=""DoWhilei<=n–2'提取有效密文,并进行转换c1=Mid(st,i,1):c2=Mid(st,i+1,1):c3=Mid(st,i+2,1)Ifc1<"5"Orc2<"5"Orc3<"5"Then______________d=conv(p)Ifd>=32Andd<=122Thenres=res+Chr(d)______________Elsei=i+1EndIfLoopText2.Text=resEndSub12.如果一个正整数从左到右读与从右到左读是一样的,就称它为回文式数(简称回数),如图321。“回数猜想”的主要思想是,对任意正整数,若它不是回数,则按下列算法即可获得一个回数:www-2-1-cnjy-com(1)把该整数的数字顺序颠倒,求得该数的逆序数;(2)将该整数和其对应的逆序数相加;(3)若相加结果不是回数,则将结果作为新的整数,返回步骤(1)。小林按照上述算法,设计了验证回数猜想的VB程序(猜想次数不超过10次),程序功能如下:在文本框Text1中输入一个正整数,单击“验证”按钮(Command1),获取文本框Text1中的数,当该数不是回数时,采用回数猜想的方法进行验证,并在列表框List1中输出每次验证的过程,若验证成功或验证次数超过10次,则停止验证,最后在列表框List1中输出验证结果。程序运行效果如图所示。实现上述功能的VB程序如下:PrivateSubCommand1_Click()DimtAsString,aAsLong,bAsLongDimcountAsInteger'count用于存储回数猜想的验证次数t=Text1.Textcount=1DoWhileCheck(t)=FalseAndcount<=10a=Val(t)①c=a+bList1.AddItemStr(a)&"+"&Str(b)&"="&Str(c)21cnjy.comcount=count+1t=cLoopIfCheck(t)ThenList1.AddItem"验证成功!"ElseList1.AddItem"10次内未验证成功!"EndIfEndSub'自定义函数TurnFunctionTurn(xAsString)AsLongDimsAsString,iAsIntegers=""Fori=Len(x)To1Step-1s=s&Mid(x,i,1)NextiTurn=②EndFunction'自定义函数Check,检查x是否为回文数FunctionCheck(xAsString)AsBooleanDimiAsIntegerCheck=TrueFori=1ToLen(x)\2Step1IfMid(x,i,1)<>③ThenCheck=Falsemid(x,len(x)+1-i,1)NextiEndFunction(1)程序代码中,自定义函数Turn(x)的功能是(2)请在划线处填入合适代码。13.某高一班主任需要对刚入学的新生排座位,教室座位按6排8列进行摆放(班级学生数不超过48个),并且要求每列的学生按身高从低到高排列。编写VB程序,实现教室排座位功能:单击“读取数据”按钮Command1,从数据库中读取该班所有同学的班内学号(两位数字)和身高数据(3位数字),并在列表框List1中按8个一行显示;单击“排座位”按钮Command2,对每列数据按身高从小到大排列,并显示在列表框List2中。程序运行界面如图所示,请回答下列问题:(1)要使窗体的标题栏文字显示为“排座位”,则应设置窗体的______属性(单选,填字母:A.Text/B.Name/C.Caption)。21教育网(2)程序中加框处代码有错,请改正。________(3)实现上述功能的VB程序如下,请在划线处填入合适的代码。Constm=6Constn=8Dima(1Tomn)AsString'存储学号Dimb(1Tomn)AsInteger'存储身高DimnumAsInteger'班级总人数PrivateSubCommand1_Click()'从数据库中读取该班的学号和身高数据存入数组a和数组b,班级人数存入变量num,代码略.'以下代码为在列表框List1中输出数据s="":List1.AddItem"(讲台)"Fori=1Tonum=s=s&Str(b(i))&"["&a(i)&"]"Ifi=mThenList1.AddItems:s=""EndIfNextiIfs<>""ThenList1.AddItemsEndSubPrivateSubCommand2_Click()DimiAsInteger,jAsInteger,iminAsInteger21·cn·jy·comDimt1AsString,t2AsInteger,sAsStringwww.21-cn-jy.comList2.AddItem"(讲台)"Fori=1To①_______s=""Forj=(i-1)n+1To(i-1)n+n21·世纪教育网Ifj<=numThen②__________Ifimin<>jThent1=a(imin):a(imin)=a(j):a(j)=t12-1-c-n-j-yt2=b(imin):b(imin)=b(j):b(j)=t2【来源:21cnjy.com】EndIfs=s&Str(b(j))&"["&a(j)&"]"【版权所有:21教育】EndIfNextjList2.AddItemsNextiEndSubFunctionfPos(pAsInteger)AsIntegerDimiAsInteger,jAsInteger,kAsIntegerk=pFori=③_____________Ifb(i)<b(k)Thenk=iNextifPos=kEndFunction14.某校老师编写一个VB程序分析学生技术成绩,功能如下:在列表框List1中显示原始学生信息,单击“分析”按钮Command1,统计各班参加考试人数、高分(97及以上)人数和均分,并按班级均分从大到小显示在列表框List2中,程序运行界面如图所示。【出处:21教育名师】实现上述功能的VB程序段如下,请回答下列问题:(1)学生成绩存储在数据表中,其字段名是(2)请在划线处填入合适的代码。DimrecCountAsInteger'存放学生人数DimsClass(1To1000)AsInteger'存放学生班级DimsName(1To1000)AsString'存放学生姓名DimsScore(1To1000)AsInteger'存放学生成绩PrivateSubCommand1_Click()DimiAsInteger,tAsInteger,ncAsIntegerDima(1To20)AsInteger,b(1To20)AsInteger'分别存放班级高分人数和班级参加考试人数Dimsum(1To20)AsInteger,ave(1To20)AsSingle'分别存放班级总分和班级均分Dimc(1To20)AsIntegerFori=1TorecCount①b(t)=b(t)+1Ifb(t)=1Thennc=nc+1②EndIfIfsScore(i)>=97Thena(t)=a(t)+1sum(t)=sum(t)+sScore(i)NextiFori=1Toncave(c(i))=Int(sum(c(i))/b(c(i))100+0.5)/100NextiFori=1Tonc-1Forj=ncToi+1Step-1If③Thent=c(j):c(j)=c(j-1):c(j-1)=tEndIfNextjNextiFori=1ToncList2.AddItemStr(c(i))+""+Str(b(c(i)))+""+Str(a(c(i)))+""+Str(ave(c(i)))NextiEndSubPrivateSubForm_Load()'链接数据库,代码略recCount=0DoWhileNotrs.EOFrecCount=recCount+1sClass(recCount)=rs.Fields("class")sName(recCount)=rs.Fields("name")sScore(recCount)=rs.Fields("score")rs.MoveNextLoop'将数据显示在列表框List1中,代码略EndSub15.某地区中考录取采用“平行志愿”的投档录取方式,该录取方式的具体规则为:①根据考生的考试总分从高到低依次对考生的填报志愿进行投档;②每位考生可填三个志愿学校,轮到该考生投档时依次对其三个志愿进行投档,若第一志愿学校还有剩余招生名额,就被第一志愿学校录取,结束该考生的投档,否则需对其后续志愿学校进行同样的投档操作,若该考生所填的所有志愿学校都没有剩余招生名额,则该考生无法被任何学校录取,该考生的投档结束。③当所有学校都已完成计划招生数时,停止投档,录取结束。编写VB程序,实现上述“平行志愿”投档录取的功能,单击“读取考生数据”按钮Command1,则从数据库中获取所有考生的成绩、志愿信息以及每个学校的计划招生数,单击“投档录取”按钮Command2,开始进行投档录取,并在列表框List1中输出每个学校的计划招生数、实际招生数、录取分数线和最低录取名次信息,程序运行界面如图所示。请回答下列问题:(1)若A校计划招生520人,B校计划招生480人,C校计划招生540人,某同学的考分名次为490名,其三个志愿学校依次为B校、A校、C校,且已知同名次的人数最多有30人,则该同学不可能被哪所学校录取:______。21cnjycom(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。ConstschCnt=5'学校数量ConststuMaxCnt=10000'最多考生人数DimzsCnt(1ToschCnt)AsInteger'存储每个学校的计划招生人数DimzsCnt2(1ToschCnt)AsInteger'存储每个学校的实际招生人数Dima(1TostuMaxCnt)AsSingle'存储考生总分成绩Dimb(1TostuMaxCnt3)AsInteger'存储考试志愿,每个考生有3个志愿,每个志愿为学校编号DimstuCntAsInteger'实际考生总人数PrivateSubCommand1_Click()'从数据库中读取所有考生的总分和志愿信息存储到数组a和数组b中(第1个考生总分存储到a(1),第1个考生的3个志愿分别存储到b(1)、b(2)、b(3)中,…),然后按总分对数组a和数组b进行降序排序,总分相同时,需根据各科成绩决定排序先后,但名次相同,考生总人数存储到stuCnt变量中;'读取每个学校的计划招生数,存储到数组zsCnt中;'以上功能代码略EndSubPrivateSubCommand2_Click()DimschAsInteger'学校代码,用1~5中的一个数字表示某学校代码DimiAsInteger,jAsInteger,finishedAsInteger,prevScoreAsSingleDimstuMc(1TostuMaxCnt)AsIntegerDimMinScore(1ToschCnt)AsSingleDimMinMc(1ToschCnt)AsIntegerfinished=0:i=1prevScore=-1DoWhile①______Ifa(i)=prevScoreThenstuMc(i)=stuMc(i-1)Else②____________EndIfprevScore=a(i)Forj=1To3③________IfzsCnt2(sch)<zsCnt(sch)ThenzsCnt2(sch)=zsCnt2(sch)+1MinScore(sch)=a(i)MinMc(sch)=stuMc(i)ExitForEndIfNextjfinished=0Forj=1ToschCntIfzsCnt2(j)=zsCnt(j)Thenfinished=finished+1EndIfNextji=i+1Loop'在List1中输出每所学校的代码、计划招生数、实际招生数、录取分数线、最低录取名次,代码略EndSub21世纪教育网www.21cnjy.com精品试卷·第2页(共2页)21世纪教育网(www.21cnjy.com) 展开更多...... 收起↑ 资源列表 3.3计算机程序与程序设计语言(2)-粤教版(2019)高中信息技术必修一练习(原卷版).doc 3.3计算机程序与程序设计语言(2)-粤教版(2019)高中信息技术必修一练习(解析版).doc