中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

2020版算法與程序設計 專項測試八 數學中的有趣數

資源下載
  1. 二一教育資源

2020版算法與程序設計 專項測試八 數學中的有趣數

資源簡介

專項測試八 數學中的有趣數
1.下列VB程序的功能是素數判斷。程序運行時,在文本框Text1中輸入一個數,單擊“判斷”按鈕Command1,若該數是素數,則在文本框Text2中輸出“Yes”,否則輸出“No”。程序運行效果如下圖所示。
(1)要使程序運行時,文本框Text2的Height屬性值為2000,可在Form_Load事件過程中添加語句________(單選,填字母:A. Height=2000 / B.Text2. Height=2000 / C. Height.Text2=2000)。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的語句。
Function test(x As Integer)As Boolean
 Dim i As Integer
 test=True
 i=2
 Do While i<=x-1 And test=True
If x Mod i=0 Then
  ________①________
Else
  i = i+1
End If
 Loop
End Function
Private Sub Command1_Click()
 Dim n As Integer, ans As String
 n=Val(Text1.Text)
 If ________②________ Then
  ans = “Yes”
 Else
  ans = “No”
 End If
 Text2.Text =________③________
End Sub
解析 (1)本小題主要考查的是對象、屬性及屬性值。(2)本題主要考查的是自定義函數及相關知識。函數test(x)的功能是判斷整數x是否為素數,若是素數則返回函數值True,否則返回函數值False,函數值是通過函數名來返回的,因此①處代碼為test=False,②處代碼為test(n)=True;最后將判斷結果ans顯示在標簽Label3中,變量ans的數據類型為String,因此不能加Str函數,③處應填入ans。
答案 (1)B (2)①test=False?、趖est(n)=True或test(n)?、踑ns
2.最大公約數和最小公倍數。更相減損之術求最大公約數的基本思想是:用兩數中較大的數減去較小的數,獲得的差與原先較小的數構成新的一對數,再用大的數減去小的數……如此循環,用同樣的方法操作,直至產生一對相等的數,該數即為最大公約數。以求12、16 這兩個數的最大公約數為例,具體操作如下:(12,16)→(12,4)→(8,4)→(4,4), 即4是12和16的最大公約數。具體功能如下:在文本框Text1中輸入整數一,在文本框Text2中輸入整數二,單擊“求最大公約數和最小公倍數”按鈕Command1,兩數的最大公約數顯示在文本框Text3中,最小公倍數顯示在文本框Text4中。程序運行界面如下圖所示。
(1)要使按鈕Command1上顯示文字“求最大公約數與最小公約數”,應修改按鈕Command1的________屬性的屬性值。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的語句。
Private Sub Command1_Click()
 Dim m As Long, n As Long, r As Long, t As Long
 m = Val(Text1.Text)
 n = Val(Text2.Text)
 t = m * n
 If m < n Then r = m: m = n: n = r
 r = m - n
 Do While ________①________
If r < n Then
m = n
n = r
Else
  ________②________
End If
________③________
 Loop
 Text3.Text = Str(n)
 Text4.Text = ________④________
End Sub
解析 (1)本小題主要考查的是對象的屬性。要設置窗體的標題,應修改其Caption屬性的屬性值。(2)本題主要考查的是根據算法思想完成程序實現。根據更相減損之術的思想可知,不斷地構造數對(m,n)且m>=n,剛開始時,數對(m,n)為整數一和整數二,然后用兩數之差r和n組成一對新的數,當r答案 (1)Caption (2)①r< >0或r< >n或m< >n?、趍 = r?、踨 = m - n?、躍tr(t / n)
3.數學中的“自守數”:如果一個數的平方的末幾位等于該數本身,這個數就是自守數。例如:
5*5=2
6*6=3
25*25=6
76*76=57
……
那么,5、6、25、76等數被稱為自守數。小李編寫VB程序,實現如下功能:找出10000以內所有可能的自守數,單擊“統計”按鈕Command1,將符合要求的自守數顯示在列表框List1中,統計個數顯示在標簽Label1中,運行界面如下圖所示。
(1)程序運行時要在按鈕上顯示“統計”,應設置按鈕的________屬性。
(2)為實現上述功能,請在劃線處填入合適的代碼。
Private Sub Command1_Click()
 Dim n As Single, k As Integer, t As Integer, c As Integer
 List1.Clear
 c=0
 For n = 5 To 10000
  k = Len(Trim(n)) ′Trim()函數用于刪除字符串前的空格
  t = (n * n) Mod ______①______
  If t = n Then
   List1.AddItem Str(n)
    ______②______
  End If
 Next n
 Label1.Caption = “自守個數為:” + Str(c)
