程序設(shè)計語言與程序設(shè)計_第1頁
程序設(shè)計語言與程序設(shè)計_第2頁
程序設(shè)計語言與程序設(shè)計_第3頁
程序設(shè)計語言與程序設(shè)計_第4頁
程序設(shè)計語言與程序設(shè)計_第5頁
已閱讀5頁,還剩198頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第1章程序設(shè)計語言與程序設(shè)計

1.1填空題

1.VB是以(事件驅(qū)動)作為運行機制的新一代可視化程序設(shè)計語

言。

2.程序設(shè)計語言是(人)與(計算機)交流的工具。

3.若從機器執(zhí)行的角度來對程序設(shè)計語言進(jìn)行分類,則可以分為

(低級語言)和(高級語言)兩種。

4.計算機系統(tǒng)中,對高級語言的翻譯工具稱為(編譯)程序或(解

釋)程序。

5.源程序中的錯誤一般分為(編譯)錯誤、(運行)錯誤和(邏

輯)錯誤等三種。

6.VB把一個應(yīng)用程序稱為一個(工程),它包含各種文件。

1.2選擇題

1.把a和b的乘積寫成ab的錯誤屬于(c)錯誤。

a)編譯b)運行c)邏輯d)編譯和運行

2.用戶在什么時候都可以按(b)鍵來查看與當(dāng)前進(jìn)行的工作相關(guān)

的幫助。

a)Heldb)Flc)ESCd)F10

窗體文件的擴展名為(

4d)o

a).vbpb).basc).exed).frm

指示一個窗體位置的值是窗體的(

4.c)o

a)對象b)事件c)屬性d)方法

下面選項中不能運行程序的操作是(

5.VBa)0

a)雙擊窗體b)單擊“啟動”按鈕圖標(biāo)

c)從菜單欄運行菜單中選“全編譯執(zhí)行"菜單命令d)按F5鍵

1.3問答題

1.低級語言和高級語言的各自特點是什么?

答:參見教材1.1。

2.什么是數(shù)據(jù)描述和數(shù)據(jù)處理?

答:參見教材1.2o數(shù)據(jù)描述就是把被處理的信息描述成計算機可以

接受的數(shù)據(jù)形式;數(shù)據(jù)處理是指對數(shù)據(jù)進(jìn)行輸入,輸出,整理,計算,

存儲,維護(hù)等一系列活動。

3.源程序的翻譯方式有哪兩種,簡述它們的工作過程。

答:參見教材1.1。解釋方式;編譯方式

4.一個好程序的基本要求是什么?

答:參見教材1.2。正確性;易讀性;運行高效率

5.VisualBASIC集成開發(fā)環(huán)境的主窗口由哪些部分構(gòu)成?各自的主

要功能是什么?

答:參見教材1.3。

6.簡述在VB的環(huán)境下,對象、屬性、方法、事件和事件驅(qū)動程序

的概念,并用例子進(jìn)行說明。

答:在VB的環(huán)境下,對象是系統(tǒng)中的基本運行實體,它封裝了數(shù)據(jù)

和操作。工具箱中的命令按鈕、標(biāo)簽、文本框等是對象摸板??丶?/p>

由VB工具箱創(chuàng)建的對象。

屬性是對象的性質(zhì)或狀態(tài)特征。例如,窗體的Caption(標(biāo)題)、

BackColor(背景顏色)、Height(高度)和Width(寬度)等都是窗

體的屬性。

事件是對象之間傳遞的消息。VB控件的事件由系統(tǒng)預(yù)先定義。例如,

Click(單擊)事件、DbICIick(雙擊)事件。

方法是對象在某些事件驅(qū)動下執(zhí)行的特定操作。它可以執(zhí)行系統(tǒng)預(yù)定

