《VB程序设计多试题及答案.pdf》由会员分享,可在线阅读,更多相关《VB程序设计多试题及答案.pdf(150页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、9、V i s u a l B a s i c 程序改错1.程序功能:求s=l+3+5+7+.直到s2000为止。程序中有两行有错误。改正错误,使它能输出正确的结果。(2025)平方和Pr i va t e Su b Fo r m Cl i c k()Di m i As Int eger,s As Lo ngs =0:i =1Do Unt i l s v 2000s =s +ii=i+1Lo o pPr i nt sEnd Su b答案:s 2000;i+22.程序功能:计算s=2!+4!+8!。程序中有两行有错误。改正错误,使它能输出正确的结果。(40346)Pr i va t e Su b
2、 Co mma ndl _ Cl i c k()Di m k As Int eger,i As Int egerDi m s As Lo ng,t As Lo ngs =0i =1Do Whi l e i 二 3t =1k =1Whi l e k =2*it =t *-k k =k +1Wends =s +ti =i +1w endPr i nt sEnd Su b答案:k=2;l o o p3.程序功能:计算s=2!+4!+6!+8!。程序中有错误。改正错误,使它能输出正确的结果。(41066)Pr i va t e Su b Co mma ndl _ Cl i c k()Di m k As
3、 Int eger,i As Int egerDi m s As Lo ng,t As Lo ngs =0:i =1Do Whi l e i =4t =1k =1Whi l e k =2-t =t *kk =k +1Wends =s +ti =i +1w endPr i nt sEnd Su b答案:k=2*i ;l o o p4.程序功能:求200到400间,能被3整除但不能被7整除的数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。(57)Pr i va t e Su b Co mma nd1 Cl i c k()Di m c o u nt As Int egerDi m x
4、As Int egerc o u nt =0 x 二 200Whi l e x =400If x Mo d 3=0 o r x Mo d 7 0 0 Thenc o u nt =c o u nt +1End IfX=X+1Lo o pPr i nt c o u ntEnd Su b.a nd,w end5.、.程序功必 求1到400间,同时能被3和7整除的数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。(19)Pr i va t e Su b Fo r m_ Cl i c k()Di m c o u nt As Int egerDi m x As Int egerFo r x =
5、1 To 400i f mo d(x,3)=0 a nd mo d(x、7)=0 t henc o u nt =c o u nt +1end i fN ex t c o u ntPr i nt c o u ntEnd Su b答案:x Mo d 3=0 And x Mo d 7=0;x6.程序功能:求能被3整除且至少有一位数字为5的三位数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。(85)Pr i va t e Su b Co mma nd1 Cl i c k()Di m c o u nt As Int egerDi m a As Int eger,b As Int eger,
6、c As Int egerDi m x As Int egerx 二 100do Whi l e x =999If x Mo d 3=0 Thena =Int (x /100)b =Int (x -a *100)/10)c =x -a *100-b *10If a -5 a nd b =5 a nd c =5 Thenc o u nt =c o u nt +1End IfEnd Ifx =x +1w endPr i nt c o u ntEnd Su b答案:a =5 o r b =5 o r c =5;l o o p7.程序功能:求三位偶数中,个位数字与十位数字之和除以10所得的余数是百位数
7、字的数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。(45)奇数都是45Pr i va t e Su b Co mma nd1_ Cl i c k()Di m c o u nt As Int egerDi m a As Int eger,b As Int eger,c As Int egerDi m x As Int egerc o u nt =0 x =100Whi l e x =2000 x=x+2s=s+x*xloopPrint xEnd Sub答案:s=2000;x=x+19.程序功能:解百马百瓦古题。大、小马和马驹共100匹,共驮100片瓦。大马一驮三,小马一驮二,马驹
8、二驮一,一次驮完,三种马都驮,共有多少种组合?程序中有三行有错误。改正错误,使它能输出正确的结果。(6 )Private Sub Form_Click()Dim x As Integer,y As Integer,z As IntegerDim s As Integers=0For x=1 To 33For y=1 To 50z=100-x-yIf 3*x+2*y+z/2olO O Thens=s+1End IfNext xNext yPrint sEnd Sub答案:3*x+2*y+z/2=100;Next y;Next x1 0.程序功能:求100-200之间的所有素数个数,程序中有两行有
9、错误。改正错误,使它能输出正确的结果。(21)Private Sub Commandl_Click()Number=0For x=101 To 199 Step 2i=2k=Int(x/2)Do While i=kIf x Mod i=0 Then Exit fori=i+1LoopIf i k11.程序功能:sum=d+dd+ddd+.+ddd.d(d 为 1-9 的数字)。例 如:3+33+333+3333(此时字3,n=4)。从键盘上输入d的值为8,n的值为9,求sum的值。程序中有两行有错误。改正错误,使它能输出正确的结果。987654312Private Sub Form_Click
10、()Dim d As Integer,n As Integer,i As IntegerDim sum As Longsum=0d=Vai(InputBox(d:*)n=Vai(inputBox(n:)For i=1 To nIn=tn+dsum 二 sun+tnNext iPrint sumEnd Sub答案:in=In*10+d;sum=sum-In12.程序功能:输出水仙花的个数(所谓水仙花数是指一个三位十进制数,该数的各位数字立方之和等于该数本身。例如153是一个水仙花数,因为r3+5-3+33=153)程序中有两行有错误。改正错误,使它能输出正确的结果。4Private Sub Fo
11、rm_Click()Dim number As IntegerDim n As Integer,i As Integer,j As Integer,k AsIntegerFor n=100 To 999i=n/100,百位i=Ini(n/10)-1*10,十位k=n Mod 10I f n=i*i*i+j*j*j+k*k*k Thennumber=numbre+1End IfNext nPrint numberEnd Sub答案:j=Int(n-i*100)/10);number=number+l13.程序功能:求数列2/1,3/2,5/3,8/5,1 3/8,的前10项之和。程序中有两行有错
12、误。改正错误,使它能输出正确的结果。16.47991Private Sub Form_Click()Dim i As Integer,t As Integer,n As IntegerDim a As Integer,b As IntegerDim s As Singlea=2:b=1:n=10:s=0For i=1 To ns=s+a/bt 二ba=a+ba 二 tNext iPrint sEnd Sub答案:l二a;b=t14.程序功能:猴子第1天摘下若干桃子,当即吃掉一半,又多吃一个,第二天将剩余的部分吃掉一半还多一个;以此类推,到第10天只剩余1个。问第1天共摘了多少桃子。程序中有两行
13、有错误。改正错误,使它能输出正确的结果。1534Private Sub Form_Click()Dim day As Integer,sum As Integerday=10;sum=1Do While day 1sum=sum*2day=day-1LoopPrint sumEnd Sub答案:day=10:sum=1 :sum=(sum+1)*215.程序功能:求1 200之间的能被7整除的数的平方和。程序有两处错误。改正错误,使它能输出正确的结果。377986Private Sub Command1 C lick0Dim x As IntegerDim sum As Integerx=1s
14、um=0While x=200IfxM od7=0sum=sum+x 2End IfX =X +1WendPrint sumEnd Sub答案:Dim sum As Double;If x Mod 7=0 Then1 6.程序功能:求广9 9的平方根的和并输出结果。(保留小数点两位),程序中有两行有错误。改正错误,使它能输出正确的结果。661.46Private Sub Command1_Click0Dim x As IntegerDim sum As integerx=1Do While x=99sum=sum+Sqrt(x)X=X+1Lo o pPr i nt Ro u nd(s u m,
15、2)End Su b答案:Di m s u m As Si ngl e;s u m=s u m+Sq r(x)17.程序功能:求 1,5000内能被5整除的前若干个偶数之和,直到和大于50000为止。程序中有两行有错误。改正错误,使它能输出正确的结果。50500Pr i va t e Su b Co mma nd1_ C1i c k()Di m x As Int egerDi m s As Lo ngx =2Do Whi l e x 50000 ThenEx i l fo rEnd IfEnd Ifx =x +2Lo o pPr i nt sEnd Su b答案 ex i t do (只有一处
16、有错)18.程序功能:求3000以内能被17或23整除的正整数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。299Pr i va t e Su b Co mma nd1_ C1i c k()Di m x As Int egerDi m c o u nt As Int egerFo r x =1 To 3000 St ep If x Mo d 17=0 a nd x Mo d 23=0 Thenc o u nt =c o u nt +1End IfN ex t xPr i nt c o u ntEnc l Su b答案:l;o r19.程序功能:已知一个数列的前3项为0,0,1,以
17、后每项为前3项的和,求此数列的第36项。程序中有两行有错误。改正错误,使它能输出正确的结果。334745777Pr i va t e Su b Co mma nd 1 Cl i c k ODi m a As Lo ngDi m b As Lo ngDi m c As Lo ngDi m d As Lo ngDi m i As Int egera =0:b =0:c =1Fo r i =1 To 36d=aa =bb =cc =a +b +cN ex t iPr i nt cEnd Su b答案:33;c=a+b+d2 0.程序功能:求数列2,4,8,16,32,前若干项之和。当和大于9000时
18、,终止求和并输出结果。程序中有两行有错误。改正错误,使它能输出正确的结果。16382Pr i va t e Su b Co mma nd1_ C1i c k()Di m s As Int egerDi m x As Int egerx =1Dox =x+2s =s +xUnt i l s 9000Pr i nt sEnd Su b答案:x=x*2;l o o p u nt i l s 900021.程序功能:已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。问 100,300之间有多少个这样的数。程序中有两行有错误。改正错误,使它能输出正确的结果
19、。19Pr i va t e Su b Co mma ndl _ Cl i c k()Di m nl As Int eger,n2 As Int egerDi m x As Int egerDi m i As Int egern2=0Fo r x =100 To 300n 1 =0Fo r i=1 To 100If x Mo d i =0 Thennl =nl +1End IfN ex t iIf x Mo d nl =0 Thenn2=n2+1End IfN ex t xPr i nt n2End Su b答:n 1 =0;x22.程序功能:我国今年的国民生产总值为45600亿元,若今后每年
20、以9%的增长率增长,计算多少年后能实现国民生产总值翻一番?程序中有两行有错误。改正错误,使它能输出正确的结果。9P r i v at e S u b Co m m an d1_ C1i ck()Di m p A s L o n g,p l A s L o n gDi m n A s I n t egern =0p l =45600P =P lDop=p*(1+9)n =n +1L o o p U n t i l p _ 2*p lP r i n t nE n d S u b答案:D=D*(1 +0.09);二23.程序功能:已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而
21、24正好被其因子个数8整除。求 100,300之间能被其因子数目整除的数中最大的数。程序中有两行有错误。改正错误,使它能输出正确的结果。296P r i v at e S u b Co m m an d1_ Cl i ck()Di m N A s I n t egerDi m s A s I n t egerDi m i A s I n t egerF o r N =300 T o 100 S t ep -1s =0F o r i =1 T o NI f N M o d i =0 T h ens =s +1E n d I fN ex t iI f s M o d N=0 T h enP r i
22、 n t NE x i t F o rE n d I fN ex t NE n d S u b答案:N m o d s=0(只有一处错误)2 4.程序功能:有一个三位数满足下列条件:(1)三位数字各不相同;(2)此数等于它的各位数字的立方和。求这种三位数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。4 153 370 371 407P r i v at e S u b Co m m an d1_ Cl i ck()Di m x A s I n t eger,a A s I n t eger,b A s I n t egerDi m c A s I n t eger,n A s I
23、 n t egern=0 x=100Do While x 999a=In t(x/100)b=Int(x/10)-a*10c=x-a*100-b*10If a c And b c And a b And x=a-3+b 3+c 3 Thenn=n+1End Ifx=x+1LoopPrint nEnd Sub答案:x 二999;将o r全部换成and25.程序功能:求 3,500内所有素数之和。程序中有一行错误,改正错误,使它能输出正确的结果。21534Private Sub Commandl_Click()Sum=0For x=3 To 500flag-TrueFor i=2 To x-1If
24、 x Mod i=0 Thenflag=FalseExit ForEnd IfNext iIf nol flag ThenSum=Sum+xEnd IfNext xPrint SumEnd Sub答案:flag26.程序功能:求 3-1000之间最大的五个素数之和。程序中有两行有错误。改正错误,使它能输出正确的结果。4919Private Sub Command1_C1ick()n=0:Sum=0 x=1000Doflag=TrueFor i=2 To x-1If x Mod i=0 Thenflag=FalseExit doEnd IfNext iIf flag ThenSum=Sum+xn
25、=n+1If n=5 Then Exit DoEnd Ifx=x-1Loop While x=327.程序功能:把一张一元钞票,换成一分、二分和五分硬币,每种至少8枚,求方案数。程序中有两行有错误。改正错误,使它能输出正确的结果。80Private Sub Command1_C1ick()n=0For x=_l To 100For y=8 To 50For z=8 To 20I f x+y*2+z*5=100 Then n=n+1Next zNext yNext xPrint nEnd Sub答案:8;x+y*2+z*5=10028.程序功能:求区间 500,2500中按递增顺序的第25个素数
26、。程序中有两行有错误。改正错误,使它能输出正确的结果。659Private Sub Commandl_Click()n=0For x=500 To 2500flag=FalseFor i=2 To x-1If x Mod i=0 Thenflag=TrueExit ForEnd IfNext iIf flag Thenn=n+1If n=25 Then Exit ForEnd IfNext xPrint xEnd Sub答案:not flag(只有一处错误)2 9.程序功能:设某四位数的千位数字与十位数字的和等于百位数字与个位数字的积,例如,对于四位数:9512,9+1=5*2,求所有这样的四
27、位数之和。程序中有一行有错误。改正错误,使它能输出正确的结果。1078289Private Sub Command1_C1ick()Sum=0For x=1000 To 9999a=Int(x/1000)b-Int(x/100)-a*10c=Int(x/10)-a*100-b*10d=x-a*1000-b*100-c*10I f a+c=b*d ThenSum=Sum+xEnd IfNext xPrint SumEnd Sub答案:b=Int(x/100)-a*10 这样的数:207 99923 0.程序功能:求 200,300之间的有奇数个不同因子的最大整数。程序中有两行有错误。改正错误,使
28、它能输出正确的结果。289Private Sub Command1_Click()For x=300 To 200 Step-1n=0For i=1 To xIf x Mod i=0 Thenn=n+1End IfNext iIf n/2 0 ThenPrint xExit ForEnd TfNext xEnd Sub答案:x=300 To 200 Step-1;n Mod 2 0 03 1.程序功能:计算y=l+2/3+3/5+4/7+-+n/(2*n-l)(n=50),要求:按四舍五入的方式精确到小数点后第二位。程序中有两行有错误。改正错误,使它能输出正确的结果。26.47Private
29、Sub Command1_Click()Dim s As SingleDim n As Integers=0For n=1 To 50s-s+n/2*nTNext nPrint round(s)E n d S u b答案:s =s +n /(2*n-l);r o u n d(s,2)3 2.程序功能:求当N=20时,1/(1*2)+1/(2*3)+1/(3*4)+.+1/(N*(N+1)的值。要求:按四舍五入的方式精确到小数点后第二位。程序中有一行有错误。改正错误,使它能输出正确的结果。0.95P r i v at e S u b Co m m an d1_ C1i ck()s =0:n =1
30、Do W h i l e n =20s =s +l/n*(n+l)n =n +1L o o pP r i n t F o r m at (s,#0.#)E n d S u b答案:s =s +1/(n *(n +1)3 3.程序功能:求m=5 0时,表达式t=l-l/(2*2)-l/(3*3)-l/(m*m)的值。要求:按四舍五入的方式精确到小数点后第四位。程序中有两行有错误。改正错误,使它能输出正确的结果。0.3749P r i v at e S u b Co m m an d1_ C1i ck()Di m t A s S i n gl eDi m m A s I n t egerm =2t
31、 =1Do W h i l e m 500 T h en E x i t F o rN ex t xP r i n t sE n d S u b3 6.程序功能:百钱百鸡问题。用100钱买1 0 0只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。程序中有一行有错误。改正错误,使它能输出正确的结果。3P r i v at e S u b Co m m an dl _ Cl i ck()s =0co ck =1Do W h i l e co ck =100/5h en 二 1Do W h i l e h en =1I f x M o d 13=0 a
32、n d x M o d 17=0 T h ens =s +xn =n +1E n d I fI f n =10 T h en E x i t Dox =x +1L o o pP r i n t sE n d S u b答案:O r ;x =x -1381短 序 为 能:求 10,1000 之间的所有完数之和。各真因子之和(不包括自身)等于其本身的正整数称为完数。例如:6=1+2+3,6是完数。程序中有有错误。改正错误,使它能输出正确的结果。524P r i v at e S u b Co m m an d1_ C1i ck()Di m s u m A s I n t egerDi m x A
33、s I n t eger,k A s I n t egerDi m i A s I n t egers u m =0F o r x =10 T o 1000k =xF o r i =1 T o x-lI f x M o d i =0 T h enK-K-iE n d I fN ex t iI f k =0 T h ens u m =s u m +xE n d I fN ex t xP r i n t s u mE n d S u b答案:x-i -k=k-i易.、垣序功整求满足以下条件的(a,b,c)的组数:(1)l/(a 2)+l/(b 2)=l/(c 2);(2)abc;(3)a+b+c1
34、00o程序有错误,改正错误,使程序能输出正确的结果。(2)P r i v at e S u b Co m m an d1 Cl i ck()s =0F o r c=1 T o 100F o r b=1 T o 100F o r a=1 T o 100I f a+b+c 100 o r 1/(a 2)+1/(b 2)=1/(c 2)T h en s =s +1N ex t aN ex t bN ex t cP r i n t sE n d S u b答案I f a+b+c b A n d b c T h en s =s +14 0.程序功能:求四位奇数中,各位数字之积(积不为0)是6 0的倍数的
35、数之和。程序中有一行错误,改正错误,使程序能输出正确的结果。3456254Private Sub Command 1 ClickOnuml=0For x=100 To 9999 Step 2a=Int(x/1000)b=Int(x/100)-a*10c=Int(x/10)-a*100-b*10d=x-a*1000-b*100-c*10I f a*b*c*d Mod 60 二 0 Thennuml=numl+xEnd IfNext xPrint numlEnd Sub答案:a*b*c*d Mod 60 二()And b ()Andc ()And d )()4 1.程序功能:有一堆零件(零件个数不
36、超过1000),如果分成4个零件一组余2个;7个一组余3个;9个一组余5个。求这堆零件的个数有几种可能。程序中有错误,改正错误,使程序能输出正确的结果。4Private Sub Command1_C1ick()For x=1 To 1000If x M od 4=2 or x Mod 7=3 or x M od 9=5 Theni=i+1End IfNext xPrint i答:将o r变 成andEnd Sub4 2.程序功能:百钱百鸡问题。用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。程序中有一行有错误。改正错误,使它能输
37、出正确的结果。3Private Sub Command1_C1ick()s=0cock=1Do While cock=100/5hen=1Do While hen k ThenPrint xExit ForEnd IfNext xEnd Sub答案:For x=666 To 444 Step-1;exit for46.程序功能:将50元兑换成5元、2元和1元的方法的种数(每种面额至少2张)。程序中有两行有错误。改正错误,使它能输出正确的结果。72Private Sub Commandl_Click()For x=2 To 10For y=2 To 25For z=2 To 50If x+y-z
38、=50 ThenN=N+1Exit ForEnd IfNext zNext yNext xPrint NEnd Sub答案:5*x +2*y +z=50:去掉 exit for47.程序功能:求这样的一个三位数,其个位数不大于2。若将个位数移动到百位之前(如:321移成1 3 2),新三位数大于原三位数的两倍。程序中有两行错误,改正错误,使程序能输出正确的结果。102Private Sub Command1_Click()For i=0 To 9For j=0 To 9For k=0 To 2N=100*i+1 0*j+km =100*k+1 0*i+jIf m =2*N Then Print
39、 NNext kNext jNext iEnd Sub答案:For i=1 To 9;For k=1 To 248.编程求方程5X程Y=2,在|X|=50,|Y|=100内的整数解,X+Y最大值是多少?112(填空题)Private Sub Form click()Max=0For x=-50 To 50For y=-100 To 100I f 5*x-4*y=2 Then s=x+yIf s Max Then Max 二 sNext yNext xPrint MaxEnd Sub4 9.求方程5X-4Y=2,在|X|=100,|Y|Max Then Max-sEnd IfNext yNext
40、 xPrint MaxEncl Sub5 0.找出1T000之间的全部同构数的和。同构数是指一个数,它出现在它的平方数的右端。例如,5的平方是25,5是2 5中右端的数,5就是一个同构数。同理,25也是一个同构数。1114Private Sub Comtnandl Click()s=0For x=1 To 1000y=Len(Trim(Str(x)i=x*xSelect yCase 1If x=V ai(Right(Trim(Str(i),1)Thens=s+xEnd IfCase 2If x=Vai(Right(Trim(Str(i),2)Thens=s+xEnd IfCase 3If x=
41、V ai(Right(Trim(Str(i),3)Thens=s+xEnd IfCase 4If x=V ai(Right(Trim(Str(i),4)Thens=s+xEnd IfEnd SelectNext xPrint sEnd Sub答案:Select Case y51.程序功能:求字符串87IM&2345kjwdssdcf中数,字母字符的ASCH码之和。程序中有一行错误,改正错误,使程序能输出正确的结果。1113Private Sub Commandl ClickOalpha=0st=87IM&2345kjvdssdcf”For i=1 To stch=Mid$(st,i,1)Sel
42、ect Case chCase a To zalpha=alpha+Asc(ch)Case A Io Zalpha=alpha+Asc(ch)End SelectNext iPrint alphaEncl Sub答案:Len(st)52.求字符串“This is my Basic”所有字符的ASCH码之和。程序中有一行有错误。改正错误,使程序能输出正确结果。1436Private Sub Commandl ClickOSum=0s=This is my Basic”For i=1 To sSum=Sum+Asc(Mid$(s,i,1)Next iPrint SumEnd Sub答案:Len(s
43、)53录 在1,2,3_ 100中,任选两个不同的数,要求它们的和能被3和7整除的数的对数(注意:3+5和5+3认为是同一对数)。2121Private Sub Form Click()Dim n As Integer,i As Integern=0i=1Do While i=100j=1Do While j=100If mod(i+j,3)=0 or mod(i+j,7)=0 Thenn=n+1End Ifj=j+1Loopi 二 i-1LoopPrint n/2End Sub答案:If(i+j)Mod 3=0 Or(i+j)Mod 7=0)And i j Then;i=i+l54.一个两位
44、数的正整数,如果将其个位数与十位数字对调所生成的数称为其对调数,如28是8 2的对调数。现给定一个两位的正整数4 6,请找到另一个两位的整数,使这两个数之和等于它们的各自的对调数之和。这样的另一个两位数有多少个。程序中有两行有错误。改正错误,使它能输出正确的结果。8Private Sub Form Click()Dim x As Integer,y As Integer,number As IntegerDim xf As Integer,yf As Integernumber=0 x=46xf=(x Mod 10)*10+Int(y/10)For y=10 To 99yf 二(y Mod 1
45、0)*10+Int(y/10)If x+y=xf+yf Thennumber=number+1End IfNext yPrint numberEnd Sub答案:x(只有一处错误)5 5.程序功能:若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子之和1+2+4+7+14+28=56=2*28,28 是多因子完备数。求 1,200之间有多少个多因子完备数。改正错误,使它能输出正确的结果。4Private Sub Command1_Click()Dim N As IntegerDim s As IntegerDim i As IntegerDim c As Intege
46、rc=0For N=1 To 200s=0For i=1 To NIf i Mod N 0 Thens=s+iEnd IfNext iIf N Mod s=0 Thenc =c +1E n d I fN e x t NP r i n t cE n d S u b答案:i M o d N =0;s M o d N =05 6 .若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。例如:由于7 3 9 6=8 6-2,且7+3+9+6=2 5=5”,则称7 3 9 6是“四位双平方数”。求最 小 的“四位双平方数”。程序中有行一有错误。改正错误,使
47、它能输出正确的结果。1 5 2 1P r i v a t e S u b C o m m a n d 1 C l i c k()F o r x =1 000 To 9 9 9 9a =I n t(x /1 000)b =I n t (x /1 00)-a *1 0c =I n t(x /1 0)-a *1 00-b *1 0d =x -a *1 000-b *1 00-c *1 0I f S q r(x)=I n t (S q r(x)A n d I n t(S q r(a +b +c+d)=S q r(a +b +c +d)Th e nP r i n t xE x i t F o rE n
48、d I fN e x t xE n d S u b答案:I n t (S q r (a +b +c +d)=S q r (a +b +c +d)5 7 .程序功能:求1 0的阶乘,程序中有一行有错误。改正错误,使它能输出正确的结果。3 6 2 8 8 00P r i v a t e S u b C o m m a n d l _ C l i c k()P r i n t f u n(1 0)E n d S u bP r i v a t e F u n c t i o n f u n(n A s I n t e g e r)A s L o n gI f n _ 0 Th e nf u n 二 1
49、E l s e:f u n =n *f u n(n -1)E n d I fE n c l F u n c t i o n答案:n=05 8.、短序功能:求整数2 3 1 0的所有质因子(即所有为素数的因子)之和。程序的I s p r i m e O函数中有一行有错误。改正错误,使它能输出正确的结果。2 8P r i v a t e S u b C o m m a n d l _ C l i c k()s =0k =2 3 1 0F o r j =2 To kI f (k M o d j =0 A n d I s p r i m e(j)Th e ns =s +jE n d I fN e x
50、t jP r i n t sE n d S u bP r i v a t e F u n c t i o n I s p r i m e(n)D i m f l a g A s B o o l e a nf l a g =Tr u eI f n =2 Th e nI s p r i m e =Tr u eE l s eF o r i =2 To n -1I f n M o d i =0 Th e nf l a g 二 F a l s eE x i t F o rE n d I fN e x t iI s p r i m e =t r u eE n d I fE n d F u n c t i