VB課后習(xí)題答案_第1頁
VB課后習(xí)題答案_第2頁
VB課后習(xí)題答案_第3頁
VB課后習(xí)題答案_第4頁
VB課后習(xí)題答案_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、vb課后習(xí)題答案22第一章1第二章2第3章3第4章4第5章8第六章11第7章14第8章17第九章18第十章19第一章1、 簡述vb6.0的主要特點(diǎn)答:方便、直觀的可視化設(shè)計(jì)工具;面向?qū)ο蟪绦蛟O(shè)計(jì)方法;事件驅(qū)動的編程機(jī)制;易學(xué)易用的應(yīng)用程序集成開發(fā)環(huán)境;結(jié)構(gòu)化程序設(shè)計(jì)語言;完備的聯(lián)機(jī)幫助功能;強(qiáng)大的多媒體、數(shù)據(jù)庫和網(wǎng)絡(luò)功能。2、 當(dāng)正常安裝vb6.0后,誤把windows子目錄刪除。當(dāng)重新安裝windows后,是否需要再次安裝vb6.0?答:要重新安裝的。因?yàn)榘惭bvb6.0時,有些vb程序被系統(tǒng)自動安裝在windows目錄下,所以一旦刪除windows子目錄,就必須重新安裝vb6.0。3、 vi

2、sual basic 6.0分為學(xué)習(xí)版、專業(yè)版和企業(yè)版,如何知道所安裝的是哪個版本?答:在vb6.0的啟動界面上,能顯示對應(yīng)的版本。4、 敘述建立一個完整應(yīng)用程序的過程答:首先建立用戶界面的控件對象(簡稱控件);然后對控件屬性進(jìn)行設(shè)置;再對控件事件過程及編程;保存應(yīng)用程序;程序調(diào)試和運(yùn)行。5、 visual basic 6.0有多種類型窗口,若要在設(shè)計(jì)時看到代碼窗口,應(yīng)怎樣操作?答:選擇“視圖”“代碼窗口”命令或單擊“工程資源管理器”窗口中的“查看代碼”按鈕。6、 當(dāng)建立好一個簡單的應(yīng)用程序后,假定該工程僅有一個窗體模塊。試問該工程涉及多少個要保存的文件?若要保存該工程的所有文件,應(yīng)先保存什么

3、文件?再保存什么文件?若不這樣做,系統(tǒng)會出現(xiàn)什么信息?答:涉及兩個文件要保存。先保存窗體文件(.frm),再保存工程文件(.vbp)。若先保存工程文件,系統(tǒng)也會先彈出“文件另存為”對話框,要求先保存窗體文件。7、 保存文件時,若不改變目錄名,則系統(tǒng)默認(rèn)的目錄是什么?答:系統(tǒng)默認(rèn)的目錄是vb988、 安裝visual basic 6.0后,幫助系統(tǒng)是否也已安裝?答:沒有。vb6.0的幫助系統(tǒng)在兩張光盤上,即msdn library,其中還包含了vc、vfp等其他語言的幫助系統(tǒng)。9、 如何使用visual basic 6.0的幫助系統(tǒng)?答:最方便的方法是選定要幫助的內(nèi)容,然后按f1功能鍵,這時系統(tǒng)

4、打開msdn library查閱器,直接顯示與選定內(nèi)容有關(guān)的幫助信息。第二章10、 什么是類?什么是對象?什么是事件過程?答:類是同類對象集合的抽象,它規(guī)定了這些對象的公共屬性和方法;對象是類的一個實(shí)例,對象包含三個要素:屬性、方法和事件。當(dāng)在對象上發(fā)生了事件后,應(yīng)用程序就要處理這個事件,而處理的步驟就是事件過程。11、 屬性和方法的區(qū)別是什么?答:屬性是對象的特征,方法是對象的行為。前者有值,可以被賦值或引用;后者沒有值,表示能夠執(zhí)行的操作。12、 當(dāng)標(biāo)簽邊框的大小由caption屬性的值進(jìn)行擴(kuò)展或縮小時,應(yīng)對該控件的什么屬性進(jìn)行何種設(shè)置?答:將該控件的autosize屬性值設(shè)置為true。

