久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

VB編程題及答案

時間:2019-05-14 11:01:12下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《VB編程題及答案》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《VB編程題及答案》。

第一篇:VB編程題及答案

1定義一個下標上界為10整型數組,并用隨機函數為其賦值(值處于[0,100]之間),計算數組中所有偶數的和。Private Sub Command1_Click()Randomize Dim a%(10)Dim i%, s% For i = 0 To 10 a(i)= 101 * Rnd()Next For i = 0 To 10 If a(i)Mod 2 = 0 Then s = s + a(i)End If Next Print “所有偶數的和為”, s 2 設 S=35,C=0.3,編寫程序,計算并輸出下面級數的部分和。結果取小數點后面7位。C/1!-C^3/3!+C^5/5!-? +(-1)^(S-1)*C^(2*S-1)/(2*S-1)!+ ?

參考答案如下:

Private Sub Command1_Click()

Dim n As Integer

Dim x As Double

x = 0.3

Dim item As Double

Dim sum As Double

Dim fac As Double

For n = 1 To 35

fac = 1

Dim i As Integer

For i = 1 To 2 * n1)* x ^(2 * n1

If n Mod i = 0 Then

isprime = False

Exit Function

End If

Next

isprime = True End Function Private Sub Command1_Click()

Dim i As Integer

Dim sum As Long

For i = 1000 To 2000

If isprime(i)= True Then

sum = sum + i

End If

Next

Text1.Text = “sum=” & sum End Sub 'sum= 419684 13.編寫一個函數,求某個數的階乘。

調用該函數計算22!。

Public Function fact(ByVal n As Integer)As

Long

Dim i As Integer, f As Long

f = 1

For i = 1 To n

f = f * i

Next i

fact = f End Function Private Sub Command1_Click()

Dim m As Integer, i As Integer, s As Long

m = InputBox(“輸入一個正整數:

”)

s = fact(m)

MsgBox(s)End Sub ‘479001600 14.編寫子過程,計算并輸出3000-4000之間的素數之和C與其中最小的素數MIN。

Private Sub Command1_Click()

Dim sum, i, min As Integer

min=0

For i = 3000 To 4000

Dim isprime As Boolean = True

Dim j As Integer

For j = 2 To i1)* n *(n + 1)

sum = sum + item

n = n + 2

Loop While Abs(sum)<= 100

MsgBox(sum)End Sub 'sum=-68 編寫一個函數,其功能為求兩個數的最大公約數。

Public Function

gcd(ByVal m As Integer, ByVal n As Integer)As Integer

Dim i As Integer If m > n Then Dim t As Integer t = m: m = n: n = t End If For i = m To 1 Step-1 If m Mod i = 0 And n Mod i = 0 Then gcd = i Exit Function

End If

Next End Function

20.用InputBox輸入一個年份,判斷該年份是否是平年,若是則輸出“Yes”,否則輸出“No”。