義的操作,例如窗體的Print(打?。┓椒?、Show(顯示窗體)方法;

當(dāng)事件由用戶或VB系統(tǒng)觸發(fā)時,對象會感受到該事件并對該事件作

出響應(yīng),響應(yīng)某個事件后所執(zhí)行的程序就是事件驅(qū)動程序。事件驅(qū)動

程序有時也稱為事件過程。例如,以下是命令按鈕Commandl在接

受單擊事件時驅(qū)動的程序:

PrivateSubCommandl_Click()

Print"Helloworld!"

EndSub

7.總結(jié)使用VisualBASIC開發(fā)一個應(yīng)用程序的過程。

答:參見教材1.5。

8.下面程序是什么事件驅(qū)動程序?如何執(zhí)行該事件驅(qū)動程序?執(zhí)行

的結(jié)果如何?

PrivateSubCommandl_Click()

Print"歡迎你使用VB!"

EndSub

答:略。

1.4編程題

編寫一個程序。要求設(shè)置窗體的標(biāo)題是“這是我的第一個練習(xí)”,且

在程序執(zhí)行后,單擊窗體顯示如下一行文字:

我可以用VisualBASIC編寫程序了!

解答:

(1)用戶界面設(shè)計:設(shè)計用戶界面由一個窗體構(gòu)成。

(2)對用戶界面上的控件對象的屬性進(jìn)行設(shè)置:把窗體的Caption

屬性值設(shè)置為“這是我的第一個練習(xí)”。

(3)編寫控件對象的事件驅(qū)動程序:

PrivateSubForm_Click()

Print"我可以用VisualBASIC編寫程序了!”

EndSub

第2章基本數(shù)據(jù)類型與表達(dá)式

2.1填空題

1.在程序設(shè)計語言系統(tǒng)中具有固定語法含義的符號串稱為(關(guān)鍵

字),它們通常用來表示系統(tǒng)提供的標(biāo)準(zhǔn)過程、函數(shù)、運算符、常量

等。

2.(標(biāo)識符)用于標(biāo)記用戶自定義的常量、類型、變量、控件、過

程、函數(shù)等名字。

3.整型%數(shù)據(jù)占(2)字節(jié)的內(nèi)存空間。長整型&數(shù)據(jù)占(4)

個字節(jié)的內(nèi)存空間。單精度!浮點型數(shù)據(jù)占(4)個字節(jié)的內(nèi)存

空間。雙精度#浮點型數(shù)據(jù)占(8)個字節(jié)的內(nèi)存空間。日期型數(shù)

據(jù)占(8)個字節(jié)的內(nèi)存空間。

4.100%表示100為(整)型數(shù)據(jù);100!表示100為(單精

度浮點)型數(shù)據(jù);100@表示100為(貨幣)型數(shù)據(jù)。

6符號常量在某一過程中說明,則該符號常量只能在(該過程內(nèi))

內(nèi)有效。

若一個整型變量說明了之后沒有給它賦值,則它的值為(

6.0)o

7.在VB中可以把類型說明符放在變量名的(末尾)來說明變量

的類型。

8.為使VB的編譯程序自動檢查變量聲明,遇到未經(jīng)說明的標(biāo)識符

發(fā)出錯誤警告信息,在程序中要加上(OptionExplicit)語句。

9.對含有多種運算的表達(dá)式,各種運算之間的順序為(函數(shù)運算)

一(算術(shù)運算)一(關(guān)系運算)一(邏輯運算)o

10.把1234.567的小數(shù)部分四舍五入轉(zhuǎn)換為整數(shù),可使用函數(shù)

(Cint(1234.567))。

11.將x四舍五入到百位(例如,若x=23874.52應(yīng)舍入成23900),

可使用表達(dá)式(

lnt(x/100+0.5)*100)o

12.將x從十位截斷(例如,x=23874.52應(yīng)截成23800)可使用表

達(dá)式(Fix(x/100)*100或者lnt(x/100)*100或者

Cint(x\100)*100)0

13.設(shè)X為數(shù)值變量,求X的常用對數(shù)可使用的表達(dá)式是

Log(X)/Log(10))o

14.要從字符串“VisualBASIC6.0”中截取子字符串“BASIC”可使

用函數(shù)(Mid("VisualBASIC6.0w,8,5))

15.設(shè)S是字符串變量,并且串長度為7,寫出生成由S的偶數(shù)序號

字符組成的字符串的表達(dá)式(例如,把字符串"ABCDEFG"變成'BDF。

答案:Mid(s,2,1)+Mid(s,4,1)+Mid(s,6,1)

16.設(shè)S是字符串變量,并且串長度為7,寫出用第2i-l個字符代

替第2i個字符所得到字符串的表達(dá)式(例如,把字符串"ABCDEFG”

變成“AACCEEG")。

答案:String(2,Mid(s,1,1))+String(2,Mid(s,3,1))+String(2,Mid(s,

5,1))+Mid(s,7,1)

或:String(2,Mid(s,1,1))+String(2,Mid(s,3,1))

+String(2,Mid(s,5,1))+Rightfs,1)

17.產(chǎn)生從整數(shù)a到整數(shù)b之間的隨機整數(shù)可使用表達(dá)式

(lnt((b-a+l)*Rnd+a))。

18.產(chǎn)生從100.01到200.99之間的隨機數(shù)(包括兩端點)可使用的

表達(dá)式是(lnt((20099-10001+l)*Rnd+10001)/100)。

2.2選擇題

1.下面選項中(c)是算術(shù)運算符。

a)%b)&c)Modd)And

4下面不合法的標(biāo)識符是(d)。

a)Go_Tob)Tabic)姓名d)Int

下列選項中,把定義為雙精度型變量的是(

3.rc)o

a)r%b)r!c)r#d)r$

4.下列表達(dá)式中(d)是錯誤的。

a)2Aa/5b)-2Agc)2A(l/5)d)(-2)A(V5)

5.在下列選項中,正確表達(dá)2a+5的表達(dá)式是(c)。

a)2Aa+5b)2八a+2八5c)2A(a+5)d)2Aa2A5

6.10Mod4的值為(b)。

a)1b)2c)4d)10

7.下列運算符中(a)優(yōu)先級最高。

a)/b)\c)Modd)+

在中不能表示邏輯真的是(

8.VBd)o

a)Trueb)-lc)1d)T

9.能正確表達(dá)aWl或a25的邏輯表達(dá)式是(c)。

a)a<=l或a>=5b)a<=l,a>=5

c)a<=lora>=5d)a<=lAnda>=5

設(shè)為整型變量,不能正確表達(dá)的邏輯表達(dá)式是(

10.X1<X<5a)0

a)1<X<5b)X=2orX=3orX=4

c)1<XAndX<5d)Not(X<=1)AndNot(X>=5)

求可以使用的函數(shù)是(

11.COS35°d)o

a)Cos35b)Cos(35)c)Cos(35o)d)Cos(35*3.14159/180)

