第一篇:VB編程題(循環(huán)部分總結(jié)題目
循環(huán)部分
1.求自然數(shù)1~100之間奇數(shù)之和。
2.求自然數(shù)1~100之間偶數(shù)之和。
3.編程計(jì)算從200到1000之間的所有4的倍數(shù)之和。
4.編程計(jì)算從300到1000之間的所有7的倍數(shù)之和。
5.編寫程序在窗體上顯示出:5/6+4/5+3/4+2/3+1/2
6.編寫程序,通過(guò)InputBox函數(shù)從鍵盤上輸入4個(gè)數(shù),計(jì)算并在窗體上顯示這4個(gè)數(shù)的和及平均值。
7.在窗體的單擊事件過(guò)程中,編寫程序計(jì)算1!+2!+3!+ ? +20!
8.有一個(gè)窗體,窗體中有一個(gè)文本框,名稱為Text1,有一個(gè)按鈕,試編寫按鈕的單擊事件,實(shí)現(xiàn)計(jì)算1!+2!+3!+?+10!,將結(jié)果顯示在文本框Text1中。(或參照 7 用教材:P86 [例4-21] 方法)
9.編寫程序計(jì)算:s=1+1/2!+1/3!+?+1/n!,說(shuō)明:在窗體中有一個(gè)文本框控件:Text1,用來(lái)接收n的值,有一個(gè)標(biāo)簽控件:Label1,用來(lái)顯示S的值,試編寫窗體的單擊事件,實(shí)現(xiàn)計(jì)算與顯示功能,只要求寫出事件的主要代碼,事件過(guò)程的起始語(yǔ)句和結(jié)束語(yǔ)句可略去。(或 參照7 用教材:P87 [例4-22] 方法)
10.編寫程序,在窗體上輸出由1、2、3、4、5這五個(gè)數(shù)字組成的所有可能的兩位數(shù),并統(tǒng)計(jì)它們的個(gè)數(shù)。
說(shuō)明: 程序中紅色標(biāo)示的部分 控制 每行輸出5個(gè)數(shù)
11.求s=a+aa+aaa+?+aaa?aaa(n個(gè)a),其中a和n的值由用戶自己輸入。例如,當(dāng)a=3,n=4時(shí),S=3+33+333+3333。
12.在窗體上輸出下三角的九九乘法表。
13.編寫程序,將26個(gè)字母逆序輸出。
14.編寫程序,將字符串“山高人為峰”按逆序“峰為人高山”輸出。
15.設(shè)紙的厚度為0.5毫米,將紙對(duì)折,再對(duì)折?,求至少對(duì)折多少次,紙張的厚度能達(dá)到珠穆朗瑪峰的高度8848米。
16.編寫程序,求s的值,s=1×2×3+2×3×4+?+n×(n+1)×(n+2)的值。n由程序輸入。
17.編寫一個(gè)程序,用戶連續(xù)輸入N個(gè)值,直到輸入非數(shù)值數(shù)據(jù)為止。最后輸出其中最大的一個(gè)數(shù)。
18.編寫程序,輸入一個(gè)數(shù),判定該數(shù)是否為素?cái)?shù),如果是素?cái)?shù),則輸出“該數(shù)是素?cái)?shù)”的信息,否則輸出“該數(shù)不是素?cái)?shù)”的信息。
第二篇:VB編程題及答案
1定義一個(gè)下標(biāo)上界為10整型數(shù)組,并用隨機(jī)函數(shù)為其賦值(值處于[0,100]之間),計(jì)算數(shù)組中所有偶數(shù)的和。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 “所有偶數(shù)的和為”, s 2 設(shè) S=35,C=0.3,編寫程序,計(jì)算并輸出下面級(jí)數(shù)的部分和。結(jié)果取小數(shù)點(diǎn)后面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.編寫一個(gè)函數(shù),求某個(gè)數(shù)的階乘。
調(diào)用該函數(shù)計(jì)算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(“輸入一個(gè)正整數(shù):
”)
s = fact(m)
MsgBox(s)End Sub ‘479001600 14.編寫子過(guò)程,計(jì)算并輸出3000-4000之間的素?cái)?shù)之和C與其中最小的素?cái)?shù)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 編寫一個(gè)函數(shù),其功能為求兩個(gè)數(shù)的最大公約數(shù)。
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輸入一個(gè)年份,判斷該年份是否是平年,若是則輸出“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 輸入兩個(gè)整數(shù)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求下面級(jí)數(shù)前n項(xiàng)的和S,在求和
過(guò)程中,當(dāng)某項(xiàng)(注意,該項(xiàng)參與求和)的絕對(duì)值小于0.0001 時(shí)求和終止。結(jié)果取 5 位小數(shù)。
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)
整數(shù):”)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 編寫一個(gè)函數(shù),其功能為判斷一個(gè)3位正整數(shù)是否是“水仙花數(shù)”。(“水仙花數(shù)”是指各位數(shù)字的立方和與該數(shù)相等,如153=1^3+5^3+3^3,153就是水仙花數(shù)。)
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(“輸入一個(gè)3位正
MsgBox(Panduan(i))End Sub 定義一個(gè)下標(biāo)上界為10整型數(shù)組,并為其賦值(值處于[0,100]之間),計(jì)算數(shù)組中所有不小于60的數(shù)據(jù)的和。
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.編寫程序,求下面級(jí)數(shù)前n項(xiàng)的和s=1/1!-1/2!+1/3!-1/4!+....+(-1)^(n-1)*1/n!+.....。
'求和過(guò)程當(dāng)某一項(xiàng)的絕對(duì)值小于0.0001時(shí)結(jié)束(注意,該項(xiàng)參與求和),計(jì)算并輸出所求的s,要求結(jié)果保留6位小數(shù)。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輸入一個(gè)四位數(shù),分別輸出它的個(gè)位數(shù)字,是十位數(shù)字,百位數(shù)字,千位數(shù)字。Private Sub Command1_Click()Dim a%, j%, k%, i%, m% a = InputBox(”請(qǐng)輸入一個(gè)四位整數(shù)“)j = a 1000 k = a 100 Mod 10 i = a 10 Mod 10 m = a Mod 10 Print ”個(gè)位數(shù)字;“;m Print ”十位數(shù)字;“;i Print ”百位數(shù)字;“;k Print ”千位數(shù)字;“;j End Sub 6.計(jì)算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編寫程序,計(jì)算并輸出下面級(jí)數(shù)前n項(xiàng)(n=20)中奇數(shù)項(xiàng)的和。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隨機(jī)輸出一個(gè)小寫字母。Private Sub Command1_Click()Dim a As String Randomize
a = Chr(Int(97 + 26 * Rnd))MsgBox(a)End Sub、29編寫程序,計(jì)算并輸出下面級(jí)數(shù)前n項(xiàng)(n=50)中偶數(shù)項(xiàng)的和。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斐波那契數(shù)列是由計(jì)算某類動(dòng)物繁殖增長(zhǎng)量而提出的。數(shù)列的前兩項(xiàng)是1、1,以后的每一項(xiàng)都是其相鄰前兩項(xiàng)的和。編寫程序求:數(shù)列前30項(xiàng)和。
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輸入三個(gè)數(shù)a、b、c,編寫程序使得a<=b<=c,并輸出a、b、c的值。Private Sub Command1_Click()Dim a%, b%, c%, t%
a = Val(InputBox(”請(qǐng)輸入a的值!“))b = Val(InputBox(”請(qǐng)輸入b的值!“))c = Val(InputBox(”請(qǐng)輸入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編寫程序,設(shè)n=20,x=3.4,計(jì)算并輸出S(n)的值,要求結(jié)果保留5位小數(shù)。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輸入任意三個(gè)數(shù) 找出其中最大的數(shù) 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之間的素?cái)?shù) 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打印斐波那契數(shù)列20項(xiàng) 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判定素?cái)?shù)
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名學(xué)生的平均成績(jī)并統(tǒng)計(jì)高于平均分的人 Dim c(1 to 50)as integer Dim p!,n%,i% P=0 For i=1 to 50 C(i)=inputbox(“請(qǐng)輸入第”&i&”位學(xué)生的成績(jī)” 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 “平均分=”;”高于平均分的人數(shù)=”;n 設(shè)C=0.3,編寫程序,計(jì)算并輸出下面級(jí)數(shù)的部分和。結(jié)果取小數(shù)點(diǎn)后面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為整數(shù)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=) 定義一個(gè)下標(biāo)上界為30的單精度數(shù)組,設(shè)置好其初值(值處于[20,90]),計(jì)算數(shù)組中所有元素的均值。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求下面級(jí)數(shù)前S項(xiàng)中奇數(shù)項(xiàng)的和sum。在求和過(guò)程中,以第一個(gè)奇數(shù)項(xiàng)的數(shù)值大于 10000 的項(xiàng)為末項(xiàng)。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計(jì)算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]區(qū)間內(nèi)的素?cái)?shù)及素?cái)?shù)和(這里需要用到三個(gè)文本框和2個(gè)按鈕)'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某分段函數(shù)描述如下:(1)當(dāng)x為偶數(shù)時(shí),y的值為x的二分之一。(2)當(dāng)x為奇數(shù)時(shí),y的值為x的二倍。Private Sub Command1_Click()Dim x!, y!x = Val(InputBox(”請(qǐng)輸入X的值!“)) If x Mod 2 = 0 Then y = x / 2 Else y = 2 * x MsgBox(y)End If End Sub 44隨機(jī)輸出一個(gè)小寫字母。Private Sub Command1_Click()Dim a As String Randomize a = Chr(Int(97 + 26 * Rnd))MsgBox(a)End Sub、45編寫程序,計(jì)算并輸出下面級(jí)數(shù)前n項(xiàng)(n=50)中偶數(shù)項(xiàng)的和。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編寫程序,設(shè)n=20,x=3.4,計(jì)算并輸出S(n)的值,要求結(jié)果保留5位小數(shù)。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設(shè) S=35,C=0.3,編寫程序,計(jì)算并輸出下面級(jí)數(shù)的部分和。結(jié)果取小數(shù)點(diǎn)后面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編寫子過(guò)程,計(jì)算并輸出3000-4000之間的素?cái)?shù)之和C與其中最小的素?cái)?shù)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(”不能構(gòu)成三角形")End If End Sub 注:被中括號(hào)(“[”、“]”)括起來(lái)的都是可選參數(shù)! For Each...Next 語(yǔ)句: 語(yǔ)句格式 For Each Variant In Collection Or Array [Statement(s)] [Exit For] [Statement(s)] Next [Variant] 參數(shù)解釋 Variant: 如果In后面是一個(gè)集合(Collection),Variant可以是任何數(shù)據(jù)類型的一個(gè)變量;如果In后面是一個(gè)數(shù)組(Array),Variant就只能是一個(gè)Variant變量。 Collection: 可以是任何一個(gè)對(duì)象集合。Array: 可以是任何一個(gè)數(shù)組(Type數(shù)組除外)。Statement(s): 可以是任何一句或多句語(yǔ)句。 Exit For: 可以強(qiáng)制退出循環(huán)體。For Each...Next 語(yǔ)句的作用 集合/數(shù)組里面有多少對(duì)象/多少維,F(xiàn)or Each...Next 語(yǔ)句就會(huì)執(zhí)行多少次Statement(s)。 Do...Loop 語(yǔ)句: 語(yǔ)句格式 Do [{While | Until} Condition] [Statement(s)] [Exit Do] [Statement(s)] Loop [{While | Until} Condition] 參數(shù)解釋 While: 如果While在Do后面,那么循環(huán)體一開始就會(huì)檢查Condition的值,如果Condition的值為False,就退出循環(huán)體;否則,執(zhí)行Statement(s);如果While在Loop后面,則在執(zhí)行完第一次Statement(s)時(shí)才檢查Condition的值,如果Condition的值為False,就退出循環(huán)體;否則,繼續(xù)循環(huán)。 Until: 如果Until在Do后面,那么循環(huán)體一開始就會(huì)檢查Condition的值,如果Condition的值為True,就退出循環(huán)體;否則,執(zhí)行Statement(s);如果Until在Loop后面,則在執(zhí)行完第一次Statement(s)時(shí)才檢查Condition的值,如果Condition的值為True,就退出循環(huán)體;否則,繼續(xù)循環(huán)。 Condition: 可以是任何一個(gè)表達(dá)式。Statement(s): 可以是任何一句或多句語(yǔ)句。 Exit Do: 可以強(qiáng)制退出循環(huán)體。Do...Loop 語(yǔ)句的作用 重復(fù)循環(huán)Statement(s),直到Condition為True或False(在指定了While或Until的情況下)。 For...Next 語(yǔ)句: 語(yǔ)句格式 For Counter = Start To End [Step Step] [Statement(s)] [Exit For] [Statement(s)] Next [Counter] 參數(shù)解釋 Counter: 可以是任何一個(gè)變量(但不能是Boolean或者是數(shù)組),用來(lái)做計(jì)數(shù)器。Start: Counter的初值。End: Counter的終值。 Step: Counter一次增加多少,默認(rèn)為1。1次增加n: For...=...To...Step n;1次減n: For...=...To...Step-n。 Statement(s): 可以是任何一句或多句語(yǔ)句。 Exit For: 可以強(qiáng)制退出循環(huán)體。For...Next 語(yǔ)句的作用 重復(fù)執(zhí)行((End-Counter)Step)次Statement(s)。 While...Wend 語(yǔ)句: 語(yǔ)句格式 While Condition [Statement(s)] Wend 參數(shù)解釋 Condition: 可以是任何一個(gè)表達(dá)式。Statement(s): 可以是任何一句或多句語(yǔ)句。 While...Wend 語(yǔ)句的作用 重復(fù)執(zhí)行語(yǔ)句,直到Condition不為True。 C作業(yè)匯總 1.short a,b=32767;/*short類型在內(nèi)存中占2B*/ a=b+1;問(wèn):a的值是多少?并分析原因。 2.有一4位數(shù)整數(shù),假設(shè)用abcd表示,請(qǐng)把這個(gè)4位數(shù)的每個(gè)數(shù)位用表達(dá)式表示出來(lái)。3.從鍵盤輸入圓的半徑r,計(jì)算并輸出圓的面積s(要求:半徑r定義為float型;圓周率?定義為符號(hào)常量;面積s保留2位小數(shù))#define PI 3.14159 #include 4.輸入m>=3的正整數(shù),判斷m是否素?cái)?shù)。畫出算法流程圖及NS圖 5.有一函數(shù): x?1 ?x ?y??2x?1 1?x?10 ?3x-11 x?10 ?寫一段程序,輸入x,輸出y值。 要求x,y聲明為float類型,y保留2位小數(shù)。#include if(x<1) y=x;else if(x<10) y=2*x-1; else y=3*x-11; } printf(“y=%.2fn”,y); x3x5x7x9?????,6.課后習(xí)題4.17(P159)利用泰勒級(jí)數(shù)sinx?x?計(jì)算sinx的3!5!7!9!值。要求最后一項(xiàng)的絕對(duì)值小于10,并統(tǒng)計(jì)出此時(shí)累加了多少項(xiàng)。#include /*記錄每個(gè)項(xiàng)數(shù)*/ int n=1,count=0;/*count記錄累加了多少項(xiàng)*/ printf(“請(qǐng)輸入x值(弧度):n”);scanf(“%f”,&x); term=x/n;while(fabs(term)>1e-5) /* while循環(huán)*/ { sinx+=term; count++; n+=2; term=-term*x*x/((n-1)*n);} /* do /*do while循環(huán)*/ { sinx+=term; count++; n+=2; term=-term*x*x/((n-1)*n);}while(fabs(term)>1e-5); */ printf(“sin(%.2f)=%.4fn”,x,sinx);printf(“一共累加了:%d項(xiàng)。n”,count);} 7.用牛頓迭代法求下面方程在1.5附近的根: 2x?4x?3x?6?0 32?5 牛頓迭代公式: x1?x0?f(x0)f?(x0) #include /*y1記錄f(x0),y2記錄f(x0)的導(dǎo)數(shù)*/ do { x0=x1; y1=2*x0*x0*x0-4*x0*x0+3*x0-6; y2=6*x0*x0-8*x0+3; x1=x0-y1/y2;}while(fabs(x1-x0)>1e-5); printf(“the root is:%.2fn”,x1);} 8.寫一函數(shù),輸入一個(gè)16進(jìn)制整數(shù),輸出相應(yīng)的10進(jìn)制數(shù)。例:從鍵盤輸入2a,輸出結(jié)果是42。 要求:若輸入數(shù)據(jù)不合法,則輸出提示信息。如輸入了35g,輸出“您輸入的16進(jìn)制數(shù)不合法!”。 #include printf(“請(qǐng)輸入一個(gè)16進(jìn)制數(shù)字:n”); while((c=getchar())!='n'){ if(c>='0' && c<='9') sum=sum*16+c-'0'; else if(c>='a' && c<='f') sum=sum*16+c-87; else if(c>='A' && c<='F') sum=sum*16+c-55; else { printf(“您輸入的16進(jìn)制不合法.n”); exit(0); } } printf(“相應(yīng)的10進(jìn)制數(shù)是:%dn”,sum);} 方法2:用字符串處理的方式 #include printf(“請(qǐng)輸入一個(gè)16進(jìn)制數(shù)字:n”);gets(str); for(i=0;str[i];i++){ if(str[i]>='0' && str[i]<='9') sum=sum*16+str[i]-'0'; else if(str[i]>='a' && str[i]<='f') sum=sum*16+str[i]-87; else if(str[i]>='A' && str[i]<='F') sum=sum*16+str[i]-55; else { printf(“您輸入的16進(jìn)制不合法.n”); exit(0); } } printf(“相應(yīng)的10進(jìn)制數(shù)是:%dn”,sum);} 方法3:用字符數(shù)組及指針處理的方式 #include { char str[20],*p=str;int sum=0; printf(“請(qǐng)輸入一個(gè)16進(jìn)制數(shù)字:n”);gets(p); while(*p){ if(*p>='0' && *p<='9') sum=sum*16+*p-'0'; else if(*p>='a' && *p<='f') sum=sum*16+*p-87; else if(*p>='A' && *p<='F') sum=sum*16+*p-55; else { printf(“您輸入的16進(jìn)制不合法.n”); exit(0); } p++;} printf(“相應(yīng)的10進(jìn)制數(shù)是:%dn”,sum);} 9.編寫一個(gè)小函數(shù),其功能是計(jì)算兩個(gè)整數(shù)的平均值,該函數(shù)要在主函數(shù)中調(diào)用。 #include avg=average(x,y); printf(“%d,%d的平均值是:%.2fn”,x,y,avg);} float average(int x,int y) { return(x+y)/2.0;} 10.有N(N用宏定義為符號(hào)常量)個(gè)元素的一維整型數(shù)組,該數(shù)組中各元素值從鍵盤隨機(jī)輸入。然后,將這個(gè)整型數(shù)組中的值逆序存放。例如,原來(lái)5個(gè)元素的順序?yàn)?、1、4、6、5,逆序之后各元素的值是5、6、4、1、8 #define N 5 #include printf(“輸入%d個(gè)整數(shù),用空格或回車分隔:n”,N);for(i=0;i scanf(“%d”,&a[i]); printf(“數(shù)組原來(lái)的值是:n”);for(i=0;i printf(“%dt”,a[i]); for(i=0;i t=a[i]; a[i]=a[N-1-i]; a[N-1-i]=t;} printf(“n逆序之后數(shù)組的值是:n”);for(i=0;i printf(“%dt”,a[i]); printf(“n”);} 11.有N(N用宏定義為符號(hào)常量)個(gè)元素的一維整型數(shù)組,該數(shù)組中各元素值從鍵盤隨機(jī)輸入。然后,對(duì)該數(shù)組元素進(jìn)行由小到大排序(要求,該功能用函數(shù)實(shí)現(xiàn)),輸出數(shù)組中各元素值。最后,從鍵盤隨機(jī)輸入一個(gè)整數(shù),并把該整數(shù)插入上述數(shù)組中(該功能用函數(shù)實(shí)現(xiàn)),使得插入該整數(shù)后的數(shù)組仍然有序,輸出數(shù)組中各元素的值。#define N 5 #include int i,x;void sort(int array[],int n);void insert(int array[],int n,int x); printf(“輸入%d個(gè)整數(shù),用空格或回車分隔:n”,N);for(i=0;i scanf(“%d”,&a[i]); sort(a,N); /*調(diào)用sort對(duì)數(shù)組進(jìn)行排序*/ printf(“n升序排序之后數(shù)組的值是:n”);for(i=0;i printf(“%d ”,a[i]); printf(“n輸入一個(gè)x值插入到數(shù)組中:n”);scanf(“%d”,&x); insert(a,N,x); printf(“n插入%d之后數(shù)組的值是:n”,x);for(i=0;i printf(“%d ”,a[i]); printf(“n”);} void sort(int array[],int n)/*用選擇法對(duì)數(shù)組array升序排序*/ { int i,j,t,min; for(i=0;i min=i; for(j=i+1;j if(array[j] min=j; if(min!=i) { t=array[i]; array[i]=array[min]; array[min]=t; } } } void insert(int array[],int n,int x){ int i,pos; for(i=0;i pos=i; for(i=n-1;i>=pos;i--) array[i+1]=array[i]; array[pos]=x;} 12.有一整型數(shù)組,N(N用宏定義為符號(hào)常量)個(gè)元素,該數(shù)組中各元素值從鍵盤隨機(jī)輸入。從鍵盤隨機(jī)輸入一個(gè)整數(shù)x,刪除該數(shù)組中值與x相同的所有元素(該功能用函數(shù)實(shí)現(xiàn)),輸出數(shù)組中各元素的值。#define N 5 #include printf(“輸入%d個(gè)整數(shù),用空格或回車分隔:n”,N);for(i=0;i scanf(“%d”,&a[i]); printf(“數(shù)組原來(lái)的值是:n”);for(i=0;i printf(“%dt”,a[i]); printf(“n請(qǐng)輸入要?jiǎng)h除的值x:n”);scanf(“%d”,&x); n=delet(a,N,x); /*n值是刪除與x相同的元素后,數(shù)組剩余元素的個(gè)數(shù)。*/ printf(“刪除%d之后數(shù)組的值是:n”,x);for(i=0;i printf(“%d ”,a[i]); printf(“n”); } int delet(int a[],int n,int x){ int i,j; for(i=0,j=0;i if(a[i]!=x) a[j++]=a[i]; return j;} 13.從鍵盤隨機(jī)輸入一字符串,將所有ASCII值為偶數(shù)的字符輸出。例如:輸入abc123,輸出結(jié)果是b2(因?yàn)閎的ASCII值是98,2的ASCII值是50,其他字符的ASCII值都是奇數(shù)) #include printf(“輸入字符串:n”);gets(str); printf(“ASCII碼是偶數(shù)的字符有:”);for(i=0;str[i];i++) if(str[i]%2==0)putchar(str[i]); printf(“n”);} 14.從鍵盤輸入兩個(gè)字符串s1,s2,把s2連接到s1的末尾。不能用strcat函數(shù) #include printf(“輸入兩個(gè)字符串,輸入回車鍵結(jié)束:n”);gets(str1);gets(str2); mystrcat(str1,str2); printf(“連接在一起的字符串是:n”);puts(str1); } void mystrcat(char *p1,char *p2){ while(*p1)p1++;while(*p2) *p1++=*p2++;*p1='
第三篇:VB循環(huán)語(yǔ)句
第四篇:編程題總結(jié)