5、13、 在vb6.0中,命令按鈕的顯示形式可以有標(biāo)準(zhǔn)的和圖形的兩種選擇,它們通過什么屬性來設(shè)置?若選擇圖形的,則通過什么屬性來裝入圖形?若已在規(guī)定的屬性里裝入了某個圖形文件,但該命令按鈕還是不能顯示該圖形,而顯示的是caption屬性設(shè)置的文字,應(yīng)怎樣修改?答:命令按鈕的顯示形式通過將style屬性值設(shè)置為graphical來實(shí)現(xiàn)。 通過picture屬性來裝入圖形。 不能顯示圖形是因?yàn)閟tyle屬性值被設(shè)置為standard,只要將其改為graphical,并且將caption的值設(shè)置為空即可。14、 如果文本框要顯示多行文字,應(yīng)對什么屬性設(shè)置為何值?答:將multiline屬性的值設(shè)置為t

6、rue。15、 標(biāo)簽和文本框的區(qū)別是什么?答:在程序運(yùn)行時,標(biāo)簽只能顯示文字,不能輸入文字,顯示文字通過對caption屬性賦值來實(shí)現(xiàn);而文本框既能顯示文字,也能輸入文字,這通過text屬性來實(shí)現(xiàn)。16、 要讓文本框獲得焦點(diǎn)的方法是什么?答:setfocus方法。17、 簡述文本框的change和keypress事件的區(qū)別答:相同點(diǎn)是當(dāng)在文本框輸入內(nèi)容時,同時激發(fā)上述兩個事件;不同點(diǎn)是keypress事件可通過參數(shù)keyascii返回所按鍵的編碼值,可依此判斷數(shù)據(jù)輸入的正確性或數(shù)據(jù)輸入結(jié)束與否,因而該事件使用較多;change事件還可以發(fā)生在程序改變文本框的text屬性時。18、 當(dāng)某文本框輸

7、入數(shù)據(jù)后(按了回車鍵),經(jīng)判斷后認(rèn)為是數(shù)據(jù)輸入錯,應(yīng)怎樣刪除原來文本框中的數(shù)據(jù)?答:假定文本框的名稱為text1,則事件過程如下:private sub text1_keypress(keyascii as integer ) ifkeyascii = 13 then if 出錯條件判斷成立 then text1=” end if end ifend sub 注意:刪除剛輸入的字符,通過keyascii=0語句實(shí)現(xiàn);焦點(diǎn)定位文本框?qū)ο蟛捎胹etfocus方法。19、 在程序運(yùn)行前,對某些控件設(shè)置屬性值,除了在窗體中直接設(shè)置外,還可以通過代碼設(shè)置,這些代碼一般存放在什么事件中?如果要將命令按鈕定

8、位在窗體的中央,試寫出事件過程代碼。答:這些代碼一般放在forem_load()事件過程中。將窗體定位在屏幕的中央,只能在屬性窗口中將form1窗口的startupposition屬性值設(shè)置為2(表示屏幕中心),該屬性不能在運(yùn)行時設(shè)置。要將按鈕定位在窗體的中央,事件過程如下:private sub form_load() command1.left= form1.scalewidth2-command1.width2 command1.top = form1.scaleheight 2 command1.height 2end sub其中,scalewidth、scaleheight表示窗體的

