第三章答案一.选择1-5CABBC6-10CAAAA11-15DACDB16-20CDDCB21-25BADDC26-30BCBDD31-35DCBDA36-40BADBB41-45DABCD46-50DACCA51-55DDABD56-60DDBDD61-65BCDCD66-70DADCA71-75ABCBA76-80BBDBB81-85ABDBC86-90BCADB91-93CAA二.填空1.(1)ASCII去除两边的空格;(2)□□ASCII去除右边的空格;(3)ASCII□□去除左边的空格;2.(4)xmod5=0ORxm/d9=0如果写成xmod5=0ANDxmod9=0则表示x既是5的倍数又是9的倍数。3.(5)CDEF4.(6)SCII编码Mid表示按字符取子串,在VB中,中文与西文字符都算一个字符。5.(7)整型(8)长整型(9)单精度型(10)双精度型6.(11)Integer(12)%7.(13)33根据循环次数计算公式得。8.(14)10该题相当于统计两重循环执行了多少次。9.(15)4相当于统计外循环体执行多少次。(16)12相当于统计两重循环体执行多少次。10.(17)1512出了循环,循环控制变量i是在循环语句退出时赋的值。11.(18)220321422523主要目的搞清(1)在循环中Tab函数的作用;(2)“+”和“&”当运算符两边数值和数字字符混合时的区别。12.(19)**$$$****$$$$$i为奇数和偶数时决定显示的内容和个数问题。13.(20)Len(a)解该题的思路是将字符串从两头往中间对应交换位置(21)Int(n\2)(22)Mid(a,n-i+1,1)(23)Mid(a,n-i+1,1)14.(24)a(i,i)=n(25)b(i,j)=a(j,i)15.(26)Preservea(n+1)插入一个数,先要使数组加一个元素,而且要保留原数据。(27)a(i+1)=a(i)找插入的位置。(28)a(i+1)=m新数据找到插入位置,插入到数组中。16.(29)t=a(i)(30)a(j)=a(j+1)17.(31)pos=pos+Arr(k)或pos=Arr(k)+pos(32)neg=neg+Arr(k)或neg=Arr(k)+neg先声明一个数组Arr,并指定下标的最小值为1,接着用Array函数为数组元素赋值,即把一个数据集读入数组Arr,用For循环来指定显示某个数组元素并对数组元素的值进行判断,如果数组中第k个元素的值大于0,应该存到统计正数和的变量中,否则存到统计负数和的变量中。题目用变量pos累计正数的和,所以求正数和的表达式应写为:pos=pos+Arr(k);由于求负数和的变量为neg,所以求负数和的表达式应写为:neg=neg+Arr(k)。18.(33)sum+fun(i)或fun(i)+sum(34)fun=p题目要求计算1!+2!+3!+……+n!,其中求每一项的阶乘可以通过调用函数fun来完成.先定义一个变量i为整型数据,作为循环控制变量,并给Sum变量赋初值,初值为0。由用户输入一个数值赋给变量n,并将变量n的数据类型转换为数值型。循环变量i从1到n之间发生变化,函数fun利用主程序传递过来的参数,最后要求返回该过程计算的值,变量p用来存放n!,所以最后应该返回变量p的值给调用过程,Function过程通过过程名=表达式把值赋给过程名,所以Functionfun中缺少过程返回值语句,应该填写fun=p,表示过程返回变量p的值。要累计每一项的阶乘的和,因此主程序中缺少累计各项阶乘的的语句,每计算一项阶乘,就将它的值累加给变量Sum,所以Sum变量作为一个累计数,在表达式中既要累计和,又要调用函数的命令,即sum+fun(i)。19.(35)1020.(36)计算1到8的和(37)3621.(38)3022.(39)Maxarr(i)(40)Minarr(i)23.(41)-5(42)524.(43)X%=0andX%10025.(44)6-i26.(45)10(46)10(47)A((i-1)*10+j)27.(48)0(49)n-128.(50)429.(51)9(52)x30.(53)x5(或x6或x=6或x=7)31.(54)1632.(55)a()(56)10(57)n=n-133.(58)x5或x6或x=6或x=7或x=7Do…LoopUntil是先执行循环体,再判断条件表达式,如果表达式的值为True,则执行Loop下面的语句,如果为False,则继续执行循环体。本题中执行第一次循环后变量x的值为3,执行第二次循环后变量x的值为5,执行第三次循环后变量x的值为7,这时要结束循环,表达式的值要为True,因此表达式的值要当变量x的值为5时为False,继续执行循环体,大于5小于7时为True,结束循环,因此变量x的判断条件要介于5和7之间,即x5或x6或x=6或x=7或x=7。34.(59)435.(60)sum+fun(i)(61)fun=p36.(62)1(63)a(k)37.(64)12(65)10三.编程1.PrivateSubCommand1_Click()Dims1AsString,s2AsString,iAsIntegers1=Text1.TextFori=Len(s1)To1Step-1s2=s2+Mid(s1,i,1)NextiText2.Text=s2EndSub2.PrivateSubForm_Click()DimrowAsInteger,colAsIntegerForrow=1To5Forcol=1Torow-1Print;NextcolPrint*****NextrowEndSub3.PrivateSubCommand1_Click()DimaAsInteger,bAsInteger,cAsInteger,maxAsIntegera=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text4.Text)IfabThenmax=aElsemax=bEndIfIfcmaxThenmax=cEndIfText4.Text=Str(max)EndSub4.PrivateSubCommand1_Click()DimaAsInteger,iAsInteger,sumAsIntegera=Val(Text1.Text)sum=0Fori=1Toasum=sum+iNextiText2.Text=Str(sum)EndSub5.PrivateSubCommand1_Click()DimaAsInteger,iAsInteger,facAsIntegera=Val(Text1.Text)fac=1Fori=1Toafac=fac*iNextiText2.Text=Str(fac)EndSub6.PrivatesubForm_Click()DimxasstringX=inputbox(“请输入一个正整数”)X=right(x,1)+left(x,1)PrintxEndsub7.privatesubcommand1_click()Print(val(text1.text)+val(text2.text)+val(text3.text))/3Endsub8.PrivateSubForm1_Load()Command2.Enabled=FalseEndSubPrivateSubCommand1_Click()Text1.Text=欢迎使用本系统Command2.Enabled=TrueEndSubPrivateSubCommand2_Click()EndEndSub9.PrivateSubCommand1_Click()DimaAsInteger,bAsInteger,cAsInteger,minAsIntegera=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)IfabThenmin=aElsemin=bIfcminThenmin=cText4.Text=Str(min)EndSub10.PrivateSubCommand1_Click()DimaAsInteger,bAsInteger,cAsInteger,averAsSinglea=Val(Text1.Text)b=Val(Text2.Text)c=Val(Text3.Text)aver=(a+b+c)/3#Text4.Text=Str(aver)EndSub11.PrivateSubCommand1_Click()DimiAsInteger,bAsIntegerFori=1To7Randomizeb=Fix(Rnd()*22)+1Printb;NextiPrintEndSub12.PrivateSubForm_Click()DimrowAsInteger,colAsIntegerForrow=5To1Step-1Forcol=1Torow-1Print;NextcolPrint*****NextrowEndSub13.PrivateSubForm_Load()Text1.TabIndex=0'Option1.Value=TrueText1.Text=Text2.Text=EndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)Option1.Value=FalseOption2.Value=FalseIfKeyAscii=13ThenOption1.Value=True'Option1.SetFocusElseIf(KeyAsciiAsc(0)OrKeyAsciiAsc(9))AndKeyAscii8ThenKeyAscii=0s=MsgBox(请输入数字!,48,提示)'MsgBox请输入数字!,48,提示EndIfEndSubPrivateSubOption1_Click()n=Val(Text1.Text)s=0IfOption1.Value=TrueThenForI=1TonStep2s=s+INextIEndIfText2.Text=sEndSubPrivateSubOption2_Click()n=Val(Text1.Text)s=0ForI=0TonStep2s=s+INextIText2.Text=sEndSubPrivateSubCommand1_Click()Option1.Value=FalseOption2.Value=FalseText1.Text=Text2.Text=Text1.SetFocusEndSubPrivateSubCommand2_Click()EndEndSub14.PrivateSubCommand1_Click(IndexAsInteger)DimSAsSingle,LAsSingle,rAsSingler=Text1.TextIfIndex=0ThenL=2*3.14*rText2.Text=Str(L)ElseS=3.14*r*rText3.Text=Str(S)EndIfEndSub15.PrivateSubCommand1_Click()'奇数和DimsumAsIntegersum=0'给sum赋初值Fori=1To100Step2'步长step为2sum=sum+iNextText1.Text=Str(sum)EndSub16.PrivateSubCommand1_Click()'偶数和DimsumAsIntegersum=0'给sum赋初值Fori=0To100Step2'步长step为2sum=sum+iNextText1.Text=Str(sum)EndSub17.PrivateSubCommand1_Click()DimpAsDouble'最后的积的值很大用双精度定义p=1'注意积p得初值为1Fori=1To100Step1'i初始值为