End Sub
(3)解決該問題采用了________(選填:枚舉/解析)算法。
答案 (1)Caption (2)①10^k?、赾=c+1
(3)枚舉
4.歐幾里德算法求最大公約數。歐幾里德算法又稱輾轉相除法,用于計算兩個整數的最大公約數。歐幾里德算法:對于給定的兩個整數,用較大的數除以較小的數。若余數不為零,則將余數和較小的數構成一對新的數,繼續上面的除法,直到大數被小數除盡,則這時較小的整數就是原來兩個數的最大公約數。
設計一個VB程序,實現如下功能:輸入三個整數,求這三個整數的最大公約數。程序運行時,在文本框Text1、Text2、Text3中分別輸入三個整數,單擊“求最大公約數”按鈕Command1,在標簽Label5中顯示這三個整數的最大公約數。程序運行效果如圖所示。
實現上述功能的VB程序如下,請程序劃線處填入合適的代碼。
′自定義函數gcd(x,y)的功能是求整數x、y的最大公約數
Function gcd(x As Integer, y As Integer) As Integer
 Dim r As Integer
 Do While x Mod y < > 0
______①______
x = y
y = r
 Loop
 gcd = y
End Function
′swap(m,n)自定義過程,其功能是交換變量m、n的值
Sub swap(m As Integer, n As Integer)
 Dim temp As Integer
 temp = m
 m = n
 n = temp
End Sub
Private Sub Command1_Click()
 Dim a As Integer, b As Integer, c As Integer, ans As Integer
 a = Val(Text1.Text)
 b = Val(Text2.Text)
 c = Val(Text3.Text)
 If ______②______Then Call swap(a, b) ′Call swap(a, b)表示調用過程swap
 ans = gcd(a, b)
 If ans > c Then Call swap(ans, c)
 ________③________
 Label5.Caption = Str(ans)
End Sub
解析?、偬幋a為自定義函數gcd(x,y),表示求整數x、y的最大公約數,每次將x、y的余數r與較小數y重新構成一對新的數再求最大公約數,因此①處代碼為r = x Mod y;為了保證a>b,因此當a答案?、賠 = x Mod y?、赼 < b?、踑ns = gcd(c, ans)
5.完全數。完全數又稱完美數或完備數,是一些特殊的自然數。它所有的真因子(即除了自身以外的約數)的和,恰好等于它本身。如果一個數恰好等于它的真因子之和,則稱該數為“完全數”。例如:第一個完全數是6,它的真因子為1、2、3,1+2+3=6。
現要求前n個完全數,具體功能如下:在文本框Text1中輸入n,單擊“求完全數”按鈕Command1,前n個完全數顯示在列表框List1中。程序運行界面如圖所示。
實現上述功能的VB程序如下,請在程序劃線處填入合適的代碼。
Private Sub Command1_Click()
 Dim n As Integer, t As Integer, sum As Long, i As Long, j As Long
  n = Val(Text1.Text)
  t = 1
  i = 2
  Do While t <= n
  ________①________
  For j = 2 To Int(Sqr(i))
   If i Mod j = 0 Then
     If j = i j Then
      sum = sum + j
     Else
      ________②________
     End If
   End If
 Next j
 If i = sum Then
   t = t + 1
   List1.AddItem Str(i)
 End If
 ________③________
  Loop
