《算法与程序设计》综合练习

上传人:痛*** 文档编号:200414063 上传时间:2023-04-15 格式:DOC 页数:13 大小:2.13MB
返回 下载 相关 举报
《算法与程序设计》综合练习_第1页
第1页 / 共13页
《算法与程序设计》综合练习_第2页
第2页 / 共13页
《算法与程序设计》综合练习_第3页
第3页 / 共13页
点击查看更多>>
资源描述
算法与程序设计综合练习一、选择题(本大题共12小题,每小题2分,共24分。在每小题给出的四个选项中,只有一个符合题目要求)1.在VB应用程序设计中,通常应对_编写程序代码。()A.所有对象 B.窗体C.Timer D.有事件的对象答案D2.要定义一个可存储数值7.283的变量,其合适的类型是()A.Integer B.Long C.Single D.Boolean答案C3.一张单据上有一个5位数的号码678,其中百位和十位上的数字看不清楚了,但知道该数能够被78整除,也能被67整除。设计一个算法求出该号码,下列算法合适的是()A.解析算法 B.穷举算法C.递归算法 D.查找算法答案B4.已知三角形的三条边长分别为a.b.c,半周长p(abc)/2该三角形面积计算公式为s,计算S的VB语句是()A.sB.sC.sD.sSqr(p*(pa)*(pb)*(pc)答案D5.表示区间5,14的VB表达式是()A.Int(Rnd*5) 10 B.Int(Rnd*10) 5C.Int(Rnd*10) 14 D.Int(Rnd*14) 5解析Int(Rnd*5) 10的区间为10,14;Int(Rnd*10) 5的区间为5,14;Int(Rnd*10) 14的区间为14,23;Int(Rnd*14) 5的区间为5,18。答案B6. 某算法流程图如图所示,执行该算法,输出s的结果是()A.0 B.8 C.10 D.15答案D7.运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息。发生“下标越界”错误时所执行的语句是()Private Sub Command1_Click()Dim a(0 To 5) As IntegerDim i As Integera(0) 1For i 1 To 5a(i) 2 * a(i1) 1 Next iText1.Text Str(a(i)End SubA. B. C. D.答案D8.小王用天平称量的过程如下:先放置100克砝码,砝码偏重;再将砝码改为50克,砝码偏轻;又将砝码改为70克,通过这种策略,小王很快完成物品称重工作。此过程借鉴的算法是()A.排序 B.顺序查找C.对分查找 D.累加答案C9.如下VB程序段:Private Sub Command1_Click()Dim x As IntegerDim y As Integerx Val(Text1.Text)y 10If x 0 Theny 5Else If x 100 Theny 100 Elsey 200 End IfEnd IfPrint yEnd Sub运行后,在文本框Text1中输入5,程序输出的结果是()A.5 B.10 C.100 D.200答案C10.(20169绍兴模拟)有如下VB程序:Dim n As IntegerFunction f(k As Integer) As LongIf k2 Then f1 Else ff(k1)f(k2)End FunctionPrivate Sub command1_click()nVal(Text1.Text)Label2.CaptionStr(f(n)End Sub该VB程序采用的主要算法是()A.枚举 B.递归C.对分查找 D.冒泡排序解析由ff(k1)f(k2)可判断该程序采用的主要是递归算法。答案B11.(20169台州评估)有如下VB程序段:Dim d(1 To 9)As Integer,s As StringDim L As Integer,R As Integer,M As Integer,key As Integerd(1)2d(2)3d(3)5d(4)7d(5)11d(6)13d(7)17d(8)19d(9)23L1R9s“”key17DO While LRM(LR1)2If d(M)key Then L10If d(M)key Then LM1 Else RM1ssStr(M)LoopLabel1.Captions该程序段运行后,标签框Label1中显示的内容是()A.587 B.57C.111917 D.1117解析本题程序段为二分查找算法程序,M为每次查找二分的中点,s变量将每次的中点M转换成字符连接起来,最后标签框Label1输出s的值。分析程序运算过程,变量M第1次值为5,第2次为8,第3次为7,第3次找到d(7)17。所以Label15 8 7。答案A12.有如下程序片段,希望对a(1)到a(6)进行升序排序:For i 1 To 5k iFor j i 1 To 6_Next jIf k i Then t a(i): a(i) a(k): a(k) tNext i那么划线部分应填()A.If a(j) a(k) Then k jB.If a(j) a(k) Then k jD.If a(j) a(k) Then k i答案A二、非选择题(本大题共5小题,其中第13小题5分,第14小题4分,第15小题5分,第16小 题6分,第17小题6分,共26分)13.在一次校园歌手大奖赛中,有20位评委负责评判,打分的上限是10分。统计选手得分时,去掉一个最高分,再去掉一个最低分,然后取评委打分的平均值作为选手的最后得分。根据上述规则,信息小组设计了计算选手得分的程序。核心部分的程序如下:d数组中存放了20位评委的打分Smax0:smin10:score0For i1To20score score d(i)If_If d(i) smaxThen smaxd(i) 或smax smax Thensmaxd(i)或smax d(i)Thensmaxd(i) 14.编写VB程序,实现如下功能:在文本框Textl中输入包含数字、字母的字符串,单击“统计”按钮Command1,统计该字符串中数字字符的个数,并在标签Label1中输出结果。界面如图1所示。(1)在设计应用程序界面时,应使用图2所示“控件工具箱”中的_(填写相应编号)添加“统计”按钮。(2)为实现上述功能,请在划线处填入合适代码或选项。Private Sub Command1Click()Dim s As String,c As StringDim i As Integer,n As Integer,num As Integers_(填程序代码)num0nLen(s)_(填字母:从下列A、B、C三个选项中选取一项)_(填字母:从下列A、B、C三个选项中选取一项)If c“0”And c“9”Thennumnum1End IfNext iLabel1.Captionstr(num)End Sub划线、的选项:A.Do While in B.cMid(s,i,1)C.For i1 To n答案(1)4(2) text1.textCB15.(20169台州评估)编写VB程序,实现如下功能:在文本框Text1中输入十进制整数,文本框Text2中输入待转换进制(范围216),单击“转换”按钮Command1,在列表框List1中输出该整数对应的进制结果,运行效果如图1所示。图1图2(1)设计时,属性窗口对象列表如图2所示,则该程序共有_个对象。(2)为实现上述功能,请在划线处填入合适的代码。Private Sub Command1_Click()Const code“0123456789ABCDEF”Dim s1 As String,s As String变量s存储转换后的结果Dim x AS Long,R As Integer_If R2 And R16 TnenxVal(Text1.Text)s“”Do While x0yx Mod Rx_s1Mid(code,y1,1)将余数转换为对应的字符s_LoopList1.AddItem“(“& Text1.Text&”)10“&”(“& s &”)”&REnd IfEnd Sub解析(1)观察图2下拉列表,对象的个数为7个。(2)阅读程序,填空处的下一句判断R的值,R用于储存要转换的进制即Text2的内容,处应为给R赋值,即Rval(Text2.text)。处所在循环是进行进制的转换,采用除R取余法,y储存余数,x储存除以R以后去掉余数的整数,以备下次循环x再除R取余,所以XXR。处是将求得的余数字符s1连接来,使用字符串连接运算符“&”或“”,处应填写sl&s或sls,注意连接顺序,先求得的余数要入在后边,填写ssl或s&sl错误。因为变量sl储存的是通过截取字符串code得到的字符,不能使用str()函数字符转换字符。答案(1)7(2)Rval(Text2.text)&或sl&s或s1s16.下列VB程序的功能是:程序运行时,单击命令按钮Command1后,产生10个1,999范围内互不相同的随机整数,依次显示在列表框List1中,然后将它们按从小到大的顺序排序,排序结果显示在列表框List2中。数组a用于存储产生的10个随机整数,变量f用于标记随机整数x与已生成的整数是否有重复,如有则为True,没有则为False。为实现上述功能,请在划线处填入合适的代码。Dim a(1 To 10) As IntegerPrivate Sub Command1_Click()Dim n As Integer n用于统计已经产生的随机整数个数Dim i As Integer, j As IntegerDim x As Integer, k As IntegerDim f As BooleanRandomizen 0List1.ClearList2.ClearDo While n 10x _(1)_ 产生1,999范围内的随机整数f FalseFor i 1 To n If_(2)_ Then f TrueNextiIf f False Thenn n 1a(n) xList1.AddItemStr(a(n)End IfLoopFor i 1 To 9For j 10 To i 1 Step 1If_(3)_ Thenk a(j): a(j) a(j 1): a(j 1) kEnd IfNext jNext iFor i 1 To 10List2.AddItem Str(a(i)Next iEnd Sub解析(1)为产生1,999范围内的随机整数;(2)判断随机整数x与已生成的整数是否有重复,如有则为True,没有则为False。(3)为冒泡排序内层循环中相邻两个数进行比较。答案(1) Int(Rnd * 999) 1 (2) x a(i)(3) a(j) a(j 1)17.(20169台州评估)猜数字是一种古老的密码破译类益智小游戏。通常由两个人玩,也可以由一个人和电脑玩,其标准规则为:(1)一方出数字,出数字的人要想好一个无重复数字的4位数(如0165,5234等),不能让猜的人知道;(2)另一方猜数字,每猜一个数字,出数者根据结果给出“几A几B”的提示,其中A前面的数字表示位置正确的数字个数,而B前面的数字表示数字正确但位置不对的数字个数。(如要猜5234,猜的人给出5346,则提示1A2B);(3)重复第二步的猜测过程,直到猜中(即提示4A0B)为止。小林编写了一个和电脑猜数字的VB程序,其功能如下:窗体加载时,调用自定义函数产生待猜的4位数字,并初始化猜测次数。用户在文本框Text1中输入猜的数字,单击“我猜”按钮Commandl,程序进行判断,并将结果显示在列表框Listl中。猜中后,在标签框Label2中根据猜测次数给出评语。程序运行效果如图1所示。图1(1)实现上述功能的VB程序如下,请在划线处填入合适代码。Dim result As String,total As IntegerDim flag(0 to 9)As Boolean标记下标对应的数字是否存在,初值默认为FalsePrivate Sub Form_Load()result_total0End SubPrivate Sub Command1_Click()Dim A As Integer,B As IntegerDim C As Integer变量C存储数字正确(含位置正确)的数字个数Dim guess As String,i As Integer,t1 As String,t2 As StringguessText1.TextA0C0For i1 To 4t1Mid(result,i,1)t2Mid(guess,i,1)If t1t2 Then AA1If_Then CC1Next itotaltotal1B_List1.AddItem Str(total)&“.”& guess &“”& Str(A)&“A”& Str(B)&“B”If A4 ThenIf total8 ThenLabe12.Caption“太厉害了!您只用了”& total &“次。”ElseLabe12.Caption“继续锻炼!您共花了”& total &“次。”End IfEnd IfEnd SubRndCode函数用于随机产生待猜测的n位不重复数字字符Function RndCode(n As Integer)As StringDim x As Integer,i As IntegerRandomizenum0RndCode“”Do While numnxInt(Rnd*10)随机产生一个0,9的数字If flag(x)False Thenflag(x)Truenumnum1RndCodeRndCode & xEnd IfLoopEnd Function(2)如果某次游戏过程如图2所示,则第7次要猜测成功,应输入_。图2A.6321 B.6312 C.2531 D.2513解析(1)分析程序结构,自定义函数RndCode用于随机产生待猜测的n位不重复数字字符,result变量用于储存待猜测的4位不重复数字字符,处应为调用自定义函数赋值,resultRndCode(4)。、变量C存储数字正确(含位置正确)的数字个数,处条件判断语句条件应该是判断猜测的数字中t2是否包含在待猜数字之中的表达式,即t2是否包含在result所含数字之中,这个判断结果在自定义函数RndCode中已经判断好存储在数组flag中,即如果t2包含在result所含数字之中,flag(t2)为真,所以处应为flag(t2)或flag(val(t2)。、变量A存储数和位都正确的数字个数,变量B存储位不正确数正确的个数,变量C存储数字正确(含位置正确)的数字个数,处求B的个数,是在C中把数和位都正确的部分去掉,应该是CA。(2)由第1行1234(0A3B)和第2行5678(0A1B)可知4位数中“1、2、3、4”有3个,“5、6、7、8”中有1个,一定不包含“0”和“9”。再由第3行2349(1A1B)和第4行2190(1A1B)判断第1位一定是“2”,一定包含“1”并且“1”不在第2位上,“3”和“4”中有一个不包含在4位数中。再由第5行3129(0A3B)和第6行6590(1A0B)可判断一定包含“3”,第2位数一定是“5”,再由第1行1234(0A3B)判断“3”不在第3位上,所以“3”一定在第4位上。综合以上判断,可知该数应为“2513”。答案(1)resultRndcode(4)flag(t2)或flag(val(t2)CA(2)D
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!