大题复习资料讲解学习.docx
《大题复习资料讲解学习.docx》由会员分享,可在线阅读,更多相关《大题复习资料讲解学习.docx(29页珍藏版)》请在冰豆网上搜索。
![大题复习资料讲解学习.docx](https://file1.bdocx.com/fileroot1/2022-12/28/4fa22643-55ba-4752-9c46-92497dde74e0/4fa22643-55ba-4752-9c46-92497dde74e01.gif)
大题复习资料讲解学习
难
中等
简单
-------------------------------------------------
字符串处理
-------------------------------------------------
'题目:
对字符串进行加密处理。
'加密过程:
'将每个字母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+c
Else
strnew=strnew+""
EndIf
Nexti
EnyStr=strnew
'**********End*************
EndFunction
PrivateSubForm_Load()
Show
PrintEnyStr("abcdefxyz")
WWJT
EndSub
题目:
统计字符串中的单词个数。
'算法思路:
'
(1)从文本(字符串)的左边开始,取出一个字符;
'设逻辑量WT表示所取字符是否是单词内的字符,初值设为False
'
(2)若所取字符不是"空格","逗号","分号"或"感叹号"等单词
'的分隔符,再判断WT是否为True,若WT不为True则表是新单词的开始,
'让单词数Nw=Nw+1,让WT=True;
'(3)若所取字符是"空格","逗号","分号"或"感叹号"等单词的分隔符,
'则表示字符不是单词内字符,让WT=False;
'(4)再依次取下一个字符,重得
(2)(3)直到文本结束。
'-------------------------------------------------
PrivateFunctionCountWord(strIAsString)AsInteger
'**********Program*********
wt=0
nw=0
Fori=1ToLen(strI)
ch=Mid(strI,i,1)
Ifch=""Orch=","Orch=";"Orch="!
"Orch="."Then
wt=0
Else
Ifwt=0Then
nw=nw+1
wt=1
EndIf
EndIf
Nexti
CountWord=nw
'**********End*************
EndFunction
PrivateSubForm_Load()
Show
Print"单词数:
"&CountWord("Hello,Word!
GoodMorning.")
WWJT
EndSub
-------------------------------------------------
数列求和
-------------------------------------------------
'题目:
(事件)单击窗体。
'(响应)求从100到1000之间所有是3的倍数的数之
'和,当和大于3000时,停止计算并输出和。
请将结果输
'出到窗体上,并存入所给变量SUM中。
使用for...next语
'句完成程序
PrivateSubForm_Click()
DimsumAsInteger
'*****************Program**************
Fori=100to1000
Ifimod3=0thensum=sum+i
Ifsum>=3000thenexitfor
Nexti
'***************End*************************
CallYZJ(sum)
EndSub
PrivateSubYZJ(iAsInteger)
DimOUTAsInteger
OUT=FreeFile
OpenApp.Path&"\out.txt"ForOutputAs#OUT
Print#OUT,i
Close#OUT
EndSub
'题目:
(事件)单击窗体。
'(响应)输出斐波那契数列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,f2AsInteger
f1=1
f2=1
'*****************Program**************
Fori=3to20‘方法一
F3=f2+f1
F1=f2
F2=f3
Nexti
Sum=f3
***************************
Dimf(20)asinteger‘方法二
F
(1)=f1
F
(2)=f2
Fori=3to20
F(i)=f(i-1)+f(i-2)
Nexti
Sum=f(20)
'***************End*************************
CallYZJ(sum)
EndSub
'题目:
(事件)单击窗体。
'(响应)求200~300之间既能被3整除又能被7整除的数。
'并求出所有数之和存入变量SUM中
PrivateSubForm_Click()
DimsumAsInteger
sum=0
'*****************Program************
ForI=200to300
IfImod3=0andImod7=0then
Sum=sum+i
Endif
Nexti
'***************End******************
YZJ(sum)
EndSub
'题目:
(事件)单击窗体。
'(响应)求1-100中为5或7的倍数的和。
请将结果
'输出到窗体上,并存入所给变量SUM中。
'使用while...wend语句完成程序
'-------------------------------------------------
PrivateSubForm_Click()
DimsumAsInteger
'*****************Program**************
I=1
Whilei<=100
If(imod5=0)or(imod7=0)then
sum=sum+i
Endif
I=i+1
wend
'***************End*************************
CallYZJ(sum)
EndSub
'题目:
(事件)单击窗体。
'(响应)求100到500之间奇数的和,将结果输出
'在窗体上并存入变量SUM中。
'使用do...loopuntil语句完成程序
'
PrivateSubForm_Click()
DimsumAsLong
'*****************Program**************
I=101
Do
Sum=sum+i
I=i+2
Loopuntili>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=1
DoWhile1/n>=0.001
S=s+1/n
N=n+2
loop
'**********End**********
wwjtCStr(s)
EndSub
'题目:
(事件)双击窗体。
'(响应)求3+6+9+12+15+18+……+300的和,并将结果输出到窗体上。
'将结果存入变量SUM中
'-------------------------------------------------
PrivateSubForm_DblClick()
DimsumAsInteger
'**********Program************
Fori=3to300step3
Sum=sum+i
Nexti
Printsum
'*********End***************
YZJ(sum)
EndSub
'题目:
(事件)单击窗体。
'(响应)求50以内所有偶数的和,并在窗体上输出出来。
'将结果存入变量S中
2+4+6+…….+48+50
'-------------------------------------------------
PrivateSubForm_Click()
DimsAsInteger
'********Program*********
Fori=2to50step2
s=s+i
Nexti
'*********End***********
YZJ(s)
EndSub
题目:
(事件)单击窗体。
'(响应)已知sum=1!
-2!
+3!
-4!
...-10!
'请将sum结果值输出到窗体上。
'使用dowhile...loop语句完成程序
'-------------------------------------------------
PrivateSubForm_Click()
DimpAsLong'p变量存放阶乘的值
DimsumAsLong
'*****************Program**************
sum=0
i=1
dowhilei<=10‘外部循环控制数列的项数
p=1‘n表示通项:
i!
j=1
dowhilej<=I‘内部循环用来求通项
p=p*j
j=j+1
loop
sum=sum+(-1)^(i+1)*p
i=i+1
loop
'***************End*************************
CallYZJ(sum)
EndSub
题目:
(事件)单击窗体。
'(响应)求1!
+2!
+3!
+……+10!
的值,并在窗体上输出。
'结果存入变量L中
'-------------------------------------------------
'注意:
请在指定的事件内编写代码。
'-------------------------------------------------
PrivateSubForm_Click()
DimlAsLong
'*********Program************
L=0
Fori=1to10‘外部循环控制数列的项数
N=1‘n表示通项:
i!
Forj=1toI‘内部循环用来求通项
N=n*j
Nextj
L=l+n
Nexti
'***********End**************
YZJ(l)
EndSub
题目:
编写程序计算以下累加和的结果
'“1-2+3-4+5-6+7……-20=”,
'并把结果通过窗体打印出来。
'-------------------------------------------------
PrivateSubForm_Click()
Dimi%,s%'i为循环变量,s保存累加和的结果
'**********Program**********
'**********End**********
wwjts
EndSub
题目:
(事件)单击窗体。
'(响应)求1!
+2!
+3!
+4!
+5!
并将结果输出到窗体上。
'结果存入变量S中
'-------------------------------------------------
PrivateSubForm_Click()
DimsAsInteger
s=0
'*********Program************
'**********End*****************
YZJ(s)
EndSub
'题目:
(事件)双击窗体。
'(响应)求3+6+9+12+15+18+……+300的和,并将结果输出到窗体上。
'将结果存入变量SUM中
'-------------------------------------------------
PrivateSubForm_DblClick()
DimsumAsInteger
'**********Program************
Sum=0
Fori=3to300step3
Sum=sum+i
Nexti
Printsum
'*********End***************
YZJ(sum)
EndSub
'题目:
(事件)单击窗体。
'(响应)求50以内所有偶数的和,并在窗体上输出出来。
'将结果存入变量S中
'-------------------------------------------------
PrivateSubForm_Click()
DimsAsInteger
'********Program*********
S=0
Fori=1to50
IfImod2=0thens=s+i
Nexti
'*********End***********
YZJ(s)
EndSub
'-------------------------------------------------
'【程序设计】
'-------------------------------------------------
'题目:
(事件)单击窗体。
'(响应)已知sum=1!
-2!
+3!
-4!
...-10!
'请将sum结果值输出到窗体上。
'使用dowhile...loop语句完成程序
'-------------------------------------------------
PrivateSubForm_Click()
DimpAsLong'p变量存放阶乘的值
DimsumAsLong
'*****************Program**************
Sum=0
I=1‘循环变量赋初值
Dowhilei<=10
X=1
Forj=1toi
X=x*j
Nextj
Sum=sum+(-1)^(i+1)*x
I=i+1
loop
'***************End*************************
CallYZJ(sum)
EndSub
'题目:
(事件)单击窗体。
'(响应)求1!
+2!
+3!
+……+10!
的值,并在窗体上输出。
'结果存入变量L中
'-------------------------------------------------
'注意:
请在指定的事件内编写代码。
'-------------------------------------------------
PrivateSubForm_Click()
DimlAsLong
'*********Program************
Sum=0
Fori=1to10
X=1
Forj=1toi
X=x*j
Nextj
Sum=sum+x
Nexti
I=sum
Printl
'***********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*j
nextj
y=y+1/a
Nexti
Fun=y‘函数过程一定要对函数名赋值
'**********End*************
EndFunction
PrivateSubForm_Load()
Show
Printfun(6)
WWJT
EndSub
-------------------------------------------------
数的判断与拆分
-------------------------------------------------
'题目:
求1000以内的水仙花数(水仙花数一个三位数,
'其各位数的立方和等于该数本身,公式如图1所示)。
'要求将水仙花数保存到数组a()中,并打印到窗
'体上。
请用For循环结构实现。
Privatea()AsInteger'请将水仙花数保存到数组中
PrivateSubCommand1_Click()
ReDima(10)
'**********Program**********
Dimi,x,k
Fori=1000to1step-1
x=0‘x保存i各位数的立方和
Whilei<>0
X=x+(imod10)^3
i=i\10‘对mod和\的运用是核心
wend
Ifi=xthen
printi
a(k)=i‘水仙花数保存到数组a()中
k=k+1
Endif
Nexti
'**********End**********
wwjt
EndSub
'题目:
编写函数fun,函数的功能是:
求一个
'四位数的各位数字的立方和
PrivateFunctionfun(nAsInteger)AsLong
'**********Program*********
Sum=0
Dowhilen<>0
Sum=sum+(nmod10)^3
n=n\10
Loop
Fun=sum
'**********End*************
EndFunction
PrivateSubForm_Load()
Show
Printfun(1112)
WWJT
EndSub
题目:
编写函数fun,函数的功能是:
判断一个数是否为素数。
'并显示相应提示。
如:
'该数为素数时,显示"素数";该数为非素数时,显示"非素数"
'要求使用For语句来实现,用布尔型变量flag作为该数
'是否为素数的标志,注意:
不得使用Goto语句。
PrivateFunctionfun(mAsLong)AsString
DimflagAsBoolean
'**********Program**********
Fori=2tom-1
Ifmmodi=0thenExitfor
Nexti
Ifi>m-1then
Flag=1
Else
Flag=0
Endif
Ifflag=1then
Fun=”素数”
Else
Fun=”非素数”
Endif
'**********End**********
EndFunction
PrivateSubForm_Load()
Show
Printfun(225)
NJIT_VB
EndSub
题目:
:
编写函数fun其功能是:
判断一个整数w的各位
'数字平方之和能否被5整除,可以被5整除则返
'回1,否则返回0
'-------------------------------------------------
PrivateFunctionfun(wA