




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章程序設計語言與程序設計
1.1填空題
1.VB是以(事件驅動)作為運行機制的新一代可視化程序設計語
言。
2.程序設計語言是(人)與(計算機)交流的工具。
3.若從機器執行的角度來對程序設計語言進行分類,則可以分為
(低級語言)和(高級語言)兩種。
4.計算機系統中,對高級語言的翻譯工具稱為(編譯)程序或(解
釋)程序。
5.源程序中的錯誤一般分為(編譯)錯誤、(運行)錯誤和(邏
輯)錯誤等三種。
6.VB把一個應用程序稱為一個(工程),它包含各種文件。
1.2選擇題
1.把a和b的乘積寫成ab的錯誤屬于(c)錯誤。
a)編譯b)運行c)邏輯d)編譯和運行
2.用戶在什么時候都可以按(b)鍵來查看與當前進行的工作相關
的幫助。
a)Heldb)Flc)ESCd)F10
窗體文件的擴展名為(
4d)o
a).vbpb).basc).exed).frm
指示一個窗體位置的值是窗體的(
4.c)o
a)對象b)事件c)屬性d)方法
下面選項中不能運行程序的操作是(
5.VBa)0
a)雙擊窗體b)單擊“啟動”按鈕圖標
c)從菜單欄運行菜單中選“全編譯執行"菜單命令d)按F5鍵
1.3問答題
1.低級語言和高級語言的各自特點是什么?
答:參見教材1.1。
2.什么是數據描述和數據處理?
答:參見教材1.2o數據描述就是把被處理的信息描述成計算機可以
接受的數據形式;數據處理是指對數據進行輸入,輸出,整理,計算,
存儲,維護等一系列活動。
3.源程序的翻譯方式有哪兩種,簡述它們的工作過程。
答:參見教材1.1。解釋方式;編譯方式
4.一個好程序的基本要求是什么?
答:參見教材1.2。正確性;易讀性;運行高效率
5.VisualBASIC集成開發環境的主窗口由哪些部分構成?各自的主
要功能是什么?
答:參見教材1.3。
6.簡述在VB的環境下,對象、屬性、方法、事件和事件驅動程序
的概念,并用例子進行說明。
答:在VB的環境下,對象是系統中的基本運行實體,它封裝了數據
和操作。工具箱中的命令按鈕、標簽、文本框等是對象摸板。控件是
由VB工具箱創建的對象。
屬性是對象的性質或狀態特征。例如,窗體的Caption(標題)、
BackColor(背景顏色)、Height(高度)和Width(寬度)等都是窗
體的屬性。
事件是對象之間傳遞的消息。VB控件的事件由系統預先定義。例如,
Click(單擊)事件、DbICIick(雙擊)事件。
方法是對象在某些事件驅動下執行的特定操作。它可以執行系統預定
義的操作,例如窗體的Print(打印)方法、Show(顯示窗體)方法;
當事件由用戶或VB系統觸發時,對象會感受到該事件并對該事件作
出響應,響應某個事件后所執行的程序就是事件驅動程序。事件驅動
程序有時也稱為事件過程。例如,以下是命令按鈕Commandl在接
受單擊事件時驅動的程序:
PrivateSubCommandl_Click()
Print"Helloworld!"
EndSub
7.總結使用VisualBASIC開發一個應用程序的過程。
答:參見教材1.5。
8.下面程序是什么事件驅動程序?如何執行該事件驅動程序?執行
的結果如何?
PrivateSubCommandl_Click()
Print"歡迎你使用VB!"
EndSub
答:略。
1.4編程題
編寫一個程序。要求設置窗體的標題是“這是我的第一個練習”,且
在程序執行后,單擊窗體顯示如下一行文字:
我可以用VisualBASIC編寫程序了!
解答:
(1)用戶界面設計:設計用戶界面由一個窗體構成。
(2)對用戶界面上的控件對象的屬性進行設置:把窗體的Caption
屬性值設置為“這是我的第一個練習”。
(3)編寫控件對象的事件驅動程序:
PrivateSubForm_Click()
Print"我可以用VisualBASIC編寫程序了!”
EndSub
第2章基本數據類型與表達式
2.1填空題
1.在程序設計語言系統中具有固定語法含義的符號串稱為(關鍵
字),它們通常用來表示系統提供的標準過程、函數、運算符、常量
等。
2.(標識符)用于標記用戶自定義的常量、類型、變量、控件、過
程、函數等名字。
3.整型%數據占(2)字節的內存空間。長整型&數據占(4)
個字節的內存空間。單精度!浮點型數據占(4)個字節的內存
空間。雙精度#浮點型數據占(8)個字節的內存空間。日期型數
據占(8)個字節的內存空間。
4.100%表示100為(整)型數據;100!表示100為(單精
度浮點)型數據;100@表示100為(貨幣)型數據。
6符號常量在某一過程中說明,則該符號常量只能在(該過程內)
內有效。
若一個整型變量說明了之后沒有給它賦值,則它的值為(
6.0)o
7.在VB中可以把類型說明符放在變量名的(末尾)來說明變量
的類型。
8.為使VB的編譯程序自動檢查變量聲明,遇到未經說明的標識符
發出錯誤警告信息,在程序中要加上(OptionExplicit)語句。
9.對含有多種運算的表達式,各種運算之間的順序為(函數運算)
一(算術運算)一(關系運算)一(邏輯運算)o
10.把1234.567的小數部分四舍五入轉換為整數,可使用函數
(Cint(1234.567))。
11.將x四舍五入到百位(例如,若x=23874.52應舍入成23900),
可使用表達式(
lnt(x/100+0.5)*100)o
12.將x從十位截斷(例如,x=23874.52應截成23800)可使用表
達式(Fix(x/100)*100或者lnt(x/100)*100或者
Cint(x\100)*100)0
13.設X為數值變量,求X的常用對數可使用的表達式是
(
Log(X)/Log(10))o
14.要從字符串“VisualBASIC6.0”中截取子字符串“BASIC”可使
用函數(Mid("VisualBASIC6.0w,8,5))
15.設S是字符串變量,并且串長度為7,寫出生成由S的偶數序號
字符組成的字符串的表達式(例如,把字符串"ABCDEFG"變成'BDF。
答案:Mid(s,2,1)+Mid(s,4,1)+Mid(s,6,1)
16.設S是字符串變量,并且串長度為7,寫出用第2i-l個字符代
替第2i個字符所得到字符串的表達式(例如,把字符串"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.產生從整數a到整數b之間的隨機整數可使用表達式
(lnt((b-a+l)*Rnd+a))。
18.產生從100.01到200.99之間的隨機數(包括兩端點)可使用的
表達式是(lnt((20099-10001+l)*Rnd+10001)/100)。
2.2選擇題
1.下面選項中(c)是算術運算符。
a)%b)&c)Modd)And
4下面不合法的標識符是(d)。
a)Go_Tob)Tabic)姓名d)Int
下列選項中,把定義為雙精度型變量的是(
3.rc)o
a)r%b)r!c)r#d)r$
4.下列表達式中(d)是錯誤的。
a)2Aa/5b)-2Agc)2A(l/5)d)(-2)A(V5)
5.在下列選項中,正確表達2a+5的表達式是(c)。
a)2Aa+5b)2八a+2八5c)2A(a+5)d)2Aa2A5
6.10Mod4的值為(b)。
a)1b)2c)4d)10
7.下列運算符中(a)優先級最高。
a)/b)\c)Modd)+
在中不能表示邏輯真的是(
8.VBd)o
a)Trueb)-lc)1d)T
9.能正確表達aWl或a25的邏輯表達式是(c)。
a)a<=l或a>=5b)a<=l,a>=5
c)a<=lora>=5d)a<=lAnda>=5
設為整型變量,不能正確表達的邏輯表達式是(
10.X1<X<5a)0
a)1<X<5b)X=2orX=3orX=4
c)1<XAndX<5d)Not(X<=1)AndNot(X>=5)
求可以使用的函數是(
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.設X是一個正實數,對X的第二位小數四舍五入可使用的函數
是(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.函數lnt(Rad*99+l)產生隨機數的范圍是(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)
學校$
答案:除了以下符號外,其它符號都是正確的變量名。
錯誤的變量名原因
3x變量名必須以字母為開始
Abs不能和關鍵字同名
85變量名必須以字母開始
“不是英文字母
a%b變量名中不能用字符%
MyName變量名內不能有空格字符
2.4把下列數學表達式寫成VB表達式
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寫出下列函數的值
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)產生從整數1到整數100之間的隨機整數
2.6寫出下列表達式的值
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設al,a2,a3是布爾變量,其值依次為:True,True,False,
寫出下列布爾表達式的值
1)NotalAndNota22)NotalEqvNota2
3)alOra2Anda34)alXora2Ora3
5)(NotalOra2)And(a20ra3)
6)NotalAnda2Impa3
答案:
1)False2)True3)True4)False5)True
6)True
2.8用關系表達式或邏輯表達式表示下列條件
1)i整除j2)n是小于正整數k的偶
數
3)l<=x<104)x,y其中有一個小于z
5)y[-100,-10],并且y[10,100]
6)坐標點(x,y)落在以(10,20)為圓心,以35為半徑的圓內
7)三條邊a,b和c構成三角形
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.標識符的選取必須遵循什么規則?
答:參見教材2.1.2。
2.各種基本數據類型的取值范圍如何?
答:參見教材2.2表2-1。
3.空串與空格有什么不同?
答:參見教材2.1.1。
4.什么是符號常量?使用符號常量有什么好處?
答:參見教材2.3.1。
5.自動變量與靜態變量如何定義?它們之間有什么不同?
答:參見教材2.3.2。
6.兩個字符串如何進行比較(關系)運算,如何確定運算結果?試舉例
說明。
答:參見教材2.4.3。
第3章程序流程控制
3.1填空題
1.設變量r表示圓的半徑,則計算圓的面積并賦給變量s使用的賦
值語句為(s=3.14159*r*r)。
2.給命令按鈕Command2的Caption屬性賦予字符串“退出”使用
的賦值語句為(Command2.Caption="退出")。
3.為了求n的階乘,要求用戶輸入n的值。程序使用InputBox函數
輸入,要求對話框提示信息為“請輸入一個求階乘的數:",標題為“求
數的階乘”,并且正確地把輸入的信息轉換為數值存放到變量n中,
則使用的賦值語句為(n=val(InputBox("請輸入一個求階乘的
數:","求數的階乘"))o
4.如果使用MsgBox對話框顯示提示信息“退出本系統?”,并顯
示“是(Yes)”和“否(No)”兩個按鈕,顯示圖標“?”號,指定
第一個按鈕為默認值以及標題為“提示信息”,則調用MsgBox函數
的形式為(MsgBox("退出本系統?",4+32+0,"提示信
息"))o
5.如果使用MsgBox對話框顯示提示信息“文件未找到!”,并顯示
“確定”按鈕、圖標“!”號和標題“文件查找”,則使用的MsgBox
語句為(文件未找到","文件查找"
MsgBox"0+48+0,)0
6.要在當前窗體Form和立即窗口輸出字符串“VisualBASIC6.0”
使用的Print方法分別是(PrintuVisualBASIC6.0”)和
(Debug.PrintVisualBASIC6.0w)。
7.使用Print方法時,若用逗號分隔,則按(標準)格式輸出各表
達式的值,若用分號分隔,則按(緊湊)格式輸出各表達式的值。
8.注釋語句是一個(非執行)語句,VB不對它們進行編譯,
對程序的執行結果沒有任何影響。
9.判別變量i是否為偶數,若為偶數就把它顯示出來。使用單行結
構條件語句為(
IfiMod2=0Thenprintx)0
10.判別變量x是否大于0,若大于0,則累加到變量si中,否則,
累加到變量s2中,使用的單行結構條件語句為(Ifx>0Thensl=sl+x
Elses2=s2+x)。
11.給定分段函數,求y的值,使用的單行結構條件語句為(Ifx>0
Theny=2*x+lElseIfx=0Theny=0Elsey=2*x-l)。
12.判別a是否等于b,若2=b則輸出字符串“aisequaltob”的
塊結構條件語句為()o
答案:
Ifa=bThen
Print"aisequaltob"
End
13.判別ch是否為小寫字母,若是,輸出“yes”;否則,輸出“No”
的塊結構條件語句為()o
答案:
IfAsc(ch)>=97AndAsc(ch)<=122Then
Print"Yes"
Else
Print"No"
EndIf
14.若一個case子句中的表達式表由逗號分隔的若干個常數組成,
則它的含義是:當測試表達式的值等于(這些常數中的某一個)
時,執行該case子句相應的程序塊。
15.若case子句中的表達式表列具有形式:(表達式1>To〈表達式
2>,則它的含義是:當測試表達式的值等于(這個范圍內的值)
時,執行該case子句相應的程序塊。
16.若case子句中的表達式表列具有形式:Is<關系運算符〉(表達
式〉,則它的含義是:當測試表達式的值滿足(Is后的關系)時,
執行該case子句相應的程序塊。
17.在循環語句中,反復執行的程序段稱為(循環體);進入循
環體的條件稱為(循環條件);中止循環體執行的條件稱為(結
束循環條件)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參數的設置值是(b)o
a)0b)1c)2d)3
4.若在消息框MsgBox中選擇第二個按鈕為默認值,則buttons參數
的設置值是(b)o
a)0b)256c)512d)768
5.若單擊了“終止(Abort)”按鈕,則MsgBox函數的返回值是(c)。
a)lb)2c)3d)4
以下不正確的單行結構條件語句是(
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.執行下列程序段后屏幕上(c)。
i%=10:Sum=0
Whilei>1
Sum=Sum+i
i=i-l
Wend
PrintSum
a)無顯示b)顯示10c)顯示54d)顯示55
11.執行下列程序段輸出結果是(c)o
x%=2
Dowhilex<8
Print“*”;
x=x+2
Loop
a)*幼**c)***d)****
12.設有程序段
Dimk%
k=5
Dountilk=0
k=k-l
Loop
則下面對循環語句描述正確的是(c)。
a)循環體1次也不執行b)循環體執行1次
c)循環體執行5次d)循環體執行無限次
13.下面描述中錯誤的是(a,c)。
a)執行Dountil〈條件〉…loop語句中,當循環〈條件>為false時,結
束循環體的執行。
b)執行While〈條件〉…Wend語句時,循環體可能一次也不執行。
c)Do…loopWhile<條件〉語句的循環體可能一次也不執行。
d)執行Do???loopUntil<條件〉語句中,當循環條件為true時,結束
循環體的執行。
下面程序段中循環語句的循環次數是(
14.b)o
Forx=10To1Step-3
Printx
Nextx
a)0b)4c)5d)10
15.執行語句Fori=lto3:i=i+l:Nexti后變量i的值是(c)。
a)3b)4c)5d)6
下面程序段執行后輸出結果是(
16.b)o
Fori=lTo2
s=l
Forj=0Toi-1
s=s+s*j
Nextj
Prints,
Nexti
a)11b)12c)21d)22
3.3閱讀下列程序,寫出執行結果
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.輸入一個學生成績,若成績在85分以上,則輸出"verygood”;
若成績在60分到80分之間,則輸出“good”;若成績低于60分,
則輸出"nogood”。
解答:
⑴界面設計和屬性設置
在窗體上建立兩個標簽、兩個文本框和兩個命令按鈕。窗體和窗體上
控件的主要屬性設置如表3-3-1所示。
表3-3-1第1題的屬性設置
控件名稱屬性名屬性值
FormlCaption根據分數給定評語
LabellCaption分數
Label2Caption評語
TextlText空串
Text2Text空串
CommandlCaption開始
Command2Caption結束
⑵程序代碼
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
⑶運行情況
運行程序后,屏幕出現用戶界面。把鼠標移到Textl文本框并單擊,
輸入分數。然后,單擊“開始”命令按鈕,系統執行Commandl_Click
事件過程。執行結果如圖3.3.1所示。單擊標題為“結束”的命令按
鈕,執行Command2_Click事件過程,結束程序的執行。
圖3.3.1第1題的執行結果
2.求一元二次方程ax+bx+c=O的根。
解答:
⑴界面設計和屬性設置
在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-2^fzj\o
表3-3-2第2題的屬性設置
控件名稱屬性名屬性值
FormlCaption求一元二次方程的根
CommandlCaption開始
Command2Caption結束
⑵程序代碼
由中學數學知識知道,求一元二次方程的根的公式為:,
編程時要考慮如下各種情況:
①當a=0時,方程不是二次方程;
②當b2-4ac=0時,有兩個相同的實根:;
③當b2-4ac>0時,有兩個不同的實根:;
④當b2-4ac<0時,有兩個共朝復根:。
PrivateSubCommandl_Click()
Cis
Dima!,b!,c!,disc!,xl>,x2>,realpart!,imagpart!
a=lnputBox(''請輸入方程的系數a:")
b=lnputBox("請輸入方程的系數b:")
c=lnputBox(''請輸入方程的系數c:")
Print:Print
PrintTab(10);”輸入方程的系數為:"a=";a;"b=";b;"c=";c
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因為實數在計算機計算和存儲
時會有微小的誤差,若用“a=0”和“disc=O”來判斷a和disc是否
為0,則會由于誤差導致條件不成立,無法得到正確的運行結果。
(3)運行情況
運行程序后,單擊“開始”命令按鈕,執行Commandl_Click事件過
程。執行時,在InputBox框中輸入a、b和c三個系數。圖3.3.2?
圖3.3.5顯示了不同系數輸入的執行結果。
圖3.3.2執行結果(a)圖3.3.3
執行結果(b)
圖3.3.4執行結果?圖3.3.5執
行結果(d)
3.給定函數y=,從鍵盤上輸入x的值,求y的值。(要求使用Case
語句)
解答:
(1)界面設計和屬性設置
在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-3o
表3-3-3第3題的屬性設置
控件名稱屬性名屬性值
FormlCaption求給定分段函數的值
CommandlCaption開始
Command2Caption結束
⑵程序代碼
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
⑶運行情況
運行程序后,單擊“開始”命令按鈕,執行事件過程Commandl.Clicko
執行時,按InputBox對話框提示,輸入x的值。計算結果在窗體上
顯不。
4.輸入圓的半徑R和運算標志,按照運算標志進行指定運算。給定
的運算標志及其表示的運算如下:
C(Circle)表示計算周長
A(Area)表示計算面積
B(Both)表示周長和面積都計算
(要求使用Case語句)
解答:
⑴界面設計和屬性設置
在窗體上放置兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-4所示。
表3-3-4第4題的屬性設置
控件名稱屬性名屬性值
FormlCaption計算圓周長或圓面積或兩者都計算
CommandlCaption開始
Command2Caption結束
⑵程序代碼
PrivateSubCommandl_Click()
Cis
Dimr!,fAsString*1
Constpi!=3.14159265
r=InputBox("請輸入圓的半徑r:")
Ifr>=0Then
f=UCase(lnputBox("輸入運算標志:"+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);"輸入的運算標志錯!"
EndSelect
Else
PrintTab(18);"半徑不能是負數!"
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
(3)運行情況
運行程序后,單擊標題為“開始”的命令按鈕,執行Commandl_Click
事件過程。按InputBox對話框的提示輸入半徑r和運算標志。計算
結果在窗體上顯示。
5.求滿足12+22+―+n2>1000的最小n值。(要求使用While-WEnd
語句)
解答:
⑴界面設計和屬性設置
在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-5所不。
表3-3-5第5題的屬性設置
控件名稱屬性名屬性值
FormlCaption求滿足1A2+2A2+—+nA2>1000的最小n
值
CommandlCaption開始
Command2Caption結束
⑵程序代碼
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.輸入若干個正實數,個數預先不能確定,求這些正實數之和。(要
求分別使用DoWhile…Loop語句和DoUntil,?,Loop語句)
解答:
⑴界面設計和屬性設置
在窗體上建立三個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-6zj\o
表3-3-6第6題的屬性設置
控件名稱屬性名屬性值
FormlCaption求正實數之和
CommandlCaptionDoWhile...Loop
Command2CaptionDoUntil...Loop
CommandsCaption結束
⑵程序代碼
PrivateSubCommandl_Click()
Cis
Dima!,s!
a=InputBox("輸入一個實數:")
DoWhilea>=0
s=s+a
a=lnputBox("輸入一個實數:")
Loop
Print:Print
PrintTab(15);"輸入的正實數之和為:s
EndSub
PrivateSubCommand2_Click()
Cis
Dima!,s!
a=InputBox("輸入一個實數:")
DoUntila<0
s=s+a
a=lnputBox("輸入一個實數:”)
Loop
Print:Print:Print
PrintTab(15);"輸入的正實數之和為:s
EndSub
PrivateSubCommand3_Click()
End
EndSub
⑶運行情況
運行程序后,屏幕出現用戶界面如圖3.3.6所示。單擊標題為“Do
While-Loopw或標題為“DoWhile-Loopw的命令按鈕,系統執行
相應的Click事件過程。用戶可以輸入一系列數據,以輸入-1作結束。
窗體顯示運算結果。單擊“結束”按鈕,結束程序執行。
圖3.3.6第6題的執行結果
7.使用公式來求口的近似值,直到最后一項的值小于10-8為止。
(要求使用Do…LoopWhile語句)
解答:
(1)界面設計和屬性設置
在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-7o
表3-3-7第7題的屬性設置
控件名稱屬性名屬性值
FormlCaption求圓周率的近似值
CommandlCaption開始
Command2Caption結束
⑵程序代碼
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)運行情況
運行程序后,單擊標題為“開始”的命令按鈕,執行Commandl_Click
事件過程。計算結果在窗體上顯示。
8.由數值計算方法可知,用牛頓迭代法解方程f(x)=0的迭代公式為:
試用牛頓迭代法求解方程x5—3x2+2x+l=0在x0=0附近的根。(要
求使用Do…LoopUntil語句)
解答:
⑴界面設計和屬性設置
在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-8zjxo
表3-3-8第8題的屬性設置
控件名稱屬性名屬性值
FormlCaption用牛頓法求方程的根
CommandlCaption開始
Command2Caption結束
⑵程序代碼
根據迭代公式,牛頓迭代法的計算過程為:
①令n=0,由迭代公式得,然后判別Ixl—xO|是否小于e(給
定精度)。若是,則迭代結束,xl作為方程的近似根;否則,進行下
一步。
②令n=l,由迭代公式得,然后判別Ix2—xl|是否小e。
若是,則迭代結束,x2作為方程的近似根;否則,由x2求x3的值,
判斷|x3-x2|o
I
I
按這樣迭代下去,一直到Ixi+1—xi|<e(i=0,1,2,…)為止。
根據上述計算過程可以編寫程序為:
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
⑶運行情況
運行程序后,單擊標題為“開始”的命令按鈕,執行Commandl_Click
事件過程。在窗體上顯示計算結果。
9.求5=的值。
解答:
⑴界面設計和屬性設置
在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-9o
表3-3-9第9題的屬性設置
控件名稱屬性名屬性值
FormlCaption求s=l-a/2+皿型+…+皿9-3/100的值
CommandlCaption開始
Command2Caption結束
⑵程序代碼
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)運行情況
運行程序后,單擊標題為“開始”的命令按鈕,執行Commandl_Click
事件過程。窗體顯示計算結果。
10.求100到999中的水仙花數。所謂水仙花數是指一個三位數,它
的各位數字的立方之和等于該數。例如,因為153=13+53+33,
所以153是水仙花數。
解答:
⑴界面設計和屬性設置
在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-10zj\o
表3310第10題的屬性設置
控件名稱屬性名屬性值
FormlCaption求水仙花數
CommandlCaption開始
Command2Caption結束
(2)程序代碼
PrivateSubCommandl_Click()
Dim\%,a%,b%,c%
PrintTab(5);"100-999之間的水仙花數為:"
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
⑶運行情況
執行結果如圖3.3.7所示。
圖3.3.7第10題的執行結果
11.求1000之內的所有完數。所謂完數是指一個數恰好等于它的所
有因子之和。例如,因為6=1+2+3,所以6為完數。
解答:
⑴界面設計和屬性設置
在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-11所示。
表3311第11題的屬性設置
控件名稱屬性名屬性值
FormlCaption求完數
CommandlCaption開始
Command2Caption結束
⑵程序代碼
PrivateSubCommandl_Click()
Dim1%,j%,s%
PrintTab(5);,,l--1000之內的完數為:"
Fori=1To1000
s=0
Forj=1Toi-1
IfiModj=0Thens=s+j
Nextj
Ifi=sThenPrintTab(5);i
Nexti
EndSub
PrivateSubCommand2_Click()
End
EndSub
⑶運行情況
程序執行結果如圖3.3.8所示。
圖3.3.8第11題的執行結果
12.在窗體上輸出形如以下圖形,其中第一行的起始字母和終止字母
由用戶從鍵盤上輸入。
ABODE
BCDEA
CDEAB
DEABC
EABCD
解答:
⑴界面設計和屬性設置
在窗體上建立兩個命令按鈕。窗體和命令按鈕的主要屬性設置如表
3-3-12所示。
表3-3-12第12題的屬性設置
控件名稱屬性名屬性值
FormlCaption輸出由字母構成的圖形
CommandlCaption開始
Command2Caption結束
⑵程序代碼
PrivateSubCommandl_Click()
Cis
DimstargAsString*1,endgAsString*1,stargc%,endgc%,i%,j%,
k%
starg=UCase(lnputBox("請輸入起始字母:"))
endg=UCase(lnputBox("請輸入終止字母:"))
stargc=Asc(starg)
endgc=Asc(endg)
Ifstargc<=endgcThen
Fori=OToendgc-stargc
PrintTab(24);
Forj=stargc+iToendgc
PrintChr(j);
Nextj
Fork=stargcTostargc+i-1
PrintChr(k);
Nextk
Nexti
Else
PrintTab(15);"起始字母必須先于終止字母!”
EndIf
EndSub
PrivateSubCommand2_Click()
End
EndSub
⑶運行情況
運行程序后,需在InputBox對話框輸入起始字母和終止字母。執行
結果在窗體上顯示。
13.已知XYZ+YZZ=5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 4.1.1 人的生殖-2024-2025學年七年級生物下冊同步教學課件(人教版2024)
- 2025解除勞動合同協議書樣本
- 檔案室管理制度
- 2025年教師節系列活動方案
- 票據質押質權的實現
- 二手房出售委托協議書二零二五年
- 中間人傭金合同
- 2025次季度虛擬現實空間財產離婚評估分割標準
- 房屋租賃和房地產買賣合同
- 知識產權許可使用合同范例
- CJJ 232-2016 建筑同層排水工程技術規程
- 三菱PLC應用技術培訓(講稿)第一部分
- 醫院感染管理與公共衛生培訓
- 中國大學mooc《高級財務會計(暨南大學) 》章節測試答案
- 第7課 全球航路的開辟和歐洲早期殖民擴張(教學課件)-【中職專用】《世界歷史》(高教版2023?基礎模塊)
- 2024春期國開電大本科《中國當代文學專題》在線形考(形考任務一至六)試題及答案
- RFJ 011-2021 人民防空工程復合材料(玻璃纖維增強塑料)防護設備選用圖集(試行)
- 皮膚病的總論
- 讓改革創新成為青春遠航的動力
- 前房積血護理查房
- 【課件】五指活動課程講解
評論
0/150
提交評論