资源简介 上海市金山中学2019-2020学年高一下学期信息技术期中考试试卷 算法与程序设计部分一、单选题(每题2分,共20分)1.(2019高一下·上海期中)关于算法的表示方法,以下说法错误的是( )。A.目前常用的算法表示方法有自然语言描述、流程图描述、伪代码或程序设计语言描述B.较之自然语言,伪代码具有计算机程序设计语言叙述精确、无二义性的优点C.较之流程图和伪代码,用自然语言描述可以减少歧义的产生D.较之自然语言,用流程图和伪代码描述更为简洁【答案】C【知识点】算法的常用表示方法【解析】【解答】选项A:表示算法的方法有很多种,目前常用的有 自然语言描述、流程图描述、伪代码或程序设计语言描述等,本项对。选项B:伪代码更接近于程序语言,表述更精确,而自然语言接近于人们书面语言有理解歧义即二义性,故本项对。选项C:自然语言接近于人们书面语言有理解歧义即二义性,而流程图和伪代码表述精确无二义性,本项错。选项D: 较之自然语言,用流程图和伪代码描述更为精确简洁无二义性,本项对。故答案选C。【分析】本题考查的是使用各种表示方法描述算法的优缺点。算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。描述算法的方法有多种,常用的有自然语言、结构化流程图、伪代码和PAD图等,其中最普遍的是流程图。伪代码(Pseudocode)是一种非正式的,类似于英语结构的,用于描述模块结构图的语言。以特定的图形符号加上说明,表示算法的图,称为流程图或框图。使用图形表示算法的思路是一种极好的方法,因为千言万语不如一张图。而自然语言描述是最易学的算法描述方法但由于描述不清易有二义性。2.(2019高一下·上海期中)以下流程图违反了算法的哪项特征( )。A.该算法没有数据输入 B.该算法没有输出步骤C.不符合算法的确定性特征 D.不符合算法的有穷性特征【答案】D【知识点】算法的常用表示方法【解析】【解答】选项A:由流程图知本流程图先对s和i进行赋值可见有数据输入,本项错。选项B:由流程图中最下面的框图”输出s“知该流程图有数据输出,本项错。选项C:由流程图知该算法的每个步骤都有操作即符合确定性原则,本项错。选项D:由流程图知在循环体内没有改变i的值的语句使i值一直小于5退不出循环违背了算法有穷性原则,本项对。故答案选D。【分析】本题考查的是算法的特征,一个算法应该具有以下五个重要的特征:1,有穷性(Finiteness):算法的有穷性是指算法必须能在执行有限个步骤之后终止;2,确切性(Definiteness):算法的每一步骤必须有确切的定义;3,输入项(Input):一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;4,输出项(Output):一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;5,可行性(Effectiveness):算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。3.(2019高一下·上海期中)我国古代科学家祖冲之提出了圆周率的计算方法。为把圆周率的近似值3.14159存入变量pi中,在VB中定义变量的正确语句是( )。A.Dim pi As Integer B.Dim pi As LongC.Dim pi As Double D.Dim pi(7)As Double【答案】C【知识点】常量、变量及变量的赋值【解析】【解答】选项A: Dim pi As Integer 的含义为定义变量pi为一个整数,而pi代表圆周率为一个小数,本项错。选项B: Dim pi As Long 的含义为定义变量pi为一个长整型,而pi代表圆周率为一个小数,本项错。选项C: Dim pi As Double的含义为定义变量pi为一个双精度型,双精度型可以为小数本项对。选项D:Dim pi(7)As Double 的含义是定义一个有8个元素(从p(0)到p(7))的双精度数组,而圆周率为一个小数不需要使用8个元素来表示,本项错。故答案选C。【分析】本题考查的是定义变量语句和数据类型。VB的变量定义可以使用dim、public、static和private来定义,可以定义私有变量、共公变量和静态变量,其中dim和private作用相同,在定义变量时可以使用as来说明变量的类型,常见的数据类型有long、integer、single、double、string、boolean等。4.(2019高一下·上海期中)两个存储单元的存放内容如图所示。以下叙述正确的是( )A.a是变量名,True是常量 B.a、b、True都是变量名C.a、b、12345都是常量 D.True是变量名,a、b都是常量【答案】A【知识点】常见数据类型、数组【解析】【解答】由图可知,a、b为变量名,而true、12345为变量a和b的值为常量,故选项A正确,选项B中true为变量名错误,选项C中a、b为常量错误,选项D中true为变量名、a、b为常量都错误。故答案选A。【分析】本题考查的是使用框图来表示变量名和变量的值。一般情况下使用框图表示一块内存,框图外为该块内存的标识符即变量名,框图内为该块内存存储的数据即变量的值。5.(2019高一下·上海期中)以下不适合使用解析算法求解的问题是( )。A.已知三角形的底边和高,求三角形的面积B.已知两个整数a和b,求它们的最大公约数C.已知两个电阻的阻值,求它们并联后的总阻值D.已知两点坐标,求两点之间的距离【答案】B【知识点】解析算法及程序实现【解析】【解答】选项A:已经知道三角形的底和高可以使用三角形面积公式计算出它的面积,可以使用解析算法求解。选项B:已知两个整数求它们的公约数时需从2开始到两个数最小的数为止作为除数,两个数做被除数一个一个进行检测找出最大的能除尽两个数的数,可以使用穷举法求解而不适合解析法。选项C:已知两个电阻的阻值,求并联后的总阻值可以使用用并联电路求电阻的公式求解,适用于解析法。选项D:已知两点坐标可以使用公式求出两点间的距离,本项可以使用解析法求解。故答案选B。【分析】本题考查的是解析算法的特点。所谓解析法(analysis algorithm)是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。6.(2019高一下·上海期中)数组d中存放了一组数据如表所示。采用选择排序对这组数据进行递增次序排序。第二遍加工过程中,进行数据交换的数组元素是( )d[1] d[2] d[3] d[4] d[5] d[6] d[7] d[8]70 84 85 73 81 71 66 80A.d[2]与d[1] B.d[2]与d[3] C.d[2]与d[7] D.d[2]与d[8]【答案】C【知识点】排序算法及程序实现【解析】【解答】由图可知第一轮排序是将d[7]和d[1]交换,交换后的次序为66、84、85、73、81、71、70、80,第二轮将70和84交换,即将d[2]和d[7]进行交换,交换后的次序为66、70、85、73、81、71、84、80。故答案选C。【分析】本题考查的是选择排序法。选择排序法的基本思想:第1轮,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2轮,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i轮在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。7.(2019高一下·上海期中)数组a中存放了一批数据如下表,现采用对分查找方式在这批数据中查找“zhu”,以下说法正确的是( )。a(1) a(2) a(3) a(4) a(5) a(6) a(7)hou ji long ma niu she tuA.无法进行对分查找,因为这批数据还没排好序B.依次被比较的数据是“ma”,“she”,“tu”C.无法进行查找操作, 因为这批数据中没有“zhu”D.依次被比较的数据是“ma”,“ji“,“hou”【答案】B【知识点】查找算法及程序实现【解析】【解答】选项A:由图可知该数组已经按第一个字母的升序进行了排序可以使用对分查找法,本项错。选项B:”zhu“的首字母为”z“大于该数组中的所有元素,所以使用对分法排序时一直调整数组下限值,第一次查找的中值为(1+7)\2=4,即比较a(4),第二次查找中值为(5+7)\2=6,即比较a(6),第三次查找的中值为(7+7)\2=7,即对比a(7),故本项对。选项C:没有找到不等于不能查找,查无此数据也是一种查找结果,本项错。选项D:由选项B知道依次对比的数据为a(4)、a(6)和a(7),即比较”ma“、”she“和”tu“,本项错。故答案选B。【分析】本题考查的是对分法查找数据的方法,对分法查找过程是先将一个数列放于一个有序数组中,然后比较中间数组元素的值与要查找的值,或中间数组的值比要查找的值大,则在前半个数组中查找,若中间数组的值比要查找的值小则在后半个数组中查找。查找方法仍是比较中间数组元素的值和要查找的值。以此类推直到查到或下限大于了上限(没查找)为止。8.(2019高一下·上海期中)数组a的初始值如表所示,以下流程图描述的算法执行结果是( )d[1] d[2] d[3] d[4] d[5] d[6] d[7] d[8]-10 0 1 3 4 6 9 10A.0 B.1 C.10 D.-10【答案】A【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图知,先对t和i进行赋值0和1,然后判断i的值是否小于等于7且t值是否等于0,在t值小于等于7且t值为0时执行循环,否则如果i值大于7或t值不等于0时退出循环并输出t值,在循环体中判断数组元素是否小于前面的元素,如小于后面的元素值则将i值增1否则将t值变为1,由给出的数组d的各素值知该数组成升序排列即每个元素的值都小于其后的元素,故循环终了i值为8,t值始终为0。故答案选A。【分析】本题考查的是使用流程图来表示算法以及升序数组的判断。流程图是一种用规定的图形、指向线及文字说明来准确表示算法的图形,具有直观、形象的特点,能清楚地展现算法的逻辑结构。流程图使用标准的框图符号绘制,框图一般按从上到下、从左到右的方向画,除了判断框外,程序框的符号只有一个进入点和一个退出点,而判断框则具有一个进入点和多个退出点。判断一个数组是否为升序数组时可以使用循环比较前后两个数组元素的值,如果出现一个元素的值小于了后面数组元素的值则终止循环,最后比较循环变量的值和数组最大下标值,如果循环变量值大于了最大下标值则该数组为升序数组否则不是。9.(2019高一下·上海期中)若依次输入12、6,运行以下VB程序的结果是( )Dim a as string, b as stringa=inputbox(“a=”)b=inputbox(“b=”)if a>b thena=a+belseb=b+aendifprint a+bA.24 B.30 C.1226 D.12612【答案】D【知识点】算法的控制结构;常量、变量及变量的赋值【解析】【解答】本题程序分析如下:Dim a as string, b as string ‘定义字符串变量a和ba=inputbox(“a=”) ‘通过输入对话框输入变量a的值b=inputbox(“b=”) ‘通过输入对话框输入变量b的值if a>b then ‘如果a的值大于b的值则进行如下处理a=a+b ‘将a值和b值合并为一个字符串并赋给变量aelse ‘否则将作如下处理b=b+a ‘将b值和a值合并为一个字符串并赋给变量bendif ‘结束条件判断print a+b ‘显示a字符串和b字符串合并后的字符串由以上分析知a=”12“,b=”6“,a是小于b的(因为”1“<"6"),故b=”6“+”12"="612"最后显示a+b的值,vcb“12”+“612”的值。故答案选D。【分析】本题考查的是双分支选择结构以及字符串的“+”运算。双分支选择结构由then和else两个分支可以根据条件进行选择一个分支进行执行,如果条件为真则执行then后面的语句,如果条件为假则执行else后面的语名。“+”在字符串中运算中与“&”号相同是将两个字符串连接为一个字符串的运算,但如果+号的两边混合有数值型时则作算术运算。10.(2019高一下·上海期中)如下图1所示,最外圈方格中已有数字0。机器人小艾相据图2所示的算法从数字1所在方格出发,沿箭头所指方问前进,并在空白方格中写入数字,方格x中写入的数字是( )。A.16 B.15 C.12 D.11【答案】A【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图知在表格中呈螺旋状排序布局1-16个数字,整个表格数字布局如下:0 0 0 0 0 00 1 2 3 4 00 12 13 14 5 00 11 16 15 6 00 10 9 8 7 00 0 0 0 0 0由上图可知x位于第四行第3列其单元格中的数据为16。故答案选A。【分析】本题考查的是对流程图的识读以及选择结构。流程图是一种用规定的图形、指向线及文字说明来准确表示算法的图形,具有直观、形象的特点,能清楚地展现算法的逻辑结构。流程图使用标准的框图符号绘制,框图一般按从上到下、从左到右的方向画,除了判断框外,程序框的符号只有一个进入点和一个退出点,而判断框则具有一个进入点和多个退出点。二、填空题(每题3分,共18分)11.(2019高一下·上海期中)VB表达式128mod 10\4的运算结果为 。【答案】0【知识点】运算符、基本运算与表达式【解析】【解答】 128mod 10\4 =128 mod 2=0。故答案填写:0。【分析】本题考查的是求余运算符mod和整除运算符\的功能及优先级。mod为求余运算结果为两数相除的余数,\为整除运算,结果为两数相除的整数商。整除运算符的优先级高于求余运算,在两者都出现且没有括号时先计算整除运算后计算求余运算。12.(2019高一下·上海期中)数组d的初始值如下表所示,则d[d[1]]+d[4]的值是 。d[1] d[2] d[3] d[4] d[5] d[6]2 4 6 8 10 12【答案】12【知识点】常见数据类型、数组【解析】【解答】由图可知d[1]=2,故 d[d[1]]+d[4] =d[2]+d[4]=4+8=12,故答案填写:12。【分析】本题考查的是使用元素的值作为下标。数组的下标可以由常数、变量、表达式来表示,其中变量也包括了数组元素,在使用变量和表达式表示下标时要计算出变量和表达式的值,最终仍是使用值来表示数组的下标。13.(2019高一下·上海期中)下图算法的运行结果为 。【答案】8【知识点】算法的常用表示方法;常见数据类型、数组【解析】【解答】由流程图知,根据a(3)和a(4)的值求a(5)到a(8)的值,从a(5)到a(8)其值为前面两个元素值之和,故a(5)=a(3)+a(4)=2+3=5,a(6)=a(4)+a(5)=3+5=8,a(7)=a(5)+a(6)=5+8=13,a(8)=a(6)+a(7)=8+13=21,循环结束时a=8,故输出a(m-2)即输出a(6)的值。故答案填写:8。【分析】本题考查的是给数组进行赋值的方法。数组中元素较多时一个一个赋值使得赋值语句过多程序太复杂,如果数组元素的值是有规律的如本题从a(5)开始每个元素的值为前两个元素值之和同可以使用循环语句加上算术表达式来赋值。在本题的循环使用的是直到型循环,直到型循环比当型循环多循环一次这是需要注意的。14.(2019高一下·上海期中)下图描述的算法执行结果是 。【答案】15【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图可知s的数学算式为:s=1+(1+1)+(1+1+1)+(1+1+1+1)+(1+1+1+1+1)=1+2+3+4+5=15。故答案填写:15。【分析】本题考查的是使用流程图来表示算法。在本题中先给s赋值为0,m赋值为1,在m小于等于5时进行循环,在循环体中,先将n值赋为1,然后判断n值是否小于m值,如果小于等于m值则将s值增1,将n值增1,如果n值大于m值时退出内层循环将m值增1再去判断m值是否超过5,如果没有超过5则继续执行循环,超过时输出s值。15.(2019高一下·上海期中)若输入18,下图的执行结果是 。【答案】17【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图可知,先输入x值,然后判断x除以2的余数是否等于x除以2的整数商,如果相等则将x值增1否则将x值减少1 。x值为18,x mod 2=0,int(x/2)=9,两者是不相等故交将x减少1。故答案填写:17。【分析】本题考查的是双分支选择结束,在双分支选择结构中会有两个分支,两个分支只能执行一个分支上的语句另一个分支上的语句跳过执行,至于执行哪条分支上的语句由条件来决定,条件语句的值为真执行一条分支,为假执行另一条分支。16.(2019高一下·上海期中)下图算法的执行结果是 。【答案】False【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图可知先将t1的值赋为30,将t2的值赋为50,将t1和t2的大小比较结果赋给变量t,最后输出t值,由于t1等于30小于t2的值50的,故t1>t2的值为假。故答案填写:false。【分析】本题考查的是顺序结构以及对流程图的识读。顺序结构就是按语句的顺序一条一条执行即不跳过也不重复的结构。关系表达式是用关系运算符将两个表达式连接起来的式式。关系运算符有“=”、“>"、"<"、"<>"、">="、"<="六个运算符。三、算法综合题(共6分)17.(2019高一下·上海期中)设计算法,求同时满足以下条件的所有四位正整数之和s。①不大于n(n的值是由键盘输入);②能被9整除;③十位数是2。算法流程图如图所示:(1)解决上述问题的算法属于( )A.枚举法 B.擂台法 C.解析法 D.对分法(2)判断x能被9整除的设计思路是( );取x十位上数字的设计思路是( )。A.x除以9的余数为0:先求x除以10的余数,再求该余数除以10的商B.x除以9的商为0;先求x除以10的余数,再求该余数除以100的商C.x除以9的商为0;先求x除以100的余数,再求该余数除以100的商D.x除以9的余数为0;先求x除以100的余数,再求该余数除以10的商(3)请完善划线处内容,完成上述功能。Dim n as Integer, x as Integer, s as longs=0n=InputBox(“输入四位数上限值”)For ⑴If ⑵ and ⑶ ThenS=s+xEndIfNext⑷⑴ ⑵ ⑶ ⑷ 【答案】(1)A(2)D(3)x=1000 to n;x mod 9= 0;(x mod 100) \10=2或者写x\10 mod 10= 2;prints【知识点】算法的常用表示方法;常量、变量及变量的赋值;枚举算法及程序实现【解析】【解答】(1)由流程图可知循环变量为1000到输入的四位数,在这些循环变量的值中如果符合条件就将循环变量的值进行累加,不符合条件就判断下一个,本算法是在所有可能符合条件的数中时行一一检测,该算法为枚举算法。故答案选A。(2)从x除以9的余数为0来判断是否x能整除9是正确的而从商上为0判断是错误的故可以排除选项B、C。而取x的十位上的数先将x除以10要其余数则只保留了x个位上的数,再除以10其商一定为0,故可以排除选项A,而选项Dx除以100后取其余数则为十位上的数和个位上的数,再除以10要其商结果为x十位上的数。故答案选D。(3)本题程序分析如下:Dim n as Integer, x as Integer, s as long ‘定义整型变量n、x和长整型变量ss=0 ‘初始化变量s的值为0n=InputBox(“输入四位数上限值”) ‘使用输入对话框输入一个四位数并赋给变量nFor ① ‘ 使用x来控制循环,x的初值为最小的四位数1000,终值为输入的四位数,步长为1,故本处答案应填写: x=1000 to nIf ② and ③ Then ‘如果x能被9整除且其十位上的数为2时进行如下处理,故(2)处应填写x mod 9=0或x/9=int(x/9),(3)处应填写: (x mod 100) \10=2或者写x\10 mod 10= 2S=s+x ‘如果符合条件则将x累加到变量s中End If ‘结束条件判断Next ‘结束循环④ ‘最后输出s的值,故本处答案应填写:print s由以上程序分析知,(1)处为使用x来控制循环,x的初值为最小的四位数1000,终值为输入的四位数,步长为1,故本处答案应填写: x=1000 to n。(2)(3)处为:如果x能被9整除且其十位上的数为2时进行如下处理,故(2)处应填写x mod 9=0或x/9=int(x/9),(3)处应填写: (x mod 100) \10=2或者写x\10 mod 10= 2。(4)处为:最后输出s的值,故本处答案应填写:print s。【分析】本题考查的是使用穷举法计算符合条件的四位数之和。穷举法又称为枚举法。枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:(1)可预先确定候选答案的数量;(2)候选答案的范围在求解之前必须有一个确定的集合。四、算法设计题(共6分)18.(2019高一下·上海期中)求20项的和。(最后结果四舍五入精确到0.01)注:请书写VB代码,画流程图不得分。【答案】s=0‘累加器初值k=1 ‘循环结构do while k<= 20x=1/(2*k-1) ‘项值推导s=s+x ‘累加k=k+1loops=int(100*s+0.5) / 100 ‘四舍五入prints ‘输出结果【知识点】解析算法及程序实现【解析】【解答】由数学公式 知其分母为1、3、5、7是个等差数列,故可以使用循环变量来表示项数,使用一个变量来计算每项的值,使用累加器来计算整个表达式的值。故答案程序如下:s=0 ‘给累加器s赋初值k=1 ‘给循环变量赋初值do while k<= 20 ‘在循环变量的值不超过20时进行循环x=1/(2*k-1) ‘计算每个项的值,分母为等差数列其与项数k的关系为2*K-1,根据分数计算项数值s=s+x ‘将项数的值累加到累加器s中k=k+1 ‘循环变量的值增1loop ‘结束循环s=int(100*s+0.5) / 100 ‘将s值进行四舍五入prints ‘输出结果【分析】本题考查的是程序设计。在进行程序设计时要遵循程序设计的步骤,利用计算机程序解决问题的基本过程一般可以分为五步,分别是分析问题、设计算法、编写程序、调试运行、检测结果。设计算法时一般使用流程图来画出解题步骤,再根据流程图来编写语句。1 / 1上海市金山中学2019-2020学年高一下学期信息技术期中考试试卷 算法与程序设计部分一、单选题(每题2分,共20分)1.(2019高一下·上海期中)关于算法的表示方法,以下说法错误的是( )。A.目前常用的算法表示方法有自然语言描述、流程图描述、伪代码或程序设计语言描述B.较之自然语言,伪代码具有计算机程序设计语言叙述精确、无二义性的优点C.较之流程图和伪代码,用自然语言描述可以减少歧义的产生D.较之自然语言,用流程图和伪代码描述更为简洁2.(2019高一下·上海期中)以下流程图违反了算法的哪项特征( )。A.该算法没有数据输入 B.该算法没有输出步骤C.不符合算法的确定性特征 D.不符合算法的有穷性特征3.(2019高一下·上海期中)我国古代科学家祖冲之提出了圆周率的计算方法。为把圆周率的近似值3.14159存入变量pi中,在VB中定义变量的正确语句是( )。A.Dim pi As Integer B.Dim pi As LongC.Dim pi As Double D.Dim pi(7)As Double4.(2019高一下·上海期中)两个存储单元的存放内容如图所示。以下叙述正确的是( )A.a是变量名,True是常量 B.a、b、True都是变量名C.a、b、12345都是常量 D.True是变量名,a、b都是常量5.(2019高一下·上海期中)以下不适合使用解析算法求解的问题是( )。A.已知三角形的底边和高,求三角形的面积B.已知两个整数a和b,求它们的最大公约数C.已知两个电阻的阻值,求它们并联后的总阻值D.已知两点坐标,求两点之间的距离6.(2019高一下·上海期中)数组d中存放了一组数据如表所示。采用选择排序对这组数据进行递增次序排序。第二遍加工过程中,进行数据交换的数组元素是( )d[1] d[2] d[3] d[4] d[5] d[6] d[7] d[8]70 84 85 73 81 71 66 80A.d[2]与d[1] B.d[2]与d[3] C.d[2]与d[7] D.d[2]与d[8]7.(2019高一下·上海期中)数组a中存放了一批数据如下表,现采用对分查找方式在这批数据中查找“zhu”,以下说法正确的是( )。a(1) a(2) a(3) a(4) a(5) a(6) a(7)hou ji long ma niu she tuA.无法进行对分查找,因为这批数据还没排好序B.依次被比较的数据是“ma”,“she”,“tu”C.无法进行查找操作, 因为这批数据中没有“zhu”D.依次被比较的数据是“ma”,“ji“,“hou”8.(2019高一下·上海期中)数组a的初始值如表所示,以下流程图描述的算法执行结果是( )d[1] d[2] d[3] d[4] d[5] d[6] d[7] d[8]-10 0 1 3 4 6 9 10A.0 B.1 C.10 D.-109.(2019高一下·上海期中)若依次输入12、6,运行以下VB程序的结果是( )Dim a as string, b as stringa=inputbox(“a=”)b=inputbox(“b=”)if a>b thena=a+belseb=b+aendifprint a+bA.24 B.30 C.1226 D.1261210.(2019高一下·上海期中)如下图1所示,最外圈方格中已有数字0。机器人小艾相据图2所示的算法从数字1所在方格出发,沿箭头所指方问前进,并在空白方格中写入数字,方格x中写入的数字是( )。A.16 B.15 C.12 D.11二、填空题(每题3分,共18分)11.(2019高一下·上海期中)VB表达式128mod 10\4的运算结果为 。12.(2019高一下·上海期中)数组d的初始值如下表所示,则d[d[1]]+d[4]的值是 。d[1] d[2] d[3] d[4] d[5] d[6]2 4 6 8 10 1213.(2019高一下·上海期中)下图算法的运行结果为 。14.(2019高一下·上海期中)下图描述的算法执行结果是 。15.(2019高一下·上海期中)若输入18,下图的执行结果是 。16.(2019高一下·上海期中)下图算法的执行结果是 。三、算法综合题(共6分)17.(2019高一下·上海期中)设计算法,求同时满足以下条件的所有四位正整数之和s。①不大于n(n的值是由键盘输入);②能被9整除;③十位数是2。算法流程图如图所示:(1)解决上述问题的算法属于( )A.枚举法 B.擂台法 C.解析法 D.对分法(2)判断x能被9整除的设计思路是( );取x十位上数字的设计思路是( )。A.x除以9的余数为0:先求x除以10的余数,再求该余数除以10的商B.x除以9的商为0;先求x除以10的余数,再求该余数除以100的商C.x除以9的商为0;先求x除以100的余数,再求该余数除以100的商D.x除以9的余数为0;先求x除以100的余数,再求该余数除以10的商(3)请完善划线处内容,完成上述功能。Dim n as Integer, x as Integer, s as longs=0n=InputBox(“输入四位数上限值”)For ⑴If ⑵ and ⑶ ThenS=s+xEndIfNext⑷⑴ ⑵ ⑶ ⑷ 四、算法设计题(共6分)18.(2019高一下·上海期中)求20项的和。(最后结果四舍五入精确到0.01)注:请书写VB代码,画流程图不得分。答案解析部分1.【答案】C【知识点】算法的常用表示方法【解析】【解答】选项A:表示算法的方法有很多种,目前常用的有 自然语言描述、流程图描述、伪代码或程序设计语言描述等,本项对。选项B:伪代码更接近于程序语言,表述更精确,而自然语言接近于人们书面语言有理解歧义即二义性,故本项对。选项C:自然语言接近于人们书面语言有理解歧义即二义性,而流程图和伪代码表述精确无二义性,本项错。选项D: 较之自然语言,用流程图和伪代码描述更为精确简洁无二义性,本项对。故答案选C。【分析】本题考查的是使用各种表示方法描述算法的优缺点。算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。描述算法的方法有多种,常用的有自然语言、结构化流程图、伪代码和PAD图等,其中最普遍的是流程图。伪代码(Pseudocode)是一种非正式的,类似于英语结构的,用于描述模块结构图的语言。以特定的图形符号加上说明,表示算法的图,称为流程图或框图。使用图形表示算法的思路是一种极好的方法,因为千言万语不如一张图。而自然语言描述是最易学的算法描述方法但由于描述不清易有二义性。2.【答案】D【知识点】算法的常用表示方法【解析】【解答】选项A:由流程图知本流程图先对s和i进行赋值可见有数据输入,本项错。选项B:由流程图中最下面的框图”输出s“知该流程图有数据输出,本项错。选项C:由流程图知该算法的每个步骤都有操作即符合确定性原则,本项错。选项D:由流程图知在循环体内没有改变i的值的语句使i值一直小于5退不出循环违背了算法有穷性原则,本项对。故答案选D。【分析】本题考查的是算法的特征,一个算法应该具有以下五个重要的特征:1,有穷性(Finiteness):算法的有穷性是指算法必须能在执行有限个步骤之后终止;2,确切性(Definiteness):算法的每一步骤必须有确切的定义;3,输入项(Input):一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;4,输出项(Output):一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;5,可行性(Effectiveness):算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成(也称之为有效性)。3.【答案】C【知识点】常量、变量及变量的赋值【解析】【解答】选项A: Dim pi As Integer 的含义为定义变量pi为一个整数,而pi代表圆周率为一个小数,本项错。选项B: Dim pi As Long 的含义为定义变量pi为一个长整型,而pi代表圆周率为一个小数,本项错。选项C: Dim pi As Double的含义为定义变量pi为一个双精度型,双精度型可以为小数本项对。选项D:Dim pi(7)As Double 的含义是定义一个有8个元素(从p(0)到p(7))的双精度数组,而圆周率为一个小数不需要使用8个元素来表示,本项错。故答案选C。【分析】本题考查的是定义变量语句和数据类型。VB的变量定义可以使用dim、public、static和private来定义,可以定义私有变量、共公变量和静态变量,其中dim和private作用相同,在定义变量时可以使用as来说明变量的类型,常见的数据类型有long、integer、single、double、string、boolean等。4.【答案】A【知识点】常见数据类型、数组【解析】【解答】由图可知,a、b为变量名,而true、12345为变量a和b的值为常量,故选项A正确,选项B中true为变量名错误,选项C中a、b为常量错误,选项D中true为变量名、a、b为常量都错误。故答案选A。【分析】本题考查的是使用框图来表示变量名和变量的值。一般情况下使用框图表示一块内存,框图外为该块内存的标识符即变量名,框图内为该块内存存储的数据即变量的值。5.【答案】B【知识点】解析算法及程序实现【解析】【解答】选项A:已经知道三角形的底和高可以使用三角形面积公式计算出它的面积,可以使用解析算法求解。选项B:已知两个整数求它们的公约数时需从2开始到两个数最小的数为止作为除数,两个数做被除数一个一个进行检测找出最大的能除尽两个数的数,可以使用穷举法求解而不适合解析法。选项C:已知两个电阻的阻值,求并联后的总阻值可以使用用并联电路求电阻的公式求解,适用于解析法。选项D:已知两点坐标可以使用公式求出两点间的距离,本项可以使用解析法求解。故答案选B。【分析】本题考查的是解析算法的特点。所谓解析法(analysis algorithm)是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。6.【答案】C【知识点】排序算法及程序实现【解析】【解答】由图可知第一轮排序是将d[7]和d[1]交换,交换后的次序为66、84、85、73、81、71、70、80,第二轮将70和84交换,即将d[2]和d[7]进行交换,交换后的次序为66、70、85、73、81、71、84、80。故答案选C。【分析】本题考查的是选择排序法。选择排序法的基本思想:第1轮,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2轮,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i轮在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。7.【答案】B【知识点】查找算法及程序实现【解析】【解答】选项A:由图可知该数组已经按第一个字母的升序进行了排序可以使用对分查找法,本项错。选项B:”zhu“的首字母为”z“大于该数组中的所有元素,所以使用对分法排序时一直调整数组下限值,第一次查找的中值为(1+7)\2=4,即比较a(4),第二次查找中值为(5+7)\2=6,即比较a(6),第三次查找的中值为(7+7)\2=7,即对比a(7),故本项对。选项C:没有找到不等于不能查找,查无此数据也是一种查找结果,本项错。选项D:由选项B知道依次对比的数据为a(4)、a(6)和a(7),即比较”ma“、”she“和”tu“,本项错。故答案选B。【分析】本题考查的是对分法查找数据的方法,对分法查找过程是先将一个数列放于一个有序数组中,然后比较中间数组元素的值与要查找的值,或中间数组的值比要查找的值大,则在前半个数组中查找,若中间数组的值比要查找的值小则在后半个数组中查找。查找方法仍是比较中间数组元素的值和要查找的值。以此类推直到查到或下限大于了上限(没查找)为止。8.【答案】A【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图知,先对t和i进行赋值0和1,然后判断i的值是否小于等于7且t值是否等于0,在t值小于等于7且t值为0时执行循环,否则如果i值大于7或t值不等于0时退出循环并输出t值,在循环体中判断数组元素是否小于前面的元素,如小于后面的元素值则将i值增1否则将t值变为1,由给出的数组d的各素值知该数组成升序排列即每个元素的值都小于其后的元素,故循环终了i值为8,t值始终为0。故答案选A。【分析】本题考查的是使用流程图来表示算法以及升序数组的判断。流程图是一种用规定的图形、指向线及文字说明来准确表示算法的图形,具有直观、形象的特点,能清楚地展现算法的逻辑结构。流程图使用标准的框图符号绘制,框图一般按从上到下、从左到右的方向画,除了判断框外,程序框的符号只有一个进入点和一个退出点,而判断框则具有一个进入点和多个退出点。判断一个数组是否为升序数组时可以使用循环比较前后两个数组元素的值,如果出现一个元素的值小于了后面数组元素的值则终止循环,最后比较循环变量的值和数组最大下标值,如果循环变量值大于了最大下标值则该数组为升序数组否则不是。9.【答案】D【知识点】算法的控制结构;常量、变量及变量的赋值【解析】【解答】本题程序分析如下:Dim a as string, b as string ‘定义字符串变量a和ba=inputbox(“a=”) ‘通过输入对话框输入变量a的值b=inputbox(“b=”) ‘通过输入对话框输入变量b的值if a>b then ‘如果a的值大于b的值则进行如下处理a=a+b ‘将a值和b值合并为一个字符串并赋给变量aelse ‘否则将作如下处理b=b+a ‘将b值和a值合并为一个字符串并赋给变量bendif ‘结束条件判断print a+b ‘显示a字符串和b字符串合并后的字符串由以上分析知a=”12“,b=”6“,a是小于b的(因为”1“<"6"),故b=”6“+”12"="612"最后显示a+b的值,vcb“12”+“612”的值。故答案选D。【分析】本题考查的是双分支选择结构以及字符串的“+”运算。双分支选择结构由then和else两个分支可以根据条件进行选择一个分支进行执行,如果条件为真则执行then后面的语句,如果条件为假则执行else后面的语名。“+”在字符串中运算中与“&”号相同是将两个字符串连接为一个字符串的运算,但如果+号的两边混合有数值型时则作算术运算。10.【答案】A【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图知在表格中呈螺旋状排序布局1-16个数字,整个表格数字布局如下:0 0 0 0 0 00 1 2 3 4 00 12 13 14 5 00 11 16 15 6 00 10 9 8 7 00 0 0 0 0 0由上图可知x位于第四行第3列其单元格中的数据为16。故答案选A。【分析】本题考查的是对流程图的识读以及选择结构。流程图是一种用规定的图形、指向线及文字说明来准确表示算法的图形,具有直观、形象的特点,能清楚地展现算法的逻辑结构。流程图使用标准的框图符号绘制,框图一般按从上到下、从左到右的方向画,除了判断框外,程序框的符号只有一个进入点和一个退出点,而判断框则具有一个进入点和多个退出点。11.【答案】0【知识点】运算符、基本运算与表达式【解析】【解答】 128mod 10\4 =128 mod 2=0。故答案填写:0。【分析】本题考查的是求余运算符mod和整除运算符\的功能及优先级。mod为求余运算结果为两数相除的余数,\为整除运算,结果为两数相除的整数商。整除运算符的优先级高于求余运算,在两者都出现且没有括号时先计算整除运算后计算求余运算。12.【答案】12【知识点】常见数据类型、数组【解析】【解答】由图可知d[1]=2,故 d[d[1]]+d[4] =d[2]+d[4]=4+8=12,故答案填写:12。【分析】本题考查的是使用元素的值作为下标。数组的下标可以由常数、变量、表达式来表示,其中变量也包括了数组元素,在使用变量和表达式表示下标时要计算出变量和表达式的值,最终仍是使用值来表示数组的下标。13.【答案】8【知识点】算法的常用表示方法;常见数据类型、数组【解析】【解答】由流程图知,根据a(3)和a(4)的值求a(5)到a(8)的值,从a(5)到a(8)其值为前面两个元素值之和,故a(5)=a(3)+a(4)=2+3=5,a(6)=a(4)+a(5)=3+5=8,a(7)=a(5)+a(6)=5+8=13,a(8)=a(6)+a(7)=8+13=21,循环结束时a=8,故输出a(m-2)即输出a(6)的值。故答案填写:8。【分析】本题考查的是给数组进行赋值的方法。数组中元素较多时一个一个赋值使得赋值语句过多程序太复杂,如果数组元素的值是有规律的如本题从a(5)开始每个元素的值为前两个元素值之和同可以使用循环语句加上算术表达式来赋值。在本题的循环使用的是直到型循环,直到型循环比当型循环多循环一次这是需要注意的。14.【答案】15【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图可知s的数学算式为:s=1+(1+1)+(1+1+1)+(1+1+1+1)+(1+1+1+1+1)=1+2+3+4+5=15。故答案填写:15。【分析】本题考查的是使用流程图来表示算法。在本题中先给s赋值为0,m赋值为1,在m小于等于5时进行循环,在循环体中,先将n值赋为1,然后判断n值是否小于m值,如果小于等于m值则将s值增1,将n值增1,如果n值大于m值时退出内层循环将m值增1再去判断m值是否超过5,如果没有超过5则继续执行循环,超过时输出s值。15.【答案】17【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图可知,先输入x值,然后判断x除以2的余数是否等于x除以2的整数商,如果相等则将x值增1否则将x值减少1 。x值为18,x mod 2=0,int(x/2)=9,两者是不相等故交将x减少1。故答案填写:17。【分析】本题考查的是双分支选择结束,在双分支选择结构中会有两个分支,两个分支只能执行一个分支上的语句另一个分支上的语句跳过执行,至于执行哪条分支上的语句由条件来决定,条件语句的值为真执行一条分支,为假执行另一条分支。16.【答案】False【知识点】算法的常用表示方法;算法的控制结构【解析】【解答】由流程图可知先将t1的值赋为30,将t2的值赋为50,将t1和t2的大小比较结果赋给变量t,最后输出t值,由于t1等于30小于t2的值50的,故t1>t2的值为假。故答案填写:false。【分析】本题考查的是顺序结构以及对流程图的识读。顺序结构就是按语句的顺序一条一条执行即不跳过也不重复的结构。关系表达式是用关系运算符将两个表达式连接起来的式式。关系运算符有“=”、“>"、"<"、"<>"、">="、"<="六个运算符。17.【答案】(1)A(2)D(3)x=1000 to n;x mod 9= 0;(x mod 100) \10=2或者写x\10 mod 10= 2;prints【知识点】算法的常用表示方法;常量、变量及变量的赋值;枚举算法及程序实现【解析】【解答】(1)由流程图可知循环变量为1000到输入的四位数,在这些循环变量的值中如果符合条件就将循环变量的值进行累加,不符合条件就判断下一个,本算法是在所有可能符合条件的数中时行一一检测,该算法为枚举算法。故答案选A。(2)从x除以9的余数为0来判断是否x能整除9是正确的而从商上为0判断是错误的故可以排除选项B、C。而取x的十位上的数先将x除以10要其余数则只保留了x个位上的数,再除以10其商一定为0,故可以排除选项A,而选项Dx除以100后取其余数则为十位上的数和个位上的数,再除以10要其商结果为x十位上的数。故答案选D。(3)本题程序分析如下:Dim n as Integer, x as Integer, s as long ‘定义整型变量n、x和长整型变量ss=0 ‘初始化变量s的值为0n=InputBox(“输入四位数上限值”) ‘使用输入对话框输入一个四位数并赋给变量nFor ① ‘ 使用x来控制循环,x的初值为最小的四位数1000,终值为输入的四位数,步长为1,故本处答案应填写: x=1000 to nIf ② and ③ Then ‘如果x能被9整除且其十位上的数为2时进行如下处理,故(2)处应填写x mod 9=0或x/9=int(x/9),(3)处应填写: (x mod 100) \10=2或者写x\10 mod 10= 2S=s+x ‘如果符合条件则将x累加到变量s中End If ‘结束条件判断Next ‘结束循环④ ‘最后输出s的值,故本处答案应填写:print s由以上程序分析知,(1)处为使用x来控制循环,x的初值为最小的四位数1000,终值为输入的四位数,步长为1,故本处答案应填写: x=1000 to n。(2)(3)处为:如果x能被9整除且其十位上的数为2时进行如下处理,故(2)处应填写x mod 9=0或x/9=int(x/9),(3)处应填写: (x mod 100) \10=2或者写x\10 mod 10= 2。(4)处为:最后输出s的值,故本处答案应填写:print s。【分析】本题考查的是使用穷举法计算符合条件的四位数之和。穷举法又称为枚举法。枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:(1)可预先确定候选答案的数量;(2)候选答案的范围在求解之前必须有一个确定的集合。18.【答案】s=0‘累加器初值k=1 ‘循环结构do while k<= 20x=1/(2*k-1) ‘项值推导s=s+x ‘累加k=k+1loops=int(100*s+0.5) / 100 ‘四舍五入prints ‘输出结果【知识点】解析算法及程序实现【解析】【解答】由数学公式 知其分母为1、3、5、7是个等差数列,故可以使用循环变量来表示项数,使用一个变量来计算每项的值,使用累加器来计算整个表达式的值。故答案程序如下:s=0 ‘给累加器s赋初值k=1 ‘给循环变量赋初值do while k<= 20 ‘在循环变量的值不超过20时进行循环x=1/(2*k-1) ‘计算每个项的值,分母为等差数列其与项数k的关系为2*K-1,根据分数计算项数值s=s+x ‘将项数的值累加到累加器s中k=k+1 ‘循环变量的值增1loop ‘结束循环s=int(100*s+0.5) / 100 ‘将s值进行四舍五入prints ‘输出结果【分析】本题考查的是程序设计。在进行程序设计时要遵循程序设计的步骤,利用计算机程序解决问题的基本过程一般可以分为五步,分别是分析问题、设计算法、编写程序、调试运行、检测结果。设计算法时一般使用流程图来画出解题步骤,再根据流程图来编写语句。1 / 1 展开更多...... 收起↑ 资源列表 上海市金山中学2019-2020学年高一下学期信息技术期中考试试卷 算法与程序设计部分(学生版).docx 上海市金山中学2019-2020学年高一下学期信息技术期中考试试卷 算法与程序设计部分(教师版).docx