End Sub
解析 變量sum表示i的真因子之和,它的初值為1,因此①處語句為sum = 1;根據除數i的范圍可知,求i的因子分兩種情況進行:(1)當i為完全平方數時,真因子之和sum = sum + j;(2)當i不是完全平方數時,如果j為i的因子,則ij也是i的因子,因此將i的兩個因子(j和ij)同時累加在變量sum中,即sum = sum + j + i j;從2開始尋找完全數,直到找到n個完全數為止,因此③處語句為i = i + 1。
答案?、賡um = 1 ②sum = sum + j + i j
③i = i + 1
6.親密數。小明編寫了一個求親密數的VB程序。所謂親密數是指如果整數x的全部因子(包括1,不包括x本身)之和等于y,且整數y的全部因子之和等于x,則將整數x和y稱為親密數,現在統計100~20000間的所有親密數。例如整數220和284為一對親密數。
約定:
(1)如整數(x,y)為一對親密數,則整數(y,x)與整數(x,y)認為是同一對親密數;
(2)整數(x,y)為一對親密數,當且僅當x不等于y。
程序運行時,單擊“開始”按鈕Command1,則在列表框List1中顯示100~20000間所有親密數,在標簽Label2中顯示親密數的對數。程序運行界面如圖所示。
實現上述功能的VB程序如下,請程序劃線處填入合適的代碼。
Private Sub Command1_Click()
 Dim x As Long, y As Long, i As Long, j As Long,m As Long
 Dim b As Long, ans As Long
 ans = 0
 For x = 100 To 20000
  y = 0
  ______①______
  For i = 1 To x 2
   If x Mod i = 0 Then y = y + i
  Next i
  For j = 1 To y 2
   If y Mod j = 0 Then b = b + j
  Next j
  If b = x And ______②______ Then
   List1.AddItem Str(x) + Str(y)
   ans = ans + 1
   m = x
  End If
 Next x
 Label2.Caption = “共有親密數對:” + ____③____
End Sub
解析 本題主要考查的是程序的綜合能力。劃線①處語句表示將變量b初始化為0;劃線②處語句為約定的2個條件,即x< >y、(x,y)與(y,x)為同一對親密數;劃線③處語句表示輸出親密數對。
答案 ①b = 0?、趚 < > y And m < > y ③Str(ans)
7.回文數。如果一個正整數從左往右讀與從右往左讀是一樣的,就稱它為回文數,如1234321?!盎財挡孪搿钡闹饕枷胧菍θ我庹麛?,若它不是回文數,則按下列算法即可獲得一個回數:
(1)把該整數的數字順序顛倒,求得該數的逆序數;
(2)將該整數和其對應的逆序數相加;
(3)若相加結果不是回文數,則將結果作為新的整數,返回步驟(1)。
小林按照上述算法設計了驗證回文數猜想的VB程序(猜想次數不超過10次),程序功能如下:在文本框Text1中輸入一個正整數,單擊“驗證”按鈕(Command1),獲取文本框Text1中的數,當該數不是回文數時,采用回數猜想的方法進行驗證,并在列表框List1中輸出每次驗證的過程,若驗證成功或驗證次數超過10次,則停止驗證,最后在列表框List1中輸出驗證結果。程序運行效果如下圖所示。
實現上述功能的VB程序如下:
Private Sub Command1_Click()
 Dim t As String,a As Long,b As Long
 Dim count As Integer ′用于存儲回數猜想的驗證次數
 t=Text1.Text
 count=1
 Do While check(t)=False And count<=10
a=Val(t)
________①________
c=a+b
List1.AddItem Str(a)&“+”& Str(b)&“=”& Str(c)
count=count+1
t=Trim(str(c)) “函數Trim()的功能是刪除字符串首部和尾部的空格
 Loop
 If check(t)Then
List1.AddItem“驗證成功!”
 Else
List1.AddItem“10次內未驗證成功!”
 End If
End Sub
Function turn(x As String)As Long
 Dim s As String,i As Integer
 s=“ ”
 For i=Len(x)To 1 Step-1
 s=s & Mid(x,i,1)
 Next i
 turn=Val(s)
End Function
′自定義函數Check,檢查x是否為回文數
Function check(x As String)As Boolean
 Dim i As Integer
 check=True
 For i=1 To Len(x)2
