17-18版 算法的程序设计 算法的程序实现.doc_第1页
17-18版 算法的程序设计 算法的程序实现.doc_第2页
17-18版 算法的程序设计 算法的程序实现.doc_第3页
17-18版 算法的程序设计 算法的程序实现.doc_第4页
17-18版 算法的程序设计 算法的程序实现.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课后限时训练(九)算法的程序实现一、选择题1在给定的正整数区间m,n(mn)中寻找被3除余1,被7除余2的正整数个数的算法是()A递归算法B枚举算法C冒泡排序D选择排序B本题主要考查各种算法的基本思想。本题中的算法符合枚举算法的基本思想,即一一列举所有可能的解,并验证该解是否是正确解。2数组a共有6个元素构成:49、45、46、58、57,若采用选择排序算法进行从大到小排序,则元素的比较次数和排序需要几遍才能完成()A15次,4遍B15次,5遍C30次,4遍D30次,5遍【解析】n个数选择排序的比较次数是:n*(n1)/2次,排序遍数为:n1遍。【答案】B3按日期先后整理一堆文件的算法是:第一次,在这叠文件中从上到下找出日期最早的文件反扣在桌面上;第二次从剩余文件中从上到下找出日期最早的文件反扣在第一次找出的文件上;第三次,从剩余文件中从上到下找出日期最早的文件反扣在第二次找出的文件上;,依此类推,最后完成整理工作。此算法属于()A选择排序B对分查找C递归算法D冒泡排序A本题主要考查选择排序的基本思想。选择排序的基本思想是从所有的记录中选出最大或最小的数据,把它与第一个数据交换,然后在其余的记录中再选出最大或最小的数据与第二个数据交换。以此类推,直至所有数据排序完成。本题中解决问题的思想方法是选择排序的基本思想。4某8位男生的肺活量数据放在数组元素a(1)到a(8)中,其数据依次为“3205,3408,3471,3498,3621,3829,4233,4540”。使用对分查找,设定查找键Key,若第一个被访问到的数据是3498,小于Key值,则第二个被访问到的数据是()A3408B3829C4233D4540B(1)因为第一个查到的数据3498位于8个数的第4个位置,说明对分查找确定取中间点的表达方式是Fix(ij)/2),i和j标记了待查找区间的范围。(2)因为Key3498,因此接下来的查找范围应该是3498后面的四个数,也就是i为5,j为8。(3)套用前面得到的取中间点的表达式,计算Fix(58)/2)6,第6个位置的数据是3829。5寻找数组元素a(1)到a(10)中最小值min程序段如下:For i2 To 10If a(i)min Then mina(i)Next i方框中最合适的语句是()Aa(1)minBa(1)0Cmina(1)Dmin0C本题主要考查选择排序的核心代码:寻找最小值或最大值。它的思想方法是先假设数组的第一项是最小的,并赋值给变量min,因此mina(1),然后把从第二项开始的所有数组元素跟变量min进行比较,如果比min小,则把该元素赋值给min。这样循环结束后,变量min中存储的就是该数组中的最小值。6实现某排序算法的部分VB程序如下:For i1 To 4For j5 To i1 Step 1If a(j)a(j1) Thenta(j):a(j)a(j1):a(j1)tNext jNext i在经过某一遍排序“加工”后,数组元素a(1)到a(5)的数据依次为“28,70,53,57,30”。则下一遍排序“加工”后数组元素a(1)到a(5)的数据应该是()A28,30,70,53,57B28,30,53,57,70C28,30,57,53,70D28,30,53,70,57A本题主要考查冒泡排序算法的代码特点。冒泡排序的基本操作是比较相邻的两个数据,因此代码中会出现相邻的两个数组变量的比较,比如题中If a(j)a(j1),一旦确定是冒泡排序,接着就可以用冒泡排序的思想方法来对数据进行排序加工。根据第一遍排序结果可知是从小到大排,因此对28,70,53,57,30进行下一遍排序加工后结果应该是28,30,70,53,57。二、非选择题7某城市的电费收取规则如下:月用电量在50度及以下部分,每度电按0.538元计算;51200度部分,每度按0.568元计算;200度以上部分,每度按0.638元计算。设计一个程序,根据用户的月用电量计算电费。设某用户的当月用电量是x度,当x50时,电费为0.538x元;当50200时,电费为(0.638(x200)0.5681500.53850)元。在文本框Text1中输入x,在文本框Text2中输出相应的电费。根据上述分析,相应的Visual Basic程序如下,在和划线处,填入合适的语句或表达式,把程序补充完整。Private Sub Command1_ Click()Dim x As IntegerxStr(Text1.text)If x0 ThenText2.Text“用电量不能是负的!”Elself_ThenText2.TextStr(0.538ElseText2.TextStr(0.638。(选填:解析算法或枚举算法)(2)程序中划线处(1)应填入_。(3)程序中划线处(2)应填入_。【解析】本题主要考查解析算法的基本思想及其程序实现。(1)本题符合解析算法的基本思想,电费通过分段函数的表达式计算得到。(2)计算式0.538【答案】(1)解析算法(2)x50(3)Str(0.568*(x-50)+0.538*50)8某工厂购入100千克原材料,每4千克原材料可以生产一件A产品,每5千克原材料可以生产一件B产品。下列VB程序的功能是:计算恰好用尽这些原材料时,生产A产品和B产品数量的各种可能,并在列表框中输出。请在画线处填入合适代码。Private Sub Command1_Click()Dim x As Integer,y As Integerx为A产品数量,y为B产品数量For x0 to 25For y0 to 20If_thenList1.AddItemA产品Str(x)件B产品Str(y)件End if _Next x End Sub画线处填_,画线处填_。【解析】本题主要考查学生对枚举算法的理解和程序实现。枚举算法的一般程序结构为循环语句包含选择语句。用循环枚举所有可能的解,通常是For语句;每次循环根据条件判断筛选解,通常是IF语句;处理符合条件的可能解(即真正的解),通常为赋值语句。题中通过双重循环分别枚举A产品和B产品所有可能数量,每次循环根据“正好用尽原材料”这个条件筛选判断。【答案】4*x+5*y=100 nest y9某地出租车按照行驶距离(以千米为单位按整数计,小数部分四舍五入)计费,行驶距离取整后,计费规则如下:3km(包括3km)以内10元;超过3km但低于10km(包括10km)时,超过部分每千米2元;超过10km时,超过部分每千米3元。例如,行驶距离8km时将收取10(83)220元,行驶距离12km时将收取10(103)2(1210)330元。现要求编写VB程序(运行界面如上图所示),实现如下功能:在文本框Text1中输入行驶距离,单击“计算”按钮Command1,在标签Label3中显示相应的费用。某同学按此要求编写的程序如下,其中函数f(x)用于计算费用,但加框处代码有错,请改正。Function f(x as Integer)As IntegerIfthen f10Else If x10 thenElsef10(103)*2(x10)*3End IfEnd FunctionPrivate Sub Command1_Click()Dim n As Integer,r As IntegernInt(Val(Text1.text)0.5)n为取整后的行驶距离rf(n) r为需收取的费用Label3.CaptionStr(r)End Sub【解析】本题主要考查学生分析问题的能力以及对解析算法的理解和程序实现。解析算法程序实现的关键是分析出正确的数学公式,并用正确合理的VB变量、表达式来表示得到的数学公式。程序中出租车采用分段计算车费,函数f(x)主要是根据x值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论