VB_编程练习(答案)

更新时间:2024-05-03 11:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一.选择结构

'-------------------------------------------------

'题目:编写函数fun,函数的功能是:根据一个百分制 ' 成绩mark(整数),显示对应五级制的评定。条件如下: ' mark大于等于90显示\优秀\

' mark小于90且大于等于80显示\良好\' mark小于80且大于等于70显示\中等\' mark小于70且大于等于60显示\及格\' mark小于60显示\不及格\' 要求使用IF语句来实现。

'-------------------------------------------------

Private Function fun(mark As Integer) As String

'**********Program********** If mark >= 90 Then fun = \优秀\

ElseIf mark >= 80 Then fun = \良好\

ElseIf mark >= 70 Then fun = \中等\

ElseIf mark >= 60 Then fun = \及格\Else

fun = \不及格\End If

'********** End ********** End Function

Private Sub Form_Load() Show

Print fun(90) End Sub

'------------------------------------------------- '题目:编写函数fun,函数的功能是:

判断一个字符是: 字母字符、数字字符还是其他字符,并做相应的显示。 ' 字母字符显示字符串\字母\ 数字字符显示字符串\数字\' 其他字符显示字符串\其他\ ' 要求使用select语句来实现 '------------------------------------------------- Private Function fun(n As String) As String '**********Program**********

Select Case n

Case \ fun = \字母\Case \ fun = \数字\Case Else

fun = \其他\End Select

'********** End ********** End Function

Private Sub Form_Load() Show