Dim year As Integer year = Val(InputBox(“"))If(year Mod 400 = 0)Or(year Mod 4 = 0 And year Mod 100<>0)

Then MsgBox(”No“)Else

MsgBox(”Yes“)

End If 輸入兩個整數m、n,編寫程序使得

m>=n,并輸出m、n的值。

Dim m, n As Integer

m = Val(InputBox(”“))n = Val(InputBox(”“))

If m < n Then Dim t As Integer t = m : m = n : n = t End If

MsgBox(”m=“ & m & ”;“ & ”n=“ & n)

22求下面級數前n項的和S,在求和

過程中,當某項(注意,該項參與求和)的絕對值小于0.0001 時求和終止。結果取 5 位小數。

1-1/3+1/5-1/7+1/9-1/11+ ? +(-1)^(n-1)*1/(2n-1)+ ?

Private Sub Command1_Click()

Dim n As Integer

Dim item As Double

Dim sum As Double

i = Do While True

item =(-1)^(i1)

整數:”)sum = sum + item If Abs(item)< 0.0001 Then Exit Do Else i = i + 1 End If Loop

MsgBox(Format(sum, “0.0000”))

End Sub '

sum=0.78545 編寫一個函數,其功能為判斷一個3位正整數是否是“水仙花數”。(“水仙花數”是指各位數字的立方和與該數相等,如153=1^3+5^3+3^3,153就是水仙花數。)

Public Function Panduan(ByVal x As Integer)As Boolean

Dim a As Integer, b As Integer, c As Integer

a = x 100

b =(x Mod 100)10

c = x Mod 10

If x = a ^ 3 + b ^ 3 + c ^ 3 Then

Panduan = True

Else

Panduan = False

End If

End Function Private Sub Command1_Click()

Dim i As Integer

i = InputBox(“輸入一個3位正

MsgBox(Panduan(i))End Sub 定義一個下標上界為10整型數組,并為其賦值(值處于[0,100]之間),計算數組中所有不小于60的數據的和。

Dim a(10), i, sum As Integer

For i = 0 To 10

a(i)= Int(Rnd()* 101)

Next

For i = 0 To 10

If a(i)〉=60 Then

sum = sum + a(i)

End If

Next

print sum

25.編寫程序,求下面級數前n項的和s=1/1!-1/2!+1/3!-1/4!+....+(-1)^(n-1)*1/n!+.....。

'求和過程當某一項的絕對值小于0.0001時結束(注意,該項參與求和),計算并輸出所求的s,要求結果保留6位小數。Private Sub Command1_Click()

Dim m As Double, n As Long, s As Double, f As Integer

s = 0: n =-1: m = 1: f = 1 Do While 1 / m >= 0.0001 m = m * f f = f + 1 n =-n

s = s + n / m Loop

s = Format(s, ”0.000000“)Print s End Sub

26輸入一個四位數,分別輸出它的個位數字,是十位數字,百位數字,千位數字。Private Sub Command1_Click()Dim a%, j%, k%, i%, m% a = InputBox(”請輸入一個四位整數“)j = a 1000 k = a 100 Mod 10 i = a 10 Mod 10 m = a Mod 10 Print ”個位數字;“;m Print ”十位數字;“;i Print ”百位數字;“;k Print ”千位數字;“;j End Sub 6.計算sum=2!+4!+6!+...+10!Private Sub Command1_Click()Dim a%, i% Sum = 0 i = 1: a = 1 Do a = 2 * i If i Mod 2 = 0 Then Sum = Sum + a End If i = i + 1 Loop While i <= 10 Print Sum End Sub

27編寫程序,計算并輸出下面級數前n項(n=20)中奇數項的和。1*2*3-2*3*4+3*4*5-4*5*6+....+(-1)^(n-1)*n*(n+1)*(n+2)+...Private Sub Command1_Click()Dim s!, i% For i = 1 To 20 Step 2 s = s + i *(i + 1)*(i + 2)Next MsgBox(s)End Sub

28隨機輸出一個小寫字母。Private Sub Command1_Click()Dim a As String Randomize

a = Chr(Int(97 + 26 * Rnd))MsgBox(a)End Sub、29編寫程序,計算并輸出下面級數前n項(n=50)中偶數項的和。s=1*2+2*3+3*4+4*5+....+n*(n+1)+.....Private Sub Command1_Click()Dim s!, i%

For i = 2 To 50 Step 2 s = s + i *(i + 1)Next

MsgBox(s)End Sub

30斐波那契數列是由計算某類動物繁殖增長量而提出的。數列的前兩項是1、1,以后的每一項都是其相鄰前兩項的和。編寫程序求:數列前30項和。

Private Sub Command1_Click()Dim a&, b&, c&, i%

a = 1: b = 1: c = 2: Sum = 0 For i = 1 To 28 c = a + b a = b b = c

Sum = Sum + c Next

MsgBox(Sum)End Sub

31輸入三個數a、b、c,編寫程序使得a<=b<=c,并輸出a、b、c的值。Private Sub Command1_Click()Dim a%, b%, c%, t%

a = Val(InputBox(”請輸入a的值!“))b = Val(InputBox(”請輸入b的值!“))c = Val(InputBox(”請輸入c的值!“))If a > b Then t = b b = a a = t End If

If a > c Then t = a a = c c = t End If If b > c Then t = b b = c c = t End If

Print a, b, c End Sub 32編寫程序,設n=20,x=3.4,計算并輸出S(n)的值,要求結果保留5位小數。S(n)=Inx/x+In2x/x^2+In3x/x^3+.....+In(n*x)/x^n+.....Private Sub Command1_Click()Dim x#, i% Dim S(20)As Double n = 20 x = 3.4 For i = 1 To 20 S(20)= S(20)+ Log(i * x)/(x ^ i)Next Print Format(S(20), ”0.00000“)End Sub

33輸入任意三個數 找出其中最大的數 Private Sub Command1_Click()Dim a!, b!, c!, Max!a = Text1.Text b = Text2.Text c = Text3.Text Max = a If b > Max Then Max = b If c > Max Then Max = c Text4.Text = Max End Sub

輸出1到100之間的素數 Print 1;2;a = 3 While a <= 100 i = 2

While i < a

If a Mod i = 0 Then

i = a

End If

i = i + 1

Wend

If i = a Then

Print a;

End If a = a + 1 Wend、34打印斐波那契數列20項 Private sub form_click()A=0 B=1

Text1.text=text1.text&str(A)&str(B)&chr(13)& Chr(10)For i=1 to 9 A=A+B B=A+B

Text1.text=text1.text&str(A)&str(B)&chr(13)& Chr(10)Next i

35判定素數

A=val(inputbox(“input a”))For i=2 to a

If(a mod i=0)then Exit for End if Next i

If i

36求sum

1+(1+2)+(1+2+3)………….n = Val(Text1.Text)sum = 0

For i = 1 To n sum1 = 0 For j = 1 To i sum1 = sum1 + j Next j sum = sum + sum1 Next i Text2.Text = sum

37求50名學生的平均成績并統計高于平均分的人

Dim c(1 to 50)as integer Dim p!,n%,i% P=0 For i=1 to 50 C(i)=inputbox(“請輸入第”&i&”位學生的成績”

P=p+c(i)Next i P=p/50 N=0 For i= 1 to 50 If c(i)>p then n=n+1 Next i Print “平均分=”;”高于平均分的人數=”;n

設C=0.3,編寫程序,計算并輸出下面級數的部分和。結果取小數點后面7位。C/1!-C^3/3!+C^5/5!-? +(-1)^(S-1)*C^(2*S-1)/(2*S-1)!+ ? Dim n as integer Dim x as integer X=0.3 Dim item as double Dim sum as double Dim fact as double For n=1 to 35 Fact=1 Dim I as integer For I =1 to 2*n-1 Fact=fact*i Next Item =(-1)^(n-1)*x^(2*n-1)/fact Sum=sum+item Next Sum=int(sum*10000000+0,.5)/100000000

Magbox

39已知A、B為整數A和B的立方和為1000求所有的A、B。

Dim x ,y as integer For x=0 to10 For y=0 to10

If x^3+y^3=1000 then Msgbox(x=;y=)

定義一個下標上界為30的單精度數組,設置好其初值(值處于[20,90]),計算數組中所有元素的均值。Dim array(30)as single For i=0

Array(i)=20+int(rnd()*71)Next i

Dim sum% For i=0 to 30

Sum=sum+array(i)Next i

Print sum 31 End sum

41求下面級數前S項中奇數項的和sum。在求和過程中,以第一個奇數項的數值大于 10000 的項為末項。1!-2!+3!-4!+ ? +(-1)^(S-1)*S!+ ?

Dim n as integer Dim item double Dim I as integer Dim sum as double Dim abs as double Do while true Item =1 For I =1 to n Item = item*1 Next i

Sum=sum +item N=n+2

If abs(item)>10000 then Exit do Else N=n+2 End if Loop Msgbox(sum)

42計算sum=1/1!+1/2!+1/3!+....+1/10!Private Sub Command1_Click()Dim m As Integer, n As Long, s As Double n = 1 s = 0 For m = 1 To 10 n = n * m s = s + 1 / n Next Print s

42求從[j,s]區間內的素數及素數和(這里需要用到三個文本框和2個按鈕)'Private Sub Command1_Click()Dim n%, i%, j%, s% Sum = 0 j = Val(Text1.Text())s = Val(Text2.Text())For n = j To s For i = 2 To n1 Then Sum = Sum + n: Print n Next n Text3.Text = Sum End Sub Private Sub Command2_Click()Cls Text1.Text = ”“ Text2.Text = ”“ Text3.Text = ”“ Text1.SetFocus End Sub 43某分段函數描述如下:(1)當x為偶數時,y的值為x的二分之一。(2)當x為奇數時,y的值為x的二倍。Private Sub Command1_Click()Dim x!, y!x = Val(InputBox(”請輸入X的值!“))

If x Mod 2 = 0 Then y = x / 2 Else y = 2 * x MsgBox(y)End If End Sub

44隨機輸出一個小寫字母。Private Sub Command1_Click()Dim a As String Randomize

a = Chr(Int(97 + 26 * Rnd))MsgBox(a)End Sub、45編寫程序,計算并輸出下面級數前n項(n=50)中偶數項的和。s=1*2+2*3+3*4+4*5+....+n*(n+1)+.....Private Sub Command1_Click()Dim s!, i%

For i = 2 To 50 Step 2 s = s + i *(i + 1)Next

MsgBox(s)End Sub

46編寫程序,設n=20,x=3.4,計算并輸出S(n)的值,要求結果保留5位小數。S(n)=Inx/x+In2x/x^2+In3x/x^3+.....+In(n*x)/x^n+.....Private Sub Command1_Click()Dim x#, i%

Dim S(20)As Double n = 20 x = 3.4

For i = 1 To 20

S(20)= S(20)+ Log(i * x)/(x ^ i)Next

Print Format(S(20), ”0.00000“)End Sub

47設 S=35,C=0.3,編寫程序,計算并輸出下面級數的部分和。結果取小數點后面7位。C/1!-C^3/3!+C^5/5!-? +(-1)^(S-1)*C^(2*S-1)/(2*S-1)!+ ?

參考答案如下:

Private Sub Command1_Click()

Dim n As Integer

Dim x As Double

x = 0.3

Dim item As Double

Dim sum As Double

Dim fac As Double

For n = 1 To 35

fac = 1

Dim i As Integer

For i = 1 To 2 * n1)* x ^(2 * n1

fac = fac * i

Next

item =(-1)^(n1)/ fac

sum = sum + item

Next

sum = Int(sum * 10000000 + 0.5)/ 10000000

MsgBox(sum)End Sub

'

sum = 0.479426

49編寫子過程,計算并輸出3000-4000之間的素數之和C與其中最小的素數MIN。

Private Sub Command1_Click()

Dim sum, i, min As Integer

min=0

For i = 3000 To 4000

Dim isprime As Boolean = True

Dim j As Integer

For j = 2 To ia(1))*(pa(3)))MsgBox(s)Else MsgBox(”不能構成三角形")End If End Sub

第二篇:VB編程題(循環部分總結題目

循環部分

1.求自然數1~100之間奇數之和。

2.求自然數1~100之間偶數之和。

3.編程計算從200到1000之間的所有4的倍數之和。

4.編程計算從300到1000之間的所有7的倍數之和。

5.編寫程序在窗體上顯示出:5/6+4/5+3/4+2/3+1/2

6.編寫程序,通過InputBox函數從鍵盤上輸入4個數,計算并在窗體上顯示這4個數的和及平均值。

7.在窗體的單擊事件過程中,編寫程序計算1!+2!+3!+ ? +20!

8.有一個窗體,窗體中有一個文本框,名稱為Text1,有一個按鈕,試編寫按鈕的單擊事件,實現計算1!+2!+3!+?+10!,將結果顯示在文本框Text1中。(或參照 7 用教材:P86 [例4-21] 方法)

9.編寫程序計算:s=1+1/2!+1/3!+?+1/n!,說明:在窗體中有一個文本框控件:Text1,用來接收n的值,有一個標簽控件:Label1,用來顯示S的值,試編寫窗體的單擊事件,實現計算與顯示功能,只要求寫出事件的主要代碼,事件過程的起始語句和結束語句可略去。(或 參照7 用教材:P87 [例4-22] 方法)

10.編寫程序,在窗體上輸出由1、2、3、4、5這五個數字組成的所有可能的兩位數,并統計它們的個數。

說明: 程序中紅色標示的部分 控制 每行輸出5個數

11.求s=a+aa+aaa+?+aaa?aaa(n個a),其中a和n的值由用戶自己輸入。例如,當a=3,n=4時,S=3+33+333+3333。

12.在窗體上輸出下三角的九九乘法表。

13.編寫程序,將26個字母逆序輸出。

14.編寫程序,將字符串“山高人為峰”按逆序“峰為人高山”輸出。

15.設紙的厚度為0.5毫米,將紙對折,再對折?,求至少對折多少次,紙張的厚度能達到珠穆朗瑪峰的高度8848米。

16.編寫程序,求s的值,s=1×2×3+2×3×4+?+n×(n+1)×(n+2)的值。n由程序輸入。

17.編寫一個程序,用戶連續輸入N個值,直到輸入非數值數據為止。最后輸出其中最大的一個數。

18.編寫程序,輸入一個數,判定該數是否為素數,如果是素數,則輸出“該數是素數”的信息,否則輸出“該數不是素數”的信息。

第三篇:趣味編程題整理及答案

1.抓交通肇事犯

一輛卡車違反交通規則,撞人后逃跑。現場有三人目擊事件,但都沒有記住車號,只記下車號的一些特征。甲說:牌照的前兩位數字是相同的;乙說:牌照的后兩位數字是相同的,但與前兩位不同; 丙是數學家,他說:四位的車號剛好是一個整數的平方。請根據以上線索求出車號。*問題分析與算法設計

按照題目的要求造出一個前兩位數相同、后兩位數相同且相互間又不同的整數,然后判斷該整數是否是另一個整數的平方。*程序說明與注釋 #include #include int main(){ int i,j,k,c;for(i=1;i<=9;i++)/*i:車號前二位的取值*/ for(j=0;j<=9;j++)/*j:車號后二位的取值*/ if(i!=j)/*判斷二位數字是否相異*/ { k=i*1000+i*100+j*10+j;/*計算出可能的整數*/ for(c=31;c*c

Lorry _No.is 7744 2.百錢百雞問題

中國古代數學家張丘建在他的《算經》中提出了著名的“百錢買百雞問題”:雞翁一,值錢五,雞母一,值錢三,雞雛三,值錢一,百錢買百雞,問翁、母、雛各幾何? *問題分析與算法設計

設雞翁、雞母、雞雛的個數分別為x,y,z,題意給定共100錢要買百雞,若全買公雞最多買20只,顯然x的

值在0~20之間;同理,y的取值范圍在0~33之間,可得到下面的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此問題可歸結為求這個不定方程的整數解。由程序設計實現不定方程的求解與手工計算不同。在分析確定方程中未知數變化范圍的前提下,可通過對

未知數可變范圍的窮舉,驗證方程在什么情況下成立,從而得到相應的解。*程序說明與注釋 #include int main(){ int x,y,z,j=0;printf(“Folleing are possible plans to buy 100 fowls with 100 Yuan.n”);

for(x=0;x<=20;x++)/*外層循環控制雞翁數*/ for(y=0;y<=33;y++)/*內層循環控制雞母數y在0~33變化*/ { z=100-x-y;/*內外層循環控制下,雞雛數z的值受x,y的值的制約*/ if(z%3==0&&5*x+3*y+z/3==100)/*驗證取z值的合理性及得到一組解的合理性*/ printf(“%2d:cock=%2d hen=%2d chicken=%2dn”,++j,x,y,z);} } 3.三色球問題

若一個口袋中放有12個球,其中有3個紅的。3個白的和6個黒的,問從中任取8個共有多少種不同的顏色搭 配?

*問題分析與算法設計

設任取的紅球個數為i,白球個數為j,則黒球個數為8-i-j,根據題意紅球和白球個數的取值范圍是0~3,在紅球和白球個數確定的條件下,黒球個數取值應為8-i-j<=6。*程序說明與注釋 #include int main(){ int i,j,count=0;printf(“ RED BALL WHITE BALL BLACKBALLn”);printf(“…………………………………………..n”);for(i=0;i<=3;i++)/*循環控制變量i控制任取紅球個數0 ̄3*/ for(j=0;j<=3;j++)/*循環控制變量j控制任取白球個數0 ̄3*/ if((8-i-j)<=6)printf(“ %2d: %d %d %dn”,++count,i,j,8-i-j);} 4.馬克思手稿中的數學題

馬克思手稿中有一道趣味數學問題:有30個人,其中有男人、女人和小孩,在一家飯館吃飯花了50先令;每個男人花3先令,每個女人花2先令,每個小孩花1先令;問男人、女人和小孩各有幾人? *問題分析與算法設計

設x,y,z分別代表男人、女人和小孩。按題目的要求,可得到下面的方程: x+y+z=30(1)3x+2y+z=50(2)用方程程序求此不定方程的非負整數解,可先通過(2)-(1)式得: 2x+y=20(3)由(3)式可知,x變化范圍是0~10 *程序說明與注釋 #include int main(){

int x,y,z,count=0;printf(“ Men Women Childrenn”);printf(“........................................n”);for(x=0;x<=10;x++){ y=20-2*x;/*x定值據(3)式求y*/ z=30-x-y;/*由(1)式求z*/ if(3*x+2*y+z==50)/*當前得到的一組解是否滿足式(2)*/ printf(“ %2d: %d %d %dn”,++count,x,y,z);} } 5.新娘和新郞

三對情侶參加婚禮,三個新郞為A、B、C,三個新娘為X、Y、Z。有人不知道誰和誰結婚,于是詢問了六位新人中的三位,但聽到的回答是這樣的:A說他將和X結婚;X說她的未婚夫是C;C說他將和Z結婚。這人聽后知道他們在開玩笑,全是假話。請編程找出誰將和誰結婚。

*問題分析與算法設計 將A、B、C三人用1,2,3表示,將X和A結婚表示為“X=1”,將Y不與A結婚表示為“Y!=1”。按照題目中的敘述可以寫出表達式: x!=1 A不與X結婚 x!=3 X的未婚夫不是C z!=3 C不與Z結婚

題意還隱含著X、Y、Z三個新娘不能結為配偶,則有: x!=y且x!=z且y!=z 窮舉以上所有可能的情況,代入上述表達式中進行推理運算,若假設的情況使上述表達式的結果均為真,則假設情況就是正確的結果。*程序說明與注釋 #include int main(){ int x,y,z;for(x=1;x<=3;x++)/*窮舉x的全部可能配偶*/ for(y=1;y<=3;y++)/*窮舉y的全部可能配偶*/ for(z=1;z<=3;z++)/*窮舉z的全部可能配偶*/ if(x!=1&&x!=3&&z!=3&&x!=y&&x!=z&&y!=z)/*判斷配偶是否滿足題意*/ { printf(“X will marry to %c.n”,'A'+x-1);/*打印判斷結果*/ printf(“Y will marry to %c.n”,'A'+y-1);printf(“Z will marry to %c.n”,'A'+z-1);} } *運行結果

X will marry to B.(X與B結婚)Y will marry to C.(Y與C結婚)

Z will marry to A.(Z與A結婚)6.委派任務

某偵察隊接到一項緊急任務,要求在A、B、C、D、E、F六個隊員中盡可能多地挑若干人,但有以下限制條件:

1)A和B兩人中至少去一人; 2)A和D不能一起去;