12.Len(“中國人民”)的值是(b)。

a)0b)4c)8d)不能確定

13.設(shè)X是一個正實數(shù),對X的第二位小數(shù)四舍五入可使用的函數(shù)

是(C)。

a)lnt(X+0.05)/10b)lnt((X+0.05)/10)

c)lnt(10*(X+0.05))/10d)lnt(10*{X+0.05)/10)

14.函數(shù)lnt(Rad*99+l)產(chǎn)生隨機數(shù)的范圍是(b)。

a)[1,99)b)[1,99]c)[1,100)d)[1,100]

2.3下列符號哪些是正確的變量名

1)n2)3x3)Abs4)855)print_566)

名稱

7)Ji8)a%b9)ab#10)MyName11)“年齡”12)

學(xué)校$

答案:除了以下符號外,其它符號都是正確的變量名。

錯誤的變量名原因

3x變量名必須以字母為開始

Abs不能和關(guān)鍵字同名

85變量名必須以字母開始

“不是英文字母

a%b變量名中不能用字符%

MyName變量名內(nèi)不能有空格字符

2.4把下列數(shù)學(xué)表達(dá)式寫成VB表達(dá)式

1)2)x{x[x(ax+b)+c]+d}+e

3)In(1+|110)4)

5)ctg6)Iogl0(a2+2ab+b2)

答案:

1)V(i+(V(i+V(x+y))))

2)x*(x*{x*(a*x+b)+c)+d)+e

3)Log(l+Abs((a+b)/(a-b))A10)

4)Sqr(l+3.14159/2*Cos(48*3.14159/180))

5)l/Tan((l-x*x)/(l+x*x))或者Cos((l-x*x)/(l+x*x))/Sin((l-x*x)/(l+x*x))

6)Log(a*a+2*a*b+b*b)/Log(10)

2.5寫出下列函數(shù)的值

1)lnt(-1234.5678)2)Fix(1234.5678)

3)val("12.34")4)Cint(1234.5678)

5)Abs(-lOO)6)Sgn(-lOO)

7)Sqr(sqr(16))8)Left(HVisualBASIC6.0",6)

9)Mid(HVisualBASIC6.0”,8,5)

10)InStrfl,^VisualBASIC6.0","BASIC")

11)String(3,"$〃)12)lnt((100*Rnd)+l)

答案:

1)-12352)12343)12,344)12355)100

6)-17)28)Visual9)BASIC10)0

11)$$$12)產(chǎn)生從整數(shù)1到整數(shù)100之間的隨機整數(shù)

2.6寫出下列表達(dá)式的值

1)(3+6)'\22)18\4*4.0A2/1.6

3)25\3Mod3.2*lnt(2.5)4)“xyz”+“438”

5)"abc"&“123"&"abc”6)349.25+"0.75”=350

7)"china">="canada"8)"abc"<="abc"&"123”

9)3>4And5=510)TrueOrNot7_3<=4

答案:

1)42)03)24)xyz4385)

abcl23abc

6)True7)True8)True9)False10)True

2.7設(shè)al,a2,a3是布爾變量,其值依次為:True,True,False,

寫出下列布爾表達(dá)式的值

1)NotalAndNota22)NotalEqvNota2

3)alOra2Anda34)alXora2Ora3

5)(NotalOra2)And(a20ra3)

6)NotalAnda2Impa3

答案:

1)False2)True3)True4)False5)True

6)True

2.8用關(guān)系表達(dá)式或邏輯表達(dá)式表示下列條件

1)i整除j2)n是小于正整數(shù)k的偶

數(shù)

3)l<=x<104)x,y其中有一個小于z

5)y[-100,-10],并且y[10,100]

6)坐標(biāo)點(x,y)落在以(10,20)為圓心,以35為半徑的圓內(nèi)

7)三條邊a,b和c構(gòu)成三角形

8)年份Year能被4整除,但不能被100整除或者能被400整除

答案:

1)iModj=02)n<kAndnMod2=0

3)l<=xAndx<104)x<zOry<z

5)Not(y>=-100Andy<=-10)AndNot(y>=10Andy<=100)

6)Sqr((x-10)A2+(y-15)A2)<35

7)a+b>cAndb+c>aAndc+a>b

8)YearMod4=0AndyearMod400<>0OrYearMod400=0

2.9問答題

1.標(biāo)識符的選取必須遵循什么規(guī)則?

答:參見教材2.1.2。

2.各種基本數(shù)據(jù)類型的取值范圍如何?

答:參見教材2.2表2-1。

3.空串與空格有什么不同?

答:參見教材2.1.1。

4.什么是符號常量?使用符號常量有什么好處?

答:參見教材2.3.1。

5.自動變量與靜態(tài)變量如何定義?它們之間有什么不同?

答:參見教材2.3.2。

6.兩個字符串如何進(jìn)行比較(關(guān)系)運算,如何確定運算結(jié)果?試舉例

說明。

答:參見教材2.4.3。

第3章程序流程控制

3.1填空題

1.設(shè)變量r表示圓的半徑,則計算圓的面積并賦給變量s使用的賦

值語句為(s=3.14159*r*r)。

2.給命令按鈕Command2的Caption屬性賦予字符串“退出”使用

的賦值語句為(Command2.Caption="退出")。

