- 446.50 KB
- 2022-07-28 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
选修1:算法与程序设计第一单元算法一、知识内容(一)使用计算机解决问题的一般过程考试要求:对所列知识要知道其内容及含义,并能用自己的语言或动作进行表达、判断和直接运用。1.一般过程(1)分析问题确定要使用计算机来“做什么”,即确定解题的任务。(2)寻求解决问题的途径和方法。(3)用计算机进行处理。2.确定解决问题的方法及步骤化确定了解决问题的方法后,必须把解决问题的方法步骤化,即用某种方式告诉计算机每个需做什么。计算机开始计算之前,需把解决问题的程序存储在内存中。通常一个程序包括指令和数据两部分。(1)指令部分:指令是对计算机操作类型和操作数地址做出规定的一组符号。(2)数据部分:计算所需的原始数据、计算的中间结果或最终结果。3.设计程序时需要考虑的问题(1)数据的存储:计算所需要的原始数据、计算产生的中间结果需要存储在不同的变量中。(2)计算的过程:把解决问题的方法步骤化,并用计算机能执行的指令来有序地实现对应的步骤。(3)典型的指令类型有输入指令、输出指令、算术运算指令、逻辑运算指令和控制转移指令。(二)算法及算法的表示方法考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。1.算法的特征(1)有穷性。一个算法必须保证它的执行步骤是有限的,即它是能终止的。(2)确定性。算法中的每个步骤必须有确切的含义,不应当有模棱两可的。(3)能行性。算法中的每一个步骤都要足够简单,能实际能作的,而且在能在有限的时间内完成。(4)有0个或多个输入。(5)有一个或多个输出。(三)用自然语言和流程图表示算法考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。1.自然语言就像写文章时所列的提纲一样,可以有序地用简洁的自然语言加数学符号来描述算法。2.流程图用国家颁布的标准(GB1526-89,ISO5807-1985)中规定的图示及方法来画流程图,常用的构件有如图所示。163\n3.伪代码使用某些程序设计语言中控制结构,来描述算法中各步骤地执行次序和模式;使用自然语言、数学符号或其他符号,来表示计算步骤要完成的处理或需要涉及的数据。(四)顺序、选择和循环三种基本模式考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。1.顺序模式就是按指令的先后顺序依次执行2.分支模式就是根据分支条件,判断条件成立情况,选择某一条路径中的指令执行3.循环模式就是首先判断条件是否成立,如果不成立则直接执行循环体外的第一条指令,如果条件成立则执行循环体内的指令,然后再次判断条件是否成立,如果条件成立再次执行循环体内的指令,直至条件不成立跳出循环体为止。三种基本模式流程示意图如下图所示。二、例题分析1.下面关于算法的描述,正确的是(A)一个算法只能有一个输入(B)算法只能用框图来表示(C)一个算法的执行步骤可以是无限的(D)一个完整的算法,不管用什么方法来表示,都至少有一个输出结果参考答案:D所考知识点:算法的特征163\n2.算法描述可以有多种表达方法,下面哪些方法不可以描述“闰年问题”的算法(A)自然语言(B)流程图(C)伪代码(D)机器语言参考答案:D所考知识点:算法的描述3.算法与程序的关系(A)算法是对程序的描述 (B)算法决定程序,是程序设计的核心(C)算法与程序之间无关系 (D)程序决定算法,是算法设计的核心参考答案:B所考知识点:算法的概念4.人们利用计算机解决问题的基本过程一般有如下四个步骤(①~④),请按各步骤的先后顺序在下列选项中选择正确的答案①调试程序②分析问题③设计算法④编写程序(A)①②③④(B)②③④①(C)③②④① (D)②③①④参考答案:B所考知识点:用计算机解决问题的过程5.在一次电视选秀活动中,有三个评位为每位选手打分。如果三个评委都亮绿灯,则进入下一轮;如果两个评委亮绿灯,则进入待定席;如果红灯数超过二盏则淘汰。最适合用到的程序结构是(A)循环(B)赋值(C)分支(D)顺序参考答案:C所考知识点:算法的基本模式6.下列流程图符号属于判断框的是(A)(B)(C)(D)参考答案:D所考知识点:算法的表示、流程图163\n第二单元VB程序设计一、知识内容(一)面向对象程序设计的基本思想与方法考试要求:对所列知识要知道其内容及含义,并能用自己的语言或动作进行表达、判断和直接运用。1.面向对象程序设计(objectorientedprogramming,缩写OOP)方法:在进行程序设计是从分析问题领域中各种客观事物本体的属性和行为,以及它们之间的相互关系着手,在计算机中建立起这些客体的映象——对象,用对象对应于问题领域中的客体,用对象间的消息传递来表示客体的相互作用、相互关系。(二)属性、类、事件和事件处理的概念考试要求:对所列知识要知道其内容及含义,并能用自己的语言或动作进行表达、判断和直接运用。1.对象是客观存在的事物或概念。它有两个特点:状态和行为。2.一个对象的状态是通过若干个属性(property)来描述的;行为是指对属性进行操作和处理的方法(method)。在面向对象的程序设计中,一个对象是由一组对象状态的数据和一组描述处理对象属性的方法的代码构成的。对象的属性定义其外观,方法定义其行为,事件定义其与用户的交互。3.类(class)是对相同性质的对象的一种抽象,而一个对象则是类的一个“实例”。4.事件(event)就是发生在对象上的事情,通常是由用户在对象上激发的一种动作。一个事件的发生,可以引起某个对象上某个方法(事件处理过程)的执行,即由某个事件驱动了相应的事件处理过程的执行。这就是面向对象程序设计中的事件驱动概念。(二)VB应用程序的界面设计与调式考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。1.VB应用程序的界面设计(1)VB程序设计语言:基于Basic语言的可视化程序设计环境,采用面向对象的程序设计方法(OOP)。(2)VB应用程序设计环境的的窗口主要由对象窗口、控件工具箱、属性窗口、工程窗口组成。(3)控件工具箱集中了常用的基本控件:标签label、文本框TextBox、命令按钮CommandButton、列表框ListBox等。(4)窗体(Form)是VB应用程序的基本结构。窗体可以看作是一个“容器”,其中放置着各种各样在应用程序中必须用到的对象。2.VB应用程序的运行和保存运行:单击工具栏中“运行”选项中的启动按钮,运行应用程序。保存:在“文件”菜单中选“工程另存为”,该应用程序的窗体和工程分别存储到文件中,其相应的文件扩展名分别是“ .frm”和“ .vbp”。也可以选“文件”菜单中的“生成工程xxx.exe”,这样,就可在Windows环境中直接运行这个应用程序了。(四)事件处理代码的编制方法考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。对于对象而言,事件就是发生在该对象上的事情,通常是由用户在对象上激发的一种动作。一个事件的发生,可以引起某个对象上某个方法的执行,即由某个事件驱动了相应的事件处理过程的行为。在事件处理过程中,可以按预定设计好的方式,改变某个对象的相关属性值,因此是这个对象的状态得到相应的改变。163\n(五)VB基本数据类型、常量、变量和数组考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。1.数据:数据是信息的一种记录形式。在VB中,常用的基本数据类型有以下几种:Integer(整数型)、Long(长整数型)、Single(单精度实数型)、Double(双精度实数型)、String(字符串型)、Boolean(逻辑型)、Date(日期型)。*逻辑(Boolean)数据类型只有两个值True,或False。将逻辑数据转换成整型时:True为-1,False为0;其它数据转换成逻辑数据时:非0为True,0为False。2.常量:常量是在程序执行过程中其值不变的存储单元或数据。在VB中,常量有整数常量、实数常量、字符串常量和逻辑常量这几种类型。3.变量:变量的命名规则1.以字母或汉字开头,后可跟字母、数字或下划线组成.2.变量名最长为255个字符;3.VB中不区分变量名的大小写,不能使用VB中的关键字;4.字符之间必须并排书写,不能出现上下标变量说明语句的常用形式为:Dim 变量名 As 变量的类型。4.数组:数组是由一批同类型的变量构成的一个序列,组成数组的每一个变量被称为数组的元素,也称为下标变量,下标是一个整数,用来指出某个元素在数组中的位置。一维:Dim数组名([<下界>to]<上界>)[As<数据类型>]二维:Dim数组名([<下界>]to<上界>,[<下界>to]<上界>)[As<数据类型>]一维数组的常用形式为:Dim数组变量名(A1ToA2)As元素的类型。二维数组的常用形式为:Dim数组变量名(A1ToA2,B1ToB2)As元素的类型。(六)VB各类表达式与标准函数考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。1.VB中的常用标准函数(1)常用数学函数:Abs(X)、Int(X)、Sqr(X)、Rnd()、Exp(X)、Log(X)、Sin(X)、Cos(X)、163\nTan(X)。(2)常用类型转换函数和字符串函数:Asc(X)、Chr(X)、Val(X)、Str(X)、Len(X)、Mid(X,n,k)、Fix(X)。Int(9.59)=9Int(9.28)=9Int(-9.59)=-10Int(-9.21)=-10Asc("Abcd")值为:65(只取首字母的Ascii值)Val("abc123")值为:0,Val("1.2sa10")值为1.2chr(x),将Ascii转化为字符str(x)将数值转化字符fix(x)截掉小数部分fix(9.59)=9fix(9.28)=9fix(-9.59)=-9fix(-9.21)=-9Mid(x,m,n):返回字符串x从第m个字符起的n个字符所组成的字符串。Mid("ABCDEFG",2,3)"BCD“Len(x):返回字符串x的长度,如果x不是字符串,则返回x所占存储空间的字节数。len("Thisisabook!")15随机函数RndRnd函数可以不要参数,其括号也省略。返回[0~1)(即包括0,但不包括1)之间的双精度随机数。若要产生1~100的随机整数,则可通过下面的表达式来实现:Int(Rnd*100)+1'包括1和100Int(Rnd*99)+1'包括1,但不包括100产生[N,M]区间的随机数的VisualBasic表达式:Int(Rnd*(M-N+1))+N2.基本运算与表达式(1)VB的基本运算:VB的基本运算包括算术运算、关系运算和逻辑运算三大类。算术类基本运算有:^、-、*、/、\、Mod、+、-关系类基本运算有:=、<>、<、>、<=、>=逻辑类基本运算有:Not、And、Or(2)表达式:表达式主要用来规定值的计算过程,以及对于某些情况或条件的判断。一个表达式中可能包括算术运算、关系运算和逻辑运算等多种基本运算,以及这些基本运算所涉及的数据(变量和常量)。(3)基本运算的优先级从高到低为:^(1级),-(指负号,2级),﹡、/(3级),\(4级),Mod(5级),+、-(6级),=、<>、<、>、<=、>=(7级),Not(8级),And(9级),Or(10级)。1、整数除法25.3\6.3=25\6=425.6\6.6=26\7=32、取余25.3mod6.3=25mod6=125.6mod6.6=26mod7=5(七)常用的VB语句考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。(八)使用VB实现顺序、选择、循环三种控制结构163\n考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。1.赋值语句:变量名=表达式 或 对象名.属性名=表达式2.选择语句: 判断语句形式:(1)If<表达式>Then语句块EndIf或If<表达式>Then<语句>(2)If<表达式>Then<语句块1>Else<语句块2>EndIf或If<表达式>Then<语句1>Else<语句2>(3)If<表达式1>Then<语句块1>ElseIf<表达式2>Then<语句块2>…[Else语句块n+1]EndIf循环:(1)、For初值to终值[Step步长]语句块Next循环变量(2)、DoWhile<条件>语句块Loop4.注释:注释是以单引号(')开头的一串文字,可以出现在程序中需要说明的位置上,通过这一串文字,对附近的程序段进行简要的说明,增加程序的可读性。注释对程序的执行效果没有任何影响,程序运行时自动跳过注释。(九)过程、事件处理过程、自定义函数考试要求:对所列知识要理解其确切含义及与其它知识的联系,能够用所学的信息技术知识和操作方法解决实际问题,熟练应用信息技术进行信息的处理。命令按钮:COMMANDBUTTON属性:name,Caption,Top,Left,Height,Width,Font,Enabled,backcolor事件:click,load,dblclick,keypress标签LABEL属性:name,Caption,Top,Left,Height,Width,Font,Enabled,backcolor事件:click,load,dblclick,keypress文本框TEXTBOX属性:name,text,Top,Left,Height,Width,Font,Enabled,backcolor事件:click,load,dblclick,keypress,Change列表框控件ListBox163\n属性:List、ListCount和ListIndex,MultiSelect,Selected,Sorted事件:click,load,dblclick,Change方法:AddItem(),RemoveItem(),Clear()4.函数:函数是类似于过程的另一个程序模块,不同之处是函数执行完成后,函数的计算结果被送到函数的调用点上,供程序的后继部分继续进行处理。自定义函数:Function函数名(参数表)As类型名 语句块 EndFunction了解自定义函数,读懂程序。递归:自己调用自己二、例题分析1.对于对象及其特征的错误理解是()。(A)对象都具有一个标识自己以区别其他对象的名字。(B)对象都具有自身的属性及其属性值。(C)对象一般只用数据表示属性,但不用代码表示行为。(D)对象都具有自身的行为(操作)。参考答案:C所考知识点:对象的概念。2.下列控件中可用于接受用户输入文本,又可用于显示文本的是(A)Label控件 (B)TextBox控件(C)Timer控件 (D)CommandButton控件参考答案:B所考知识点:VB的界面设计。3.VB中保存工程文件的文件扩展名为(A)vbp (B)frm (C)doc (D)pas参考答案:A所考知识点:VB应用程序的运行和保存4.VB语言中,下列各种基本数据类型说明符中表示单精度实型数的是(A)Integer (B)Boolean (C)Single (D)String参考答案:C所考知识点:基本数据类型5.在VisualBasic中,下列属于字符串常量的是(A)Abs(100)(B)"100"(C)Val("100")(D)1/2参考答案:B所考知识点:数据、标准函数的应用。解此题需要了解各函数返回值的数据类型,以及数值和字符串的表示方法。题中Abs()函数求的是数值的绝对值,返回的是数值;Val()函数是将数字字符串转换为数值;返回值是数值,1/2本身就是数值;而数字字符串的表示需要加引号。6.下列可以作为VisualBasic的变量名的是(A)sqr(B)2pai(C)cj1(D)a+b参考答案:C所考知识点:变量的命名。解此题需要了解变量的命名规则。变量名是由字母、数字和下划线等字符的任意字符组成,但必须以字母开头,另外值得一提的是变量名不能使用VB中的保留字。题中sqr属于VB的保留字;5pai不是字母开头;a+b中“+”号是非法字符。7.函数Sqr(X)功能是(A)求X的算术平方根(B)求X的绝对值(C)求不大于X的最大整数(D)数值X转换成字串X参考答案:A所考知识点:标准函数。8.下列运算结果中,值最大的是163\n(A)3\4(B)3/4(C)4mod3(D)3mod4参考答案:D所考知识点:算术类基本运算符此题考生需注意“/”、“\”、“mod”三个有关除的运算符的区别9.3mod2+3\2的执行结果为(A)-1(B)3(C)2(D)0参考答案:C所考知识点:算术类基本运算10.a=5,b=7,c=-2,d=1时,下列结果为False的是(A)a+b>c+dAnda>=5OrNotc>0Ord<0(B)c+d>a+bAnda>=5OrNotc>0Ord>0(C)a+b>c+dAnda<5OrNotc>0Ord<0(D)a+d=5OrNotc<0Ord<0参考答案:D所考知识点:逻辑类基本运算11.下列属于正确的VisualBasic表达式是(A)a+|b|(B)3b-2a(C)2?b(D)b+5参考答案:D所考知识点:算术表达式题中a+|b|和3b-2a均属数学表达式,在VB中表达为a+abs(b)和3*b-2*a,而2?b中“?”不属于基本运算符12.在VisualBasic中,"20"+"08"的运算结果是(A)"28"(B)False(C)"20+08"(D)"2008"参考答案:D所考知识点:字符串表达式“+”运算符两边的操作数如果均为数值型,则进行算术运算;如果均为字符串,则它的作用是将两个字符串连接起来。题中两边均为字符串,帮结果为D。值得一提的是,“+”两头的操作数的数据类型必须是同一类型的,否则会提示错误13.以下哪项是VisualBasic合法数组元素的表示法(A)X9(B)X[9](C)X(I+9)(D)X{9}参考答案:D所考知识点:数组延伸:在VB的表达式中,一般只出现小括号,其它括号只能出现在字符串当中。14.下列属于正确的赋值语句是(A)a+b=5(B)a=2+3(C)2+3=a(D)a+b=2+3参考答案:B所考知识点:赋值语句赋值语句首先要计算赋值号右边的表达式的值,然后将此值赋给赋值号左边的变量或对象属性。题中A、C、D的左边均不是变量也不是对象属性,只有B符合赋值语句的要求15.下列语句中正确是(A)txt3.text=txt1.text+txt2.text(B)Command1.name=cmdOK(C)12label.Caption=1234(D)A=InputBox(Hello)参考答案:A所考知识点:赋值语句、对象属性在对象属性的赋值语句当中,一切要注意赋值号两边的数据类型是否一致,且书写语句是否规范。题中B、C选项Command1.name与12label.Caption均是字符串类型,故“=”均需加引号;而D项中InputBox的输入值需是字符串,所以Hello需加引号;A选项要理解两点:一是txt1、txt2、txt3均表示文本框的名称,二是“+”代表的是连接符的功能,题中只是将txt1和txt2中的字符串连接后赋给txt3。16.下列程序段中,可以实现变量X、Y的值交换的是(A)y=x:x=y(B)z=x:y=z:x=y(C)z=x:x=y:y=z(D)z=x:w=y:y=z:x=y参考答案:C所考知识点:赋值语句的运用163\nX,Y的值的交换需要一个中间值Z,先将X保存在Z中,如此X的值就可以保存Y的值,再将Z中的值赋值给Y,这时候实现了X与Y的值的交换。17.有如下程序段:x=5:y=-20ifNotx>0thenx=y-3Elsey=x+3y的值是__________(A)2(B)-23(C)8(D)-17参考答案:C所考知识点:选择语句18.循环语句Fori=1To10step2的循环次数是(A)5(B)9(C)8(D)10参考答案:A所考知识点:循环语句的运用19.有如下程序段:x=2ForI=1To3Ifx=0 (1) Then Ifx>=7Theny=Sqr(x)Elsey=x^2Else Ifx<-10Theny=Abs(x)Elsey=3x+2(2)EndIfText2.Text=Str(y)EndSub参考答案:(1)x>0(2)y=3*x+2本题是改错题,属于基础题,主要考核算术表达式以及分支结构的条件语句6.下面程序的功能是:计算表达式2+4+6+…+2n的值,在文本框Text1中输入n的值,结果在文本框Text2中输出。则程序中划线处的语句应更正为 (1) (2)PrivateSubCommand1_Click()DimsumAsLong,,iAsInteger,nAsIntegersum=0n=Val(Text1.Text)ForI=2To2*nStep2 sum=sum+2*i(1)NextIText2.Text=Val(sum)(2)EndSub参考答案:(1)sum=sun+i(2)Text2.Text=Str(sum)本题是改错题,属于基础题,只要是考核FOR语句的步长step的作用,以及Val函数和Str函数作用的区别7.下面程序的功能是:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一(鸡雏三三买之)。百钱买百鸡,问鸡翁、母、雏各几何?则程序中划线处的语句应更正为 (1)(2) PrivateSubForm_Click()Dimx,y,zAsIntegerForx=0To20 Fory=0To33 z=100-x-y If5*x+3*y+z\3=100orzMod3=0(1) Then Printx;y;z EndIf NextZNext163\nxEndSub参考答案:(1)NextY(2)5*x+3*y+z\3=100orzMod3=0本题是改错题,属于基础题,只要是考核FOR语句的结构,以及逻辑类运算符“or”和“and”的不同含义8.下面程序的功能是:求的值,直至最后一项的值≤0.0001。则程序中划线处的语句应更正为 (1) (2) PrivateSubForm_Click()N=1:Sum=0(1)Do N=N+2Term=1/(N^2) Sum=Sum+Term LoopUntil term>=0.0001 (2)Print"运算结果为:";SumPrint"最后一项的值为:";TermEndSub参考答案:(1)sum=1(2)term<=0.0001本题是改错题,属于稍难题,只要是考核DoUntil语句的理解,尤其注意在循环中累加器的初值设置以及循环终止条件,不要产生死循环。9.完成程序中的空格,打印显示如图片所示的九九乘法表:解决上述问题的VisualBasic程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)PrivateSubForm_Load()Form1.ShowFora=1To9 For=1To (1) Printa;"×";b;"="; (2) Nextb PrintNextaEndSub参考答案:(1)30-man-woman(2)s=500或者500=s本题是程序填空题,属于容易题,主要考核解析算法的程序实现。10.下面是一个元旦文艺会演评分程序。10位评委,除去一个最高分和一个最低分,计算平均分(评满分为10分)。163\n解决上述问题的VisualBasic程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)Max=0:Min=10ForI=1to10N=Val(InputBox("请输入分数"))If (1) ThenMax=NIfNMax (2)S=S-Max-Min本题是程序填空题,属于容易题,主要考核解析算法的程序实现。11.有30个人,其中有男人、女人和小孩。他们在一家饭馆里花去500元。已知,每个男人花30元,每个女人花20元,每个小孩花10元。问男人、女人、小孩各为多少人?解决上述问题的VisualBasic程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)Subcommand1_click()Dimman,woman,child,sAsIntegerForman=1To15 Forwoman=1To23 child= (1) s=30*man+20*woman+10*child If(2)Then list1.AddItemStr(man)+Str(woman)+Str(child) EndIf NextwomanNextmanEndSub参考答案:(1)30-man-woman(2)s=500或者500=s本题是程序填空题,属于稍难题,主要考核枚举算法的程序实现。12.如果一个三位数等于它的每个数字的立方和,则此数称为“水仙花”数。如:153=13+53+33故153是水仙花数。下面程序用于求出100~999之间的全部水仙花数解决上述问题的VisualBasic程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)subcommand1_click()form=100to999a=int(m/100)b=int((m-100*a)/10)c=m-100*a-10*bn=ifthenlist1.additemstr(m)nextm163\nendsub参考答案:(1)a*a*a+b*b*b+c*c*c(2)m=n本题是程序填空题,属于稍难题,主要考核枚举算法的程序实现。13.如下程序段的功能是:随机产生8个1-100之间的正整数,按升序将10个数据排序输出。为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)(3)Constn=8Dima(1ton)AsIntegerDimI,j,t,kasintegerFori=1Ton(1)NextiFori=1Ton-1 Forj=(2)Ton If(3)Then t=d(i):d(i)=d(k):d(k)=t EndIfNextjNextI参考答案:(1)a(i)=Int(100*Rnd+1)或a(I)=Int(100*Rnd()+1)(2)I+1(3)a(i)>a(j)或a(i)>=a(j)本题是程序填空题,属于稍难题,主要考核冒泡排序的程序实现,同时也考核函数Rnd和Int的正确使用。14.下列程序的功能是:在一个有序的序列中查找数值50,同时统计查找的次数并显示查找次数。为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)(3) Dima(1to8)AsInteger(定义在通用里,数组元素通过另一事件产生) PrivateSubCommand1_Click() DimmAsInteger,IAsInteger,jAsInteger,xAsInteger,totalAsInteger DimfAsBoolean f=False:x=30:i=1:j=8:total=0 DoWhile(1)And(f=False) total=total+1 m=(2)) Ifa(m)=xhen f=True Else Ifxa(j)或a(i)>=a(j)本题是程序填空题,属于稍难题,主要考核对分查找的程序实现。15.下列程序的功能是:某班级45名学生,每位学生中文姓名均不相同,并且都有一个英文名。下面程序的功能是根据学生的中文姓名查找相应的英文名,其中学号存储在数组sno中,英文名存储在数组sname中,中文姓名存储在数组ch中。在文本框text1中输入要查找的中文姓名,单击"开始查找"按钮,如果查找成功,则在文本框Text2中输出该学生的学号、中文姓名和英文名,否则在文本框Text2中输出"查无此人!"。为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)(3)PrivateSubCommand1_Click()DimkeyAsString,iAsIntegerDimnAsInteger,foundAsBooleanfound=Falsen=0:i=1(1)DoWhilei<=45AndNotfoundIfch(i)=keyThenn=i:(2)i=i+1LoopIf(3)ThenText2.Text="查无此人!"ElseText2.Text=Str(sno(n))+"号:"+ch(n)+"的英文名是"+sname(n)EndIfEndSub参考答案:(1)key=text1.text(2)found=true(3)notfound本题是程序填空题,属于稍难题,主要考核顺序查找的程序实现。16.下列程序的功能是:求两个正整数的最大公约数。求两个正整数的最大公约数可以采用辗转相除法求解。在文本框text1、text2中获取两个数据m、n,将结果显示在文本框text3上。以下是辗转相除法的算法:分别用m,n,r表示被除数、除数、余数163\n①求m/n的余数②若r=0。则n为最大公约数。若r<>0,执行第3步③将n的值放在m中,将r的值放在n中。④返回重新执行第①步为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)(3)PrivateSubCommand1_Click()Dimm,n,iAsIntegerm=Val(text1.text)n=Val(text2.text)(1)DoWhiler<>0m=n(2)r=mmodnLoopText3.text=(3)EndSub参考答案:(1)r=mmodn(2)n=r(3)str(r)本题是程序填空题,属于稍难题,主要考核实现给出算法的相关程序的能力。17.已知四位数3025有一个特殊的性质:她的前两位数字30和后两位数字25的和是55,而55的平方和刚好等于该数(552=3025)。下面程序求具有这种性质的所有四位数。其中,上述界面中“开始处理”按钮的名称是“Command1”,布尔型函数special(x)作用判断x是否具有这种性质的四位数,若x是具有这种性质的四位数,其值为True,否则为False。请在下列程序代码的基础上按照要求设计该程序。DimnAsInteger,aAsIntegerFunctionspecial(xasinteger)AsBooleanEndFunctionPrivateSubCommand1_Click()Fora=1000To9999Ifspecial(a)ThenList1.AddItem(Str(a))NextaEndSub操作要求:(1)完善程序中的Functionspecial(x)部分(2)在子程序PrivateSubCommand1_Click()中,主要采用的算法是:__________。参考答案:(1)Dima,bAsIntegera=xMod100b=x\100163\na=a+bIfa^2=xThenspecial=TrueElsespecail=flase(2)枚举本题是补充一段程序,属于难题,主要考核自定义函数的能力。18.下面程序求2到1000之间的平方数对,在文本框text1中输入的自然数N,找出所有小于N且满足下述条件的数对(X,Y):X+Y和X-Y都是完全平方数。例如:当X=10,Y=6时,有10+6=16=4210-6=4=22其中,上述界面中“开始处理”按钮的名称是“Command1”,布尔型函数numbert(x,y)作用判断x,y是否为平方数对,若x,y是平方数对,其值为True,否则为False。请在下列程序代码的基础上按照要求设计该程序。DimnAsInteger,x,yAsIntegerFunctionnumber(x,yAsInteger)AsBooleanEndFunctionPrivateSubCommand1_Click()Forx=2To1000Fory=x+1To1000Ifnumber(x,y)ThenList1.AddItem(Str(x)+"与"+Str(y))NextyNextxEndSub操作要求:(1)完善程序中的Functionnumber(x,y)部分(2)在子程序PrivateSubCommand1_Click()中,主要采用的算法是:__________。参考答案:(1)Dima,bAsIntegera=x+yb=y-xIfSqr(a)=Int(Sqr(a))AndSqr(b)=Int(Sqr(b))Thennumber=TrueElsenumber=False(2)枚举本题是补充一段程序,属于难题,主要考核自定义函数的能力。19.下面程序求2到1000之间的亲密数对,找出所有小于1000且满足下述条件的数对(A,B):如果A的约数之和等于B,B的约数之和等于A,A和B称为亲密数对。如220的所有约数(即能被它整除)为:1、2、4、5、10、11、20、22、44、55、110,而1+2+4+5+10+11+20+22+44+55+110=284; 284的所有约数为:1、2、4、71、142,而1+2+4+71+142=220。所以220和284就是亲密数对其中,上述界面中“开始处理”按钮的名称是“Command1”,布尔型函数numbert(x,y)163\n作用判断x,y是否为亲密数对,若x,y是亲密数对,其值为True,否则为False。请在下列程序代码的基础上按照要求设计该程序。DimnAsInteger,x,yAsIntegerFunctionnumber(x,yAsInteger)AsBooleanEndFunctionPrivateSubCommand1_Click()Forx=2To1000Fory=x+1To1000Ifnumber(x,y)ThenList1.AddItem(Str(x)+""+Str(y))NextyNextxEndSub操作要求:(1)完善程序中的Functionnumbertwo(x,y)部分(2)在子程序PrivateSubCommand1_Click()中,主要采用的算法是:__________。参考答案:(1)Dima,b,iAsIntegera=1:b=1Fori=2Tox\2IfxModi=0Thena=a+iNextiFori=2Toy\2IfyModi=0Thenb=b+iNextiIfa=yAndb=xThennumber=TrueElsenumber=False(2)枚举本题是补充一段程序,属于难题,主要考核自定义函数的能力。20.数学黑洞数6174。已知:一个任意的四位正整数(四位数字完全相同的除外)。将数字重新组合成一个最大的数和最小的数相减,重复这个过程,最多七步,必得6174。即7614-1467=6174。从文本框text1中输入一个任意的数字不完全相同的四位正整数,在文本框text2中输出掉进黑洞的步数。PrivateSubCommand1_Click()Dima(1To4)AsIntegerDimx,y,i,jAsIntegerx=Val(Text1.Text)st=0DoWhilex<>6174Fori=1To4a(i)=xMod10x=x\10Nexti163\nx=a(1)*1000+a(2)*100+a(3)*10+a(4)y=a(1)+a(2)*10+a(3)*100+a(4)*1000x=x-yst=st+1LoopText2.Text=Str(st)EndSub操作要求:(1)完善程序中虚线框部分。(2)该程序中,Dowhile语句循环次数可以参照哪个变量的值?_______________参考答案:(1)Fori=1To3Forj=i+1To4Ifa(i)B(D)A&B7.VisualBasic函数Fix(x)的作用是截掉数据的小数部分。已知a是实数,当关系表达式Fix(a)=a为真时,则表示a是(A)负数(B)正数(C)整数(D)小数8.随机产生一个两位正整数的VB表达式是(A)1+Int(100*Rnd)(B)10+Int(90*Rnd)(C)Int(100*Rnd)(D)Int(90*Rnd)9.圆周长的计算公式为L=2πa,其中a为圆半径。在VisualBasic中,能正确表示2πa的表达式是(A)2πa(B)2*π*a(C)2?π?a(D)2*3.1416*a10.设a=2,b=3,c=4,d=5,表达式a>bANDc<=dOR2*a>c的值是(A)True(B)False(C)-1(D)111.有如下程序段:a=Sqr(3)b=Sqr(2)c=a>b该程序段运行后,c的值为(A)-1(B)0(C)False(D)True12.下面的程序段用于计算s=1*2+3*4+5*6+7*8+9*10,则在程序的划线处应该填上s=0fork=1to10Step_______s=s+k*(k+1)Nextk(A)0(B)1(C)2(D)k13.只能被1或本身整除的大于1的自然数称为素数。判断大于1的某自然数m是不是素数的算法基本思想是:把m作为被除数,将2到m-1中的自然数作为除数,逐一进行相除,如果都除不尽,m就是素数,否则m就不是素数。这种判定素数的算法主要属于(A)枚举算法(B)解析算法(C)递归算法(D)排序算法163\n二、综合题1.有如下程序段:Dimx,y,zAsIntegerx=12y=32x=xMod10y=y\8z=x+y该程序段运行后,z的值为2.下面程序的功能是:计算表达式1×2×3×……×10的值,并在文本框Text1中输出表达式的值。为了实现这一功能,则程序中划线处的语句应更正为(1) (2) PrivateSubCommand1_Click()DimIAsInteger,tAsLongt=0(1)Fori=1To10 t=t*iNextiText1.caption=Str(t)(2)EndSub3.会员积分的计算。超市会根据会员顾客的一次性消费总额给予一定的积分,会员可在年终依据积分换得相应的商品。每次消费时,计算机会自动累加所购商品的总价并折算成积分。超市折算积分的规则是这样的:每满100元(不到150元)消费就给1积分,如果总消费额达150元及以上,那么每40元消费可以获得0.5积分。下列程序可根据已经输入的所有已购买商品的价格(已经保存在数组a中),计算总消费并折算成积分,最后显示当前一次性总消费额(显示在标签Label2中)以及所获得的积分总值(显示在标签Label4中)。解决上述问题的VisualBasic程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)Constn=10Dima(n)AsSingleDimiAsIntegerDimansAsSingle,totalAsSinglePrivateSubCommand1_Click()total=0:ans=0Fori=1Ton(1)NextiIftotal<150andtotal>=100Then(2)Elseans=Fix(total/40)/2163\nEndIfLabel2.Caption=Str(total)Label2.Caption=Str(ans)EndSub4.下列程序的功能是在一个有序的序列中查找数值30,同时统计查找的次数并显示查找次数。为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)(3)Dima(1to6)AsIntegerPrivateSubCommand1_Click()DimmAsInteger,IAsInteger,jAsInteger,xAsInteger,totalAsIntegerDimfAsBooleanf=False:x=30:i=1:j=6:total=0DoWhile(1)Andf=Falsetotal=total+1m=(2)Ifa(m)=xThenf=TrueElseIfx=3Thens=s+kNext该程序段运行后,变量s的值是(A)1(B)2(C)3(D)10163\n13.把问题所有可能的解一一地罗列出来,并对每一个可能的解进行判断,从中挑选出符合条件的解答,这种思想的算法属于(A)排序算法(B)对分查找(C)解析算法(D)枚举算法二、综合题1.有如下VB程序段:n=123s=0DoWhilen>1s=s+n\5n=n\5Loop执行该程序段后,变量s的值是2.下面VisualBasic程序的功能是:计算表达式1+1/3+1/5+…+1/99的值,并在文本框Text1中输出该表达式的值。为了实现这一功能,则程序中划线处的语句应更正为(1) (2) PrivateSubCommand1_Click()DimsumAsSingle,iAsIntegersum=0Fori=1To99Step2sum=sum+i(1)NextiText2.Text=Str(sum)(2)EndSub3.我国是人口大国,2007年初,我国人口总数已达13亿5千万。假设我国年人口增长率为0.5%,则从2007年起多少年后我国人口就会达到或超过15亿?解决上述问题的VisualBasic程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是(1) (2) PrivateSubCommand1_click()DimnAsInteger,rAsSingleDimpAsDoubler=0.5/100p=13.5n=0DoWhilep<15(1) n=n+1(2)Text1.Text=Str(n)EndSub4.下列程序段实现以下功能,求1+(1+2)+(1+2+3)+…+(1+2+3+n),n由用户输入。为了实现这一目标,在划线处,填入合适的语句或表达式是163\n(1) (2) (3) PrivateSubForm_Click()n=Val(Text1.Text)Sum=0Fori=1TonSum1=0Forj=1To(1)(2)Nextj(3)NextiText2.Text=Str(Sum)EndSub5.下面程序求1到n之间的完全数。分析:所谓完全数是指小于该数本身的因子之和等于它本身,如6=1+2+3,6即是一个完全数。其中,上述界面中“开始处理”按钮的名称是“Command1”,布尔型函数perfect(x)作用判断x是否为完全数,若x是完全数,其值为True,否则为False。请在下列程序代码的基础上按照要求设计该程序。DimnAsInteger,aAsIntegerFunctionperfect(xasinteger)AsBooleanEndFunctionPrivateSubCommand1_Click()n=Val(Text1.Text)Fora=1TonIfperfect(a)ThenList1.AddItem(Str(a))NextaEndSub操作要求:(1)完善程序中的Functionperfect(x)部分(2)在子程序PrivateSubCommand1_Click()中,主要采用的算法是:__________。163\n模拟练习题(第4套)一、选择题1.控件工具箱中的工具是。(A)文件列表(B)单选按钮(C)图片框(D)标签框2.能被对象所识别的动作是(A)事件(B)方法(C)属性(D)过程3.在VisualBasic代码窗口中,语句Command1.Caption="运行完成!"中的Command1是(A)属性名(B)属性值(C)窗口名(D)对象名4.若要使某文本框获得控制焦点,可使用的方法是(A)LostFocus(B)SetFocus(C)PointD(D)value5.在VisualBasic中,语句DimxAsString的作用是将变量x定义为(A)字符串型(B)整数型(C)逻辑型(D)日期型6.在VisualBasic中,要定义一个一维数组a,用于存储100个整数型数值,则正确的数组定义语句是(A)Dima100AsInteger(B)Dima(1-100)AsInteger(C)Dima(1,100)AsInteger(D)Dima(1To100)AsInteger7.表达式Abs(-3.6)*Sqr(100)的值是(A)-360(B)360(C)-36(D)368.随机数因子Rnd的取值范围是下列的哪个?(A)[0,1]区间的实数(B)(0,1)区间的实数(C)(-1,1)区间的实数(D)[-1,1]区间的实数9.能完全正确表示“year是闰年”的逻辑表达式是(A)yearmod4=0(B)yearmod400=0oryearmod4=0andyearmod100<>0(C)yearmod400=0(D)yearmod400=0andyearmod4=0oryearmod100<>010.将文本框Text1内输入的数据送到数值型变量n中,则应使用的语句是(A)n=text1(B)n=text1.text(C)n=val(text1.name)(D)n=val(text1.text)11.下面程序执行的结果是PrivateSubForm_Click()A="123":B="456"C=Val(A)+Val(B)PrintC\100EndSub(A)123(B)3(C)5(D)57912.有如下程序段:e=0:f=1Fori=1To3e=e+ff=f+eNexti该程序运行后,f的值是(A)12(B)8(C)13(D)1513163\n.图书管理系统对图书管理是按图书的序号从小到大进行管理的,若要查找一本已知序号的书,则能快速的查找算法是(A)枚举算法(B)解析算法(C)对分查找(D)冒泡排序二、综合题1.有如下VB程序段:I=1:X=0DoWhileI<=20IfIMod2=1ThenX=X+1ElseX=X-1EndifI=I+1LoopPrintI执行该程序段的结果是2.哥哥考弟弟一道数学题,题目是:“有一筐鸡蛋,2个2个数多1个,3个3个数多2个,4个4个数多3个,5个5个数正好数完,问这筐鸡蛋最少是几个?”为解决此问题,弟弟编了一个如下VisualBasic程序,其中s表示鸡蛋数,t用于控制循环。为了实现这一功能,则程序中划线处的语句应更正为(1) (2) PrivateSubCommand1_Click()DimsAsInteger,tAsBooleans=5t=True(1)DoWhileNotts=s+1t=(sMod2=1)And(sMod3=2)And(sMod4=3)And(sMod5<>0)(2)LoopText1.Text=Str(s)EndSub3.某人走楼梯,方法是每步跨1个台阶或跨2个台阶。现要计算有20个台阶的楼梯,共有多少种不同的走法?经分析,台阶数与走法种数如下表:台阶数:123456789…走法数:1235813213556…解决上述问题的VisualBasic程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是(1) (2) PrivateSubCommand1_Click()DimaAsLong,bAsLong,cAsLong,nAsIntegera=1163\nb=2c=a+bForn=4To (1)a=bb=c(2) NextnText1.Text=Str(c)EndSub4.下列程序的功能是将0到255之间的十进制整数转换为二进制数的表示形式。为了实现这一目标,在划线处,填入合适的语句或表达式是(1) (2) (3) PrivateSubCommand1_Click()Dima,iAsIntegerDimsAsstringDimc(1to8)AsIntegera=Val(Text1.Text)If(1)ThenText2.Text =“输入数据错误,请重新输入!”ElseFori=1to8(2)(3)s=str(c(i))+sNextiText2.Text =sOLE1Text1Text2Text3Command1(1)EndIfEndSub5.利用Function过程计算阶乘,求组合数。设计界面如图1所示。运行时,在文本框Text1和Text2中输入n和m值,单击“=”按钮计算组合数,结果显示于文本框Text3中。请在下列程序代码的基础上按照要求设计该程序。PrivateSubCommand1_Click()DimmAsInteger,nAsInteger,cAsDoublem=Val(Text2.Text)n=Val(Text1.Text)c=fact(m)/(fact(n)*fact(m-n))Text3.Text=Str(c)EndSub163\nFunctionfact(nAsInteger)AsDoubleEndFunction操作要求:(1)完善程序中的Functionfac(x)部分(2)如果在text1中输入5,text2中输入8,点击command1后text3中的内容是163\n模拟练习题(第5套)一、选择题1.结束当前程序的语句是。(A)Quit(B)Exit(C)End(D)Sub2.窗体能够响应的事件是(A)ActiveForm(B)Drive(C)Load(D)Change3.下列各组控件都具有Caption属性的是(A)按钮、文本框(B)标签、列表框(C)按钮、标签(D)文本框、列表框4.能显示窗体的方法是(A)Visible(B)Show(C)New(D)Open5.在VisualBasic中,语句DimbAsDouble所定义的变量b是(A)整数型(B)单精度实数型(C)双精度实数型(D)长整数型6.定义a由a(1)~a(20)组成的一维数组整数类型变量,下列定义语句正确的是(A)Dima(1To20)AsDouble(B)Dima(20To1)AsInteger(C)Dima(20)(D)Dima(1To20)AsInteger7.Len("Friend")的值是(A)6(B)7(C)8(D)98.假定X是一个数值型变量,那么由函数组成的表达式xmod2=0的作用是(A)用于测试工X是否为偶数(B)返回一个整数(C)返回一个奇数(D)用于测试X是否为整数9.下列能表示“x小于10且y大于0”的VisualBasic逻辑表达式是(A)x<10Andy>0(B)x<10:y>0(C)x<10Ory>0(D)x<10,y>010.语句x=x+1的正确含义是(A)变量x与x+1的值相等(B)将变量x的值加到x+1中去(C)将变量x的值加1后赋值给变量x(D)变量x的值为111.以下程序段执行后,整型变量n的值为year=2001n=year\4+year\400-year\100(A)495(B)505(C)500(D)48512.有如下VisualBasic程序段:s=0Fork=1To4If8/k>=3Thens=s+kNext该程序段运行后,变量s的值是(A)1(B)2(C)3(D)1013.以下算法中,需通过多重循环一一列举出解决问题的所有可能解,并在逐一列举的过程中,检验每个可能的解是否是向题的真正解的是哪种,而需要从实际问题中归纳出数学解析式,就此设计出合适的算法的是哪种(A) 解析法,枚举法(B)递归法,解析法(C)枚举法,解析法(D)枚举法,递归法二、综合题1.有如下VB程序段:163\nDimnAsIntegerDimmAsIntegerm=0Forn=1To10m=m+nmod3Nextn该程序段运行后,变量m的值是2.在平面直角坐标系中存在某点A(x,y),输入该点坐标值,求它所在象限!为了实现这一功能,则程序中划线处的语句应更正为(1) (2) PrivateSubCommand1_Click()Dimx,yAsSinglex=Val(Text1.Text)y=Val(Text2.Text)Ifx=0andy=0Then(1)Print"在坐标轴上"ElseIf x>=0Then(2)Ify>0ThenPrint"在第一象限"ElsePrint"在第四象限"ElseIfy>0ThenPrint"在第二象限"ElsePrint"在第三象限"EndIfEndIfEndSub3.将一张面值为100元的人民币等值换成5元、1元的零钞共40张,要求每种零钞不少于1张,问5元和1元面值的零钞各多少张?设x、y分别为5元和1元面值的零钞张数,通过分析可得出该问题的数学表达式为:解决上述问题的VisualBasic程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是(1) (2) PrivateSubCommand1_Click()DimxAsInteger,yAsIntegery=0:x=1DoWhile(1)y=y+5(2)LoopLabel1.Caption="5元钞"+Str(x)+"张"Label2.Caption="1元钞"+Str(y)+"张"EndSub163\n4.有N盏灯放在一排,从1到N依次编号,有N个人也从1到N依次编号,第一个人将灯全部打开,第二个人将凡是2的倍数的灯全部关闭,第三个人将凡是3的倍数的灯作相反处理,第4、5、……、N个人都把自己编号的倍数的灯作相反处理。问第N个人走过后,哪些灯是开着的?为了实现这一目标,在划线处,填入合适的语句或表达式是(1) (2) (3) PrivateSubcommand1_click()Constn=20DimiAsInteger,jAsIntegerDima(1Ton)AsIntegerForj=1Tona(j)=0NextjForj=2TonFori=1TonIf(1)Then(2)EndIfNextjNextiFori=1TonIf(3)ThenList1.AddItemStr(i)NextiEndSub5.要在以下的数列中进行查找某个数:122334354655678099设以上有序数依次保存在数组元素A(1),A(2),……,A(9)中,查找的数存放在Number变量中。VB的事件过程如下:PrivateSubCommand1_Click()DimmidAsInteger,lowAsInteger,higAsIntegerNumber=Val(InputBox("请输入要查找的数"))k=0:low=1:hig=nDoWhilelow<=higmid=(low+hig)/2IfNumber=a(mid)Thenk=midExitDoElseEndIfLoopIfk>0Then163\nMsgBox"所找的数在第"&Str(k)&"个位置"ElseMsgBox"没找到"EndIfEndSub操作要求:(1)完善程序中虚线框部分。(2)该程序中,主要采用的算法是:_______________163\n模拟练习题(第6套)一、选择题1.VisualBasic中,添加一个标签,在土具箱中要单击的控件是(A)(B)(C)(D)2.在VisualBasic中,如果变量a需要存储英文单词,那么变量a的数据类型应定义为(A)Date(B)String(C)Integer(D)Boolean3.在VisualBasic中,表示鼠标单击的事件名是(A)Click(B)MouseClick(C)MouseMove(D)DblClick 4.以下属于合法的Visual Basic变量名的是 (A)abc(B)Const(C)9abc(D)a#x5.下列四段程序中,属于循环结构的是①a=5b=aa=a+b②Ifx>kThenPrint("big")EndIf③Fori=1To10j=x+1s=s+jNexti④IfInt(x/2)=x/2ThenPrint("偶数")ElsePrint("奇数")EndIf(A)①(B)②(C)③(D)④6.如果a、b、c、d是一四位整数中千、百、十、个位上的数字,这个四位数在VisualBasic程序中可表示为(A)abcd(B)a+b+c+d(C)a*1000+b*100+c*10+d(D)以上都不对7.表达式 5 Mod 3+3\5*2的值是(A) 0 (B) 2 (C)4 (D) 68.如果x=-25,则运行x=Abs(x):x=Sqr(x)后,x的值是(A)5(B)-5(C)25(D)-259.下列VisualBasic程序段运行后,变量max的值为a=5:b=10:max=aifb>maxThenmax=b(A)5(B)10(C)5和10(D)以上都不是10.下面是一段关于计算变量S的算法:①变量S的初值是0,变量I的初值为1②变量I从1循环到100,且步长为2做第③步表达式③S=S+I④输出变量S的值在这个计算S值的算法中,S的表达式是(A)1+2+3+…+99+100(B)1+2+3+…+98+99(C)1+3+5+…+97+99(D)2+4+6+…+98+10011.下列VisualBasic程序段运行后,变量x的值为x=3:y=50Dowhilexa(i)thenList1.AddItemStr(a(i)) Endif i=i+1loopEndSub4.(6分)某市近期向市民投放带2B开头尾数为001至999的机动车牌号,经过竞投有200个牌号被首批车主投中。下面VisualBasic程序段的功能是根据车牌号查找相应的车主身份证号码,其中车牌号按尾数从小到大的顺序存储在cno数组中,身份证号码存储在cnum数组中。在文本框Text1中输入一个车牌号,单击"开始查找"按钮后,在文本框Text2中输出结果。如果查找成功,则输出对应的车主身份证号码,否则输出"找不到"。解决上述问题的VisualBasic程序如下,为了实现这一目标,在划线处,填入合适的语句或表达式是(1)(2)(3)PrivateSubCommand1_Click()DimkeyAsString,iAsIntegerDimjAsInteger,foundAsBooleani=1:j=200:found=False(1)DoWhile(2)AndNotfoundm=Int((i+j)/2)Ifcno(m)=keyThenfound=TrueElseIf(3)Theni=m+1Elsej=m-1EndIfLoopIfNotfoundThenText2.Text="找不到"ElseText2.Text=cnum(m)EndSub5.(6分)若A为素数,而A+2也是素数,则称A,A+2位一对孪生素数。如:3、5位一对孪生素数。编程求出100以内的孪生素数及共有多少对?其中,上述界面中“开始处理”按钮的名称是“Command1”,函数f(x)的功能是判断x是否为质数,如果是质数则返回值为true,否则返回false。请在下列程序代码的基础上按照要求设计该程序。DimxAsIntegerFunctionf(xAsInteger)AsBooleanEndFunctionPrivateSubCommand1_Click()163\nForx=2To100Iff(x)Andf(x+2)ThenList1.AddItem(Str(x)+""+Str(x+2))NextxEndSub操作要求:(1)完善程序中的Functionf(x)部分(2)在子程序PrivateSubCommand1_Click()中,主要采用的算法是:__________。163\n参考答案模拟练习第1套选择题:CBACBCADBBDBD综合题:1、Goodbye2、(1)sum=sum+i(2)Text2.Text=Str(sum)3、(1)n=n+1(2)a(n-1)+a(a-2)4、(1)d(i)=Int(Rnd*100+1)(2)d(j)i5、(1)Fori=2ToInt(Sqr(x))IfxModi=0Thenf=FalseExitForElsef=TrueEndIfNexti(2)枚举算法模拟练习第2套选择题:CAAACACBDBDCA综合题:1、62、(1)t=1(2)Text1.Text=Str(t)3、(1)total=total+a(i)(2)ans=ans+14、(1)i<=j(2)Fix((i+j)/2)(3)Str(a(m))5、(1)Functionarea(a,b,cAsSingle)AsSingleDimpAsSinglep=(a+b+c)/2area=Sqr(p*(p-a)*(p-b)*(p-b))EndFunction(2)解析算法模拟练习第3套选择题:CADACBCCCCACD综合题:1、282、(1)sum=sum+1/i(2)Text1.Text=Str(m)3、(1)p=p*(1+r)(2)Loop4、(1)i(2)sum1=sum1+j(3)sum=sum+sum15、(1)Functionperfect(x)AsBooleanDimk,sumAsIntegersum=1Fork=2Tox\2IfxModk=0Thensum=sum+kNextkIfsum=xThenperfect=TrueElseperfect=flaseEndFunction163\n(2)枚举算法模拟练习第4套选择题:DADBADDBBDCCC综合题:1、212、(1)t=False(2)sMod5=03、(1)20(2)c=a+b4、(1)a<0ora>255(2)a=aMod2(3)c(i)=a5、(1)Functionfact(nAsInteger)AsDoubleDimiasintegerFac=1Fori=1tonFac=fac*iNextiEndFunction(2)解析算法模拟练习第5套选择题:CCCBCDAAACDCC综合题:1、102、(1)x=0ory=0(2)x>03、(1)y<40(2)x=(100-y)/54、(1)imodj=0(2)a(i)=(a(i)+1)mod2(3)a(i)=05、(1)ifNumber>a(mid)theni=mid+1elsej=mid-1endif(2)对分查找模拟练习第6套选择题:BBAACCBABCCC综合题:1、1002、(1)n=37006+10*i(2)nmod29=0ornmod47=03、(1)x>0(2)x=x-a(i)4、(1)key=text1.text(2)i<=j(3)key>cno(m)5、(1)Functionf(xAsInteger)AsBooleanDimiAsIntegerf=TrueFori=2ToSqr(x)fxModi=0Thenf=FalseNextiEndFunction(2)对分查找163