- 83.00 KB
- 2022-07-29 发布
- 1、本文档由用户上传,淘文库整理发布,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,请立即联系网站客服。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细阅读内容确认后进行付费下载。
- 网站客服QQ:403074932
难中等简单-------------------------------------------------字符串处理-------------------------------------------------'题目:对字符串进行加密处理。'加密过程:'将每个字母C加一序数K=5,即c=chr(Asc(c)-5),'这时"Z"→"U","z"→"u","Y"→"T"…'当加序数后的字母小于"A"或"a"则c=Chr(Asc(c)-k+26)'-------------------------------------------------PrivateFunctionEnyStr(strIAsString)AsString'**********Program*********strnew=""‘加密后的新字符串Fori=1ToLen(strI)'依据字符串的长度确定循环次数c=Mid(strI,i,1)'取出第i个字符Ifc<>""Then‘空格不加密c=Chr(Asc(c)-5)Ifc<"a"Orc<"A"Thenc=Chr(Asc(c)-5+26)strnew=strnew+cElsestrnew=strnew+""EndIfNextiEnyStr=strnew'**********End*************EndFunctionPrivateSubForm_Load()ShowPrintEnyStr("abcdefxyz")WWJTEndSub题目:统计字符串中的单词个数。'算法思路:'(1)从文本(字符串)的左边开始,取出一个字符;'设逻辑量WT表示所取字符是否是单词内的字符,初值设为False'(2)若所取字符不是"空格","逗号","分号"或"感叹号"等单词'的分隔符,再判断WT是否为True,若WT不为True\n则表是新单词的开始,'让单词数Nw=Nw+1,让WT=True;'(3)若所取字符是"空格","逗号","分号"或"感叹号"等单词的分隔符,'则表示字符不是单词内字符,让WT=False;'(4)再依次取下一个字符,重得(2)(3)直到文本结束。'-------------------------------------------------PrivateFunctionCountWord(strIAsString)AsInteger'**********Program*********wt=0nw=0Fori=1ToLen(strI)ch=Mid(strI,i,1)Ifch=""Orch=","Orch=";"Orch="!"Orch="."Thenwt=0ElseIfwt=0Thennw=nw+1wt=1EndIfEndIfNextiCountWord=nw'**********End*************EndFunctionPrivateSubForm_Load()ShowPrint"单词数:"&CountWord("Hello,Word!GoodMorning.")WWJTEndSub\n-------------------------------------------------数列求和-------------------------------------------------'题目:(事件)单击窗体。'(响应)求从100到1000之间所有是3的倍数的数之'和,当和大于3000时,停止计算并输出和。请将结果输'出到窗体上,并存入所给变量SUM中。使用for...next语'句完成程序PrivateSubForm_Click()DimsumAsInteger'*****************Program**************Fori=100to1000Ifimod3=0thensum=sum+iIfsum>=3000thenexitforNexti'***************End*************************CallYZJ(sum)EndSubPrivateSubYZJ(iAsInteger)DimOUTAsIntegerOUT=FreeFileOpenApp.Path&"\out.txt"ForOutputAs#OUTPrint#OUT,iClose#OUTEndSub'题目:(事件)单击窗体。'(响应)输出斐波那契数列1,1,2,3,5,8,13...第20个'数的值'即f1=1(n=1)'f2=1(n=2)'fn=f(n-1)+f(n-2)(n≥3)'使用for...next语句完成程序,并将结果'存入变量sum中'-------------------------------------------------PrivateSubForm_Click()DimsumAsInteger,f1AsInteger,f2AsIntegerf1=1f2=1'*****************Program**************Fori=3to20‘方法一F3=f2+f1F1=f2\nF2=f3NextiSum=f3***************************Dimf(20)asinteger‘方法二F(1)=f1F(2)=f2Fori=3to20F(i)=f(i-1)+f(i-2)NextiSum=f(20)'***************End*************************CallYZJ(sum)EndSub'题目:(事件)单击窗体。'(响应)求200~300之间既能被3整除又能被7整除的数。'并求出所有数之和存入变量SUM中PrivateSubForm_Click()DimsumAsIntegersum=0'*****************Program************ForI=200to300IfImod3=0andImod7=0thenSum=sum+iEndifNexti'***************End******************YZJ(sum)EndSub'题目:(事件)单击窗体。'(响应)求1-100中为5或7的倍数的和。请将结果'输出到窗体上,并存入所给变量SUM中。'使用while...wend语句完成程序'-------------------------------------------------PrivateSubForm_Click()DimsumAsInteger'*****************Program**************I=1Whilei<=100If(imod5=0)or(imod7=0)then\nsum=sum+iEndifI=i+1wend'***************End*************************CallYZJ(sum)EndSub'题目:(事件)单击窗体。'(响应)求100到500之间奇数的和,将结果输出'在窗体上并存入变量SUM中。'使用do...loopuntil语句完成程序'PrivateSubForm_Click()DimsumAsLong'*****************Program**************I=101DoSum=sum+iI=i+2Loopuntili>500'***************End*************************EndSCallYZJ(sum)EndSub'题目:编写程序,当单击窗体时求出1+1/3+1/5+1/7+...'的和,直到所加项1/n小于10的-3方,所求结果用'变量s存放,并在窗体上输出计算结果。'(要求用While.............Wend循环来做此题)'-------------------------------------------------PrivateSubForm_Click()Dims!,n%'**********Program**********N=1DoWhile1/n>=0.001S=s+1/nN=n+2loop\n'**********End**********wwjtCStr(s)EndSub'题目:(事件)双击窗体。'(响应)求3+6+9+12+15+18+……+300的和,并将结果输出到窗体上。'将结果存入变量SUM中'-------------------------------------------------PrivateSubForm_DblClick()DimsumAsInteger'**********Program************Fori=3to300step3Sum=sum+iNextiPrintsum'*********End***************YZJ(sum)EndSub'题目:(事件)单击窗体。'(响应)求50以内所有偶数的和,并在窗体上输出出来。'将结果存入变量S中2+4+6+…….+48+50'-------------------------------------------------PrivateSubForm_Click()DimsAsInteger'********Program*********Fori=2to50step2s=s+iNexti'*********End***********YZJ(s)EndSub题目:(事件)单击窗体。'(响应)已知sum=1!-2!+3!-4!...-10!,'请将sum结果值输出到窗体上。'使用dowhile...loop语句完成程序'-------------------------------------------------\nPrivateSubForm_Click()DimpAsLong'p变量存放阶乘的值DimsumAsLong'*****************Program**************sum=0i=1dowhilei<=10‘外部循环控制数列的项数p=1‘n表示通项:i!j=1dowhilej<=I‘内部循环用来求通项p=p*jj=j+1loopsum=sum+(-1)^(i+1)*pi=i+1loop'***************End*************************CallYZJ(sum)EndSub题目:(事件)单击窗体。'(响应)求1!+2!+3!+……+10!的值,并在窗体上输出。'结果存入变量L中'-------------------------------------------------'注意:请在指定的事件内编写代码。'-------------------------------------------------PrivateSubForm_Click()DimlAsLong'*********Program************L=0Fori=1to10‘外部循环控制数列的项数N=1‘n表示通项:i!Forj=1toI‘内部循环用来求通项N=n*jNextjL=l+nNexti'***********End**************YZJ(l)EndSub题目:编写程序计算以下累加和的结果'“1-2+3-4+5-6+7……-20=”,'并把结果通过窗体打印出来。\n'-------------------------------------------------PrivateSubForm_Click()Dimi%,s%'i为循环变量,s保存累加和的结果'**********Program**********'**********End**********wwjtsEndSub题目:(事件)单击窗体。'(响应)求1!+2!+3!+4!+5!并将结果输出到窗体上。'结果存入变量S中'-------------------------------------------------PrivateSubForm_Click()DimsAsIntegers=0'*********Program************'**********End*****************YZJ(s)EndSub'题目:(事件)双击窗体。'(响应)求3+6+9+12+15+18+……+300的和,并将结果输出到窗体上。'将结果存入变量SUM中'-------------------------------------------------PrivateSubForm_DblClick()DimsumAsInteger'**********Program************Sum=0Fori=3to300step3Sum=sum+iNexti\nPrintsum'*********End***************YZJ(sum)EndSub'题目:(事件)单击窗体。'(响应)求50以内所有偶数的和,并在窗体上输出出来。'将结果存入变量S中'-------------------------------------------------PrivateSubForm_Click()DimsAsInteger'********Program*********S=0Fori=1to50IfImod2=0thens=s+iNexti'*********End***********YZJ(s)EndSub'-------------------------------------------------'【程序设计】'-------------------------------------------------'题目:(事件)单击窗体。'(响应)已知sum=1!-2!+3!-4!...-10!,'请将sum结果值输出到窗体上。'使用dowhile...loop语句完成程序'-------------------------------------------------PrivateSubForm_Click()DimpAsLong'p变量存放阶乘的值DimsumAsLong'*****************Program**************Sum=0I=1‘循环变量赋初值Dowhilei<=10X=1Forj=1toiX=x*jNextjSum=sum+(-1)^(i+1)*xI=i+1loop\n'***************End*************************CallYZJ(sum)EndSub'题目:(事件)单击窗体。'(响应)求1!+2!+3!+……+10!的值,并在窗体上输出。'结果存入变量L中'-------------------------------------------------'注意:请在指定的事件内编写代码。'-------------------------------------------------PrivateSubForm_Click()DimlAsLong'*********Program************Sum=0Fori=1to10X=1Forj=1toiX=x*jNextjSum=sum+xNextiI=sumPrintl'***********End**************YZJ(l)EndSub'题目:编写函数fun其功能是:根据整型形参m,'计算如下公式的值:y=1/2!+1/4!+...+1/m!'(m是偶数)'-------------------------------------------------PrivateFunctionfun(mAsInteger)AsSingle'**********Program*********y=0‘不要对形参赋值fori=1tom/2‘外部循环控制数列的项数a=1‘a表示通项的分母forj=1to2*i’内部循环求解通项a=a*jnextjy=y+1/aNextiFun=y‘函数过程一定要对函数名赋值\n'**********End*************EndFunctionPrivateSubForm_Load()ShowPrintfun(6)WWJTEndSub-------------------------------------------------数的判断与拆分-------------------------------------------------'题目:求1000以内的水仙花数(水仙花数一个三位数,'其各位数的立方和等于该数本身,公式如图1所示)。'要求将水仙花数保存到数组a()中,并打印到窗'体上。请用For循环结构实现。Privatea()AsInteger'请将水仙花数保存到数组中PrivateSubCommand1_Click()ReDima(10)'**********Program**********Dimi,x,kFori=1000to1step-1x=0‘x保存i各位数的立方和Whilei<>0X=x+(imod10)^3i=i\10‘对mod和\的运用是核心wendIfi=xthenprintia(k)=i‘水仙花数保存到数组a()中k=k+1EndifNexti'**********End**********wwjtEndSub\n'题目:编写函数fun,函数的功能是:求一个'四位数的各位数字的立方和PrivateFunctionfun(nAsInteger)AsLong'**********Program*********Sum=0Dowhilen<>0Sum=sum+(nmod10)^3n=n\10LoopFun=sum'**********End*************EndFunctionPrivateSubForm_Load()ShowPrintfun(1112)WWJTEndSub\n题目:编写函数fun,函数的功能是:判断一个数是否为素数。'并显示相应提示。如:'该数为素数时,显示"素数";该数为非素数时,显示"非素数"'要求使用For语句来实现,用布尔型变量flag作为该数'是否为素数的标志,注意:不得使用Goto语句。PrivateFunctionfun(mAsLong)AsStringDimflagAsBoolean'**********Program**********Fori=2tom-1Ifmmodi=0thenExitforNextiIfi>m-1thenFlag=1ElseFlag=0EndifIfflag=1thenFun=”素数”ElseFun=”非素数”Endif'**********End**********EndFunctionPrivateSubForm_Load()ShowPrintfun(225)NJIT_VBEndSub题目::编写函数fun其功能是:判断一个整数w的各位'数字平方之和能否被5整除,可以被5整除则返'回1,否则返回0'-------------------------------------------------PrivateFunctionfun(wAsInteger)AsBoolean'**********Program*********Dowhilew<>0‘将各位数字的平方和累加到sumx=wmod10sum=sum+x^2w=w\10loopifsummod5=0then\nfun=1elsefun=0endif'**********End*************EndFunctionPrivateSubForm_Load()ShowPrintfun(50)WWJTEndSub'题目:(事件)单击窗体。'(响应)如果一个数的真因子之和等于这个数本身,'则称这样的数为“完全数”。例如,整数'28的真因子为1、2、4、7、14,其和是28。'因此28是一个完全数。请编写一个程序,'求出500以内最大的完全数。并存入变量SUM中。'使用for...next语句完成程序'-------------------------------------------------PrivateSubForm_Click()DimsumAsInteger'*****************Program**************Fori=500to1step-1X=0‘x用来存放真因子之和Forj=1toi/2Ifimodj=0thenx=x+jNextjIfi=xthen‘是否为完全数的判断Sum=iExitforEndifNexti'***************End*************************Callcs(sum)EndSub'题目:判断一个数是否是素数。\n'-------------------------------------------------PrivateFunctionPrime(ByValmAsInteger)AsBoolean'**********Program*********DimflagasbooleanFori=2tosqr(m)Ifmmodi=0thenExitforNextiIfi>sqr(m)+1thenFlag=1ElseFlag=0EndifPrime=flag'**********End*************EndFunctionPrivateSubForm_Load()Dimm,iAsIntegerShowm=Val(InputBox("请输入一个数"))IfPrime(m)=TrueThenPrint"该数是素数"ElsePrint"该数不是素数"EndIfWWJTEndSub-------------------------------------------------问题求解-------------------------------------------------'题目:有一个三位数,减去七能被七除尽,减去八能被'八除尽,减去九能被九除尽,当单击窗体时计算'并将这个数保存到变量r中,同时在窗体中输出这'个数是多少。PrivateSubForm_Click()Dimi%'i是循环变量Dimr%'将结果保存到这个变量中'**********Program**********Fori=100to999If(i-7)mod7=0and(i-8)mod8=0and(i-9)mod9=0thenr=iPrinti\nExitforEndifNexti'**********End**********wwjtrEndSub'题目:将一张面值为100元的人民币等值换成100张5元、'1元和0.5元的零钞,要求每种零钞不少于1张,'问有多少种组合?将组合数目存入变量OUT中。'-------------------------------------------------PrivateSubForm_click()ShowDimoutAsInteger'**********Program*********Cnt=0Dimx,y,z‘定义三个变量分别代表5元、1元、0.5元Forx=1to20Fory=1to100Z=100-x-yIfx*5+y+z*0.5=100thencnt=cnt+1NextyNextxOut=cnt'**********End*************WWJToutEndSub'题目:(事件)双击窗体。'(响应)写程序解决百钱买百鸡问题:公鸡3元1只,'母鸡5元1只,小鸡一元3只,怎样用100元买'100只鸡。把结果输出到窗体上。'将答案数存放在变量N中PrivateSubForm_dblClick()DimnAsIntegern=0'********Program*******Dimx,y,z‘定义三个变量分别代表公鸡、母鸡、小鸡的数目Forx=0to33Fory=0to22Z=100-x-yIfx*3+y*5+z/3=100thenn=n+1\nPrint“公鸡:”;x;”母鸡:”;y;”小鸡:”;zNexty,z'************End***********YZJ(n)EndSub-------------------------------------------------多路分支-------------------------------------------------'题目:编写函数fun,函数的功能是:判断一个字符是'字母字符、数字字符还是其他字符,并做相应的显示。'字母字符显示字符串"字母"'数字字符显示字符串"数字"'其他字符显示字符串"其他"'要求使用SelectCase语句来实现。PrivateFunctionfun(nAsString)AsString'**********Program**********Str=””Ifn>”0”andn<”9”thenstr=”数字”elseIfn>”a”andn<”z”thenstr=”字母”elseIfn>”A”andn<”Z”thenstr=”字母”elsestr=”其它”endiffun=str'**********End**********EndFunctionPrivateSubForm_Load()ShowPrintfun("A")Printfun("9")Printfun("&")NJIT_VBEndSub\n'题目:某百货公司为了促销,采用购物打折扣的优惠办'法:每位顾客一次购物'(1)在1000元以上者(含1000元,以下类同),'按九五折优惠;'(2)在2000元以上者,按九折优惠;'(3)在3000元以上者,按八五折优惠;'请用if语句设计上述算法:要求单击窗体时,在'图1所示输入框中输入顾客消费的总金额,计算'优惠后的实际消费金额,用弹出窗口输出结果,'如图2所示。'-------------------------------------------------PrivateSubForm_Click()Dimx!,y!'x表示顾客消费总金额,y表示优惠后的实际消费金额'**********Program**********X=text1.textIfx>=1000andx<2000theny=x*0.95Ifx>=2000andx<3000theny=x*0.9Ifx>=3000theny=x*0.85Text2.text=y'**********End**********EndSub'题目:随机产生100个学生的计算机课程的成绩。统计各'分数段的人数,即0~9、10~19、20~29、30~39、'40~49、50~59、60~69、70~79、80~89、90~100,'请输出统计结果。''-------------------------------------------------PrivateSubCommand1_Click()'**********Program**********Fori=1to100S=int(100*rnd)Ifs>=0ands<10thentext1.text=val(text1.text)+1………'**********End**********EndSub\nPrivateSubForm_Load()EndSub'题目:编写函数fun,函数的功能是:根据一个百分制'成绩mark(整数),显示对应五级制的评定。条件如下:'mark大于等于90显示"优秀"'mark小于90且大于等于80显示"良好"'mark小于80且大于等于70显示"中等"'mark小于70且大于等于60显示"及格"'mark小于60显示"不及格"'要求使用IF语句来实现。'-------------------------------------------------'注意:请在指定的事件内编写代码'代码只能写在两行标识之间'不得修改已有代码'保存时不得修改窗体和工程文件的名称及路径,否则后果自负。'-------------------------------------------------PrivateFunctionfun(markAsInteger)AsString'**********Program**********‘一定不要对形参赋值Dimstr1asstringIfmark>=90thenstr1=”优秀”Ifmark>=80andmark<90thenstr1=”良好”Ifmark>=70andmark<80thenstr1=”中等”Ifmark>=60andmark<70thenstr1=”及格”Ifmark<60thenstr1=”不及格”Fun=str1‘一定要对函数名赋值'**********End**********EndFunctionPrivateSubForm_Load()ShowPrintfun(90)NJIT_VBEndSub-------------------------------------------------数组的应用-------------------------------------------------选择法的排序\nDima(10)PrivateSubCommand1_Click()Fori=1To10a(i)=Int(90*Rnd+10)Picture1.Printa(i);NextiEndSubPrivateSubCommand2_Click()*******************************************Fori=1To10Forj=i+1To10Ifa(i)>a(j)Thent=a(i):a(i)=a(j):a(j)=tEndIfNextjNexti*******************************************Fori=1To10Picture2.Printa(i);NextiFori=10To1Step-1Picture3.Printa(i);NextiEndSub\n'题目:(事件)单击按钮。'(响应)随机产生N个两位正整数(N由输入对话框'输入,且N>0),求出其中的最大数和最小'数,并在标签框Label1上显示最大数与最'小数的差。Dimx,t,sAsIntegerDimnAsString'*****************Program**************Dima()n=inputbox(“”)redima(n)fori=1tona(i)=int(90*rnd+10)nextix=t=a(1)Fori=1tonIfa(i)>xthenx=a(i)Ifa(i)maxthenmax=a(I,j)Nextj,iFori=1to4Forj=1to5Ifa(I,j)=maxthenPrintI,jEndifNextj,i'****************End*****************yzj(Text2)EndSub'题目:编写函数fun,函数的功能是:计算n门课程'的平均值,计算结果作为函数值返回。'例如,若有5门课程的成绩是:92,76,69,'58,88,则函数的值为76.6。'-------------------------------------------------PrivateFunctionfun(a()AsInteger,nAsInteger)AsDouble'**********Program*********Avg=0Sum=0Fori=1tonSum=sum+a(i)NextiAvg=sum/nFun=avg'**********End*************EndFunctionPrivateSubForm_Load()ShowDima(5)AsInteger,iAsInteger\na(1)=92:a(2)=76:a(3)=69:a(4)=58:a(5)=88Printfun(a,5)WWJTEndSub