9、相對寬度和高度。20、 vb6.0提供的大量圖形文件存放在哪個目錄?若你的計(jì)算機(jī)上沒有安裝,應(yīng)怎樣安裝這些圖形文件?答:存放在graphics目錄下。在vb6.0的安裝盤上可以找到graphics子目錄,將其復(fù)制到硬盤上的vb目錄下。第3章1、合法的有:(1)單精度(3)單精度(4)雙精度(6)整形(7)字符型(9)日期型(10)雙精度(12) 八進(jìn)制表示(14)十六進(jìn)制表示(15)邏輯型(18)單精度數(shù) 2、合法變量有:(1),(2),(6),(9),(10),(11) 3、算術(shù)表達(dá)式寫成vb表達(dá)式 (1)abs(x+y) +z5 (2)(1 + x * y ) 6 (3)(10*x + s

10、qr(3*y) ) / (x * y ) (4)( -b+sqr(b2-4*a*c) )/2/a (5)1 / (1/r1+1/r2+1/r3) (6)sin(45*3.14/180)+ ( exp(10)+ log(10) )/ sqr( x+y+1) 4、 根據(jù)條件寫出相應(yīng)的vb表達(dá)式 (1) chr( int ( rnd * 10 +67 ) (2) int ( rnd * 101 +100 ) (3) x * y 0 (4) x/5=0 or x /7 =0 (5) (x mod 10) 10 + x /10 (6)round(123.2389*100)/100 (7) ucase (

11、c ) =a and ucase(c )=a and lcase(c )=10 and x 20 (10) ( x z ) or ( x z and y z and y z 5、 下出下列表達(dá)式的值: (1) 123+23 mod 10 7 +asc(a) 【188】 (2) 100+100 & 100 【200100】 (3) int ( 68.555*100+0.5)/100 【68.56】 (4) 已知a$=“87654321, 求表達(dá)式val(left$(a$,4)+ mid(a,4,2)的值 【876554】 (5)dateadd(m,1,#1/30/2000#) 【2000-2-2

12、9】 (6) len(vb程序設(shè)計(jì)) 【6】第4章1、 結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu)是什么?答:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。2、 指出下列賦值語句中的錯誤(包括運(yùn)行時錯誤):(1)10x=sin(x)+y 10x是非法變量名(2)c=3+sqr(-3) 待求平方根的數(shù)為負(fù)數(shù)(3)c+x+y=c*y 賦值符左邊是表達(dá)式了(4) x=sin(x)/(20 mod 2) 分母為零了3、 msgbox函數(shù)與inputbox函數(shù)之間有什么區(qū)別?各自獲得什么值?答:兩個函數(shù)共同之處都顯示對話框。區(qū)別:inputbox函數(shù)等待用戶在文本框中輸入數(shù)據(jù),獲得的是輸入的字符串?dāng)?shù)據(jù);msgbox函數(shù)等待用戶按一按

13、鈕,獲得的是表示按鈕的整數(shù)值,以決定程序的流向。4、 要使單精度變量x,y,z分別保留1位、2位、3位小數(shù),并在窗體顯示,應(yīng)使用什么函數(shù)?如何編寫對應(yīng)的print方法?答:使用format函數(shù),具體如下:print format(x,”0.0” )print format ( y , “ 0.00 “ )print format ( z , “ 0.000 “ )5、 語句 if then 中的表達(dá)式可以是算術(shù)、字符、關(guān)系、邏輯表達(dá)式中的哪些?答:算術(shù)、關(guān)系、邏輯表達(dá)式6、 指出下列語句中的錯誤:(1) if xy then print x 表達(dá)式書寫錯誤,應(yīng)寫成:x=y(2) if 10x2

14、0 then x=x+20 表達(dá)式書寫錯,應(yīng)是:10x and x 20 y = x * x + 3 * x +2 case is=10 y = sqr ( 3 * x ) 2 case is 0 y= 1 / x + abs ( x ) end select print y end sub按照下列條件,寫出相應(yīng)的條件語句(1)字符型變量中第三個字符是“c”時,利用msgbox顯示“yes”,否則顯示“no” if mid ( c , 3, 1 ) = “c” then msgbox “yes” else msgbox “no”(2)利用if語句、select case語句兩種方法計(jì)算分段函數(shù)

15、:答:private sub command1.click() x=val( text1) if x 20 then y = x * x + 3 * x +2 elseif x=10 then y = sqr ( 3 * x ) 2 elseif x0 then y= 1 / x + abs ( x ) end if print y end sub(3)利用if語句和iif函數(shù)兩種方法求三個數(shù)x,y,z中的最大值并存入變量max中。 if xy then max=x else max = y if zmax then max = z max = iif ( xy , x , y ) : max

16、 = iif ( max z, max , z )8、 在多分支結(jié)構(gòu)的實(shí)現(xiàn)中,可以用ifthenelseifendif形式的語句,也可以用select caseend select形式的語句,由于后者的條件書寫更靈活、簡潔,是否完全可以取代前者?答:雖然select caseend select形式的語句中條件書寫更靈活、簡潔,程序可讀性強(qiáng),但使用它有限制。(適合于對一個變量判斷的)首先,看該語句的形式: select case case case case else end select其中變量或表達(dá)式只能含有一個變量,任何含有多個變量的形式都是錯誤的。如,要判斷x,y是否在第一、三象限內(nèi),

17、若輸入如下語句:select case x,y, vb程序會顯示“缺少:語句結(jié)束”。其次,在后面的case表達(dá)式列表中不能出現(xiàn)select case變量或表達(dá)式中使用的變量,也不能出現(xiàn)主教材上列出的四種形式以外的符號或關(guān)鍵字(符號是:逗號;關(guān)鍵字是:is, to)。9、 計(jì)算下列循環(huán)語句的次數(shù)(1)for i = -3 to 20 step 4 6(2) for i = -3.5 to 5.5 step 0.5 19(3) for i = -3.5 to 5.5 step -0.5 無循環(huán),因?yàn)椴介L0 ,循環(huán)初值小于終值(4)for i = -3 to 20 step 0 無限循環(huán),因?yàn)椴介L=

