VB書面習題答案 第4章

2022-12-30 19:21:02 字數 4215 閱讀 2447

習題四p94

1~15題

參***:

1. 結構化程式設計的三種基本結構是什麼?

答:順序結構、選擇結構和迴圈結構

2. 指出下列賦值語句中的錯誤(包括執行時要產生的錯誤)

10 x = sin(x) + y答:10x是非法變數名

c = 3 + sqr(-3答:待求平方根的數為負數

c x + y = c * y答:賦值符號的左邊是表示式

x = sin(x) / (20 mod 2答:分母為零

3. msgbox函式與inputbox函式之間有什麼區別?各自獲得什麼值?

答:兩個函式的共同之處是均顯示對話方塊。區別:

inputbox函式等待使用者在文字框輸入資料,獲得的是輸入的字串資料;msgbox函式等待使用者按一按鈕,獲得的是表示按扭的整數值,以決定程式的流向。

4. 要使單精度變數x,y,z分別保留1位、2位、3位小數,並在窗體顯示,應使用什麼函式?如何編寫對應的print方法?

答:使用format函式,具體如下:

print format(x,"0.0顯示1位小數

print format(x,"0.00顯示2位小數

print format(x,"0.000") '顯示3位小數

5. 語句 if 《表示式》 then … 中的表示式可以是算術、字元、關係、邏輯表示式中哪些?

答:可以是算術、關係、邏輯表示式

按照一般語言的規定,if後應該是關係表示式、邏輯表示式,根據其結果邏輯量是true或false決定是否執行then後邊的子句。而在vb中還可以是算術表示式,因為vb邏輯判斷中,對於非0值就作為true,而0值作為false,因此如下分段函式

sin x / x x≠0

y0x=0

可用vb語句表示為if x then y=sin(x)/x else y=0

而不必寫成 if x<>0 then y=sin(x)/x else y=0

6. 指出下列語句中的錯誤

(1)if x ≥ y then print x

答:「≥」應寫成「>=」

(2)if 10 < x < 20 then x = x + 20

答:vb中表示x的範圍「10 < x < 20」應寫成「10 < x and x < 20」

(3)if c >=〝a〞 and c <=〝z〞 then

print 〝大寫字母〞

else if c >=〝a〞 and c <=〝z〞then

print 〝小寫字母〞

end if

答:「else if」之間不能有空格,即應寫成「elseif」

7. 按照下列條件,寫出相應的條件語句

(1)當字元型變數中第三個字元是"c"時,利用msgbox顯示"yes",否則顯示"no"。

答:if mid(c,3,1)="c" then msgbox "yes" else msgbox "no"

(2)利用if語句、select case語句兩種方法計算分段函式

x2+3x+2, x>20

y= 答: if語句select語句

private sub command1_clickprivate sub command1_click

x=val(

if x>20 thenselect case x

y=x*x+3*x+2case is>20

elseif x>=10 theny=x*x+3*x+2

y=sqr(3*x)-2case is>=10

elseif x>0 theny=sqr(3*x)-2

y=1/x+abs(xcase is>0

end ify=1/x+abs(x)

print yend select

end subprint y

end sub

(3)利用if語句和iif函式兩種方法求三個數x、y、z中的最大值並存入變數max中。

答if語句iif函式

if x>y then max=x else max=ymax=iif(x>y,x,y)

if z>max then max=zmax=iif(max>z,max,z)

8. 在多分支結構的實現中,可以用if…then…elseif…endif形式的語句,也可以用select case…end select形式的語句,由於後者的條件書寫更靈活、簡潔,是否完全可以取代前者?

答:不可以。雖然select case….

end select語句在條件的書寫上更簡潔和靈活,但是卻不可以完全取代if…then…elseif…end if形式的語句。因為select case….end select語句在使用上是有一些限制的。

首先,看該語句的形式:

select case 《變數或表示式》

case 《表示式列表1>

《語句塊1>

[case 《表示式列表2>

[《語句塊2>]]

…[case 《表示式列表n>

[《語句塊n>]]

[case else

[《語句塊n+1>]]

end select

其中《變數或表示式》只能含有乙個變數,任何含有多個變數的形式都是錯誤的。例如,要判斷x,y是否在第

一、第三象限內,若輸入如下語句:select case x,y,vb程式會顯示「缺少:語句結束」。

其次,在後面的case「表示式列表」中不能出現select case變數或表示式中使用的變數,也不能出現主教材上列出的四種形式以外的符號或關鍵字(符號是:逗號;關鍵字是:is、to)。

例如,上述象限的判斷,若語句表示如下:

select case x,y

case x>0 and y>0

print 「第一象限」

case x<0 and y<0

print 「第三象限」

end select

則程式有多處錯誤:select case x,y**現了多個變數;在case x>0 and y>0**現了變數和and邏輯運算子。上述例子只能用if的多分支結構來實現。

由此可見,雖然select case結構清晰,但使用受到限制,凡是對多個變數的條件判斷只能用if的多分支結構來實現。

9.計算下列迴圈語句的次數

⑴ for i =- -3 to 20 step 4

答:迴圈次數為6次。

⑵ for i = -3.5 to 5.5 step 0.5

答:迴圈次數為19次。

⑶ for i= -3.5 to 5.5 step -0.5

答:不迴圈。步長<0, 迴圈初值《終值。

⑷ for i= -3 to 20 step 0

答:無數次。

10.下列 30-90 為語句標號,分別標記該語句,第40 句執行了幾次?,第50 句執行了幾次?,第90 句顯示的結果是多少?

30 for j = 1 to 12 step 3

40 for k = 6 to 2 step -2

50 mk = k

60 print j, k

70 next k

80 next j

90 print j, k, mk

答:第40 句執行了4次。

第50 句執行了12次。

第90 句顯示的結果是13 0 2。

11.如果事先不知道迴圈次數,如何用 for …… next 結構來實現?

答:只要將迴圈的終值設定為乙個非常大的值,然後在迴圈體內增加 if 語句,判斷是否達到迴圈結束條件,並使用goto轉向語句或exit for語句結束迴圈。形式如下:

for 迴圈變數 = 1 to 非常大的數

if 達到迴圈結束條件 then exit for

next 迴圈變數

12.利用迴圈結構,實現如下功能:

⑴答: private sub command1_click()

dim s&, i%

s = 0

for i = 1 to 10

s = s + (i + 1) * (2 * i + 1)

next i

print "s="; s

end sub

⑵ 分別統計 1 ~ 100中,滿足3的倍數、7的倍數的數個為多少?

答:private sub command1_click()

VB教材章習題答案2019

大學程式設計基礎 visual basic 教材課後習題答案 第1章一 選擇題 第2章一 選擇題 二 填空題 1.rem或 23.5x2 3x 2sina 3 4.321456 5.300 三 操作題 1 程式段 private sub command1 click dim x as integer...

第4章習題

第四章社會主義改造理論 一 單項選擇 1 中華人民共和國的成立,標誌中國進入b a 新民主主義社會 b 社會主義社會 c 共產主義社會 d 資本主義社會 2 新民主主義社會的經濟成分中,完全屬於社會主義性質的是 a a 國營經濟 b 合作社經濟 c 個體經濟 d 國家資本主義經濟 3 新民主主義社會...

第4章儲存管理習題及答案

第四章儲存器管理習題分析 一 判斷改錯題 判斷敘述是否正確,正確的打 錯誤的打 並改正。1.進行程式的相對位址到實體地址的轉換,就是位址重定位。2.在分頁管理中所產生的記憶體碎片,最多小於幀的大小。3.段頁式儲存管理是通過請求調入和替換功能,對內外存進行統一管理,為使用者提供了比實際記憶體容量大的多...