资源简介 4.1解析法训练1学校:___________姓名:___________班级:___________考号:___________一、选择题1.某VB程序段如下:Text1.Text = ""For i=1 To 10b(a(i) Mod 10) = b(a(i) Mod 10)+1Next iFor i=0 To 9If b(i) Mod 2 = 1 ThenText1.Text = Text1.Text + Str(i) + Str(b(i))End IfNext i数组b各元素初值为0,数组元素a(1)到a(10)的值依次为57,23,43,20,18,30,47,70,77,36,执行该程序段后,文本框Text1中显示的内容为( )A.3 3 7 7 7 B.0 3 6 1 3 2 7 3C.0 3 6 1 7 3 8 1 D.0 3 6 1 7 7 7 82.为了保护学生视力,教室里安装了不少日光灯管。假设每个教室有40W灯管18个,每个整流器5W,每度电0.55元,每天用电12小时,每个教室每天的电费要多少?编程解决此问题最合适的算法是( )。A.顺序查找算法 B.解析法 C.递归算法 D.穷举法3.执行如下VB程序段,则s的值是( )s=56s1=s\10 s2=s Mod 10 s=s1+s2*10 Print"s=";sA.5.6 B.6.5 C.56 D.654.下列问题适合用解析算法求解的是( )A.寻找一堆彩球中所有的红球 B.计算一个球从100米高的楼顶掉下来的落地速度C.将全班同学按身高从低到高排队 D.从电子词库中找到Infomation这个单词5.运行下列VB程序,在文本框Text1中输入十进制数22,单击按钮后,在标签Label1输出转换后的五进制数。Private sub Command1_Click()Dim y As IntegerDim s As String,Dim r As Integery= Val(Text1. Text)s=" "Do While y < > 0LoopLabell. Caption =sEnd sub方框中的代码由以下三部分组成:①s=Str(r)+s ②r=y Mod 5 ③y=y\5代码顺序正确的选项是( )。A.①②③ B.③②① C.②①③ D.③①②6.以下VB程序段的功能是:单击一次按钮 Command1,在列表List1中随机输出一行10个大小写字母。已知字母“A”和“a”的ASCII码值分别为65和97。Private Sub Command1_Click()Dim s As String,c As String,i As String,a As String,t As IntegerRandomizes=" "For i= 1 To 10①If a <=26 Thent=a+64Else②End Ifc= Chr(t)s=s+cNext iList1. AddItem sEnd sub以上横线处的正确语句是( )。A.①a=Int(Rnd*52+1) ②t=a+70B.①a=Int(Rnd*52) ②t=a+71C.①a=Int(Rnd*52+1) ②t=a+72D.①a=Int(Rnd*52) ②t=a+737.下列VB程序段实现求双重数列0,2,1,4,1,6,2,8,3,10,5,12,8,……前n项中的奇数项和。Dim a(1 To 100)As Integern= Val(Text1. Text)a(1)=0:a(3)=1s=1Next iText2. Text= Str(s)方框中的代码由以下三部分组成:①a(i)=a(i-2)+a(i-4) ②s=s+a(i) ③For i=5 To n Step2代码顺序正确的选项是( )。A.①②③ B.③②① C.②①③ D.③①②8.对用户输入的字符串进行解密的VB程序段如下:s= Text. TextFor i =1 To Len(s)ch= Mid(s,i,1)nk=Asc(ch)-iIf nk <0 Then nk nk+127Text2. Text= Text2 Text Chr(nk)Next i已知大写字母A的ASCII码值为65,小写字母a的ASCII码值为97,在文本框Text1中输入内容“yhT5”,执行程序段后,文本框Text2显示的内容为( )。A.YHt5 B.xgS4 C.zjw9 D.xfQ19.某排序算法,VB代码如下:i=1Do While i<=5 If i = 0 or a(i – 1)<= a(i) Then i=i+1 Else t=a(i):a(i)=a(i-1):a(i-1)=t i=i-1 End IfLoop数组元素a(0)到a(5)依次为:“0,41,22,53,99,36”,经过该程序段处理后,数组元素a(3)的值为( )A.36 B.53 C.41 D.2210.某对分查找算法的VB程序段如下:i=1:j=6:n=0:f=Falsekey=Val(Text1.Text)Do While i<=j and Not f n=n+1 m=Fix((i+j)/2) If key=a(m)then f=True If keyLoop数组元素a(1)到a(6)的值依次为“12,19,27,31,46,55”,文本框Text 1中输入“31”后运行该程序,则以上程序段运行结束后,下列说法不正确的是( )A.变量i的值为4B.变量j的值为4C.变量m的值为4D.变量n的值为311.“不重复数”的特征是任何相邻两个数位上的数字都不相同。如1101是重复数,1201是不重复数。判断某数是不是重复数的VB程序段如下:s = Text1.Text (1) i = 1: flag = TrueDo While i <= n - 1 And flag If (2) Then flag = False i = i + 1LoopIf (3) Then Label1.Caption = "重复数"Else Label1.Caption = "不重复数"End If上述程序中方框处可选语句为:①flag=False②n=Len(s)③Mid(s,i,1)=Mid(s,i+1,1)则(1)、(2)、(3)处语句依次是( )A.② ③ ① B.① ③ ② C.② ① ③ D.③ ② ①12.编写一个二进制列表程序;功能如下;在文本框Textl中输入位数n,单击“显示”按钮Command1,在列表框Listl中顺序显示n位二进制编码。程序界面及代码如下。Private Sub Commandl_ClickDim tmp As StringDim n As Integer, t As IntegerDim i As Integer, j As Integer, k As Integern=Val(Textl. Text)For i=0 To (1) _tmp=""k=i .For j=1 To nt=k Mod 2(2)(3)Next jListl. AddItem tmpNext iEnd Sub可选的代码如下:①2^n―1 ②2^n ③k=k\2 ④t=t\2⑤tmp=Str(t)+tmp ⑥tmp=tmp+Str(t)则程序(1),(2),(3)处的代码依次为( )A.①⑤③ B.②④⑥ C.②⑤④ D.①⑥③13.以下两个VB程序段,其中变量m和n为正整数,下列说法不正确的是( )程序1: If mm n=n-m Loop Loop Textl.Text=Str(n)A.“程序1”和“程序2”中的代码实现相同的功能B.若变量m和n的值为25,35,则“程序1”代码运行后文本框Text1显示“5”C.“程序2”中的输出语句改为Textl.Text=Str(m),会影响文本框Textl显示的内容D.若变量m和n的值为11,7,则“程序2”代码运行后文本框Text1显示“1”14.两个阻值分别为R1、R2的电阻并联后,电路阻值R可由公式1/R=1/R1+1/R2求解,下面能正确求出R的VB表达式是( )A.R1+R2/(R1*R2) B.R1*R2/(R1+R2)C.R1*R2/ R1+R2 D.(R1+R2) /(R1*R2)15.已知海伦公式:s=√p(p-a)(p-b)(p-c),p=(a+b+c)/2,a、b、c分别为三角形的边长,利用海伦公式求三角形面积的算法属于( )A.解析法 B.查找法 C.排序法 D.穷举法16.一元二次方程 ax^2 +bx + c=0 有两个不相等的实数解的条件是( )A.a<>0 And b*b-4*a*c>0 B.b*b-4*a*c>0C.a<>0 D.a<>0 Or b*b-4*a*c>0参考答案:1.C【详解】本题考查的知识点是VB程序的解析算法。本程序实现的统计数组a中每个个位数字的个数,并以(奇数数字个数 被统计的奇数个位数字)的格式排列出来。第一个循环统计数组a中每个个位数字的个数,执行后b(0)=3,b(3)=2,b(6)=1,b(7)=3,b(8)=1;第二个循环首先判断该数组b元素是否奇数,是的话将该数字个数和被统计的个位数字添加到text1.Text中。数组a中个位数是0的数字有3个,个位数是6的数字有1个,个位数7有3个,个位数8有1个,组合起来就是0 3 6 1 7 3 8 1,故选项C正确。2.B【详解】本题考查常用算法。题中的电费能够使用数学的解析表达式来计算,所以编程解决此问题最合适的算法是解析法,选项B正确。3.D【详解】本题考查的知识点是程序分析。s1=5,s2=6,最终s=5+6*10=65。故正确答案为D选项。4.B【详解】本题考查解析算法。解析算法是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解,选项B涉及计算问题,适合用解析算法求解,故答案应选B选项。5.C【详解】本题主要考查VB程序段的阅读。十进制数转换为五进制数采用的是除五倒取余的方法;变量r用于存放余数,变量s用于存放最后的结果;变量y用于存放整数部分,先取余。故选项C正确。6.A【详解】本题考查的知识点是VB函数及函数运算。a表示随机产生字母在字母表中位置,范围在[1,52],a小于等于26为大写字母,对应ASCII码值为a+64,a大于26时为小写字母,对应ASCII码值为a+70。例如当a=27时,对应小写a的内码是97。故选项A正确。7.D【详解】本题考查的知识点是VB函数的解读。前n项中奇数项之和,只要在循环中,把奇数项挑选出来,并相加即可。循环初值为奇数项,步长为2即③For i=5 To n Step2,a(i)的值是它之前两个奇数项之和,即①a(i)=a(i-2)+a(i-4),前i项的奇数项之和s=s+a(i),故选项D正确。8.D【详解】本题考查的知识点是VB函数的解读。语句nk=Asc(ch)-i将字母前移i个位置,y移动1为x,h移动2为f。故选项D正确。9.C【详解】本题考查对Do While循环程序段的分析。当i=1时,循环条件成立,块If条件中a(i-1)<=a(i)成立,变量i变为2;当i=2时,循环条件成立,块If条件中a(i-1)<=a(i)不成立,交换a(i-1)与a(i)的值,a(1)=22,a(2)=41,变量i变为1;当i=1时,循环条件成立,块If条件中a(i-1)<=a(i)成立,变量i变为2;当i=2时,循环条件成立,块If条件中a(i-1)<=a(i)成立,变量i变为3;当i=3时,循环条件成立,块If条件中a(i-1)<=a(i)成立,变量i变为4;当i=4时,循环条件成立,块If条件中a(i-1)<=a(i)成立,变量i变为5;当i=5时,循环条件成立,块If条件中a(i-1)<=a(i)不成立,交换a(i-1)与a(i)的值,a(4)=36,a(5)=99,变量i变为4;当i=4时,循环条件成立,块1f条件中a(i-1)<=a(i)不成立,交换a(i-1)与a(i)的值,a(3)=36,a(4)=53,变量i变为3;当i=3时,循环条件成立,块If条件中a(i-1)<=a(i)不成立,交换a(i-1)与a(i)的值,a(2)=36,a(3)=41,变量i变为2;当i=2时,循环条件成立,块If条件中a(i-1)<=a(i)成立,变量i变为3;当i=3时,循环条件成立,块If条件中a(i-1)<=a(i)成立,变量i变为4;当i=4时,循环条件成立,块If条件中a(i-1)<=a(i)成立,变量i变为5;当i=5时,循环条件成立,块If条件中a(i-1)<= a(i)成立,变量i变为6,循环条件不成立结束循环,故选项C正确。10.A【详解】本题考查对分查找算法,结合下表进行分析:循环次数 i j n f n m 循环条件 i<=j and Not f key与a(m)初值 1 6 0 False 成立第1次 4 1 3 成立 key>a(m)第2次 4 2 5 成立 key第3次 5 True 3 4 不成立 key=a(m)由表分析可知,此时变量i的值为5,选项A符合题意。11.A【详解】本题考查算法及其程序实现。要对每个相邻字符判断是否相同,首先要获取字符串s的长度,故(1)处应为n=len(s);其次进入循环判断相邻两个字符是否相同,即(2)处Mid(s,i,1)=Mid(s,i+1,1)是否成立,成立则Flag为false;第三步输出显示是否重复数,即(3)Flag=false时,显示为重复数,否则是不重复数,故正确顺序是②③①,选项A正确。12.A【详解】本题考查利用VB编程实现二进制列表,将十进制数转化为二进制数。输入变量n,n存放的是二进制数所占的位数,例如n=3时,可产生23种信息编码,本例题中可以有8种编码状态,对应的十进制数为0~7之间的值,其中7为3位二进制数可表示的最大十进制数, 7=23-1 ,故(1)处可填入2^n-1;第二个For循环利用辗转相除法实现将数字i转换为n位二进制数,针对余数应进行逆序连接,故(2)处可填人tmp=Str(t)+tmp;(3)处应重新得到被除数的值,故应填入k=k\2,故选项A符合题意。13.C【详解】本题考查利用迭代算法求最大公约数。“程序1”利用辗转相除法求最大公约数,“程序2”利用辗转相减法求最大公约数,两段代码功能相同,故选项A不符合题意;将m=25,n=35代人“程序1”,If语句实现数据交换,保证m>=n,此时m=3,n=25,执行DoWhile循环,直到m=10,n=5时,m Mod n=10 Mod 5=0,退出DoWhile循环,文本框Text1显示结果为5,故选项B不符合题意;“程序2”执行循环的条件为m<>n,退出循环时m=n,故选项C符合题意;在“程序2”中,一直执行用变量m,n中的较大值减去较小值的操作,直到m=n为止,即11-7=4,7-4=3,4-3=1,3-1=2,2-1=1,此时m=1,n=1,故选项D不符合题意。14.B【详解】本题考查的知识点是VB中运算符及表达式的应用。由1/R=1/R1+1/R2,得R=R1R2/(R1+R2),所以R的VB表达式为:R1*R2/(R1+R2)。故正确答案为B选项。15.A【详解】本题考查的知识点是计算机算法的应用。解析法又称为分析法,它是应用解析式去求解数学模型的方法;查找法是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。排序法是进行数据排序的算法;穷举法将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,合适就保留,不合适就丢弃。海伦公式是数学解析式,利用海伦公式求三角形面积的算法属于解析法。故正确答案为A选项。16.A【详解】本题考查的知识点是算数运算符、逻辑运算符及表达式的应用。一元二次方程 ax^2 +bx + c=0 有两个不相等的实数解的条件是:a不等于0且b^2-4ac>0。用程序语言表示为:a<>0 And b*b-4*a*c>0。故正确答案为A选项。 展开更多...... 收起↑ 资源预览