18、010、 下列30-90為語句標(biāo)號,分別標(biāo)記該語句,第40名共執(zhí)行了幾次,第50名共執(zhí)行了幾次,執(zhí)行第90號語句后顯示的結(jié)果是多少?30 for j =1 to 12 step 3 循環(huán)4次40 for k = 6 to 2 step -2 循環(huán)3次,被執(zhí)行4次50 mk = k 共執(zhí)行4*3=12次60 print j , k70 next k80 next j90 print j , k , mk 13 0 211、 如果事先不知道循環(huán)次數(shù),如何用fornext結(jié)構(gòu)來實(shí)現(xiàn)?答:將循環(huán)終值設(shè)置得足夠大,再在循環(huán)體內(nèi)設(shè)置條件語句,滿足條件退出循環(huán)。12、 利用循環(huán)結(jié)構(gòu),實(shí)現(xiàn)如下功能:(1) s

19、=0: for i =1 to 10 s = s + ( i+1)*(2*i+1) next i(2)分別統(tǒng)計(jì)1100中,滿足3的倍數(shù)、7的倍數(shù)的數(shù)各是多少? s3 = 0: s7 = 0 for i =1 to 100 if i mod 3 = 0 then s3 = s3 +1 if i mod 7 = 0 then s7 = s7 +1 next i(3)將輸入的字符串以反序顯示。例如,輸入“asdfghjkl”,顯示“l(fā)kjhgfdsa”。 s = inputbox(“ 請輸入字符串”) for i = len( s ) to 1 step -1 print mid ( s, i, 1

20、 ) next i13、10100將20轉(zhuǎn)換成2進(jìn)制數(shù)表示下面程序的運(yùn)行結(jié)果是什么?該程序的功能是什么?private sub command1_click()dim x$, n%n = 20do while n 0 a = n mod 2 n = n 2 x = chr(48 + a) & x loop print xend sub14、22,484利用相差法求x,y的最大公約數(shù)和最小公倍數(shù)下面程序的運(yùn)行結(jié)果是什么?該程序的功能是什么?private sub command2_click() dim x%, y%, z% x = 242: y = 44 z = x * y do until

21、x = y if x y then x = x - y else y = y x loop print x, z / xend sub15、 利用隨機(jī)函數(shù)產(chǎn)生50100范圍內(nèi)的20個隨機(jī)數(shù),顯示其中最大值,最小值和平均值。private sub command3_click() dim i%, min%, max%, avg!, x% min = 100: max = 50: avg = 0 for i = 1 to 20 x = int(rnd * 51 + 50) print x; if x max then max = x if x max then max = c(i, j): max

22、i = i: maxj = j end if next j next i(4)以下三角形式顯示a矩陣,上三角形式顯示b矩陣 for i = 1 to 4 for j = 1 to i print a(i, j); space(2); next j print next i print 輸出b上三角元素 for i = 1 to 4 print tab(i * 5); for j = i to 4 print b(i, j); next j print next i(5)將a矩陣第一行與第三行對應(yīng)元素交換位置 for j = 1 to 4 t = a(1, j): a(1, j) = a(3,

23、j): a(3, j) = t next j(6)求a矩陣 矩陣條對角線元素之和 sum = 0 for i = 1 to 4 sum = sum + a(i, i) + a(i, 5 - i) next i(7)將a矩陣按列的次序把各元素放入一維數(shù)組d中,顯示結(jié)果dim d%(16)for i = 1 to 4 for j = 1 to 4 d(k) = a(j, i): k = k + 1 next jnext iprint d一維數(shù)組無素為:for k = 0 to 15 print d(k);next k6、 聲明一個一維字符類型數(shù)組,有20個元素,每個元素最多放10個字符,要求:1)