3)A、E和F三人中要派兩人去; 4)B和C都去或都不去; 5)C和D兩人中去一個; 6)若D不去,則E也不去。問應當讓哪幾個人去? *問題分析與算法設計

用A、B、C、D、E、F六個變量表示六個人是否去執行任務的狀態,變量的值為1,則表示該人去;變量的值為0,則表示該人不參加執行任務,根據題意可寫出表達式: a+b>1 A和B兩人中至少去一人; a+d!=2 A和D不能一起去;

a+e+f==2 A、E、F三人中要派兩人去; b+c==0或b+c==2 B和C都去或都不去; c+d==1 C和D兩人中去一個;

d+e==0或d==1 若D不去,則E也不去(都不去;或D去E隨便)。

上述各表達式之間的關系為“與”關系。窮舉每個人去或不去的各種可能情況,代入上述表達式中進行推理運算,使上述表達式均為“真”的情況就是正確的結果。*程序說明與注釋 #include int main(){ int a,b,c,d,e,f;for(a=1;a>=0;a--)/*窮舉每個人是否去的所有情況*/ for(b=1;b>=0;b--)/*1:去 0:不去*/ for(c=1;c>=0;c--)for(d=1;d>=0;d--)for(e=1;e>=0;e--)for(f=1;f>=0;f--)if(a+b>=1&&a+d!=2&&a+e+f==2 &&(b+c==0||b+c==2)&&c+d==1 &&(d+e==0||d==1)){ printf(“A will%s be assigned.n”,a?“":”not“);printf(”B will%s be assigned.n“,b?”“:”not“);printf(”C will%s be assigned.n“,c?”“:”not“);printf(”D will%s be assigned.n“,d?”“:”not“);printf(”E will%s be assigned.n“,e?”“:”not“);printf(”F will%s be assigned.n“,f?”“:”not“);}

} *運行結果