3.為了求n的階乘,要求用戶輸入n的值。程序使用InputBox函數(shù)

輸入,要求對話框提示信息為“請輸入一個求階乘的數(shù):",標(biāo)題為“求

數(shù)的階乘”,并且正確地把輸入的信息轉(zhuǎn)換為數(shù)值存放到變量n中,

則使用的賦值語句為(n=val(InputBox("請輸入一個求階乘的

數(shù):","求數(shù)的階乘"))o

4.如果使用MsgBox對話框顯示提示信息“退出本系統(tǒng)?”,并顯

示“是(Yes)”和“否(No)”兩個按鈕,顯示圖標(biāo)“?”號,指定

第一個按鈕為默認(rèn)值以及標(biāo)題為“提示信息”,則調(diào)用MsgBox函數(shù)

的形式為(MsgBox("退出本系統(tǒng)?",4+32+0,"提示信

息"))o

5.如果使用MsgBox對話框顯示提示信息“文件未找到!”,并顯示

“確定”按鈕、圖標(biāo)“!”號和標(biāo)題“文件查找”,則使用的MsgBox

語句為(文件未找到","文件查找"

MsgBox"0+48+0,)0

6.要在當(dāng)前窗體Form和立即窗口輸出字符串“VisualBASIC6.0”

使用的Print方法分別是(PrintuVisualBASIC6.0”)和

(Debug.PrintVisualBASIC6.0w)。

7.使用Print方法時,若用逗號分隔,則按(標(biāo)準(zhǔn))格式輸出各表

達(dá)式的值,若用分號分隔,則按(緊湊)格式輸出各表達(dá)式的值。

8.注釋語句是一個(非執(zhí)行)語句,VB不對它們進(jìn)行編譯,

對程序的執(zhí)行結(jié)果沒有任何影響。

9.判別變量i是否為偶數(shù),若為偶數(shù)就把它顯示出來。使用單行結(jié)

構(gòu)條件語句為(

IfiMod2=0Thenprintx)0

10.判別變量x是否大于0,若大于0,則累加到變量si中,否則,

累加到變量s2中,使用的單行結(jié)構(gòu)條件語句為(Ifx>0Thensl=sl+x

Elses2=s2+x)。

11.給定分段函數(shù),求y的值,使用的單行結(jié)構(gòu)條件語句為(Ifx>0

Theny=2*x+lElseIfx=0Theny=0Elsey=2*x-l)。

12.判別a是否等于b,若2=b則輸出字符串“aisequaltob”的

塊結(jié)構(gòu)條件語句為()o

答案:

Ifa=bThen

Print"aisequaltob"

End

13.判別ch是否為小寫字母,若是,輸出“yes”;否則,輸出“No”

的塊結(jié)構(gòu)條件語句為()o

答案:

IfAsc(ch)>=97AndAsc(ch)<=122Then

Print"Yes"

Else

Print"No"

EndIf

14.若一個case子句中的表達(dá)式表由逗號分隔的若干個常數(shù)組成,

則它的含義是:當(dāng)測試表達(dá)式的值等于(這些常數(shù)中的某一個)

時,執(zhí)行該case子句相應(yīng)的程序塊。

15.若case子句中的表達(dá)式表列具有形式:(表達(dá)式1>To〈表達(dá)式

2>,則它的含義是:當(dāng)測試表達(dá)式的值等于(這個范圍內(nèi)的值)

時,執(zhí)行該case子句相應(yīng)的程序塊。

16.若case子句中的表達(dá)式表列具有形式:Is<關(guān)系運算符〉(表達(dá)

式〉,則它的含義是:當(dāng)測試表達(dá)式的值滿足(Is后的關(guān)系)時,

執(zhí)行該case子句相應(yīng)的程序塊。

17.在循環(huán)語句中,反復(fù)執(zhí)行的程序段稱為(循環(huán)體);進(jìn)入循

環(huán)體的條件稱為(循環(huán)條件);中止循環(huán)體執(zhí)行的條件稱為(結(jié)

束循環(huán)條件)o

3.2選擇題

1.下列賦值語句中,(d)是正確的。

a)x!="abc"b)a%=ulOe"c)x+1=5d)s$=

100

2.下列選項中,(d)不能交換變量a和b的值。

a)t=b:b=a:a=tb)a=a+b:b=a-b:a=a-b

c)t=a:a=b:b=td)a=b:b=a

3.若在消息框MsgBox中顯示“確定(Ok)”和“取消(Cancel)”兩個

按鈕,則buttons參數(shù)的設(shè)置值是(b)o

a)0b)1c)2d)3

4.若在消息框MsgBox中選擇第二個按鈕為默認(rèn)值,則buttons參數(shù)

的設(shè)置值是(b)o

a)0b)256c)512d)768

5.若單擊了“終止(Abort)”按鈕,則MsgBox函數(shù)的返回值是(c)。

a)lb)2c)3d)4

以下不正確的單行結(jié)構(gòu)條件語句是(

6.d)0

a)Ifx>yThenPrint"x>y"b)IfxThent=t*x

c)IfxMod3=2Then?xd)Ifx<0Theny=2*x-l:PrintxEnd

If

7.給定程序段

DimaAsInteger,bAsInteger,cAsInteger

a=l:b=2:c=3

Ifa=c-bThenPrint"#####"ElsePrint"******'

以上程序(c)o

a)沒有輸出b)有語法錯