24、由隨機(jī)數(shù)形成小寫字母構(gòu)成的數(shù)組,每個元素的字符個數(shù)由隨機(jī)數(shù)產(chǎn)生,范圍1102)要求將生成的數(shù)組分4行顯示,規(guī)定每個元素寬度為103)顯示生成的字符數(shù)組中字符最多的元素 dim st(1 to 20) as string, c as string * 1 dim i%, n% for i = 1 to 20 n = int(rnd * 11 + 1) for j = 1 to n c = chr(int(rnd * 26 + 97) st(i) = st(i) & c next j next i (2)按一行顯示5個字符串要求輸出 for i = 1 to 20 print st(i); spa

25、ce(15 - len(st(i); if i mod 5 = 0 then print next i (3)顯示20個中字符個數(shù)最多的一個 maxlen = 0 maxstr = for i = 1 to 20 if len(st(i) maxlen then maxlen = len(st(i) maxstr = st(i) end if next i print print 最多字符個數(shù):; maxlen; 字符串是:; maxstr7、 簡述列表框和組合框的異同處答:相同處都是可存放字符串;不同處在于:組合框是文本框和列表框的組合,可以輸入內(nèi)容,但要通過additem方法添加;列表框只

26、能選擇項(xiàng)目,不能直接輸入內(nèi)容。8、 列表框或組合框中選中的項(xiàng)目、總項(xiàng)目數(shù)的屬性分別是什么?答:表示選中的內(nèi)容,屬性有:text;總項(xiàng)目數(shù)的屬性為listcounts。9、 簡述自定義類型與自定義變量的區(qū)別答:前者僅定義了類型,這如同系統(tǒng)提供的integer、string等基本類型;后者系統(tǒng)為其分配了存儲單元。10、 自定義一個職工類型,包含職工號、姓名、工資。聲明一個職工類型的動態(tài)數(shù)組。輸入n信職工的數(shù)據(jù);要求按工資遞減的順序排序,并顯示排序的結(jié)果,每個職工一行顯示三項(xiàng)信息。private type zgtype no as integer name as string * 10 gz as

27、singleend typedim s( ) as zgtype, n%private sub form_click() dim t as zgtype n = inputbox(請輸入人數(shù)) redim s(1 to n) for i = 1 to n with s(i) .no = inputbox(請輸入職工工號) .name = inputbox(請輸入職工姓名) .gz = inputbox(請輸入職工工資) end with next i 根據(jù)工資遞減排序 for i = 1 to n - 1 for j = i + 1 to n if s(j).gz s(j - 1).gz th

28、en t = s(j): s(j) = s(j - 1): s(j - 1) = t end if next j next i 輸出信息 for i = 1 to n print s(i).no, s(i).name, s(i).gz next iend sub第六章1、 簡述子過程和函數(shù)過程的共同點(diǎn)和不同之處答:子過程和函數(shù)過程的共同點(diǎn):函數(shù)過程和子過程都是功能相對獨(dú)立的一種子程序結(jié)構(gòu),它們有各自的過程頭、變量聲明和過程體。在程序中使用它們不但可避免書寫重復(fù)的程序語句,縮短代碼,而且可使程序條理清晰,容易閱讀。兩者不同點(diǎn)是:1)過程聲明的關(guān)鍵字不同,子過程用的是sub,函數(shù)過程用的是func

29、tion.2)子過程名無值就無類型聲明,函數(shù)過程名有值就有類型聲明3)函數(shù)過程名兼作結(jié)果變量,因此在函數(shù)過程體內(nèi)至少對函數(shù)過程名賦值;而子過程名在過程體內(nèi)不能賦值。4)調(diào)用方式不同,子過程是一條獨(dú)立的語句,可用call子過程或或省略call直接以子過程名調(diào)用;函數(shù)過程不是一條獨(dú)立語句,是一個函數(shù)值,必須參與表達(dá)式的運(yùn)算5)一般來說,一個函數(shù)過程可以被一個子過程代替,代替時只要改變函數(shù)過程定義的形式,并在子過程的形參表中增加一個地址傳遞的形參來傳遞結(jié)果。2、 什么是形參、什么是實(shí)參?什么時候是值引用?什么是地址引用?地址引用時,對應(yīng)的實(shí)參有什么影響?答:形參是在定義過程時的一種形式虛設(shè)的參數(shù),只