A will be assigned.(去)B will be assigned.(去)C will be assigned.(去)D will not be assigned.(不去)E will not be assigned.(不去)F will be assigned.(去)7.50.誰在說謊

張三說李四在說謊,李四說王五在說謊,王五說張三和李四都在說謊。現在問:這三人中到底誰說的是真話,誰說的是假話? *問題分析與算法設計

分析題目,每個人都有可能說的是真話,也有可能說的是假話,這樣就需要對每個人所說的話進行分別判斷。假設三個人所說的話的真假用變量A、B、C表示,等于1表示該人說的是真話; 表示這個人說的是假話。由題目可以得到: *張三說李四在說謊 張三說的是真話:a==1&&b==0 或 張三說的是假話:a==0&&b==1 *李四說王五在說謊 李四說的是真話:b==1&&c==0 或 李四說的是假話:b==0&&c==1 *王五說張三和李四都在說謊 王五說的是真話:c==1&&a+b==0 或 王五說的是假話:c==0&&a+b!=0 上述三個條件之間是“與”的關系。將表達式進行整理就可得到C語言的表達式:(a&&!b||!a&&b)&&(b&&!c||!b&&c)&&(c&&a+b==0||!c&&a+b!=0)窮舉每個人說真話或說假話的各種可能情況,代入上述表達式中進行推理運算,使上述表達式均為“真”的情況就是正確的結果。*程序說明與注釋 #include int main(){ int a,b,c;for(a=0;a<=1;a++)for(b=0;b<=1;b++)for(c=0;c<=1;c++)if((a&&!b||!a&&b)&&(b&&!c||!b&&c)&&(c&&a+b==0||!c&&a+b!=0)){ printf(”Zhangsan told a %s.n“,a?”truth“:”lie“);printf(”Lisi told a %s.n“,b?”truch“:”lie“);printf(”Wangwu told a %s.n“,c?”truch“:”lie“);} } *運行結果