If Mid(x,i,1)< >______②______Then check=False
 Next i
End Function
(1)程序代碼中,自定義函數Turn(x)的功能是__________________。
(2)請在劃線處填入合適代碼。
解析 本題主要考查的是算法的綜合運用。(1)根據自定義函數中的語句s=s & Mid(x,i,1)可知,自定義函數turn(x)的功能是求字符串x的逆序(反序);(2)根據語句c=a+b可知,b表示將數字串t的反序轉化為數值,因此①處代碼為b=turn(t);自定義函數Check的功能是檢查x是否為回文數,即將字符串x中第i個字符與第len(x)-i+1個字符進行比較,若相等,則進行下一對字符的比較,否則x就不是回文數,因此②處代碼為 Mid(x,(Len(x)-i+1),1)。
答案 (1)求字符串x的逆序 (2)①b=turn(t)
②Mid(x,(Len(x)-i+1),1)
專項測試八 數學中的有趣數
1.下列VB程序的功能是素數判斷。程序運行時,在文本框Text1中輸入一個數,單擊“判斷”按鈕Command1,若該數是素數,則在文本框Text2中輸出“Yes”,否則輸出“No”。程序運行效果如下圖所示。
(1)要使程序運行時,文本框Text2的Height屬性值為2000,可在Form_Load事件過程中添加語句________(單選,填字母:A. Height=2000 / B.Text2. Height=2000 / C. Height.Text2=2000)。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的語句。
Function test(x As Integer)As Boolean
 Dim i As Integer
 test=True
 i=2
 Do While i<=x-1 And test=True
If x Mod i=0 Then
  ________①________
Else
  i = i+1
End If
 Loop
End Function
Private Sub Command1_Click()
 Dim n As Integer, ans As String
 n=Val(Text1.Text)
 If ________②________ Then
  ans = “Yes”
 Else
  ans = “No”
 End If
 Text2.Text =________③________
End Sub
2.最大公約數和最小公倍數。更相減損之術求最大公約數的基本思想是:用兩數中較大的數減去較小的數,獲得的差與原先較小的數構成新的一對數,再用大的數減去小的數……如此循環,用同樣的方法操作,直至產生一對相等的數,該數即為最大公約數。以求12、16 這兩個數的最大公約數為例,具體操作如下:(12,16)→(12,4)→(8,4)→(4,4), 即4是12和16的最大公約數。具體功能如下:在文本框Text1中輸入整數一,在文本框Text2中輸入整數二,單擊“求最大公約數和最小公倍數”按鈕Command1,兩數的最大公約數顯示在文本框Text3中,最小公倍數顯示在文本框Text4中。程序運行界面如下圖所示。
(1)要使按鈕Command1上顯示文字“求最大公約數與最小公約數”,應修改按鈕Command1的________屬性的屬性值。
(2)實現上述功能的VB程序如下,請在劃線處填入合適的語句。
Private Sub Command1_Click()
 Dim m As Long, n As Long, r As Long, t As Long
 m = Val(Text1.Text)
 n = Val(Text2.Text)
 t = m * n
 If m < n Then r = m: m = n: n = r
 r = m - n
 Do While ________①________
If r < n Then
m = n
n = r
Else
  ________②________
End If
________③________
 Loop
 Text3.Text = Str(n)
 Text4.Text = ________④________
End Sub
3.數學中的“自守數”:如果一個數的平方的末幾位等于該數本身,這個數就是自守數。例如:
5*5=2
6*6=3
25*25=6
76*76=57
……
那么,5、6、25、76等數被稱為自守數。小李編寫VB程序,實現如下功能:找出10000以內所有可能的自守數,單擊“統計”按鈕Command1,將符合要求的自守數顯示在列表框List1中,統計個數顯示在標簽Label1中,運行界面如下圖所示。
(1)程序運行時要在按鈕上顯示“統計”,應設置按鈕的________屬性。
(2)為實現上述功能,請在劃線處填入合適的代碼。
Private Sub Command1_Click()
 Dim n As Single, k As Integer, t As Integer, c As Integer
 List1.Clear
 c=0
 For n = 5 To 10000
  k = Len(Trim(n)) ′Trim()函數用于刪除字符串前的空格
  t = (n * n) Mod ______①______
  If t = n Then
   List1.AddItem Str(n)
    ______②______
  End If
 Next n
 Label1.Caption = “自守個數為:” + Str(c)