30、代表了該過程參數(shù)的個數(shù)、類型、位置,形參的名字并不重要,也沒有任何值,只表示在過程體內(nèi)進(jìn)行某種運(yùn)算或處理。實(shí)參是調(diào)用子過程時提供給過程形參的初始值或通過過程體處理后獲得的結(jié)果。調(diào)用時用實(shí)參代替形參,實(shí)參與形參在個數(shù)、類型、位置一一對應(yīng),實(shí)參與形參名相同與否無關(guān)。實(shí)參與形參的結(jié)合有兩種方法,即傳地址(byref)和傳值(byval),或稱地址引用和值引用,缺省為地址引用。值引用時,系統(tǒng)將實(shí)參的值傳遞給對應(yīng)的形參,實(shí)參與形參斷開了聯(lián)系。如果在過程體中改變形參的值,不會影響到實(shí)參。地址引用時,實(shí)參與形參變量共同用一個存儲單元,如果在過程中改變了形參的值,則對應(yīng)的實(shí)參也將發(fā)生改變。地址引用時,實(shí)參只能

31、是變量,不能是常量或表達(dá)式。3、 指出下列過程語句說明中的錯誤:1)sub f1 ( n % ) as integer 錯誤為sub子過程名無返回值,也就沒有類型2)function f1 % ( f1 % ) 函數(shù)名與形參名相同了3)sub f1 (byval n % ( ) ) 形參n為數(shù)組,不允許聲明為byval值傳遞4)sub f1 ( x (i) as integer ) 形參x( i)不允許為數(shù)組元素4、 已知如下求兩個平方數(shù)和的fsum子過程:public sub fsum( sum % ,byval m%, byval n%) sum = a*a + b * bend sub在

32、事件過程中若有如下變量聲明:private sub command1_click ( ) dim a%, b% ,c! a = 10 : b = 20則指出如下過程調(diào)用語句的錯誤所在:(1)fsum 3 , 4 , 5 fsum子過程的第一個形參是地址傳遞,因此對應(yīng)的實(shí)參應(yīng)該是個變量,不應(yīng)是3(2)fsum c , a , b fsum子過程的第一個形參是地址傳遞并且是整形,但對應(yīng)的c是單精度(3)fsum a + b, a , b fsum子過程的第一個形參是地址傳遞,對應(yīng)的實(shí)參不應(yīng)該是個表達(dá)式a+b(4)call fsum (sqr (a) , sqr (b ) fsum子過程的第一個形參

33、是地址傳遞,對應(yīng)的實(shí)參不應(yīng)該是個表達(dá)式sqr(c)(5)call fsum c, a , b 用call語句調(diào)用fsum子過程,必須加圓括號括起實(shí)參。5、 利用迭代法求議程x2-a=0的近似根,要求精度為10-5,失代公式為 。編制三個過程:迭代函數(shù)過程、迭代子過程和遞歸法函數(shù)過程。private sub command1_click() print print 函數(shù)過程; f1(10) call s1(x!, 10) print 子過程 ; x! print 遞歸調(diào)用; dgf(x, 10)end subpublic function f1(a!) 函數(shù)過程 dim x!, x1! x =

34、a do x1 = (x + a / x) / 2 if abs(x - x1) 0.00001 then exit do x = x1 loop f1 = xend functionpublic sub s1(x1!, a!) 子過程 dim x! x = 9 do x1 = (x + a / x) / 2 if abs(x1 - x) 0.00001 then exit do x = x1 loopend subpublic function dgf!(x, a!) 遞歸調(diào)用 x1 = (x + a / x) / 2 if abs(x - x1) 0.00001 then dgf = x

35、else dgf = dgf(x1, a) end ifend function6、 要使變量在某事件過程中保留值,有哪幾種變量聲明的方法?答:聲明變量為全局(public)、通用聲明段或標(biāo)準(zhǔn)模塊聲明的模塊級變量、局部過程聲明的表達(dá)態(tài)變量static。7、 為了使某變量在所有的窗體中都能使用,應(yīng)在何處聲明該變量?答:在標(biāo)準(zhǔn)模塊聲明為全局變量8、 在同一模塊、不同過程中聲明的相同變量名,兩者是否表示同一個變量?兩者間有無聯(lián)系?答:表示不同的變量;兩者沒有關(guān)系。第7章1、 框架的作用是什么?如何在框架中建立控件?答:對單選按鈕進(jìn)行分組,每一組單選按鈕都是獨(dú)立的,對一組單選按鈕進(jìn)行操作不會影響其他組

36、單選按鈕的選擇;另外可對窗體上現(xiàn)有控件進(jìn)行分組,提供視覺上的區(qū)分和總體的激活或屏蔽特性。在窗體上創(chuàng)建框架及其內(nèi)部控件時,必須先建立框架,然后在其中建立各種控件。在框架內(nèi)創(chuàng)建控件的方法如下:1)先單擊工具箱上的工具,然后利用出現(xiàn)的“+”指針,在框架內(nèi)行當(dāng)位置拖拉出適當(dāng)大小的控件,不能使用雙擊工具箱上工具的自動方式。2)如果要用框架對窗體中現(xiàn)有控件進(jìn)行分組,則應(yīng)先選定控件,然后剪切到剪貼板,最后粘貼到框架上。2、 如果要讓定時器每30秒產(chǎn)生一個timer事件,則interval屬性應(yīng)設(shè)置為多少?答:定時器是以interval屬性的值作為時間間隔產(chǎn)生timer事件的。interval屬性值的單位ms