Zhangsan told a lie(張三說假話)Lisi told a truch.(李四說真話)Wangwu told a lie.(王五說假話)

8.黑與白

有A、B、C、D、E五人,每人額頭上都帖了一張黑或白的紙。五人對坐,每人都可以看到其它人額頭上的紙的顏色。五人相互觀察后,A說:“我看見有三人額頭上帖的是白紙,一人額頭上帖的是黑紙。” B說:“我看見其它四人額頭上帖的都是黑紙。” C說:“我看見一人額頭上帖的是白紙,其它三人額頭上帖的是黑紙。” D說:“我看見四人額頭上帖的都是白紙。” E什么也沒說。

現在已知額頭上帖黑紙的人說的都是謊話,額頭帖白紙的人說的都是實話。問這五人誰的額頭是帖白紙,誰的額頭是帖黑紙? *問題分析與算法設計

假如變量A、B、C、D、E表示每個人額頭上所帖紙的顏色,0 代表是黑色,1 代表是白色。根據題目中A、B、C、D四人所說的話可以總結出下列關系: A說: a&&b+c+d+e==3||!a&&b+c+d+e!=3 B說: b&&a+c+d+e==0||!b&&a+c+d+e!=0 C說: c&&a+b+d+e==1||!c&&a+b+d+e!=1 D說: d&&a+b+c+e==4||!d&&a+b+c+e!=4 窮舉每個人額頭所帖紙的顏色的所有可能的情況,代入上述表達式中進行推理運算,使上述表達式為“真”的情況就是正確的結果。*程序說明與注釋 #include int main(){ int a,b,c,d,e;for(a=0;a<=1;a++)/*黑色:0 白色:1*/ for(b=0;b<=1;b++)/*窮舉五個人額頭帖紙的全部可能*/ for(c=0;c<=1;c++)for(d=0;d<=1;d++)for(e=0;e<=1;e++)if((a&&b+c+d+e==3||!a&&b+c+d+e!=3)&&(b&&a+c+d+e==0||!b&&a+c+d+e!=0)&&(c&&a+b+d+e==1||!c&&a+b+d+e!=1)&&(d&&a+b+c+e==4||!d&&a+b+c+e!=4)){ printf(”A is pasted a piece of %s paper on his forehead.n“, a?”white“:”black“);printf(”B is pasted a piece of %s paper on his forehead.n“, b?”white“:”black“);printf(”C is pasted a piece of %s paper on his forehead.n“, c?”white“:”black“);printf(”D is pasted a piece of %s paper on his forehead.n“, d?”white“:”black“);printf(”E is pasted a piece of %s paper on his forehead.n“, e?”white“:”black“);

} } *運行結果

