猜數字是一種古老的密碼破譯類益智小游戲.通常由兩個人玩,也可以由一個人和電腦玩,其標準規(guī)則為:
1)一方出數字,出數字的人要想好一個無重復數字的4位數(如0165,5234等),不能讓猜的人知道;
2)另一方猜數字,每猜一個數字,出數者根據結果給出“幾A幾B的提示”,其中A前面的數字表示位置正確的數字個數,而B前面的數字表示數字正確但位置不對的數字個數.(如要猜5234,猜的人給出5346,則提示1A2B);
3)重復第二步的猜測過程,直到猜中(即提示4A0B)為止.
小林編寫了一個和電腦猜數字的VB程序,其功能如下:窗體加載時,調用自定義函數產生待猜的4位數字,并初始化猜測次數.用戶在文本框Text1中輸入猜的數字,單擊“我猜”按鈕Command1,程序進行判斷,并將結果顯示在列表框List1中.猜中后,在標簽框Label2中根據猜測次數給出評語.程序運行效果如1圖所示.
(1)實現上述功能的VB程序如下,請在橫線處填入合適代碼.
Dim result As String,total As Integer
Dim flag(0 to 9)As Boolean'標記下標對應的數字是否存在,初值默認為False
Private Sub Form_Load( ?。?br /> result=①RndCode(4)①RndCode(4)
total=0
End Sub
Private Sub Command1_Click( ?。?br /> Dim A As Integer,B As Integer
Dim C As Integer'變量C存儲數字正確(含位置正確)的數字個數
Dim guess As String,i As Integer,t1 As String,t2 As String
guess=Text1.Text
A=0:C=0
For i=1 To 4
t1=Mid(result,i,1)
t2=Mid(guess,i,1)
If t1=t2 Then A=A+1
If ②flag(val(t2)=true或 flag(val(t2)) 或 flag(t2)=true 或 flag(t2)②flag(val(t2)=true或 flag(val(t2)) 或 flag(t2)=true 或 flag(t2) Then C=C+1
Next i
total=total+1
B=③C-A③C-A
List1.AddItem Str(total) &““& guess &““& Str(A) &“A“& Str(B) &“B“
If A=4 Then
If total<=8 Then
Label2.Caption=“太厲害了!您只用了“& total &“次.“
Else
Label2.Caption=“繼續(xù)鍛煉!您共花了“& total &“次.“
End If
End If
End Sub
'RndCode 函數用于隨機產生待猜測的n位不重復數字字符
Function RndCode(n As Integer) As String
Dim x As Integer,i As Integer
Randomize
num=0:RndCode=““
Do While num<n
x=Int(Rnd*10)'隨機產生一個[0,9]的數字
If flag(x)=False Then
flag(x)=True
num=num+1
RndCode=RndCode & x
End If
Loop
End Function
(2)如果某次游戲過程如2圖所示,那么第7次要猜測成功,應輸入 DD(單選,填字母:A.6321 B.6312 C.2531 D.2513).
【考點】編輯事件處理過程的代碼.
【答案】①RndCode(4);②flag(val(t2)=true或 flag(val(t2)) 或 flag(t2)=true 或 flag(t2);③C-A;D
【解答】
【點評】
聲明:本試題解析著作權屬菁優(yōu)網所有,未經書面同意,不得復制發(fā)布。
發(fā)布:2024/6/27 10:35:59組卷:3引用:1難度:0.1
相似題
-
1.根據AQI值判斷城市的空氣質量。若城市的AQI值(整數)不超過100則空氣質量優(yōu)良,否則空氣質量有污染。當輸入的AQI值為-1時則退出程序。不要更改程序結構,將題中的①②③④填入正確的語句。
city=input(“請輸入城市名:”)
AQI=int(input(“請輸入空氣質量指數AQI的值:”))
①______ AQI!=-1:
if ②______:
print(city,“的空氣質量優(yōu)良。”)
③______:
print(city,“的空氣質量有污染。”)
city=input(“請輸入城市名:”)
AQI=④(input(“請輸入空氣質量指數AQI的值:”))
(1)序號①答案為
A.if
B.while
C.for
D.def
(2)序號②答案為
A.AQI>=100
B.AQI<=100
C.AQI>100
D.AQI<100
(3)序號③答案為
A.elif
B.break
C.if
D.else
(4)序號④答案為
A.int
B.float
C.str
D.else發(fā)布:2025/1/2 11:0:1組卷:0引用:0難度:0.4 -
2.一球從100米高度自由落下,每次落地后反跳回原高度的一半,再下落。編寫一個C程序,求它在第10次落地時,其經過了多少米?第10次反彈多高?
發(fā)布:2025/1/2 11:0:1組卷:0引用:3難度:0.3 -
3.利用海倫公式求解三角形面積。已知a,b,c為三角形的三條邊長,p為三角形的半周長,即p=(a+b+c)/2,計算此三角形面積S的海倫公式為:。不要更改程序結構,將題中的①②③填入正確的語句。
import math#導入數學模塊
def hl(a,b,c):#定義求三角形面積的函數
p=①
s=math.jye.ai(②)#sqrt用于計算算術平方根
return ③#返回面積的值
a,b,c=3,4,5#邊長依次賦值
print(“此三角形的面積S為:“,hl(a,b,c))
A. (a+b+c)/2 B.p*(p-a)*(p-b)*(p-c)
C. (a+b+c)*2 D.s
(2)序號②答案為
A.(a+b+c)/2 B.p*(p-a)*(p-b)*(p-c)
C.(a+b+c)*2 D.(3+4+5)/2
(3)序號③答案為
A.p B.s
C.p*(p-a)*(p-b)*(p-c) D.0發(fā)布:2025/1/2 11:0:1組卷:0引用:0難度:0.4