End Sub
(3)解決該問題采用了________(選填:枚舉/解析)算法。
4.歐幾里德算法求最大公約數。歐幾里德算法又稱輾轉相除法,用于計算兩個整數的最大公約數。歐幾里德算法:對于給定的兩個整數,用較大的數除以較小的數。若余數不為零,則將余數和較小的數構成一對新的數,繼續上面的除法,直到大數被小數除盡,則這時較小的整數就是原來兩個數的最大公約數。
設計一個VB程序,實現如下功能:輸入三個整數,求這三個整數的最大公約數。程序運行時,在文本框Text1、Text2、Text3中分別輸入三個整數,單擊“求最大公約數”按鈕Command1,在標簽Label5中顯示這三個整數的最大公約數。程序運行效果如圖所示。
實現上述功能的VB程序如下,請程序劃線處填入合適的代碼。
′自定義函數gcd(x,y)的功能是求整數x、y的最大公約數
Function gcd(x As Integer, y As Integer) As Integer
 Dim r As Integer
 Do While x Mod y < > 0
______①______
x = y
y = r
 Loop
 gcd = y
End Function
′swap(m,n)自定義過程,其功能是交換變量m、n的值
Sub swap(m As Integer, n As Integer)
 Dim temp As Integer
 temp = m
 m = n
 n = temp
End Sub
Private Sub Command1_Click()
 Dim a As Integer, b As Integer, c As Integer, ans As Integer
 a = Val(Text1.Text)
 b = Val(Text2.Text)
 c = Val(Text3.Text)
 If ______②______Then Call swap(a, b) ′Call swap(a, b)表示調用過程swap
 ans = gcd(a, b)
 If ans > c Then Call swap(ans, c)
 ________③________
 Label5.Caption = Str(ans)
End Sub
5.完全數。完全數又稱完美數或完備數,是一些特殊的自然數。它所有的真因子(即除了自身以外的約數)的和,恰好等于它本身。如果一個數恰好等于它的真因子之和,則稱該數為“完全數”。例如:第一個完全數是6,它的真因子為1、2、3,1+2+3=6。
現要求前n個完全數,具體功能如下:在文本框Text1中輸入n,單擊“求完全數”按鈕Command1,前n個完全數顯示在列表框List1中。程序運行界面如圖所示。
實現上述功能的VB程序如下,請在程序劃線處填入合適的代碼。
Private Sub Command1_Click()
 Dim n As Integer, t As Integer, sum As Long, i As Long, j As Long
  n = Val(Text1.Text)
  t = 1
  i = 2
  Do While t <= n
  ________①________
  For j = 2 To Int(Sqr(i))
   If i Mod j = 0 Then
     If j = i j Then
      sum = sum + j
     Else
      ________②________
     End If
   End If
 Next j
 If i = sum Then
   t = t + 1
   List1.AddItem Str(i)
 End If
 ________③________
  Loop
End Sub
6.親密數。小明編寫了一個求親密數的VB程序。所謂親密數是指如果整數x的全部因子(包括1,不包括x本身)之和等于y,且整數y的全部因子之和等于x,則將整數x和y稱為親密數,現在統計100~20000間的所有親密數。例如整數220和284為一對親密數。
約定:
(1)如整數(x,y)為一對親密數,則整數(y,x)與整數(x,y)認為是同一對親密數;
(2)整數(x,y)為一對親密數,當且僅當x不等于y。
程序運行時,單擊“開始”按鈕Command1,則在列表框List1中顯示100~20000間所有親密數,在標簽Label2中顯示親密數的對數。程序運行界面如圖所示。
實現上述功能的VB程序如下,請程序劃線處填入合適的代碼。
Private Sub Command1_Click()
 Dim x As Long, y As Long, i As Long, j As Long,m As Long
 Dim b As Long, ans As Long
 ans = 0
 For x = 100 To 20000
  y = 0
  ______①______
  For i = 1 To x 2
   If x Mod i = 0 Then y = y + i
  Next i
  For j = 1 To y 2
   If y Mod j = 0 Then b = b + j
  Next j
  If b = x And ______②______ Then
   List1.AddItem Str(x) + Str(y)
   ans = ans + 1
   m = x
  End If
 Next x
 Label2.Caption = “共有親密數對:” + ____③____