c)輸出#####d)輸出*****

8.把a,b之中的最大值存放于max,下面語句書寫正確的是(d)。

a)Ifa>bThenmax=aElsemax=bEndIf

b)Ifa>bThenmax=a

Elsemax=b

EndIf

c)Ifa>bThen

max=a

Else

max=b

d)Ifa>bThen

max=a

Else

max=b

EndIf

9.下列Case語句中正確的是(c

a)SelectCasex

Case1Or3Or5

y=x*x-l

CaseIs>10

y=x+l

EndSelect

b)SelectCasex

Case1,3,5

y=2*x-l

CaseIsx<=1

Y=2*x+1

EndSelect

c)SelectCasex

CaseIs<=0

y=x-l

CaseIs>0

y=Sqr(x)+l

EndSelect

d)SelectCasex

Casex>=lAndx<=5

y=x-l

CaseIs>10

y=x*x+l

EndSelectlO.執(zhí)行下列程序段后屏幕上(c)。

i%=10:Sum=0

Whilei>1

Sum=Sum+i

i=i-l

Wend

PrintSum

a)無顯示b)顯示10c)顯示54d)顯示55

11.執(zhí)行下列程序段輸出結(jié)果是(c)o

x%=2

Dowhilex<8

Print“*”;

x=x+2

Loop

a)*幼**c)***d)****

12.設(shè)有程序段

Dimk%

k=5

Dountilk=0

k=k-l

Loop

則下面對循環(huán)語句描述正確的是(c)。

a)循環(huán)體1次也不執(zhí)行b)循環(huán)體執(zhí)行1次

c)循環(huán)體執(zhí)行5次d)循環(huán)體執(zhí)行無限次

13.下面描述中錯誤的是(a,c)。

a)執(zhí)行Dountil〈條件〉…loop語句中,當(dāng)循環(huán)〈條件>為false時,結(jié)

束循環(huán)體的執(zhí)行。

b)執(zhí)行While〈條件〉…Wend語句時,循環(huán)體可能一次也不執(zhí)行。

c)Do…loopWhile<條件〉語句的循環(huán)體可能一次也不執(zhí)行。

d)執(zhí)行Do???loopUntil<條件〉語句中,當(dāng)循環(huán)條件為true時,結(jié)束

循環(huán)體的執(zhí)行。

下面程序段中循環(huán)語句的循環(huán)次數(shù)是(

14.b)o

Forx=10To1Step-3

Printx

Nextx

a)0b)4c)5d)10

15.執(zhí)行語句Fori=lto3:i=i+l:Nexti后變量i的值是(c)。

a)3b)4c)5d)6

下面程序段執(zhí)行后輸出結(jié)果是(

16.b)o

Fori=lTo2

s=l

Forj=0Toi-1

s=s+s*j

Nextj

Prints,

Nexti

a)11b)12c)21d)22

3.3閱讀下列程序,寫出執(zhí)行結(jié)果

1.PrivateSubForm_Click

Print-2*3/2,“Visual"&"BASIC”,Not5>3,0.75

Print-2*3/2;"Visual"&"BASIC";Not5>3;0.75

x=12.34

Print"x=";

Printx

EndSub

答案:-3VisualBASICFalse.75

-3VisualBASICFalse.75

x=12.34

2.PrivateSubForm_Click

PrintTab(lO);-100;Tab(20);200;Tab(30);-300

PrintSpc(lO);-100;Spc(10);200;Spc(10);-300

EndSub

答案:-100200-300

-100200-300

3.PrivateSubForm_Click

x=12.35

PrintFormat(x,"###.##")

PrintFormat(x,"##.##")

PrintFormat(x,"000.00")

PrintFormat(x,“00.0")

PrintFormat(x,"0.00%”)

PrintFormat(x,"$##.##")

PrintFormat(x,"+##.##")

PrintFormat(x/,00.00E+00,/)

EndSub

答案:12.35

12.35

012.35

12.4

1235.00%

$12.35

+12.35

12.35e+00

4.PrivateSubCommandl_Click()

Dima%,b%,c%,s%,w%,t%

a=-1:b=3:c=3

s=0:w=0:t=0

Ifc>0Thens=a+b

Ifa<=OThen

Ifc<=0Then

w=a-b

EndIf

Else

Ifc>0Thenw=a-bElset=c

EndIf

c=a+b

Printa,b,c

Prints,w,t

EndSub

答案:-132

200

5.PrivateSubCommandl_Click()

Dimx%,y%

x=lnputBox("請輸入x的值:")

SelectCasex

Case1,3,5

y=x-1

Case6To10

y=x+1

Case2,4

y=2*x

CaseIs>10

y=x*x+1

EndSelect

Print"x=";x,"y=";y

EndSub

(x的輸入值為2.5、8、4和15)

答案:x=2y=4

x=8y=9

x=4y=8

x=15y=226

6.PrivateSubCommandl_Click()

Dim1%,t!

t=l:i=l

Whilei<10

t=t*i

i=i+2

Wend

Print"t=";t

EndSub

答案:t=945

7.PrivateSubCommandl_Click()

Dimi%,x%,y%

x=1:y=l:i=1

DoUntili>8

IfiMod2=1Then

x=x*i

Else

y=y*i

EndIf

i=i+l

Loop

Print"x=";x,"y=";y

EndSub

答案:x=105y=384

8.PrivateSubCommandl_Click()

Dimp%,s%

p=1:s=1

Do

p=p+2:s=s+p

LoopWhilep<10

Print"s=";s

EndSub

答案:s=36

9.PrivateSubCommandl_Click()

Dimm%,n%

Form=lto3

n=0

Whilen<=m-l

Printm,n

n=n+l

Wend

Nextm

EndSub

答案:10

20

21

30

31

32

3.4編程題

1.輸入一個學(xué)生成績,若成績在85分以上,則輸出"verygood”;

若成績在60分到80分之間,則輸出“good”;若成績低于60分,

則輸出"nogood”。

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上建立兩個標(biāo)簽、兩個文本框和兩個命令按鈕。窗體和窗體上

控件的主要屬性設(shè)置如表3-3-1所示。

表3-3-1第1題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption根據(jù)分?jǐn)?shù)給定評語