37、(0.001s),因此當(dāng)interval屬性值為30000時,每30s發(fā)生一個timer事件。3、 滾動條的scroll和change事件有什么區(qū)別?答:滾動條的scroll事件是在拖動滑塊時發(fā)生的事件,單擊兩端的箭頭或空白處不會產(chǎn)生scroll事件。此外,在拖動滑塊過程中會產(chǎn)生許多scroll事件,而不是僅僅在拖動滑塊結(jié)束時產(chǎn)生一個scroll事件。滾動條的change事件是當(dāng)value屬性值改變時產(chǎn)生的事件。單擊兩端的箭頭或空白處,value屬性值都會改變,change事件隨之產(chǎn)生;拖動滑塊過程不會產(chǎn)生change事件,直到拖動結(jié)束時value屬性值改變了才會產(chǎn)生change事件。因此,拖

38、動滑塊過程中會多次執(zhí)行scroll事件過程,拖動滑塊結(jié)束時產(chǎn)生一個change事件;單擊兩端的箭頭或空白處,會執(zhí)行change事件過程,而不會執(zhí)行scroll事件過程。4、 默認(rèn)情況下,進(jìn)度條是水平形式的,若要讓進(jìn)度條變成垂直形式,應(yīng)如何設(shè)置?答:進(jìn)度條有水平和垂直兩種形式,由屬性orientation決定:0ccorentationhorizontal:(缺?。┻M(jìn)度條是水平方向1ccorentationvertical:進(jìn)度條為垂直方向因此,若要讓進(jìn)度條變成垂直形式,其orientation屬性應(yīng)設(shè)置為1。5、 在使用“字體”對話框之前必須設(shè)置什么屬性?答:在顯示“字體”對話框前必須設(shè)置fl

39、ags屬性,指示選用何種字體,否則將發(fā)生不存在字體錯誤。6、 熱鍵與快捷鍵有什么區(qū)別?應(yīng)如何實(shí)現(xiàn)?答:如果要通過鍵盤來訪問菜單項(xiàng),則需要為菜單項(xiàng)定義熱鍵與快捷鍵。熱鍵是菜單項(xiàng)中帶有下劃線的字符。建立熱鍵的方法是在菜單標(biāo)題的某個字符前加一個“&”符號,顯示是過一字符下面有一個下劃線,表示該字符是一個熱鍵字符。快捷鍵不是用來打開菜單,而是直接去執(zhí)行相應(yīng)的操作。要為菜單項(xiàng)指定快捷鍵,只要打開快捷鍵(shortcut)下拉式列表框并選擇一個鍵,則菜單項(xiàng)標(biāo)題的右邊就會顯示快捷鍵名稱。7、 從設(shè)計(jì)角度,試說明下拉式菜單和彈出式菜單的區(qū)別。答:菜單有兩種基本類型:一種是下拉式菜單,由一個主菜單和若干個子菜單

40、所組成的;另一種是彈出式菜單,是用戶在某個對象上單擊右鍵所彈出的菜單。下拉式菜單和彈出式菜單都是在使用菜單編輯器時設(shè)計(jì)的。在設(shè)計(jì)時這兩種菜單的區(qū)別是:彈出式菜單中作為菜單名的菜單項(xiàng)的visible屬性應(yīng)設(shè)置為false,程序開始運(yùn)行時不需要顯示,在單擊鼠標(biāo)右鍵時會彈出;下拉式菜單中作為菜單名的菜單項(xiàng)的visible屬性應(yīng)設(shè)置為true,程序運(yùn)行時顯示在窗體的頂部。8、 什么是模式對話框?什么是非模式對話框?兩者有什么區(qū)別?答:對話框有兩種類型:模式對話框和非模式對話框。若對話框是模式型,打開后無法將鼠標(biāo)移支其他窗口,即只有在關(guān)閉后才能對其他窗體進(jìn)行操作,如office軟件中“幫助”菜單的“關(guān)于

41、”命令所打開的對話框;若對話框是非模式型,則打開后可對其他窗口進(jìn)行操作,如“編輯”菜單的“替換”對話框就是一個非模式對話框的實(shí)例。 當(dāng)把窗體作為對話框打開時, show方法的參數(shù)有兩個,分別表示模式對話框和非模式對話框:(1)將窗體作為模式對話框打開,語句為:窗體名稱.show 1(2)將窗體作為非模式對話框打開,語句為:窗體名稱.show 09、 簡述窗體之間數(shù)據(jù)互訪如何才能實(shí)現(xiàn)。答:在多重窗體程序中,不同窗體之間可以相互訪問,即一個窗體可以訪問另一個窗體中的數(shù)據(jù)。兩個窗體之間訪問有下列三種情況:(1)一個窗體可以在直接訪問另一個窗體上控件的屬性,形式如下:另一個窗體名.窗件名.屬性(2)一

42、個窗體直接訪問在另一個窗體中定義的全局變量,形式如下:另一個窗體名.全局變量名(3)在模塊中定義公共變量實(shí)現(xiàn)相互訪問,這是最常用的方法。10、 mousedown事件發(fā)生在mouseup和click事件之前,但mouseup和click事件發(fā)生的次序與對象有關(guān)。試編寫一個小程序測試在命令按鈕和標(biāo)簽上mousedown、mouseup和click事件發(fā)生的順序。答:在窗體上創(chuàng)建一個命令按鈕command1和一個標(biāo)簽label1,然后編寫下列事件過程就以測試這三個事件發(fā)生的先后順序了。private sub command1_click() print 命令按鈕的click事件end subpri

43、vate sub command1_mousedown(button as integer, shift as integer, x as single, y as single) print 命令按鈕的mousedown事件end subprivate sub command1_mouseup(button as integer, shift as integer, x as single, y as single) print 命令按鈕的mouseup事件end subprivate sub label1_click() print 標(biāo)簽的click事件end subprivate sub

44、 label1_mousedown(button as integer, shift as integer, x as single, y as single) print 標(biāo)簽的mousedown事件end subprivate sub label1_mouseup(button as integer, shift as integer, x as single, y as single) print 標(biāo)簽的mouseup事件end sub測試結(jié)果發(fā)現(xiàn),在標(biāo)簽上發(fā)生的順序?yàn)椋簃ousedown、mouseup、click,而在命令按鈕上發(fā)生的順序是:mousedown、click、mouse

