VB期末考试上机题编程答案Word文件下载.docx
《VB期末考试上机题编程答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《VB期末考试上机题编程答案Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
![VB期末考试上机题编程答案Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/23/32d729fc-b72e-4706-99e2-a787a8e882f3/32d729fc-b72e-4706-99e2-a787a8e882f31.gif)
=a
EndSub
PrivateSubCommand2_Click()
="
"
PrivateSubCommand3_Click()
End
PrivateFunctionk(nAsInteger)AsInteger
DimiAsInteger,aAsInteger,s1AsInteger,s2AsInteger
DimsAsString
s=CStr(n)
Fori=1ToLen(s)/2
s1=s1+Mid(s,i,1)
s2=s2+Mid(s,Len(s)+1-i,1)
Ifs1=s2Thenk=True
EndFunction
2.新建一个工程,编写求某一自然数因子和的程序。
要求通过文本框获取输入的自然数,计算后将所计算得到的因子和显示在另一文本框中。
求和"
按钮,则在文本框中显示计算得到的因子和;
3、单击“清除”按钮,则将文本框清空,焦点设置在第一个文本框;
5、在程序中应包含一个用于计算自然数因子和的函数过程YinZi(n)。
解;
DimnAsInteger
n=Val
Callyinzi(n)
=yinzi(n)
PrivateFunctionyinzi(nAsInteger)AsInteger
DimiAsInteger
Fori=1Ton/2
IfnModi=0Thenyinzi=yinzi+i
Text1.SetFocus
3.新建一个工程,编写一个程序,判断随机生成的10个三位正整数是否是降序数。
所谓降序数是指百位数大于十位数且十位数大于个位数的数。
执行"
按钮,随机生成10个三位正整数,显示在左边的列表框中,将判断结果参照样图的格式显示在右边的列表框中;
3、单击“清除”按钮,则将两个列表框清空;
5、程序中应包含一个名为jx的函数过程,用于判断一个正整数是否为降序数。
PrivateFunctionjx(nAsInteger)AsBoolean
DimaAsInteger,bAsInteger
Fori=2ToLen(Str(n))
a=Val(Mid(n,i-1,1))
b=Val(Mid(n,i,1))
Ifa<
=bThenExitFor
Ifi>
Len(Str(n))-1Thenjx=True
PrivateSubcommand1_click()
Dima(1To10)AsInteger
Fori=1To10
a(i)=1000+Int(Rnd*9000)
a(i)
Ifjx(a(i))Thena(i)
PrivateSubcommand3_click()
4.新建一个工程,统计一个二进制数中0的个数和1的个数。
2、第一个文本框用于输入一个二进制数,单击“统计”按纽,在另外两个文本框中分别显示0和1的个数;
3、单击“清除”按纽,将三个文本框内容清除,且光标落在第一个文本框;
4、单击“退出”按纽,则结束程序运行;
5、程序中应包含一个过程,用于统计字符串中0和1的个数。
DimsAsString
s=
DimaAsInteger,bAsInteger
Callfun(s)
PrivateSubfun(sAsString)
DimiAsInteger,aAsInteger,bAsInteger
Fori=1ToLen(s)
IfMid(s,i,1)=0Then
a=a+1
Else:
b=b+1
EndIf
Nexti
0的个数有"
&
Val(a)&
"
个"
1的个数有"
Val(b)&
PrivateSubcommand2_click()
5.新建一个工程,编写一个程序,找出随机生成的30个三位正整数中的升序数。
所谓升序数是指百位数小于十位数且十位数小于个位数的数。
按钮,随机生成30个三位正整数,按6个数一行的格式显示在多行文本框中,再找出其中的升序数输出到列表框;
3、单击“清除”按钮,则将文本框和列表框清空;
5、程序中应包含一个名为jx的函数过程,用于判断一个正整数是否为升序数。
Dima(1To6,1To5)AsInteger
DimiAsInteger,jAsInteger
Fori=1To6
Forj=1To5
a(i,j)=10+Int(Rnd*20)
Ifjx(a(i,j))=TrueThena(i,j)
=&
a(i,j)&
Nextj
vbCrLf
PrivateFunctionjx(nAsInteger)AsInteger
Ifa>
6.新建一个工程,编写一个程序,求两个正整数的最小公倍数。
2、从两个文本框中输入两个正整数,单击"
求解"
按钮,在第三个文本框中显示求得的这两个数的最小公倍数;
3、单击“清除”按钮,则将三个文本框清空,并将焦点设置在第一个文本框;
5、程序中应包含一个过程,用于求两个正整数的最小公倍数。
Dima,bAsInteger
a=Val
b=Val
Callgcd(a,b)
=gcd(a,b)
PrivateFunctiongcd(ByValnAsInteger,ByValmAsInteger)
DimrAsInteger
DimsAsInteger
s=m*n
DoWhilen<
>
0
r=mModn
m=n
n=r
Loop
gcd=s/m
7.新建一个工程,编写程序找出所有小于1000的完数。
一个数如果恰好等于它的因子之和,这个数称为完数。
一个数的因子是指除了该数本身以外能被其整除的数。
2、单击“查找”按钮,在列表框中显示所有满足条件的完数;
3、单击“清除”按钮,清空列表框;
4、单击“结束”按钮,结束程序运行;
5、程序中应包含一个过程,用于判断某个数是否是完数。
Fori=1To1000
Ifk(i)Theni
DimiAsInteger,sAsInteger
IfnModi=0Thens=s+i
Ifs=nThenk=True
8.新建一个工程,编写一个程序找出所有满足条件的四位数。
这些数本身是素数,而且其每一位数都是素数。
按钮,在列表框中显示所有满足条件的四位数数;
3、单击“清除”按钮,则将列表框清空;
5、程序中应包含一个过程,用于判断一个数是否为素数。
Ifk(i)Andk(Mid(i,1,1))Andk(Mid(i,2,1))Andk(Mid(i,3,1))Andk(Mid(i,4,1))Theni
Fori=2ToSqr(n)
IfnModi=0ThenExitFor
Sqr(n)Then
k=True
EndIf
9.新建一个工程,编写一个程序,找出数组中最大的元素并显示其位置。
显示"
按钮,则在图片框中显示由随机的二位数组成的5行5列的数组;
3、单击“查找”按钮,则在文本框中显示最大元素及其位置;
4、单击“清除”按钮,则将文本框和图片框清空;
5、单击“退出”按钮,结束程序运行;
6、程序中应包含一个过程,用于查找数组中的最大元素及其所在行和列。
OptionBase1
Dima(1To5,1To5)AsInteger
PublicSubCommand1_Click()
Dimi,jAsInteger
Fori=1To5
a(i,j)=10+Int(Rnd*90)
a(i,j);
k=0
Dima(1To5,1To5)AsInteger
Ifa(i,j)>
kThenk=a(i,j)
DimmaxAsInteger,xAsInteger,yAsInteger
max=0
Ifa(i,j)>
maxThenmax=a(i,j)Andx=iAndy=j
最大数组的位置是:
("
x&
"
y&
)"
PrivateSubCommand4_Click()
10.新建一个工程,编写一个程序,求乘积为180,最大公约数为3的数对。
按钮,则开始查找并在列表框中显示结果,数据相同的两组数中只取一组,小的数在前面,大的数在后面,如12、15和15、12只取12、15这一对;
5、程序中应包含一个求两个数的最大公约数的过程。
Dimx,yAsInteger
Forx=1ToInt(Sqr(180))
y=180/x
Ifgcd(x,y)=3Thenx&
和"
y
Nextx
gcd=m