LabellCaption分?jǐn)?shù)

Label2Caption評語

TextlText空串

Text2Text空串

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

PrivateSubCommandl_Click()

Dimscore!

score=Val(Textl.Text)

Ifscore>=85Then

Text2.Text="Verygood!"

Elselfscore>=60Then

Text2.Text="Good!"

Else

Text2.Text="Nogood!"

EndIf

EndSub

PrivateSubCommand2_Click()

End

EndSub

⑶運行情況

運行程序后,屏幕出現(xiàn)用戶界面。把鼠標(biāo)移到Textl文本框并單擊,

輸入分?jǐn)?shù)。然后,單擊“開始”命令按鈕,系統(tǒng)執(zhí)行Commandl_Click

事件過程。執(zhí)行結(jié)果如圖3.3.1所示。單擊標(biāo)題為“結(jié)束”的命令按

鈕,執(zhí)行Command2_Click事件過程,結(jié)束程序的執(zhí)行。

圖3.3.1第1題的執(zhí)行結(jié)果

2.求一元二次方程ax+bx+c=O的根。

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-2^fzj\o

表3-3-2第2題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption求一元二次方程的根

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

由中學(xué)數(shù)學(xué)知識知道,求一元二次方程的根的公式為:,

編程時要考慮如下各種情況:

①當(dāng)a=0時,方程不是二次方程;

②當(dāng)b2-4ac=0時,有兩個相同的實根:;

③當(dāng)b2-4ac>0時,有兩個不同的實根:;

④當(dāng)b2-4ac<0時,有兩個共朝復(fù)根:。

PrivateSubCommandl_Click()

Cis

Dima!,b!,c!,disc!,xl>,x2>,realpart!,imagpart!