45、up。11、 在keydown事件過程中,如何檢測ctrl和f3鍵是否同時被按下?答:使用(keycode = vbkeyf3)and (shift = vbctrlmask ) 或者(keycode = 114 ) and (shift = 2)表達(dá)式,可以檢測ctrl和f3鍵是否同時被按下,f3鍵的鍵盤掃描碼是114。12、 keydown事件與keypress事件的區(qū)別是什么?答:用戶按下并且釋放一個會產(chǎn)生ascii碼的鍵時,觸發(fā)keypress事件;用戶按下鍵盤上任意一個鍵時,觸發(fā)keydown事件。keydown與keypress事件的主要區(qū)別如下:(1)從時間上來說,按下鍵盤上的一個鍵立即觸發(fā)keydown事件,但此時沒有引發(fā)keypress事件。只有在釋放該按鍵時觸發(fā)keypress事件。(2)用戶按下鍵盤中的任一鍵就會在相應(yīng)對象引發(fā)keydown事件,但是并不是按下和釋放鍵盤上的任意一個鍵都會引發(fā)keypress事件,keypress事件只對會產(chǎn)生ascii碼的按鍵有反應(yīng),包括數(shù)字、大小寫的字母、enter、backspace、esc、tab鍵等。對于如方向

溫馨提示

  • 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

提交評論