A is pasted a paper of black paper on his forehead.(黑)B is pasted a paper of black paper on his forehead.(黑)C is pasted a paper of white paper on his forehead.(白)D is pasted a paper of black paper on his forehead.(黑)E is pasted a paper of white paper on his forehead.(白)9.誠實族和說謊族是來自兩個荒島的不同民族,誠實族的人永遠說真話,而說謊族的人永遠說假話。迷語博士是個聰明的人,他要來判斷所遇到的人是來自哪個民族的。迷語博士遇到三個人,知道他們可能是來自誠實族或說謊族的。為了調查這三個人是什么族的,博士分別問了他們的問題,這是他們的對話: 問第一個人:“你們是什么族?”,答:“我們之中有兩個來自誠實族。”第二個人說:“不要胡說,我們三個人中只有一個是誠實族的。”第三個人聽了第二個人的話后說:“對,就是只有一個誠實族的。”

請根據他的回答判斷他們分別是哪個族的。*問題分析與算法設計

假設這三個人分別為A、B、C,若說謊其值為0,若誠實,其值為1。根據題目中三個人的話可分別列出:

第一個人: a&&a+b+c==2||!a&&a+b+c!=2 第二個人: b&&a+b+c==1||!b&&a+b+c!=1 第三個人: c&&a+b+c==1||!c&&a+b+c!=1 利用窮舉法,可以很容易地推出結果。*程序說明與注釋 #include int main(){ int a,b,c;for(a=0;a<=1;a++)/*窮舉每個人是說謊還是誠實的全部情況*/ for(b=0;b<=1;b++)/*說謊:0 誠實:1*/ for(c=0;c<=1;c++)if((a&&a+b+c==2||!a&&a+b+c!=2)/*判斷是否滿足題意*/ &&(b&&a+b+c==1||!b&&a+b+c!=1)&&(c&&a+b+c==1||!c&&a+b+c!=1)){ printf(”A is a %s.n“,a?”honest“:”lier“);/*輸出判斷結果*/ printf(”B is a %s.n“,b?”honest“:”lier“);printf(”C is a %s.n“,c?”honest“:”lier“);} } *運行結果