a=lnputBox(''請輸入方程的系數(shù)a:")

b=lnputBox("請輸入方程的系數(shù)b:")

c=lnputBox(''請輸入方程的系數(shù)c:")

Print:Print

PrintTab(10);”輸入方程的系數(shù)為:"a=";a;"b=";b;"c=";c

Print

IfAbs(a)<=0.000001Then

PrintTab(15);"方程不是一個二次方程!"

Else

disc=bA2-4*a*c

IfAbs(disc)<=0.000001Then

PrintTab(10);"方程有兩個相同的實根:"xl=x2=";-b/(2*a)

Elselfdisc>0.000001Then

xl=(-b+Sqr(disc))/(2*a)

x2=(-b-Sqr(disc))/(2*a)

PrintTab(5);',方程有兩個實根:"

PrintTab(18);"xl=";xl

PrintTab(18);"x2=";x2

Elselfdisc<0,000001Then

realpart=-b/(2*a):imagpart=Sqr(-disc)/(2*a)

PrintTab(5);"方程有兩個虛根:

PrintTab(18);"xl=";realpart;imagpart;"i"

PrintTab(18);"x2=";realpart;imagpart;"i"

EndIf

EndIf

EndSub

PrivateSubCommand2_Click()

End

EndSub

注意,程序中的條件“fabs(a)<=0.000001”和“fabs(disc)<=0.000001”

分別用來判斷a和disc的值是否為Oo因為實數(shù)在計算機計算和存儲

時會有微小的誤差,若用“a=0”和“disc=O”來判斷a和disc是否

為0,則會由于誤差導(dǎo)致條件不成立,無法得到正確的運行結(jié)果。

(3)運行情況

運行程序后,單擊“開始”命令按鈕,執(zhí)行Commandl_Click事件過

程。執(zhí)行時,在InputBox框中輸入a、b和c三個系數(shù)。圖3.3.2?

圖3.3.5顯示了不同系數(shù)輸入的執(zhí)行結(jié)果。

圖3.3.2執(zhí)行結(jié)果(a)圖3.3.3

執(zhí)行結(jié)果(b)

圖3.3.4執(zhí)行結(jié)果?圖3.3.5執(zhí)

行結(jié)果(d)

3.給定函數(shù)y=,從鍵盤上輸入x的值,求y的值。(要求使用Case

語句)

解答:

(1)界面設(shè)計和屬性設(shè)置

在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-3o

表3-3-3第3題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption求給定分段函數(shù)的值

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

PrivateSubCommandl_Click()

Cis

Dimx!,y!

x=lnputBox("請輸入x的值:”)

Ifx>=1Andx<=5Then

SelectCasex

CaseIs<2

y=3*x-5

CaseIs<4

y=2*Cos(x)+1

CaseIs<=5

y=Sqr(l+x*x)

EndSelect

Else

y=x*x-4*x+5

EndIf

PrintTab(10);"x=";x,"y=";y

EndSub

PrivateSubCommand2_Click()

End

EndSub

⑶運行情況

運行程序后,單擊“開始”命令按鈕,執(zhí)行事件過程Commandl.Clicko

執(zhí)行時,按InputBox對話框提示,輸入x的值。計算結(jié)果在窗體上

顯不。

4.輸入圓的半徑R和運算標(biāo)志,按照運算標(biāo)志進(jìn)行指定運算。給定

的運算標(biāo)志及其表示的運算如下:

C(Circle)表示計算周長

A(Area)表示計算面積

B(Both)表示周長和面積都計算

(要求使用Case語句)

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上放置兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-4所示。

表3-3-4第4題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption計算圓周長或圓面積或兩者都計算

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

PrivateSubCommandl_Click()

Cis

Dimr!,fAsString*1

Constpi!=3.14159265

r=InputBox("請輸入圓的半徑r:")

Ifr>=0Then

f=UCase(lnputBox("輸入運算標(biāo)志:"+Chr(13)&_

"C—(計算周長)"+Chr(13)&_

"A—(計算面積)"+Chr(13)&_

"B_(兩者都計算)"))'提示信息分

多行顯示

SelectCasef

Case"C"

PrintTab(lO);"半徑r=";r;"圓周長=";r*2*pi

Case"A"

PrintTab(lO);"半徑r=";r;"圓面積=";rA2*pi

Case"B"

PrintTab(lO);"半徑r=";r;"圓周長=";r*2*pi

PrintTab(lO);"半徑r=";r;"圓面積=";rA2*pi

CaseElse

PrintTab(18);"輸入的運算標(biāo)志錯!"

EndSelect

Else

PrintTab(18);"半徑不能是負(fù)數(shù)!"

EndIf

EndSub

PrivateSubCommand2_Click()

End

EndSub

(3)運行情況

運行程序后,單擊標(biāo)題為“開始”的命令按鈕,執(zhí)行Commandl_Click

事件過程。按InputBox對話框的提示輸入半徑r和運算標(biāo)志。計算

結(jié)果在窗體上顯示。

5.求滿足12+22+―+n2>1000的最小n值。(要求使用While-WEnd

語句)

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-5所不。

表3-3-5第5題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption求滿足1A2+2A2+—+nA2>1000的最小n

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

PrivateSubCommandl_Click()

Dimn%,s&

n=0:s=0

Whiles<=1000

n=n+1

s=s+nA2

Wend

Print:Print:Print

PrintTab(8);”滿足lA2+2A2+—+nA2>1000的最小n值為:n

EndSub

PrivateSubCommand2_Click()

EndSub

6.輸入若干個正實數(shù),個數(shù)預(yù)先不能確定,求這些正實數(shù)之和。(要

求分別使用DoWhile…Loop語句和DoUntil,?,Loop語句)

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上建立三個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-6zj\o

表3-3-6第6題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption求正實數(shù)之和

CommandlCaptionDoWhile...Loop

Command2CaptionDoUntil...Loop

CommandsCaption結(jié)束

⑵程序代碼

PrivateSubCommandl_Click()

Cis

Dima!,s!

a=InputBox("輸入一個實數(shù):")

DoWhilea>=0

s=s+a

a=lnputBox("輸入一個實數(shù):")

Loop

Print:Print

PrintTab(15);"輸入的正實數(shù)之和為:s

EndSub

PrivateSubCommand2_Click()

Cis

Dima!,s!

a=InputBox("輸入一個實數(shù):")

DoUntila<0

s=s+a

a=lnputBox("輸入一個實數(shù):”)

Loop

Print:Print:Print

PrintTab(15);"輸入的正實數(shù)之和為:s

EndSub

PrivateSubCommand3_Click()

End

EndSub

⑶運行情況

運行程序后,屏幕出現(xiàn)用戶界面如圖3.3.6所示。單擊標(biāo)題為“Do

While-Loopw或標(biāo)題為“DoWhile-Loopw的命令按鈕,系統(tǒng)執(zhí)行

相應(yīng)的Click事件過程。用戶可以輸入一系列數(shù)據(jù),以輸入-1作結(jié)束。

窗體顯示運算結(jié)果。單擊“結(jié)束”按鈕,結(jié)束程序執(zhí)行。

圖3.3.6第6題的執(zhí)行結(jié)果

7.使用公式來求口的近似值,直到最后一項的值小于10-8為止。

(要求使用Do…LoopWhile語句)

解答:

(1)界面設(shè)計和屬性設(shè)置

在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-7o

表3-3-7第7題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption求圓周率的近似值

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

PrivateSubCommandl_Click()

Dimi&,s#,term#

i=1

s=0

Do

term=1/(i*i)

s=s+term

i=i+l

LoopWhileterm>=0.00000001

Print:Print:Print

PrintTab(8);"圓周率的近似值為:Sqr(6*s)

EndSub

PrivateSubCommand2_Click()

End

EndSub

(3)運行情況

運行程序后,單擊標(biāo)題為“開始”的命令按鈕,執(zhí)行Commandl_Click

事件過程。計算結(jié)果在窗體上顯示。

8.由數(shù)值計算方法可知,用牛頓迭代法解方程f(x)=0的迭代公式為:

試用牛頓迭代法求解方程x5—3x2+2x+l=0在x0=0附近的根。(要

求使用Do…LoopUntil語句)

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-8zjxo

表3-3-8第8題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption用牛頓法求方程的根

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

根據(jù)迭代公式,牛頓迭代法的計算過程為:

①令n=0,由迭代公式得,然后判別Ixl—xO|是否小于e(給

定精度)。若是,則迭代結(jié)束,xl作為方程的近似根;否則,進(jìn)行下

一步。

②令n=l,由迭代公式得,然后判別Ix2—xl|是否小e。

若是,則迭代結(jié)束,x2作為方程的近似根;否則,由x2求x3的值,

判斷|x3-x2|o

I

I

按這樣迭代下去,一直到Ixi+1—xi|<e(i=0,1,2,…)為止。

根據(jù)上述計算過程可以編寫程序為:

PrivateSubCommandl_Click()

DimxO!,xl!

xl=0

Do

xO=xl

xl=xO-(xOA5-3*xOA2+2*xO+1)/(5*xOA4-6*xO+2)

LoopUntilAbs(xl-xO)<0.00001

PrintTab(10);”方程的根為:xl

EndSub

PrivateSubCommand2_Click()

End

EndSub

⑶運行情況

運行程序后,單擊標(biāo)題為“開始”的命令按鈕,執(zhí)行Commandl_Click

事件過程。在窗體上顯示計算結(jié)果。

9.求5=的值。

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-9o

表3-3-9第9題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption求s=l-a/2+皿型+…+皿9-3/100的值

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

PrivateSubCommandl_Click()

Dimi%,s!,sign%

sign=1:s=0

Fori=1To100

s=s+sign*1/i

sign="sign

Nexti

Print:Print:Print

PrintTab(18);"s的值為:s

EndSub

PrivateSubCommand2_Click()

End

EndSub

(3)運行情況

運行程序后,單擊標(biāo)題為“開始”的命令按鈕,執(zhí)行Commandl_Click

事件過程。窗體顯示計算結(jié)果。

10.求100到999中的水仙花數(shù)。所謂水仙花數(shù)是指一個三位數(shù),它

的各位數(shù)字的立方之和等于該數(shù)。例如,因為153=13+53+33,

所以153是水仙花數(shù)。

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-10zj\o

表3310第10題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption求水仙花數(shù)

CommandlCaption開始

Command2Caption結(jié)束

(2)程序代碼

PrivateSubCommandl_Click()

Dim\%,a%,b%,c%

Print

PrintTab(5);"100-999之間的水仙花數(shù)為:"

Fori=100To999

a=i\100

b=(i-a*100)\10

c=i-a*100-b*10

lfi=aA3+bA3+cA3Then

PrintTab(10);i

EndIf

Nexti

EndSub

PrivateSubCommand2_Click()

End

EndSub

⑶運行情況

執(zhí)行結(jié)果如圖3.3.7所示。

圖3.3.7第10題的執(zhí)行結(jié)果

11.求1000之內(nèi)的所有完數(shù)。所謂完數(shù)是指一個數(shù)恰好等于它的所

有因子之和。例如,因為6=1+2+3,所以6為完數(shù)。

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-11所示。

表3311第11題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption求完數(shù)

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

PrivateSubCommandl_Click()

Dim1%,j%,s%

Print

PrintTab(5);,,l--1000之內(nèi)的完數(shù)為:"

Fori=1To1000

s=0

Forj=1Toi-1

IfiModj=0Thens=s+j

Nextj

Ifi=sThenPrintTab(5);i

Nexti

EndSub

PrivateSubCommand2_Click()

End

EndSub

⑶運行情況

程序執(zhí)行結(jié)果如圖3.3.8所示。

圖3.3.8第11題的執(zhí)行結(jié)果

12.在窗體上輸出形如以下圖形,其中第一行的起始字母和終止字母

由用戶從鍵盤上輸入。

ABODE

BCDEA

CDEAB

DEABC

EABCD

解答:

⑴界面設(shè)計和屬性設(shè)置

在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設(shè)置如表

3-3-12所示。

表3-3-12第12題的屬性設(shè)置

控件名稱屬性名屬性值

FormlCaption輸出由字母構(gòu)成的圖形

CommandlCaption開始

Command2Caption結(jié)束

⑵程序代碼

PrivateSubCommandl_Click()

Cis

DimstargAsString*1,endgAsString*1,stargc%,endgc%,i%,j%,

k%

starg=UCase(lnputBox("請輸入起始字母:"))

endg=UCase(lnputBox("請輸入終止字母:"))

stargc=Asc(starg)

endgc=Asc(endg)

Print

Ifstargc<=endgcThen

Fori=OToendgc-stargc

PrintTab(24);

Forj=stargc+iToendgc

PrintChr(j);

Nextj

Fork=stargcTostargc+i-1

PrintChr(k);

Nextk

Print

Nexti

Else

PrintTab(15);"起始字母必須先于終止字母!”

EndIf

EndSub

PrivateSubCommand2_Click()

End

EndSub

⑶運行情況

運行程序后,需在InputBox對話框輸入起始字母和終止字母。執(zhí)行

結(jié)果在窗體上顯示。

13.已知XYZ+YZZ=5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論