End Sub
7.回文數。如果一個正整數從左往右讀與從右往左讀是一樣的,就稱它為回文數,如1234321?!盎財挡孪搿钡闹饕枷胧菍θ我庹麛担羲皇腔匚臄担瑒t按下列算法即可獲得一個回數:
(1)把該整數的數字順序顛倒,求得該數的逆序數;
(2)將該整數和其對應的逆序數相加;
(3)若相加結果不是回文數,則將結果作為新的整數,返回步驟(1)。
小林按照上述算法設計了驗證回文數猜想的VB程序(猜想次數不超過10次),程序功能如下:在文本框Text1中輸入一個正整數,單擊“驗證”按鈕(Command1),獲取文本框Text1中的數,當該數不是回文數時,采用回數猜想的方法進行驗證,并在列表框List1中輸出每次驗證的過程,若驗證成功或驗證次數超過10次,則停止驗證,最后在列表框List1中輸出驗證結果。程序運行效果如下圖所示。
實現上述功能的VB程序如下:
Private Sub Command1_Click()
 Dim t As String,a As Long,b As Long
 Dim count As Integer ′用于存儲回數猜想的驗證次數
 t=Text1.Text
 count=1
 Do While check(t)=False And count<=10
a=Val(t)
________①________
c=a+b
List1.AddItem Str(a)&“+”& Str(b)&“=”& Str(c)
count=count+1
t=Trim(str(c)) “函數Trim()的功能是刪除字符串首部和尾部的空格
 Loop
 If check(t)Then
List1.AddItem“驗證成功!”
 Else
List1.AddItem“10次內未驗證成功!”
 End If
End Sub
Function turn(x As String)As Long
 Dim s As String,i As Integer
 s=“ ”
 For i=Len(x)To 1 Step-1
 s=s & Mid(x,i,1)
 Next i
 turn=Val(s)
End Function
′自定義函數Check,檢查x是否為回文數
Function check(x As String)As Boolean
 Dim i As Integer
 check=True
 For i=1 To Len(x)2
If Mid(x,i,1)< >______②______Then check=False
 Next i
End Function
(1)程序代碼中,自定義函數Turn(x)的功能是__________________。
(2)請在劃線處填入合適代碼。
解析 本題主要考查的是算法的綜合運用。(1)根據自定義函數中的語句s=s & Mid(x,i,1)可知,自定義函數turn(x)的功能是求字符串x的逆序(反序);(2)根據語句c=a+b可知,b表示將數字串t的反序轉化為數值,因此①處代碼為b=turn(t);自定義函數Check的功能是檢查x是否為回文數,即將字符串x中第i個字符與第len(x)-i+1個字符進行比較,若相等,則進行下一對字符的比較,否則x就不是回文數,因此②處代碼為 Mid(x,(Len(x)-i+1),1)。

展開更多......

收起↑

資源列表

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 南靖县| 靖西县| 盘锦市| 宣化县| 虞城县| 大同市| 博罗县| 泸溪县| 吉安县| 金山区| 陆河县| 莱芜市| 通榆县| 酒泉市| 碌曲县| 敦化市| 新营市| 韶关市| 乌兰察布市| 双城市| 咸宁市| 皋兰县| 台安县| 全南县| 宜兴市| 卢湾区| 江陵县| 永顺县| 桑植县| 康保县| 冕宁县| 新丰县| 肥东县| 玛多县| 上饶市| 彭州市| 界首市| 临朐县| 桂阳县| 宜城市| 天台县|