1.乙個數如果恰好等於它的因子之和,這個數就稱為"完數",例如:6的因子為1,2,3,6=1+2+3,所以6是乙個完數,編乙個程式,找出1000以內的完數,並以列表框顯示,完數的個數用文字框輸出。
private sub form_click()
dim n, r, j, i as integer
n = 1000: x = 0
for i = 1 to n - 1
r = 0
for j = 1 to i - 1
if i mod j = 0 then
r = r + j
end if
next
if r = i then
(i)x = x + 1
r = 0
end if
next
= xend sub
2.已知下式成立:,計算e的值(精確到10-6)。
private sub form_click()
dim s as double
s = 1: p = 1: n = 1
while 1 / n >= 0.000001
n = n * p
p = p + 1
s = s + 1 / n
wend
print s
end sub
3.已知下式成立:
其中e是自然對數的底。計算的值。當通項的值小於時,認為達到精度。
4.百錢買百雞。西元前五世紀,我國數學家張丘建在《算經》中提出「百雞問題」:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?
private sub form_click()
dim i, j as single
for i = 1 to 100
for j = 1 to 99
if i * 5 + j * 3 + (100 - i - j) / 3 = 100 then
print i; j; 100 - i - j
end if
next
next
end sub
5.設計乙個單擊按鈕過程,其作用是產生50個60~100的隨機數,統計其中被6整除餘2的個數,並將這些數輸出。
private sub form_click()
dim a(50) as single
randomize
n = 0
for i = 1 to 50
a(i) = int(rnd * 41) + 60
if a(i) mod 6 = 2 then
n = n + 1
print a(i);
end if
next
print n
end sub
6.隨機生成10個1~100之間的整數,求出它們的總和及平均數。
private sub form_click()
dim a(10) as single
s = 0
randomize
for i = 1 to 10
a(i) = int(rnd * 100) + 1
s = s + a(i)
next
print s; s / 10
end sub
7.程式設計實現:隨機生成的10個兩位整數,並求出其中最大數及其下標。
private sub form_click()
dim a(10) as single
randomize
for i = 1 to 10
a(i) = int(rnd * 90) + 10
print a(i);
next i
max = a(1): n = 1
for i = 1 to 9
if a(i) >= max then
max = a(i)
n = i
end if
next
print "最大值是"; max; "是第"; n
end sub
8.設計乙個體操評分程式, 20 位評委,除去乙個最高分和乙個最低分,計算平均分 ( 設滿分為 10 分 )。
private sub form_click()
dim a(11) as integer
randomize
for i = 1 to 10
a(i) = int(rnd * 11 + 0)
print a(i);
next i
for i = 1 to 10
for j = 1 to 10 - i
if a(j) >= a(j + 1) then
m = a(j): a(j) = a(j + 1): a(j + 1) = m
end if
next
next
for i = 1 to 10
print a(i);
next
s = 0
for i = 2 to 9
s = s + a(i)
next
print s / 8
end sub
9.編寫程式,使乙個二維陣列的主對角線元素的值為1,其餘元素值為0。
private sub form_click()
dim a(5, 5) as single
dim i, j as integer
for i = 1 to 5
for j = 1 to 5
if i = j then
a(i, j) = 1
else
a(i, j) = 0
end if
print a(i, j);
next j
next i
end sub
10.編寫程式,生成10個10到100的陣列,由小到大排序後顯示,然後插入任意乙個數後,使其仍然有序。
private sub form_click()
dim a(11) as single
randomize
for i = 1 to 10
a(i) = int(91 * rnd + 10)
print a(i);
next
for i = 1 to 10
min = a(i): n = i
for j = i to 10
if min >= a(j) then
min = a(j): n = j
end if
next
t = a(n): a(n) = a(i): a(i) = t
next
for i = 1 to 10
print a(i);
next
h = val(inputbox("請輸入乙個數"))
k = 0
for i = 1 to 10
if h < a(i) then
exit for
end if
next
for k = 10 to i step -1
a(k + 1) = a(k)
next
a(i) = h
for i = 1 to 11
print a(i);
next
end sub
11.程式設計實現求所有1~100之間的孿生素數。孿生素數是指兩個素數,他們的差為2,如3和5,11和13等。(要求有乙個求素數的函式過程)
private function abc(x)
for j = 2 to x - 1
if x mod j = 0 then abc = 1: exit function
next
end function
private sub form_click()
dim i as integer, a(100) as single
for i = 1 to 100
if abc(i) = 0 then
a(n) = i
n = n + 1
end if
next
for i = 0 to n - 1
if a(i + 1) - a(i) = 2 then
print a(i); a(i + 1)
end if
next
end sub
12. 根據文字框中輸入的年份判斷某年是否為閏年,判斷結果由訊息框輸出。
(要求編寫乙個判斷某年是否為閏年的函式。該函式有乙個整型引數表示年份,返回值為邏輯型,當該年份是閏年時,函式返回值為true,否則返回false。)
private sub command1_click()
dim t as long, s as boolean
t =if t mod 4 = 0 or t mod 400 = 0 and t mod 100 <> 0 then
s = true
else
s = false
end if
msgbox (s)
end sub
13.利用隨機函式生成25個兩位正整數,逐個賦給乙個5x5陣列的每個元素,然後找出最大元素的位置,並按a(n1,n2)=m 形式輸出(要求:求最大元素所在位置用sub過程或function過程)。輸出結果類似如圖。
private sub form_click()
dim a(5, 5) as integer, i as integer, j as integer
randomize
for i = 1 to 5
for j = 1 to 5
a(i, j) = int(rnd() * 90) + 10
next j
next i
for i = 1 to 5
for j = 1 to 5
print a(i, j);
next
next
max = a(1, 1): x = 1: y = 1
for i = 1 to 5
for j = 1 to 5
if a(i, j) > max then
max = a(i, j): x = i: y = j
end if
next
next
print "a("; x; ymax;
end sub
14.編寫乙個求最大公約數的函式過程,使用傳值呼叫function過程,求兩個整數m和n的最大公約數和最小公倍數。(最小公倍數= (n * m) / 最大公約數)
要求:採用輾轉相除法求最大公約數。
private sub form_click()
dim m%, n%
n = inputbox("輸入n")
m = inputbox("輸入m")
t = m * n
if m < n then
x = m: m = n: n = x
end if
j = abc(m, n)
print "最大公約數為"; j
print "最小公倍數為", t / j
end sub
private function abc(x, y) as single
while x mod y <> 0
r = x mod y
x = y
y = r
wend
abc = y
end function
15. 編乙個計算表示式:m!
/ (n! * (m-n)!) 值的程式(m >= n >= 0),要求:
用輸入對話方塊輸入m和n的值,用編寫函式function fact(x as interger)求x!的值。
上機練習題
1建立乙個簡單的vb程式。要求在窗體上顯示 歡迎登陸vb上機系統 請輸入您的學號 和 請輸入登入密碼 以及兩個等待輸入學號和密碼的文字框和乙個命令按鈕。學號與密碼均為8位 超過8位則不能輸入 密碼的輸入顯示為 另外窗體上不要最大 最小和關閉按鈕。單擊命令按鈕 確定 時,程式結束。程式執行效果如圖所示...
EXCEL上機練習題
1 利用excel中的考勤模版,建立a公司的個人考勤記錄表,將結果儲存為 練習將每個人的姓名作為工作表名。2 將下表內容輸入到excel中,將結果儲存為 練習並完成下列操作。1 增加表標題,標題為 2010年9月水費清單 2 在住戶後增加兩列,內容為 姓名 身份證號 按下錶輸入。3 在最右側增加一列...
VB迴圈結構練習題
一 分析程式的執行結果 每題2分,共60分 1 以下迴圈的執行次數是 k 0do while k 10 k k 1 loop 2 下列程式段的執行後輸出的結果為 i 4 a 5 doi i 1 a a 2 loop until i 7 print a a 3 下列程式的執行結果是 t o m 1 s...