A is a lier(說謊族)B is a lier(說謊族)C is a lier(說謊族)

10. 角谷猜想

日本一位中學生發現一個奇妙的“定理”,請角谷教授證明,而教授無能為力,于是產生角谷猜想。猜想的內容是:任給一個自然數,若為偶數除以2,若為奇數則乘3加1,得到一個新的自然數后按照上面的法則繼續演算,若干次后得到的結果必然為1。請編程驗證。*問題分析與算法設計

本題是一個沿未獲得一般證明的猜想,但屢試不爽,可以用程序驗證。

題目中給出的處理過程很清楚,算法不需特殊設計,可按照題目的敘述直接進行證。*程序說明與注釋 #include int main(){ int n,count=0;printf(”Please enter number:“);scanf(”%d“,&n);/*輸入任一整數*/ do{ if(n%2){ n=n*3+1;/*若為奇數,n乘3加1*/ printf(”[%d]:%d*3+1=%dn“,++count,(n-1)/3,n);} else { n/=2;/*若為偶數n除以2*/ printf(”[%d]: %d/2=%dn“,++count,2*n,n);} }while(n!=1);/*n不等于1則繼續以上過程*/ } 11.常勝將軍

現有21根火柴,兩人輪流取,每人每次可以取走1至4根,不可多取,也不能不取,誰取最后一楰火柴誰輸。請編寫一個程序進行人機對弈,要求人先取,計算機后取;計算機一方為“常勝將軍”。*問題分析與算法設計

在計算機后走的情況下,要想使計算機成為“常勝將軍”,必須找出取 關鍵。根據本題的要求枷以總結出,后走一方取子的數量與對方剛才一步取子的數量之和等于,就可以保證最后一個子是留給先取子的那個人的。

據此分析進行算法設計就是很簡單的工作,編程實現也十分容易。*程序說明與注釋 #include int main(){ int a=21,i;printf(”Game begin:n“);while(a>0){

do{ printf(”How many stick do you wish to take(1~%d)?“,a>4?4:a);scanf(”%d“,&i);}while(i>4||i<1||i>a);/*接收正在確的輸入*/ if(a-i>0)printf(” %d stick left in the pile.n“,a-i);if((a-i)<=0){ printf(” You have taken the last stick.n“);printf(” * * * You lose!nGame Over.n“);/*輸出取勝標記*/ break;} else printf(” Compute take %d stick.n“,5-i);/*輸出計算機取的子數*/ a-=5;printf(” %d stick left in the pile.n",a);} } 12.

第四篇:vb語言編程教案

題:vb語言編程概述 課 時:2課時 授課時間:2011.09.05 課堂類型:講授

教學目的:1.熟悉VB界面和VB集成開發環境;

2.在實際操作中學會編簡單的VB應用程序;

教學要求:1.掌握VB基礎知識。

2.會編簡單的VB應用程序。

教學重點:1.熟悉VB集成開發環境

2.編寫簡單VB應用程序。

教學難點:在熟悉VB界面的同時學習編寫簡單VB應用程序 教學方法:講授 教學過程:

一、VB簡介

BASIC是英文Beginner’s All-purpose Symbolic Instruction Code(初學者通用符號指令代碼)的縮寫,它是專門為初學者設計的高級語言。Visual Basic是Microsoft公司于1991年推出的基于窗口的可視化程序設計語言。

a.“Visual”是“可視化的”、“形象化的”的意思。b.因此Visual Basic也具有易學易用的特點

c.目前Visual Basic的最新版本是Visual Basic 6.0(簡稱VB 6.0)

二、啟動VB

1、首先顯示“新建工程”對話框

直接單擊“打開”按鈕,創建“標準EXE”類型應用程序,進入集成開發環境主界面。

2、集成開發環境中的各元素 1)標題欄:用來顯示窗口的標題。2)菜單欄 3)工具欄 4)工具箱 5)窗體窗口 6)工程窗口 7)屬性窗口 8)窗體布局窗口

三、通過一個簡單的應用程序快速入門

【例1.1(實訓1,p16)】制作一個的一個簡單的應用程序的運行界面。它由一個窗體、一個文本框、一個標簽和一個命令按鈕組成。當用戶單擊命令按鈕“顯示”時,文本框中出現“教你學VB”。1.新建工程 2.添加文本框Text1 3.添加命令按鈕Command1 4.添加標簽Label1 5.設置屬性 6.編寫事件過程代碼

前面的工作把應用程序的界面設計好了,屬性也設置完畢。但現在應用程序并不能實現實際的功能。為了使它具有一定的功能,還必須為對象編寫實現某一功能的事件過程代碼。1)雙擊窗體上的“顯示”按鈕,屏幕上出現代碼窗口,程序代碼就在這里編寫。編寫如下事件過程:

Private Sub Command1_Click()Text1.Text = “歡迎使用VB” End Sub 2)運行應用程序 3)保存應用程序

VB應用程序至少有兩種文件需要保存: · 窗體文件(.frm)· 工程文件(.vbp)4)生成EXE文件

四、總結步驟

設計VB應用程序主要有以下4個步驟:(1)設計用戶界面。(2)設置屬性。(3)編寫代碼。(4)保存和運行調試程序,生成EXE文件。