Print fun(\ Print fun(\ Print fun(\End Sub

二.一般循环

'------------------------------------------------- '题目:(事件)双击窗体。

' (响应)求出100~200之间,能被5整除,但不能被3整除的数。输出这些数

并求所有数之和,存入变量中SUM中。 输出sum 应为 2100 '------------------------------------------------- Private Sub Form_dblClick()

Dim sum As Integer sum = 0

'********** Program ********* Dim i As Integer For i = 100 To 200

If ((i Mod 5) = 0) And ((i Mod 3) <> 0) Then Print (CStr(i)) sum = sum + i End If Next

'********** End ************* Print sum End Sub

'-------------------------------------------------

'题目:(事件)单击窗体。 输出L 应为 46189 ' (响应)求10~20之间所有素数的乘积并输出在窗体上。将结果存入变量L中。 '------------------------------------------------- Private Sub Form_Click()

Dim l As Long

'******* Program ******** Dim i As Integer Dim j As Integer Dim b As Boolean l = 1 b = False

For i = 10 To 20

For j = 2 To i - 2

If i Mod j = 0 Then b = True End If Next

If b = False Then l = l * i End If b = False Next

Print Str(l)

'********* End *********** End Sub

'------------------------------------------------- '题目:(事件)单击窗体。

' (响应)编写程序求10×11×12+11×12×13+…+15×16×17的结果,

' 并将结果输出到窗体上。将结果存入变量M中 输出M 应为 15390 '------------------------------------------------- Private Sub Form_Click()

Dim m As Long

'******** Program ************* Dim i, j As Integer Dim s As Long For i = 10 To 15 s = 1

For j = i To i + 2 s = s * j Next

m = m + s Next

Print (CStr(m))

'************ End *********** End Sub

'------------------------------------------------- '题目:(事件)单击窗体。

' (响应)在窗体上打印数列2/1,3/2,5/3,8/5,13/8… 的前10项,并求其和, 将和保存在变量s中 输出: '------------------------------------------------- Private Sub Form_Click() Dim s As Single

'******** Program *********** Dim i, j, k, m As Integer s = 0 i = 2

j = 1

For k = 1 To 10 s = s + i / j m = j

Print (CStr(i)) & \ j = i i = i + m Next

'********* End **************** End Sub

'-------------------------------------------------

'题目:编写函数fun其功能是:根据整型形参m,计算如下公式的值:

' y=1+1/3+1/5+1/7+...+1/(2m+1) 例如:若m=9,则应输出:2.133255 '------------------------------------------------- Private Function fun(m As Integer) As Single Dim y As Double

'********** Program ********* Dim y As Double Dim i As Integer y = 1

For i = 1 To m

y = y + 1 / (2 * i + 1) Next fun = y

'********** End ************* End Function

Private Sub Form_Load() Show

Print fun(9) End Sub

'-------------------------------------------------

'题目:函数fun其功能是:根据整型形参m,计算如下公式的值:y=1/2+1/4+1/6+...+1/2m ' 例如:若m=9,则应输出:1.41448412698413 '-------------------------------------------------

Private Function fun(m As Integer) As Double

'********** Program ********* Dim y As Double Dim i As Integer For i = 1 To m

y = y + 1 / (2 * i) Next fun = y

'********** End ************* End Function

Private Sub Form_Load() Show

Print fun(9) End Sub

'------------------------------------------------- '题目: (事件)单击窗体。

' (响应)已知sum=1-1/4+1/9-1/16+1/25...-1/100, 输出 sum 应为 0.8179622 ' 请将sum结果值输出到窗体上。 使用for...next语句完成程序 '------------------------------------------------- Private Sub Form_Click() Dim sum As Single

'***************** Program ************** Dim i As Integer for i = 1 to 10

sum = sum + (-1) ^ (i - 1) /(i*i) next

Print sum

'*************** End ************************* End Sub

三.级数

'------------------------------------------------- '题目: (事件)单击窗体。

' (响应)已知sum=1/2!-1/4!+1/6!-1/8!+1/10!,请将sum结果值输出到窗体上。

' 使用do while...loop语句完成程序 输出sum 应为 0.4596977 '------------------------------------------------- Private Sub Form_Click()

Dim p As Long 'p变量存放阶乘的值 Dim sum As Single

'***************** Program ************** Dim i As Integer Dim n As Integer i = 1 p = 1

Do While i <= 10 p = p * i

If i Mod 2 = 0 Then n = n + 1

sum = sum + (-1) ^ (n - 1) / p End If i = i + 1 Loop Print sum

'*************** End *************************

End Sub

'------------------------------------------------- '题目:(事件)单击窗体。

' (响应)已知S=1+1/4+1/9+1/16+1/25+…+1/100,结果输出在窗体上。输出s 应为 1.291286 '------------------------------------------------- Private Sub Form_Click()

Dim s As Single

'************* Program ************** Dim i As Integer s = 0

For i = 1 To 10

s = s + 1 / (i ^ i) Next Print (s)

'************* End ************** End Sub

'------------------------------------------------- '题目: (事件)单击窗体。

' (响应)求sum=1+1+2+3+5+8+13+...+144的和,请将sum结果值输出到窗体上。 使用 do...loop语句完成程序 输出sum 应为 376 '------------------------------------------------- Private Sub Form_Click() Dim sum As Long

'***************** Program ************** Dim i As Integer Dim s1 As Integer Dim s2 As Integer i = 1

s1 = 1: s2 = 1

Sum = Sum + s1 + s2 Do

If s2 = 144 Then Exit Do End If

s1 = s1 + s2 s2 = s1 + s2

Sum = Sum + s1 + s2 Loop Print Sum

'*************** End ************************* End Sub

'-------------------------------------------------

'题目:编写函数fun其功能是:根据整型形参m,计算如下公式的值:

' y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5) 例如:若m=9,则应输出:1.168229 '要求:函数中用到的中间变量必须声明为Single类型。 '------------------------------------------------- Private Function Fun(m As Integer) As Single

'********** Program ********* Dim y As Double Dim i As Integer For i = 0 To m

y = y + 1 / (i + 5) Next Fun = y

'********** End ************* End Function

Private Sub Form_Load() Show

Print Fun(9) End Sub

四.数字关系

'-------------------------------------------------

'题目:编写函数fun其功能是:

判断一个整数w的各位数字平方之和能否被5整除 , 可以被5整除则返回1 , 否则返回0 '-------------------------------------------------

Private Function fun(w As Integer) As Boolean

'********** Program ********* Dim k As Integer, s As Integer Do

s = s + (w Mod 10) * (w Mod 10) w = Int(w / 10) Loop While w <> 0 If s Mod 5 = 0 Then k = 1 Else

k = 0 End If fun = k

'********** End ************* End Function

Private Sub Form_Load() Show

Print fun(50) '输出True Print fun(51) '输出False End Sub

'-------------------------------------------------

'题目:(事件)双击窗体。

' (响应)写程序解决百钱买百鸡问题:公鸡3元1只,母鸡5元1只,小鸡一元3只,

怎样用100元买100只鸡。

把结果输出到窗体上。将答案数存放在变量N中。 输出

'------------------------------------------------- Private Sub Form_dblClick()

Dim n As Integer n = 0

'******** Program ******* Dim i, j, k As Integer For i = 1 To 20 '母鸡 For j = 1 To 33 '公鸡

For k = 3 To 100 '小鸡

If ((k Mod 3) = 0) And ((i * 5 + j * 3 + k / 3) = 100) And ((i + j + k) = 100) Then Print (CStr(i)) Print (CStr(j)) Print (CStr(k)) n = n + 1 End If Next Next Next

'************ End *********** End Sub

'------------------------------------------------- '题目: (事件)单击窗体。

' (响应)输出所有的三位数,它满足该数中有某两位为相同的数, 且该数是一个完全平方数。

' 求出所有这些数的和,并将结果存入变量SUM中。 输出 '------------------------------------------------- Private Sub Form_Click() Dim sum As Integer

'***************** Program ************** dim a as integer,b as integer

dim b3 as integer,b2 as integer,b1 as integer for a=10 to 31 b=a*a b3=b\\100

b2=(b\\10) mod 10 b1=b mod 10

if b1=b2 or b1=b3 or b2=b3 then ? a,b

sum=sum+b end if next a

Print sum

'*************** End ************************* End Sub

'------------------------------------------------- '题目:(事件)单击窗体。

' (响应)求出1000-9999之间具有如下特点的四位数字, 它的平方根恰好就是它中间的两位数字,

例如,2500开平方为50,恰为2500的中间两位, 输出 找出所有这样的四位数。并求出所有这样的数的和存入SUM中 '------------------------------------------------- Private Sub Form_Click()

Dim sum As Integer sum = 0

'******** Program ******* Dim i As Integer Dim j As Integer For i = 1000 To 9999

j = Val(Mid(Trim(Str(i)), 2, 2)) If j ^ 2 = i Then Print i,

sum = sum + i End If Next

'********** End ********** End Sub

'------------------------------------------------- '题目: (事件)单击窗体。

' (响应)求一个数,它除3余2,除5余3,除7余2,

' 请将满足上面条件的最小数保存到sum变量中。 ' 使用for...next语句完成程序

'------------------------------------------------- Private Sub Form_Click() Dim sum As Integer

'***************** Program ************** Dim i As Integer For i = 2 To 1000

If i Mod 3 = 2 And i Mod 5 = 3 And i Mod 7 = 2 Then Print i Exit For End If Next i sum = i

'*************** End ************************* End Sub

输出 sum 应为23

五.递推

'------------------------------------------------- '题目:编写函数fun,函数的功能是:

当x的初值为10,每年增长率为百分之一,计算多少年以后x的值能达到y,

'并显示所需年数的值(变量名必须为n)。

' 要求使用Do ... Loop Until语句来实现。 当y为15时, n应该为41 '------------------------------------------------- Private Function fun(y As Single) As Long

Dim x As Single, n As Long

'**********Program********** x = 10 n = 0

Do While x < y x = x * 1.008 n = n + 1 Loop fun = n

'********** End ********** End Function

Private Sub Form_Load() Show

Print fun(15) End Sub

'-------------------------------------------------

'题目:已知,猴子吃一堆桃子,每天吃桃子总数的一半多一个。到第n天时,桃子只剩一个。

编写函数fun,函数的功能是: '求出开始桃子的数量并显示。如:' n为7时,则显示\ '要求使用For语句来实现。 要求使用Do Until ... Loop语句来实现 '------------------------------------------------- Private Function fun(n As Long) As String

'**********Program********** x = 1 i = 1

Do Until i = n x = (x + 1) * 2 i = i + 1 Loop fun = x

'********** End ********** End Function

Private Sub Form_Load() Show

Print fun(7) End Sub

'---------------------------------------------------------------

idec = idec \\ ibase Loop

TrDec = strDecR

'********** End ************* End Function

Private Sub Form_Load() Show

Print TrDec(45, 2)

Print TrDec(45, 8) ' 分别输出 Print TrDec(45, 16) End Sub

'题目:(事件)单击窗体。

' (响应)输出一个如图所示的由数字组成的倒三角形 ' 请将结果存入变量S中

(要求利用msgbox函数显示结果,使用for...next语句完成程序) '------------------------------------------------- Private Sub Form_Click() Dim s As String

'***************** Program ************** Dim tmp As String

Dim i As Integer, j As Integer tmp = \

For i = 10 To 1 Step -1 For j = 0 To i - 1

tmp = tmp & CStr(j) Next

tmp = tmp & vbCrLf Next

MsgBox tmp s = tmp

'*************** End ************************* End Sub

本文来源:https://www.bwwdw.com/article/d1jg.html

Top