《算法与程序设计》选择题专项复习答案(共10页).doc
精选优质文档-倾情为你奉上信息技术会考算法与程序设计选择题专项复习姓名班级 算法与程序设计选择题分析说明:选择题共8 题,每题3 分,共24 分1、基本知识(至少2 题,以会考导引为标准,一般第一节有1 题,第二节有1 题。) 2、基本算法(至少1 题) 3、数据类型(至少1 题) 4、常量变量(至少1 题,一般2 题) 5、表达式运算(至少2 题) 6、函数运算(一般1 题,部分题结合考点5 中的表达式一起) 7、三种执行模式的简单程序段阅读、填空、改错等(一般1 题) 一. 基本知识(送分题) 说明:主要涉及定义、名词的理解;内容有:算法定义、特征;三种流程图;对象、属性、事件、方法等。解题方法:多做类似的题或者多看几遍相关知识点。主要是会考导引P51 第一节知识点;P7 第二节中“1、2、3”知识点。例1:08 年会考题中的第7 题在硅的冶炼中,通常用氢气在高温下还原四氯化硅的方法制得单质硅。现需冶炼x千克单质硅,计算至少需要消耗氢气量(标准状况)的步骤有: 输出需要消耗氢气p Si=28.09 计算p=x*1000*2*22.4/Si 输入单质硅的数据x其正确的顺序是 (A) (B) (C) (D)例2:08 年会考题中的第11 题在Visual Basic中,要在标签对象Label3上显示文字“VB编程”,下列语句正确的是(A)Label3.Caption ="VB编程" (B)Label3.Width ="VB编程"(C)Label3.Font ="VB编程" (D)Label3.Height ="VB编程"对象名.属性名=属性值例3:09 年会考题第01套题7某种气体在0时的体积为100L,温度t每升高1,其体积v就增加0.37L。已知气体的体积v,计算温度t的步骤有:计算温度t=(v-100)/k k=0.37输出温度t 输入气体体积v其正确的顺序是 (A) (B) (C) (D)例4:09 年会考题第01套题11在Visual Basic中,语句Soft.Text="QQ2008"中的Soft是(A)属性名 (B)属性值 (C)对象名 (D)窗体名对象名.属性名=属性值例外:List1.additem "嘉兴"Additem是方法名例5:09 年会考题第10套题11在Visual Basic中,表示窗体装载的事件是(A)Click (B)KeyPress (C)Load (D)DblClick例5:09 年会考题第08套题11下列属于Visual Basic工程文件的是(A)circle.frm 窗体文件 (B)circle.vbp 工程文件 (C)circle.doc (D)circle.jpg例6:09 年会考题第06套题11在Visual Basic中,鼠标单击命令按钮Command1触发的事件处理过程名是(A)Command1_Click (B)Command1.Load (C)Click_Command1 (D)Command1ClickSub 对象名_事件名() 处理事件的代码End subSub Form_Load( ) 这个是窗体装载事件 处理事件的代码End sub例7:09 年会考题第02套题11在Visual Basic中,在文本框Text3中显示"数据太大!",则下列操作正确的是(A)将Text3的Width属性值设置为"数据太大!"(B)将Text3的BackColor属性值设置为"数据太大!"(C)将Text3的Height属性值设置为"数据太大!" (D)将Text3的Text属性值设置为"数据太大!"也可在程序代码中用语句实现Text3.text="数据太大!"对象名.属性名=属性值例8:在Visual Basic中,如果要在标签Label1上显示"Pass",则应改变的属性是(A)BackColor (B) Height (C)Width (D)Caption二、基本算法说明:四大算法:枚举算法、解析算法、排序算法(选择、冒泡)、查找算法(顺序、对分) 解题方法:理解各种算法的定义,通过适当方法(如排除法等)快速答题。主要是会考导引P70 第三节中的知识点。还需要结合教材,知道算法执行过程。例1:08 年会考题第三套题8 面额为1元、2元和5元的纸币各有10张,求总额恰好为32元取法方案的算法是:设1元取a张、2元取b张和5元取c张,a、b、c都取0到10之间的整数,将a、b、c取值的所有可能组合逐一代入表达式a+2b+5c=32,判断是否成立,若成立,则输出这一方案。此算法属于(A)解析算法 (B)枚举算法 (C)递归算法 (D)排序算法 所有可能情况列出一一考证,枚举算法例2:08 年会考题第一套题8 有5位运动员100米成绩依次为13.8,12.5,13.0,13.2,13.4,原始数据 13.8 12.5 13.0 13.2 13.4 第一趟 12.5 13.8 13.0 13.2 13.4 第二趟 第三趟 12.5 13.0 13.2 13.8 13.4 第四趟 12.5 13.0 13.2 13.4 13.8 若采用选择排序算法对其进行从小到大排序,则第二趟的排序结果是(A) 12.5 13.8 13.2 13.4 13.0 (B) 12.5 13.4 13.2 13.8 13.0(C) 12.5 13.0 13.8 13.2 13.4 (D) 12.5 13.2 13.8 13.4 13.0选择排序说明选择排序的基本思想是在所有的记录中选出最小(大)的数据,把它与第一个数据交换,然后在其余的记录中再选出最小(大)的数据与第二个数据交换,依此类推,直至所有数据排序完成。选择排序算法举例 设有数列 65,97,76,13,27,49,58 第1趟 65,97,76,13,27,49,58 寻找最小数据d(k)=d(4)=13与d(1)交换第2趟 1397,76,65,27,49,58 寻找最小数据d(k)=d(5)=27与d(2)交换第3趟 13,2776,65,97,49,58 寻找最小数据d(k)=d(6)=49与d(3)交换第4趟 13,27,4965,97,76,58 寻找最小数据d(k)=d(7)=58与d(4)交换第5趟 13,27,49,5897,76,65 寻找最小数据d(k)=d(7)=65与d(5)交换第6趟 13,27,49,58,6576,97 寻找最小数据d(k)=d(6)=76与d(6)交换结束:13,27,49,58,65,76977个元素的数据系列需要寻找6次。程序实现:d(1)=65;d(2)=97;d(3)=76;d(4)=13;d(5)=27;d(6)=49;d(7)=58for i=1 to 6 第一重循环,控制趟数,7个元素需要6趟k=ifor j=i+1 to 7第二重循环,在待排序中找最小数,待排序元素每次减少一个 if d(j)<d(k) then k=j 找出最小的数据next j结束第二重循环if k<>i then把最小数据与待排序数据中的第一个交换 kt=d(j) d(j)=d(k) d(k)=ktend ifnext i结束第一重循环例3:08 年9 月补考题第2 套题12 在数组变量m中依次存入5个字符,如下图所示,若从m(1)开始进行顺序查找,找到"R"这个字符时, 共进行的查找次数是m(1) m(2) m(3) m(4) m(5) S M A R T (A)1 (B)2 (C)4 (D)5 顺序查找说明顺序查找的基本思想是从第一个数据开始,按数据的顺序逐个将数据与给定的值进行比较,若某个数据和给定值相等,则查找成功,找到所查数据的位置;反之,查找不成功。例4:09 年会考题第8套题8有23个苹果分给甲、乙、丙、丁四个孩子,每个孩子最多可得到的苹果数依次为9、8、7、6个,找出所有不同分法的算法是:采用列举方式,列举每个孩子所有可能得到的苹果数,对四人所得苹果数总和是否为23进行判断,找出符合要求的各种分法,此算法属于(A)解析算法 (B)枚举算法 (C)递归算法 (D)排序算法例5:09 年会考题第04套题8计算月工资收入在2500元至4000元之间(含4000元不含2500元)的个人所得税算法如下:输入月工资收入额x 用公式计算所得税y=500×5%+(x-2500)×10%,输出所得税y上述算法属于 (A)枚举算法 (B)排序算法 (C)递归算法 (D)解析算法解析算法说明是指用解析的方法找出表示问题的前提条件与所求结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。例:同学们在数学的应用题中、物理、化学的计算题中通过理解题意得出表达式,再通过计算得到答案,所使用的算法就是解析算法。解题方法:主要是要得出前提条件与所求结果之间关系的数学表达式,并且在程序中这个数学表达式必须符合VB格式。储蓄问题,不考虑复利,年利率2.8%,M元钱需存多少年,才能得到K元本息?设需要y年,根据题意得出的数学表达式为:y=,但是在VB中表达式必须符合VB语法:y=(k-m)/(0.028*m)例6:09 年会考题第04套题8在NBA某赛季中,火箭队5场比赛得分依次为114,89,97,70,90,若采用冒泡排序算法对其进行从小到大排序,则第二趟的排序结果是(A)70 89 114 90 97 (B)70 114 89 97 90 (C)70 114 89 90 97 (D)70 90 89 114 97 原始数据:114,89,97,70,90从右边开始冒泡比较:第1趟比较第1次 114,89,97,70,90不需要交换第1趟比较第2次 114,89,97,70,90交换第1趟比较第3次 114,89,70,97,90交换第1趟比较第4次 114,70,89,97,90交换第1趟结束 70,114,89,97,90第2趟比较第1次:70114,89,97,90交换第2趟比较第2次:70114,89,90,97不需要交换第2趟比较第3次:70114,89,90,97交换第2趟结束 7089,114,90,97 从左边开始冒泡比较:第1趟比较第1次 114,89,97,70,90交换第1趟比较第2次 89,114,97,70,90交换第1趟比较第3次 89,97,114,70,90交换第1趟比较第4次 89,97,70,114,90交换第1趟结束 89,97,70,90,114第2趟比较第1次: 89,97,70,90114不需要交换第2趟比较第2次: 89,97,70,90114交换第2趟比较第3次: 89,70,97,90114交换第2趟结束 89,70,90,97 114从左边开始冒泡第二趟结束后的排序结果为:89,70,90,97,114冒泡排序说明冒泡排序的基本思想是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面的一个元素起,自下而上地比较相邻的两个元素中的数据,将较小的数据换到上面的一个元素中。重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工(一趟冒泡)。当第一遍加工完成时,最小的数据已经上升到第一个元素的位置。然后对余下的n-1个元素重复上述过程,直至最后进行余下两个数据的比较和交换。对分查找说明对分查找的基本思想是在有序的数据列中,首先将要查找的数据与有序数组内处于中间位置的数据进行比较,如果两者相等,则查找成功;否则根据数组元素的有序性,就可确定该数据应该在数组的前半部分还是后半部分继续进行查找;在新确定的范围内,继续按上述方法进行查找,直到找到要查找的数据,使查找成功,或直到子表不存在,查找不成功。对分查找的条件是被查找的数据必须是有序的。对分(二分)查找过程:特别注意中间数的下标m如何确定m=fix(i+j)/2)d(1)=13;d(2)=27;d(3)=49;d(4)=58;d(5)=76;d(6)=97;d(7)=102;d(8)=138;d(9)=202查找k=138d(1)=13;d(2)=27;d(3)=49;d(4)=58;d(5)=76;d(6)=97;d(7)=102;d(8)=138;d(9)=202第一次k与d(fix(1+9)/2)=d(5)比较,比d(5)大,下次在d(5)的右边找d(1)=13;d(2)=27;d(3)=49;d(4)=58;d(5)=76;d(6)=97;d(7)=102;d(8)=138;d(9)=202第二次k与d(5)右边的d(fix(6+9)/2)=d(7)比较,比d(7)大,下次在d(7)的右边找d(1)=13;d(2)=27;d(3)=49;d(4)=58;d(5)=76;d(6)=97;d(7)=102;d(8)=138;d(9)=202第三次k与d(7)右边的d(fix(8+9)/2)=d(8)比较,与d(8)相等,找到。依次被访问进行比较的数字为:d(5)、d(7)、d(8)三、数据类型 说明:七种数据类型的英文名和中文名(会考导引在P58 中第4 知识点) 解题方法: 结合英文单词,记住七种类型。例1:08 年会考题第9 套题9 在Visual Basic中,如果要定义变量p用于存储年级学生总数,那么变量p的数据类型是(A)String (B)Integer (C)Boolean (D)Date例2:07 年会考第04套题9 在 Visual Basic 中,变量 a 中的数值是整数而且可能在-3276832767 范围之外,则变量 a 的数据类型应定义为 : (A)日期型 (B)整数型 (C)长整数型(D) 逻辑型例3:09 年会考题第01套题9在Visual Basic中,用变量p存储数值1.414,变量p的数据类型应定义为(A)Boolean (B)Integer (C)Single (D)Date例4:07 年第07套题9 在 Visual Basic 中,表示字符串型的数据类型名是 (A)Long (B)Integer (C)String (D)Boolean 一些符号、编号、代码、电话号码、身份证号一般都使用字符型变量四、常量变量(稍难) 说明:四种常量的表示(整数常量、实数常量、字符串常量、逻辑常量)、常量的定义语句;变量的命名规则、变量的定义语句(包括数组变量)。(会考导引在P58 中第4 知识点)解题方法: 方法一(推荐):记住相关要点来答题。方法二(部分题,较繁琐,不推荐):通过VB 程序,将答案放置到VB 语句中检验。例1:08 年会考题题6 套题9 下列属于Visual Basic数值常量的是(A)Abs(-1.414) 表达式 (B)Val("1231") 表达式 (C)"0.141" 字符串常量 (D)0.141例2:09年会考题题03 套题9在Visual Basic中,语句st="iPhone"中的"iPhone"是(A)字符串常量 (B)数值常量 (C)逻辑常量 (D)实数常量例3:09年会考题题05套题9在Visual Basic中,用数组a存储50位同学一次数学考试分数,合适的数组定义语句是(A)Dim a(1 To 50) As Single (B)Dim a(1 To 50) As Boolean(C)Dim a(1 , 20) As Integer (D)Dim a(1 , 10) As Long例4:在Visual Basic中,下列能作为变量名的是(A)x+5 (B)b7 (C)2a (D)miss1(1)变量名只能由字符、数字、下划线组成,AB排除(2)变量名必须字符开头,C排除(3)变量名不能是关键字五、表达式运算(稍难) 说明:算术表达式(结合函数考)、关系表达式、逻辑表达式的正误与答案求解。解题方法:两种方法相互结合。具体可参考会考导引P58 第6 知识点方法一:口算(注意运算符的优先级,特别是“、*、/、mod”与“Not、And、Or”的优先关系, 方法二:使用VB 程序的立即窗口(print 命令)来计算例1:2008 年会考题第6 套题13在Visual Basic中,若x是非负数,则下列逻辑表达式值一定为真的是(A)Not(x<0) (B)Not(x>0) (C)x<0 (D)Not(x>=0)例2:2007 年会考题第1 套题13 圆周长的计算公式为 L=2a,其中 a 为圆半径。在 Visual Basic 中,能正确表示 2a 的表达式是:(A)2a (B)2*a (C)2··a (D)2*3.1416*a例3:2008 年会考题第2 套题13 在Visual Basic中,如果a=3,b=4,c=6,那么下列表达式值为真的是 (A)(a>b) And (b>c) (B)(a>c) And (b>a) (C)(a>b) Or (b>c) (D)(a>c) Or (b>a)例4:2008 年会考题第8 套题14 在Visual Basic中,若x是大于零的偶数,则下列关系表达式值一定为真的是(A)x Mod 2 = 1 (B)x2 = 0 (C)x2 = x/2 (D)Int(x/2) <> x/2例5:2007 年会考题第7 套题14 在 Visual Basic 中,已知 a、x、y 均是正整数,当逻辑表达式(a mod x = 0) And (a mod y = 0)为真时,则表示(A) a 是 x 的倍数,但不是 y 的倍数 (C) a 是 x 的倍数或者是 y 的倍数 (B) a 既是 x 的倍数,又是 y 的倍数 (D) a 既不是 x 的倍数,也不是 y 的倍数例6:2008 年会考题第5 套题14 在Visual Basic中,设x=4126,能得到其百位上数字“1”的正确表达式是(A)x Mod 100 (B)x 100 Mod 10 (C)x 100 Mod 100 (D)x 10 Mod 10例7:09 年会考题第一套题13在Visual Basic中,如果a=3,b=4,c=-5,那么下列表达式值为假的是 (A)(a>b) And (b>c) (B)(a>c) And (b>a) (C)(a>b) Or (b>c) (D)(a>c) Or (b>a)例8:09 年会考题第一套题14把星期一记为1,星期二记为2,星期日记为0,已知某月1日(即第1天)是星期一,下列语句中,用于正确计算该月第n日星期数w的是(A)w=n Mod 7 (B)w=(n+1) Mod 7 (C)w=(n+1)7 (D)w=n7例9:09 年会考题第08套题13下列Visual Basic表达式中,能产生一个10到99之间(包括10和99)随机整数的是(A)Rnd() * 89 (B)Rnd() * 50+10 (C)Int(Rnd() * 89) + 10 (D)Int(Rnd() * 90) + 10Rnd()产生一个0至1之间的随机数,包括0但不包括1六、函数运算(送分题) 说明:考函数的运算结果或某个函数的功能。具体可参考会考导引P58 第5 知识点解题方法: 方法一:通过VB 程序的立即窗口(print 命令)来得到答案。方法二:借助数学知识,理解各个函数的功能例1:08 年会考题第10 套题10 Visual Basic表达式 Len("abcd")的值是 (A) abcd (B) "abcd" (C) 4 (D) 0例2:07 年会考题第5 套题10 在 Visual Basic 中,下列表达式的值等于 4 的是 (A)Int(4.1)(B)Int(-4.1) (C)Sqr(4.1) (D)Abs(-4.1) 例3:09 年会考题第一套题10在Visual Basic中,下列表达式的值等于3的是(A)Int(3.14) (B)Abs(-3.14) (C)Sqr(9.2) (D)Len("3.1415")=6 双引号中的所有字符都算(包括空格)例4:会考导引P60 题17七、三种执行模式的简单程序段阅读、填空、改错(难) 说明:考流程图填空、语句填空、语句改错等.解题方法:理解基本语句和掌握流程图的执行流程来求解具体可参考会考导引P52 第7 知识点、P57 第7 知识点。例1:2008 年会考题第9 套题12下列语句用于计算s=1+5+9+13+37: For m=1 To 10 Next m s=0 s=s+4*m-3正确的顺序是(A) (B) (C) (D)例2:2008 年会考题第10 套题12 在下面Visual Basic程序段中,有语法错误的语句行是#01 s=0 #02 For m=1 To 5#03 s+m=s#04 Next m(A) 第#01行 (B) 第#02行 (C) 第#03行 (D) 第#04行S+m=s只能算表达式,表达式不能单独作为语句,如果是赋值语句的话,左边只能出现一个变量例3:2008 年会考题第7 套题14 下面程序段是利用For语句给数组a赋值,使a(1)=2,a(2)=4,a(3)=6,a(100)=200,则划线处的语句应该是 For i= 1 To 100 _ Next i(A)a(i)=i+2 (B)a(i)=i*i (C)a(i)=i (D)a(i)=2*i例4:2008 年会考题第4 套题14下面程序段是利用For语句给数组a赋值, For i= 10 To 1 Step -1 a(i)=i-1 Next i该程序段运行后数组元素a(3)的值为 (A)7 (B)6 (C)3 (D)2a(i)=i-1a(3)=3-1例5:09 年会考题第一套题14某数列前三项分别为:a1 = 2、a2 = 3、a3 = 4,以后每项都满足: ai = ai-3 + ai-1 (i>3)如果用数组a存储该数列的前20项,下面程序段划线处应填入 a(1)=2 : a(2)=3 : a(3)=4 For i=_ To 20 a(i) = a(i - 3) + a(i - 1) Next i(A)6 (B)9 (C)13 (D)4前三项知道,从第四项开始算例6:09 年会考题第9套题14实现计算器上xy运算处理的算法部分流程图如下图所示:空白矩形框中应该填入的是 (A)ff*x (B)fx*j (C)ff+x (D)ff*jX乘y次其实就是x的y次方例7:09 年会考题第8套题14下面程序段是利用For语句给数组a赋值,使a(1)=1,a(2)=3,a(3)=5,a(50)=99,则划线处的语句应该是 Dim a(1 to 50) As Integer For i= 1 To 50 _ Next i(A)a(i)=2*i+1 a(50)=2*50+1=101(B)a(i)=2*(i+1) a(50)=2*(50+1)=102(C)a(i)=i+2 a(50)=5 0+2=52(D)a(i)=2*i-1例8:09 年会考题第7套题14有如下Visual Basic程序段: s=0 For x=1 To _ Step 2 s=s+x Next x要使循环体s=s+x执行5次,循环变量的终值可以是 (A)5 (B)7 (C)9 10也可以 (D)-9例9:09 年会考题第6套题14中国移动话费查询系统以秒数为单位显示通话时间,将通话时间的秒数值s0转换为m分s秒格式后输出的算法部分流程图如下所示:空白矩形框中应该填入的是(A)ss-60 (B)ss+60 (C)ss+1 (D)ss+m例10:09 年会考题第6套题12在下面完整的Visual Basic的Do语句中,有错误的语句行是#01 t=0 #02 Do While t<10 #03 t=t+2 #04 End Do loop(A) 第#01行 (B) 第#02行 (C) 第#03行 (D) 第#04行几种语句格式一定要熟悉例11:09 年会考题第6套题12以下程序段是一个完整的Visual Basic的Do语句,则划线处的语句应该是 Do While a<=5 s=s+a : a=a+1 _(A)End If (B)End Sub (C)Next a (D)Loop几种语句格式一定要熟悉1、基本知识:会考导引P51 第一节知识点;P7 第二节中“1、2、3”知识点2、基本算法:会考导引P70 第三节中的知识点。还需要结合教材,知道算法执行过程。3、数据类型:会考导引在P58 中第4 知识点4、常量变量:会考导引在P58 中第4 知识点5、表达式运算:会考导引P58 第6 知识点6、函数运算:会考导引P58 第5 知识点7、三种执行模式的简单程序段阅读、填空、改错等:会考导引P52 第7 知识点、P57 第7 知识点。 专心-专注-专业