五、知識延伸

1、只有一個文本框的實例 編寫如下事件過程:

Private Sub Command1_Click()Text1.Text = “教你學VB“ End Sub

2、多個文本框時 編寫如下事件過程:

Private Sub Command1_Click()Text1.Text = ”教你學VB“ Text2.Text = “歡迎使用VB“ End Sub

3、按照系統的元件特性分類(分別舉例說明)課后實訓1 第二個命令按鈕:清除 第三個命令按鈕:退出 步驟:

1.添加2個命令按鈕 2.雙擊按鈕,進入編程狀態 3.和顯示按鈕命令編程相似 編寫如下事件過程: Private Sub Command2_Click()Text1.Text = ” “ End Sub Private Sub Command3_Click()End End Sub

4、圖片的加載方法

Private Sub Form_Load()Image1.Picture = LoadPicture(App.Path + “1.BMP”)End Sub

六、小結 1.熟悉界面。

2.掌握完整編程過程以及運行及調試程序的過程。

第五篇:c語言編程題答案

六、編程題參考答案

1.編程,統計在所輸入的50個實數中有多少個正數、多少個負數、多少個零。#include “stdio.h” #define N 50 void main(){ float x;unsigned int s1,s2,s3,i;s1=s2=s3=0;for(i=1;i<=N;i++){ scanf(“%f”,&x);if(x<0)s1++;else if(x==0)s2++;else s3++;} printf(“負數%u個,零%u個,正數%u個n”,s1,s2,s3);}

2.編程,計算并輸出方程 X2+Y2=1989 的所有整數解。#include “stdio.h” void main(){ int x,y;for(x=-45;x<=45;x++){ y=-45;while(y<=45){ if(x*x+y*y==1989)printf(“%d*%d+%d*%d=%dn”,x,x,y,y,1989);y++;} } }

3.編程,輸入一個10進制正整數,然后輸出它所對應的八進制、十六進制數。#include “stdio.h” void main(){ unsigned int x;printf(“請輸入一個十進制正整數:”);scanf(“%u”,&x);printf(“%d=八進制數 %o=十六進制數%xn”,x,x,x);}

4.編程,找出1000以內的所有完數,并輸出其因子。#include “stdio.h” void main(){ int i,j,s=1;for(i=1;i<=1000;i++,s=1){ for(j=2;j<=i/2;j++)if(i%j==0)s+=j;// 求 i的因子和

if(s==i){ printf(“%d=1”,i);// 如果i 是完數則輸出其各因子

for(j=2;j<=i/2;j++)if(i%j==0)printf(“+%d”,j);printf(“n”);} } }

5.輸入一個正整數,輸出它的所有質數因子。#include “stdio.h” void main(){ int m,i=2;printf(“請輸入一個整數:”);scanf(“%d”,&m);while(m!=1)if(m%i==0){ printf(“%d ”,i);m/=i;} else i++;printf(“n”);}

6.輸入20個整數,輸出其中能被數組中其它元素整除的那些數組元素。#include “stdio.h” #define N 20 void main(){ int a[N],i,j;for(i=0;i

7.輸入兩個數組(數組元素個數自定),輸出在兩個數組中都出現的元素。#include “stdio.h” #define NA 6 #define NB 8 void main(){ float a[NA],b[NB];int i,j;for(i=0;i

8.輸入兩個數組(數組元素個數自定),輸出在兩個數組中都不出現的元素。#include “stdio.h” #define NA 6 #define NB 8 void main(){ float a[NA],b[NB];int i,j;for(i=0;i

9.編程,將字符數組S2中的全部字符拷貝到字符數組S1中。#include “stdio.h” void main(){ char s1[20],s2[]=“Good morning!”;int i=0;while((s1[i++]=s2[i])!='

主站蜘蛛池模板: 亚洲国产精品综合久久网络| 久久天天躁夜夜躁狠狠躁| 日本欧美亚洲中文在线观看| 国产∨亚洲v天堂无码久久久| 人妻无码手机在线中文| 97久久久久人妻精品区一| 亚洲精品av无码重口另类| 亚洲乱码中文字幕久久孕妇黑人| 亚洲欧美人成网站aaa| 久久人人玩人妻潮喷内射人人| 欧美成人精品高清视频在线观看| 精品久久久久久久无码| 国产午夜无码视频免费网站| 亚洲中文字幕一区精品自拍| 国产精品露脸视频观看| 97精品伊人久久大香线蕉| 亚洲国产精品无码aaa片| 亚洲日本va午夜中文字幕久久| 亚洲欧美日韩精品色xxx| 久久亚洲色www成人欧美| 99国产揄拍国产精品人妻| 久久免费精品视频| 国产在线aaa片一区二区99| 成人午夜福利院在线观看| 精品人妻少妇人成在线| 欧美性xxxxx极品娇小| 久久综合久中文字幕青草| 国产熟睡乱子伦午夜视频在线| 色翁荡熄又大又硬又粗又视频| 亚洲熟女少妇精品| 亚洲乱亚洲乱妇| 欧美成 人 网 站 免费| 无码 制服 丝袜 国产 另类| 精品人妻无码一区二区三区蜜桃一| 国产99久60在线视频 | 传媒| 波多野结衣一区二区免费视频| 91娇喘????白丝| 色欲天天天无码视频| 亚洲最大av资源网在线观看| 久久日本三级韩国三级| 国产高颜值大学生情侣酒店|