版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法与程序设计算法与程序设计第一章过程和函数第一章过程和函数-3--3--4-考点1考点2考点3VB应用程序是按模块化的方式组成的,程序模块分为过程和函数两种。(1)过程中的代码可以被重复调用,但不返回值。事件处理过程定义格式为:Sub对象名_标准事件名(参数表)语句块EndSub(2)函数是类似于过程的另一种程序模块,不同之处是函数执行完成后,可以返回处理结果,供程序的后续部分继续处理。自定义函数定义格式:Function函数名(参数表)As类型名语句块EndFunction-4-考点1考点2考点3VB应用程序是按模块化的方式组成的,-5-考点1考点2考点3【例1】
判断某年是否为闰年的VB程序如下,在程序中划线处填入正确的语句。PrivateSubCommand1_Click()DimxAsIntegerx=Val(Text1.Text)Label1.Caption=
EndSubFunctionleapyear(yearAsInteger)AsStringIfyearMod4=0AndyearMod100<>0OryearMod400=0Then
leapyear=″是闰年!″Else
leapyear=″不是闰年!″EndIfEndFunction-5-考点1考点2考点3【例1】判断某年是否为闰年的VB程-6-考点1考点2考点3答案:leapyear(x)解析:本题考查的是关于自定义函数的知识点。leapyear是个自定义函数,参数是一个整数year,返回值是字符串。该函数功能是判断year是否为闰年,如果是闰年,返回值为“是闰年!”,否则返回值为“不是闰年!”Command1_Click是事件处理过程,其中x是用户输入的年份,label1上显示x是否为闰年,所以判断x是否为闰年可以调用函数leapyear,参数是x,即leapyear(x)。-6-考点1考点2考点3答案:leapyear(x)-7-考点1考点2考点3【例2】
有如下VisualBasic程序:Functionfx(aassingle,bassingle,cassingle)asstringifb^2-4*a*c>=0then
f1=(-b+sqr(b^2-4*a*c))/(2*a)
f2=(-b-sqr(b^2-4*a*c))/(2*a)
fx=″根1=″&f1&″,根2=″&f2else
fx=″方程无实根″endifEndFunctionPrivateSubCommand1_Click()dimaassingle,bassingle,cassinglea=val(text1.text)b=val(text2.text)c=val(text3.text)label4.caption=fx(a,b,c)EndSub-7-考点1考点2考点3【例2】有如下VisualBas-8-考点1考点2考点3运行程序后,在文本框text1、text2、text3中分别输入1、3、2,单击按钮Command1,则在label4中显示(
)A.-1,-2 B.-2,-1C.根1=-1,根2=-2 D.根1=-2,根2=-1答案:C解析:自定义函数fx的功能是计算一元二次方程的根,调用时给定3个值,根返回的形式是“根1=***,根2=***”。-8-考点1考点2考点3运行程序后,在文本框text1、te-9-考点1考点2考点3在一个子程序(过程或函数)的定义中直接或间接地调用该子程序本身(即自己调用自己)的算法,称为递归算法。-9-考点1考点2考点3在一个子程序(过程或函数)的定义中直-10-考点1考点2考点3【例3】
以下自定义函数用以计算n的阶乘n!,即计算前n个自然数的乘积:Function
f(nAsInteger)AsInteger
If
n=1
Then
f=1
Else
f=n*f(n-1)
EndIfEndFunction该自定义函数采用的算法是(
)A.枚举算法 B.解析算法C.递归算法 D.查找算法-10-考点1考点2考点3【例3】以下自定义函数用以计算n-11-考点1考点2考点3答案:C解析:程序中f是自定义函数,函数内部语句“f
=
n*f(n-1)”调用函数自身,因此该自定义函数采用的算法是递归算法。-11-考点1考点2考点3答案:C-12-考点1考点2考点3【例4】
用递归算法求1~n个连续自然数的和的VB程序段代码如下。Functionsum(nAInteger)AInteger'求1~n个连续自然数的和Ifn=1Thensum=1Elsesum=
EndIf-12-考点1考点2考点3【例4】用递归算法求1~n个-13-考点1考点2考点3EndFunctionPrivateSubCommand1_Click()n=text1.texttext2.text=str(sum(n))EndSub划线处应填入的语句是(
)A.n+sum(n-1) B.sum(n-1)C.n+sum(n) D.sum+n答案:A解析:n个自然数的和=n+前n-1项数字的和,递归的算法即为n+sum(n-1)。-13-考点1考点2考点3EndFunction-14-考点1考点2考点3ADO(ActivexDataObjiects)是微软公司提供的一种应用程序访问数据库的编程接口。该接口包含了多个对象,其中Connection对象用于与数据库的连接,在建立连接后,可以通过Recordset对象获取数据表中数据。ADO访问Access数据库的基本过程是:(1)通过Connection连接数据库。在用Connection建立与数据库的连接时,需要设置ConnectionString属性的值(即连接字符串),以指定连接数据库所用的驱动程序、数据源名称、用户名和密码等。下列语句定义一个Connection对象的实例conn,并设置conn的连接字符串。-14-考点1考点2考点3ADO(ActivexData-15-考点1考点2考点3DimconnAsNewADODB.Connectionconn.ConnectionString=″provider=Microsoft.ACE.OLEDB.12.0;DATASource=″&App.Path&″\数据库名.accdb″conn.open其中,“provider”用于指定连接的提供者(Microsoft.ACE.OLEDB.12.0可以访问Access2010数据库),“DATASource”用于指定数据库的文件名(含绝对路径)。“App.Path”返回当前应用程序所在的绝对路径。Connection对象具有Open、Close等方法,其中Open方法用于打开到数据源的连接,Close方法用于关闭连接。-15-考点1考点2考点3DimconnAsNewA-16-考点1考点2考点3(2)通过Recordset对象获取数据库中的数据。在用Recordset对象从数据库中获取数据时,首先要定义Recordset对象的实例,再设置ActiveConnection属性的值。DimrsAsNewADODB.RecordsetSetrs.ActiveConnection=connrs.open″select*from数据表名″语句“Setrs.ActiveConnection=conn”,使Recordset对象的实例rs同Connection对象conn建立关联。然后利用Recordset对象的Open方法打开数据表,并将SQL语句“select*from数据表名”查询结果保存到记录集rs中。Recordset对象的Close方法关闭记录集。-16-考点1考点2考点3(2)通过Recordset对象获-17-考点1考点2考点3Recordset对象的Fields集合用于返回当前记录中的字段值,例如,rs.Fields(“姓名”)返回当前记录中姓名字段的值。rs.Fields(0)返回当前记录中第一个字段的值,如果第一个字段名为“姓名”,那么rs.Fields(0)与rs.Fields(“姓名”)返回值相同。Recordset对象的MoveNext方法用于把当前记录指针移到下一条记录。若到数据表结尾还继续向下移动,程序会出错,因此在使用MoveNext前要判断Recordset的EOF属性,如果Recordset.EOF=True,表明记录已在最后一条。-17-考点1考点2考点3Recordset对象的Field-18-考点1考点2考点3【例5】
设计一个成绩查询的VB程序,学生成绩数据表的结构与部分数据如下:-18-考点1考点2考点3【例5】设计一个成绩查询的VB程-19-考点1考点2考点3程序界面如下图所示,在文本框text1中输入学生姓名后,单击“查询”按钮后,在标签label3中显示学生的相应成绩。-19-考点1考点2考点3程序界面如下图所示,在文本框tex-20-考点1考点2考点3(1)下面是其相应程序,请在划线处填入正确的语句。PrivateSubCommand1_Click()DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetdimsNameasstringconn.ConnectionString=″provider=microsoft.ace.oledb.12.0;datasource=″+App.Path+″\student.accdb″conn.OpenSetrs.ActiveConnection=connrs.Open″select*fromscore″sName=text1.text-20-考点1考点2考点3(1)下面是其相应程序,请在划线处-21-考点1考点2考点3DoWhileNotrs.EOF
ifrs.Fields(″姓名″)=sNamethen
label3.caption=①
exitdo
else
rs.MoveNext
endif
Loopif②
thenlabel3.caption=″查无此人!″
rs.Closeconn.CloseEndSub(2)由程序可知,打开的数据库文件名为
,数据表名是
。
-21-考点1考点2考点3DoWhileNotrs.E-22-考点1考点2考点3答案:(1)①rs.Fields(″期中成绩″)或rs.Fields(3)②rs.eof或rs.eof=true
(2)student.accdb
score解析:本题考查的是利用ADO查询数据库的相关知识点。程序首先定义数据库连接对象conn和记录集对象rs,利用conn.ConnectionString和conn.Open两语句打开数据库“student.accdb”,利用Set
rs.ActiveConnection
=
conn和rs.Open打开数据表“score”。再使用do
while循环查询每条记录,如果当前记录的“姓名”字段值为搜索姓名,则使用rs.Fields(″期中成绩″)显示期中成绩,期中成绩在表中是第4个字段,所以也可用rs.Fields(3)获取期中成绩,找到记录结束循环。如果记录指针移到表结尾(即rs.eof=true)仍未找到,显示“查无此人”。-22-考点1考点2考点3答案:(1)①rs.Fields(-23-123456789101.有如下VisualBasic自定义函数:Functionmax(xasintger,yasinteger)asintegerifx>ythenmax=xelsemax=yEndFunction关于该函数说法不正确的是(
)A.该自定义函数名称是maxB.函数返回一个整型数据C.该自定义函数返回参数x、y中的较小数D.调用该自定义函数需要2个参数答案解析解析关闭该自定义函数返回参数x、y中的较大数。答案解析关闭C-23-123456789101.有如下VisualBas-24-123456789102.有以下VB自定义函数:Functionfx(xasinteger)
ifxmod2thenfx=x&″是偶数″elsefx=x&″是奇数″EndFunction则程序划线处应填入的代码是(
)A.asinteger B.asBooleanC.asstring D.assingle答案解析解析关闭本题要求补全自定义函数返回值的类型。由自定义函数的语句体可知,fx运算的结果是字符串,所以函数返回值的类型是string。答案解析关闭C-24-123456789102.有以下VB自定义函数:-25-123456789103.有如下VisualBasic程序:Functionjc(nasinteger)aslongdimsaslongs=1fori=1tons=s*inextjc=sEndFunction-25-123456789103.有如下VisualBas-26-12345678910PrivateSubCommand1_Click()dimsaslong,nasintegers=0n=val(text1.text)fori=1tons=s+jc(i)nextlabel1.caption=str(s)EndSub运行程序后,在文本框text1中输入5,单击按钮Command1,则在label1中显示(
)A.15 B.120 C.5 D.153答案解析解析关闭自定义函数jc的功能是计算n的阶乘,即n!=1*2*…*n,Command1_Click过程的功能是计算s=1!+2!+3!+…+n!。答案解析关闭D-26-12345678910PrivateSubCom-27-123456789104.下列VB程序用于求2个正整数x、y的最大公约数,最大公约数显示在文本框text3中。PrivateSubCommand1_Click()dimxasinteger,yasinteger,zasintegerx=val(text1.text)y=val(text2.text)
text3.text=str(z)EndsubFunctiongcd(aasinteger,basinteger)asintegerdowhilea<>bifa>bthena=a-belseb=b-aloopgcd=bEndFunction-27-123456789104.下列VB程序用于求2个正整-28-12345678910划线处正确的语句是(
)A.z=gcd B.z=gcd(a,b)C.z=gcd(x,y) D.z=gcdx,y答案解析解析关闭划线处程序调用函数gcd用以求出x,y的公约数z,所以语句是z=gcd(x,y)。答案解析关闭C-28-12345678910划线处正确的语句是()-29-123456789105.下列说法错误的是(
)A.递归函数中可以不包含条件控制语句B.递归算法代码一般较少C.递归算法一定要有终止条件D.递归函数内部必定存在调用自身函数的语句答案解析解析关闭递归函数中必须包含条件控制语句,作为递归结束的条件。答案解析关闭A-29-123456789105.下列说法错误的是()-30-123456789106.有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁,问第4个人岁数,他说比第3个人大2岁,问第3个人岁数,他说比第2个人大2岁,问第2个人岁数,他说比第1个人大2岁,问第1个人岁数,他说他10岁,请问第5个人多大?解决上述问题的VB程序代码如下:PublicFunctionage(nAsInteger)AsLongIfn=1Then
age=10Else
age=age(n-1)+2EndIfEndFunctionPrivateSubCommand1_Click()MsgBox″第五个人的年龄为″+Str(age(5))EndSub-30-123456789106.有5个人坐在一起,问第5个-31-12345678910程序中自定义函数采用的算法是(
)A.枚举算法 B.解析算法C.递归算法 D.查找算法答案解析解析关闭程序中age是自定义函数,函数内部语句“age=age(n-1)+2”调用函数自身,因此该自定义函数采用的算法是递归算法。答案解析关闭C-31-12345678910程序中自定义函数采用的算法是(-32-123456789107.下列表示“将指针移到记录集对象rs的下一条记录”的语句是(
)A.rs.open B.rs.movenextC.rs.eof D.rs.close答案解析解析关闭rs.open是打开记录集,rs.close是关闭记录集,rs.eof表示记录集结尾属性。答案解析关闭B-32-123456789107.下列表示“将指针移到记录集-33-123456789108.现有一个字符串转换程序,在文本框Text1中输入原始字符串,单击“转换”按钮Command1后,将其中的小写英文字母转换为大写,并在文本框Text2中显示。程序运行效果如下图所示。-33-123456789108.现有一个字符串转换程序,在-34-12345678910实现上述功能的VB代码如下,请在划线处填入正确的语句。PrivateSubCommand1_Click()
DimaAsString,bAsString,cAsString,iAsInteger
a=Text1.Text
Fori=1ToLen(a)c=Mid(a,i,1)①
Nexti②
EndSub-34-12345678910实现上述功能的VB代码如下,请-35-12345678910PrivateFunctionupcase(cAsString)AsString'将小写字母转换为大写字母Ifc>=″a″Andc<=″z″Thenupcase=Chr(Asc(c)-32)Elseupcase=c
EndIfEndFunction-35-12345678910PrivateFunctio-36-12345678910答案:①b=b+upcase(c)或b=b&upcase(c)
②Text2.text=b解析:自定义函数upcase的功能是将小写字母转换为大写字母。①处循环功能是把字符串a中的每个英文字母转换为大写字母,转换方法是每次取出1个字符c,然后调用函数upcase(c)转换为大写字母,并存入变量b中。循环结束把转换后的字符串显示在文本框text2中。-36-12345678910答案:①b=b+upcas-37-123456789109.下列程序的功能是将文本框text1中输入的自然数分解为3个互不相同的质数(三个质数的和等于输入的自然数),并把分解产生的质数按升序顺序显示在左边的列表框中。
例如,输入20,单击“开始处理”按钮Command1,在列表框中显示如图所示结果。-37-123456789109.下列程序的功能是将文本框t-38-12345678910请在下列程序代码的基础上按照要求,完善程序中的划线部分。Functionprime(xAsInteger)AsBoolean'函数prime(x)的功能是判断x是否为质数,如果是返回值为true,否则返回值为false。Fori=2Tox\2IfxModi=0
ThenExitForEndIfNexti
if①
thenprime=trueelseprime=false
EndFunctionPrivateSubCommand1_Click()
dimnasinteger,a1asinteger,a2asinteger,a3asinteger-38-12345678910请在下列程序代码的基础上按照要-39-12345678910
n=val(text1.text)
fora1=2ton
fora2=a1ton
fora3=a2ton
ifa1+a2+a3=nand②
then
list1.additemstr(a1)+str(a2)+str(a3)
endif
nexta3
nexta2
nexta1EndSub-39-12345678910n=val(text1.te-40-12345678910答案:①i>x\2
②prime(a1)andprime(a2)andprime(a3)解析:函数prime(x)的功能是判断是否为质数,如果是质数则返回值为true,否则返回值为false。
如果x能被2到x\2中的一个数整除,
则x不是质数,退出循环,此时循环变量i的值必定小于等于x\2;如果x不能被2到x\2中的任何一个数整除,则循环结束时,i的值必定大于x\2,所以可以根据i的值判定x是否为质数,即i>x\2,x是质数,否则不是质数。②符合条件的解需要满足4个条件:a1、a2、a3都是质数,a1、a2、a3的和等于被分解的自然数。-40-12345678910答案:①i>x\2②pri-41-1234567891010.用VB程序制作一个用于统计学生信息技术成绩的程序。学生成绩存放在数据库“成绩.accdb”的表“信息技术”中,程序界面和数据表如下图所示。-41-1234567891010.用VB程序制作一个用于统-42-12345678910程序的功能是单击统计按钮Command1,在列表框list1中显示所有学生成绩,在文本框text1、text2、text3中分别显示平均分、最高分和最低分。程序清单如下:PrivateSubCommand1_Click()DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetDimnAsInteger'n存放人数DimsAsInteger's存放总分DimavgAsSingle'avg存放平均分DimmaxAsInteger,minAsInteger,xasIntegerconn.ConnectionString=″provider=microsoft.ace.oledb.12.0;datasource=″&App.Path&″\成绩.accdb″-42-12345678910程序的功能是单击统计按钮Com-43-12345678910conn.OpenSetrs.ActiveConnection=connrs.Open″select*from信息技术″s=0max=0min=100n=0DoWhileNotrs.EOFx=rs.Fields(″成绩″)List1.AddItemStr(x)s=①
If②
Thenmax=x
-43-12345678910conn.Open-44-12345678910Ifx<minThenmin=xn=n+1rs.MoveNextLooprs.Close:conn.Closeavg=③
Text1.Text=④
Text2.Text=Str(max)Text3.Text=Str(min)EndSub在程序划线处填入正确的语句。-44-12345678910Ifx<minThen-45-12345678910答案:①s+x
②x>max
③s/n
④Str(avg)解析:第1空完成的功能是把从数据表中读取的成绩x累加到s中,即用来计算总分s。第2空完成的功能是判断当前取得的分数x是否大于max,如果是则把x存入max。第3空完成的功能是计算平均分,平均分=总分/人数=s/n。第4空完成的功能是把平均分avg显示在文本框text1中。-45-12345678910答案:①s+x②x>max
算法与程序设计算法与程序设计第一章过程和函数第一章过程和函数-48--3--49-考点1考点2考点3VB应用程序是按模块化的方式组成的,程序模块分为过程和函数两种。(1)过程中的代码可以被重复调用,但不返回值。事件处理过程定义格式为:Sub对象名_标准事件名(参数表)语句块EndSub(2)函数是类似于过程的另一种程序模块,不同之处是函数执行完成后,可以返回处理结果,供程序的后续部分继续处理。自定义函数定义格式:Function函数名(参数表)As类型名语句块EndFunction-4-考点1考点2考点3VB应用程序是按模块化的方式组成的,-50-考点1考点2考点3【例1】
判断某年是否为闰年的VB程序如下,在程序中划线处填入正确的语句。PrivateSubCommand1_Click()DimxAsIntegerx=Val(Text1.Text)Label1.Caption=
EndSubFunctionleapyear(yearAsInteger)AsStringIfyearMod4=0AndyearMod100<>0OryearMod400=0Then
leapyear=″是闰年!″Else
leapyear=″不是闰年!″EndIfEndFunction-5-考点1考点2考点3【例1】判断某年是否为闰年的VB程-51-考点1考点2考点3答案:leapyear(x)解析:本题考查的是关于自定义函数的知识点。leapyear是个自定义函数,参数是一个整数year,返回值是字符串。该函数功能是判断year是否为闰年,如果是闰年,返回值为“是闰年!”,否则返回值为“不是闰年!”Command1_Click是事件处理过程,其中x是用户输入的年份,label1上显示x是否为闰年,所以判断x是否为闰年可以调用函数leapyear,参数是x,即leapyear(x)。-6-考点1考点2考点3答案:leapyear(x)-52-考点1考点2考点3【例2】
有如下VisualBasic程序:Functionfx(aassingle,bassingle,cassingle)asstringifb^2-4*a*c>=0then
f1=(-b+sqr(b^2-4*a*c))/(2*a)
f2=(-b-sqr(b^2-4*a*c))/(2*a)
fx=″根1=″&f1&″,根2=″&f2else
fx=″方程无实根″endifEndFunctionPrivateSubCommand1_Click()dimaassingle,bassingle,cassinglea=val(text1.text)b=val(text2.text)c=val(text3.text)label4.caption=fx(a,b,c)EndSub-7-考点1考点2考点3【例2】有如下VisualBas-53-考点1考点2考点3运行程序后,在文本框text1、text2、text3中分别输入1、3、2,单击按钮Command1,则在label4中显示(
)A.-1,-2 B.-2,-1C.根1=-1,根2=-2 D.根1=-2,根2=-1答案:C解析:自定义函数fx的功能是计算一元二次方程的根,调用时给定3个值,根返回的形式是“根1=***,根2=***”。-8-考点1考点2考点3运行程序后,在文本框text1、te-54-考点1考点2考点3在一个子程序(过程或函数)的定义中直接或间接地调用该子程序本身(即自己调用自己)的算法,称为递归算法。-9-考点1考点2考点3在一个子程序(过程或函数)的定义中直-55-考点1考点2考点3【例3】
以下自定义函数用以计算n的阶乘n!,即计算前n个自然数的乘积:Function
f(nAsInteger)AsInteger
If
n=1
Then
f=1
Else
f=n*f(n-1)
EndIfEndFunction该自定义函数采用的算法是(
)A.枚举算法 B.解析算法C.递归算法 D.查找算法-10-考点1考点2考点3【例3】以下自定义函数用以计算n-56-考点1考点2考点3答案:C解析:程序中f是自定义函数,函数内部语句“f
=
n*f(n-1)”调用函数自身,因此该自定义函数采用的算法是递归算法。-11-考点1考点2考点3答案:C-57-考点1考点2考点3【例4】
用递归算法求1~n个连续自然数的和的VB程序段代码如下。Functionsum(nAInteger)AInteger'求1~n个连续自然数的和Ifn=1Thensum=1Elsesum=
EndIf-12-考点1考点2考点3【例4】用递归算法求1~n个-58-考点1考点2考点3EndFunctionPrivateSubCommand1_Click()n=text1.texttext2.text=str(sum(n))EndSub划线处应填入的语句是(
)A.n+sum(n-1) B.sum(n-1)C.n+sum(n) D.sum+n答案:A解析:n个自然数的和=n+前n-1项数字的和,递归的算法即为n+sum(n-1)。-13-考点1考点2考点3EndFunction-59-考点1考点2考点3ADO(ActivexDataObjiects)是微软公司提供的一种应用程序访问数据库的编程接口。该接口包含了多个对象,其中Connection对象用于与数据库的连接,在建立连接后,可以通过Recordset对象获取数据表中数据。ADO访问Access数据库的基本过程是:(1)通过Connection连接数据库。在用Connection建立与数据库的连接时,需要设置ConnectionString属性的值(即连接字符串),以指定连接数据库所用的驱动程序、数据源名称、用户名和密码等。下列语句定义一个Connection对象的实例conn,并设置conn的连接字符串。-14-考点1考点2考点3ADO(ActivexData-60-考点1考点2考点3DimconnAsNewADODB.Connectionconn.ConnectionString=″provider=Microsoft.ACE.OLEDB.12.0;DATASource=″&App.Path&″\数据库名.accdb″conn.open其中,“provider”用于指定连接的提供者(Microsoft.ACE.OLEDB.12.0可以访问Access2010数据库),“DATASource”用于指定数据库的文件名(含绝对路径)。“App.Path”返回当前应用程序所在的绝对路径。Connection对象具有Open、Close等方法,其中Open方法用于打开到数据源的连接,Close方法用于关闭连接。-15-考点1考点2考点3DimconnAsNewA-61-考点1考点2考点3(2)通过Recordset对象获取数据库中的数据。在用Recordset对象从数据库中获取数据时,首先要定义Recordset对象的实例,再设置ActiveConnection属性的值。DimrsAsNewADODB.RecordsetSetrs.ActiveConnection=connrs.open″select*from数据表名″语句“Setrs.ActiveConnection=conn”,使Recordset对象的实例rs同Connection对象conn建立关联。然后利用Recordset对象的Open方法打开数据表,并将SQL语句“select*from数据表名”查询结果保存到记录集rs中。Recordset对象的Close方法关闭记录集。-16-考点1考点2考点3(2)通过Recordset对象获-62-考点1考点2考点3Recordset对象的Fields集合用于返回当前记录中的字段值,例如,rs.Fields(“姓名”)返回当前记录中姓名字段的值。rs.Fields(0)返回当前记录中第一个字段的值,如果第一个字段名为“姓名”,那么rs.Fields(0)与rs.Fields(“姓名”)返回值相同。Recordset对象的MoveNext方法用于把当前记录指针移到下一条记录。若到数据表结尾还继续向下移动,程序会出错,因此在使用MoveNext前要判断Recordset的EOF属性,如果Recordset.EOF=True,表明记录已在最后一条。-17-考点1考点2考点3Recordset对象的Field-63-考点1考点2考点3【例5】
设计一个成绩查询的VB程序,学生成绩数据表的结构与部分数据如下:-18-考点1考点2考点3【例5】设计一个成绩查询的VB程-64-考点1考点2考点3程序界面如下图所示,在文本框text1中输入学生姓名后,单击“查询”按钮后,在标签label3中显示学生的相应成绩。-19-考点1考点2考点3程序界面如下图所示,在文本框tex-65-考点1考点2考点3(1)下面是其相应程序,请在划线处填入正确的语句。PrivateSubCommand1_Click()DimconnAsNewADODB.ConnectionDimrsAsNewADODB.RecordsetdimsNameasstringconn.ConnectionString=″provider=microsoft.ace.oledb.12.0;datasource=″+App.Path+″\student.accdb″conn.OpenSetrs.ActiveConnection=connrs.Open″select*fromscore″sName=text1.text-20-考点1考点2考点3(1)下面是其相应程序,请在划线处-66-考点1考点2考点3DoWhileNotrs.EOF
ifrs.Fields(″姓名″)=sNamethen
label3.caption=①
exitdo
else
rs.MoveNext
endif
Loopif②
thenlabel3.caption=″查无此人!″
rs.Closeconn.CloseEndSub(2)由程序可知,打开的数据库文件名为
,数据表名是
。
-21-考点1考点2考点3DoWhileNotrs.E-67-考点1考点2考点3答案:(1)①rs.Fields(″期中成绩″)或rs.Fields(3)②rs.eof或rs.eof=true
(2)student.accdb
score解析:本题考查的是利用ADO查询数据库的相关知识点。程序首先定义数据库连接对象conn和记录集对象rs,利用conn.ConnectionString和conn.Open两语句打开数据库“student.accdb”,利用Set
rs.ActiveConnection
=
conn和rs.Open打开数据表“score”。再使用do
while循环查询每条记录,如果当前记录的“姓名”字段值为搜索姓名,则使用rs.Fields(″期中成绩″)显示期中成绩,期中成绩在表中是第4个字段,所以也可用rs.Fields(3)获取期中成绩,找到记录结束循环。如果记录指针移到表结尾(即rs.eof=true)仍未找到,显示“查无此人”。-22-考点1考点2考点3答案:(1)①rs.Fields(-68-123456789101.有如下VisualBasic自定义函数:Functionmax(xasintger,yasinteger)asintegerifx>ythenmax=xelsemax=yEndFunction关于该函数说法不正确的是(
)A.该自定义函数名称是maxB.函数返回一个整型数据C.该自定义函数返回参数x、y中的较小数D.调用该自定义函数需要2个参数答案解析解析关闭该自定义函数返回参数x、y中的较大数。答案解析关闭C-23-123456789101.有如下VisualBas-69-123456789102.有以下VB自定义函数:Functionfx(xasinteger)
ifxmod2thenfx=x&″是偶数″elsefx=x&″是奇数″EndFunction则程序划线处应填入的代码是(
)A.asinteger B.asBooleanC.asstring D.assingle答案解析解析关闭本题要求补全自定义函数返回值的类型。由自定义函数的语句体可知,fx运算的结果是字符串,所以函数返回值的类型是string。答案解析关闭C-24-123456789102.有以下VB自定义函数:-70-123456789103.有如下VisualBasic程序:Functionjc(nasinteger)aslongdimsaslongs=1fori=1tons=s*inextjc=sEndFunction-25-123456789103.有如下VisualBas-71-12345678910PrivateSubCommand1_Click()dimsaslong,nasintegers=0n=val(text1.text)fori=1tons=s+jc(i)nextlabel1.caption=str(s)EndSub运行程序后,在文本框text1中输入5,单击按钮Command1,则在label1中显示(
)A.15 B.120 C.5 D.153答案解析解析关闭自定义函数jc的功能是计算n的阶乘,即n!=1*2*…*n,Command1_Click过程的功能是计算s=1!+2!+3!+…+n!。答案解析关闭D-26-12345678910PrivateSubCom-72-123456789104.下列VB程序用于求2个正整数x、y的最大公约数,最大公约数显示在文本框text3中。PrivateSubCommand1_Click()dimxasinteger,yasinteger,zasintegerx=val(text1.text)y=val(text2.text)
text3.text=str(z)EndsubFunctiongcd(aasinteger,basinteger)asintegerdowhilea<>bifa>bthena=a-belseb=b-aloopgcd=bEndFunction-27-123456789104.下列VB程序用于求2个正整-73-12345678910划线处正确的语句是(
)A.z=gcd B.z=gcd(a,b)C.z=gcd(x,y) D.z=gcdx,y答案解析解析关闭划线处程序调用函数gcd用以求出x,y的公约数z,所以语句是z=gcd(x,y)。答案解析关闭C-28-12345678910划线处正确的语句是()-74-123456789105.下列说法错误的是(
)A.递归函数中可以不包含条件控制语句B.递归算法代码一般较少C.递归算法一定要有终止条件D.递归函数内部必定存在调用自身函数的语句答案解析解析关闭递归函数中必须包含条件控制语句,作为递归结束的条件。答案解析关闭A-29-123456789105.下列说法错误的是()-75-123456789106.有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁,问第4个人岁数,他说比第3个人大2岁,问第3个人岁数,他说比第2个人大2岁,问第2个人岁数,他说比第1个人大2岁,问第1个人岁数,他说他10岁,请问第5个人多大?解决上述问题的VB程序代码如下:PublicFunctionage(nAsInteger)AsLongIfn=1Then
age=10Else
age=age(n-1)+2EndIfEndFunctionPrivateSubCommand1_Click()MsgBox″第五个人的年龄为″+Str(age(5))EndSub-30-123456789106.有5个人坐在一起,问第5个-76-12345678910程序中自定义函数采用的算法是(
)A.枚举算法 B.解析算法C.递归算法 D.查找算法答案解析解析关闭程序中age是自定义函数,函数内部语句“age=age(n-1)+2”调用函数自身,因此该自定义函数采用的算法是递归算法。答案解析关闭C-31-12345678910程序中自定义函数采用的算法是(-77-123456789107.下列表示“将指针移到记录集对象rs的下一条记录”的语句是(
)A.rs.open B.rs.movenextC.rs.eof D.rs.close答案解析解析关闭rs.open是打开记录集,rs.close是关闭记录集,rs.eof表示记录集结尾属性。答案解析关闭B-32-123456789107.下列表示“将指针移到记录集-78-123456789108.现有一个字符串转换程序,在文本框Text1中输入原始字符串,单击“转换”按钮Command1后,将其中的小写英文字母转换为大写,并在文本框Text2中显示。程序运行效果如下图所示。-33-123456789108.现有一个字符串转换程序,在-79-12345678910实现上述功能的VB代码如下,请在划线处填入正确的语句。PrivateSubCommand1_Click()
DimaAsString,bAsString,cAsString,iAsInteger
a=Text1.Text
Fori=1ToLen(a)c=Mid(a,i,1)①
Nexti②
EndSub-34-12345678910实现上述功能的VB代码如下,请-80-12345678910PrivateFunctionupcase(cAsString)AsString'将小写字母转换为大写字母Ifc>=″a″Andc<=″z″Thenupcase=Chr(Asc(c)-32)Elseupcase=c
EndIfEndFunction-35-12345678910PrivateFunctio-81-12345678910答案:①b=b+upcase(c)或b=b&upcase(c)
②Text2.text=b解析:自定义函数upcase的功能是将小写字母转换为大写字母。①处循环功能是把字符串a中的每个英文字母转换为大写字母,转换方法是每次取出1个字符c,然后调用函数upcase(c)转换为大写字母,并存入变量b中。循环结束把转换后的字符串显示在文本框text2中。-36-12345678910答案:①b=b+upcas-82-123456789109.下列程序的功能是将文本框text1中输入的自然数分解为3个互不相同的质数(三个质数的和等于输入的自然数),并把分解产生的质数按升序顺序显示在左边的列表框中。
例如,输入20,单击“开始处理”按钮Command1,在列表框中显示如图所示结果。-37-123456789109.下列程序的功能是将文本框t-83-12
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度特色农产品线上销售服务合同3篇
- 2025年度模特形象包装与拍摄合同3篇
- 2025年度汽车销售合伙经营合同模板3篇
- 二零二五年度养殖场劳务合同(养殖产业链金融支持)3篇
- 2025年度高效节能温室大棚租赁与管理合同3篇
- 2025年度企业股份回购退股执行合同3篇
- 二零二五年度航空航天设备供货合同范本3篇
- 农村宅基地房屋租赁合同(含农产品销售渠道2025年度版)
- 2025年度农村出租房租赁与农村民宿发展扶持合同2篇
- 二零二五年度食品包装委托加工及质量控制合同3篇
- 期末达标测试卷(二)(试卷)-2024-2025学年冀教版数学四年级上册
- 2024新版有限空间作业安全大培训
- GB/T 44413-2024城市轨道交通分类
- GB 19041-2024光气及光气化产品生产安全规范
- 拔除气管导管的护理
- 2024至2030年中国土地整治行业市场专项调研及竞争战略分析报告
- 数据交易场所发展指数研究报告(2024年)
- NBT 31021-2012风力发电企业科技文件规档规范
- 婴幼儿托育机构安全防护-整体环境布局安全隐患识别与排除策略
- 公安学基础智慧树知到期末考试答案章节答案2024年山东警察学院
- 2024智慧医院医用耗材SPD供应链绩效评价指南
评论
0/150
提交评论