第6章程控結構

2021-08-08 17:44:54 字數 5232 閱讀 7883

6.1 典型考題分析與解答

1.在窗體上有兩個文字框和乙個命令按鈕(name屬性分別為text1、text2和command1),其中任意乙個文字框用來輸入乙個正實數,單擊命令按鈕後,在另乙個文字框輸出該數的平方根。下面事件過程中的第乙個if/end if結構的作用是:判斷如果沒有在某乙個文字框中輸入實數就單擊命令按鈕,則給出錯誤資訊,然後結束程式的執行。

第二個if/end if的作用是:判斷在哪乙個文字框中輸入實數,以便在另乙個文字框中輸出結果。

private sub command1_ click()

if  [1]  then

msgbox("please input data" )

exit sub

end if

if  [2]  then

text1.text=str(sqr(val(text2.text)))

else

text2.text=str(sqr(val(text1.text)))

end if

end sub

【分析】如果文字框的text屬性值為空,說明在文字框中沒有輸入資料,所以第乙個空應填寫語句:text1.text= " " and text2.text=" "

或:text1=" " and text2=" "

如果文字框的text屬性的長度為0,說明該文字框的text為空串。從第二個if_else_end if結構看出,如果條件為真,要將text2中的內容放入text1中。這個條件應是第乙個文字框為空,所以第二個空應填寫語句:

len(text1.text)=0。

注意不能寫成len(text2.text)=0,這樣寫雖然沒有語法錯誤,程式執行時也不會出錯,但不能實現題目所要求的功能。

【解答】text1.text= " " and text2.text=" "或:text1=" " and text2=" ";len(text1.text)=0

2.下列語句中,語法正確的是    。

a.r^2=9 b.a【分析】本題主要是考核學習者掌握賦值語句的書寫格式。

賦值語句的命令動詞是let,let可以省略,其格式為

[let]《變數名》=《表示式》

賦值語句功能是:先計算表示式的值,然後把表示式的值賦給賦值號左邊變數。

選項a錯誤。賦值號左邊是乙個算術表示式,不符合賦值語句的格式要求。

選項b錯誤。賦值號左邊是乙個關係表示式,不符合賦值語句的格式要求。

選項c正確。賦值號右邊是乙個關係表示式「b<3」,將b<3的邏輯值賦給變數a。

選項d錯誤。一條let語句只能給乙個變數賦值,該語句試圖用乙個賦值語句給兩個變數賦值是錯誤的。若將該語句改為

let a = 5 : b = 10

就正確了,實際上是用冒號把它分開而成為兩條賦值語句。

【解答】c

3.在窗體上畫乙個命令按鈕,然後編寫如下事件過程:

private sub command1_click()

for i=1 to 10

x = 3

for j=1 to 3

x = x + 3

next j

next i

print x

end sub

程式執行後,單擊命令按鈕,輸出結果是    。

a.9 b.12 c.90 d.93

【分析】本題主要是考核學習者掌握「for語句」的編寫。

題目中給出的是乙個兩層for迴圈的程式。語句「x=3」要執行10次。語句「x=x+3」要執行30次。

但不管外迴圈執行幾次,每開始乙個內迴圈時,x總是被重新賦初值3。所以內迴圈最後一次執行時,x從初值3開始,執行3次加3的操作,最後x的值是12。

【解答】b

4.下列程式的功能為輸出如下的圖形。程式不完整,請在 [1] 、 [2] 處填入所需內容。

********

********

********

********

private sub command1_click()

for i=1 to 4

print tab(10+i);

for j= [1]

print "*" ;

[2]print

next i

end sub

【分析】本題主要是考核學習者掌握「雙重迴圈結構」語句的編寫。

題目中給出這類測試的程式通常有乙個雙重迴圈結構,外迴圈決定列印輸出行的數量,內迴圈決定每行輸出的字元和字元個數,通常在print語句中用乙個tab函式確定每行第乙個字元的列印位置。程式的外迴圈變數i從1增加到4,步長為1,迴圈4次,因此列印輸出4行。內迴圈的迴圈變數j,其初值和終值均不知道。

我們從各行列印輸出的字元均為8個「*」號,而內迴圈的print語句每次列印輸出1個「*」號,因此可以肯定,內迴圈的迴圈次數為8次。如果我們將迴圈變數j的初值定為1,終值定為8,即可滿足本題的要求。我們給出的

【解答】為1 to 8。在進入內迴圈以前的print語句的tab函式是用來確定每行的列印的起始位置的,print語句的tab函式的實際變數為10+i,每次內迴圈,每行的列印隨外迴圈變數i的增大而從第10列逐行右移一列。

【解答】[1] 1 to 8; [2] next j

5.下面程式執行後,x的值為    。

a = 10 : b = 0

do while a-b

a=a1

b=b+1

x=x+a+b

loop

a.30 b.40 c.50 d.60

【分析】本題主要是考核學習者掌握「do while-loop控制項結構」程式設計。

題目中給出的程式用do while-loop控制項結構程式設計。do while語句的條件表示式是數字表示式ab,當ab為0時,結束迴圈。

程式中的while迴圈執行5次,注意不是執行6次。每執行一次迴圈體,將a+b的值累加到x中,a+b的值總是10,所以最後x的值為50。

【解答】c

6.假定有下面的程式段:

for i=1 to 3

for j=1 to i

for k=j to 3

print"i=";i, "j="; ",j, "k=";k

next k

next j

next i

這是乙個三重迴圈程式,在這個程式中,外層、中層和內層迴圈的迴圈次數是    。

a.3、6和14 b.3、8和16

c.3、4和12 d.3、9和18

【分析】本題主要是考核學習者掌握「多重特環結構語句」的使用。

在多重迴圈中,外層迴圈變化一次,內層迴圈從頭到尾執行一遍。該題是乙個三重迴圈,而且中層迴圈變數的終值和內層迴圈變數的初值是隨上一層迴圈的迴圈變數的變化而變化的,因此需要逐層加上計算後累加出各層的迴圈次數。模擬計算機的計算過程,計算各層的迴圈次數如下:

(1)外層迴圈:i=1 to 3,迴圈次數為3

(2)中層迴圈:當i=1時,j=1 to 1,迴圈1次

當i=2時,j=1 to 2,迴圈2次

當i=3時,j=1 to 3,迴圈3次

中層迴圈的迴圈次數為6

(3)內層迴圈:當j=1時,k=1 to 3,迴圈3次

當j=1時,k=1 to 3,迴圈3次

當j=2時,k=2 to 3,迴圈2次

當j=1時,k=1 to 3,迴圈3次

當j=2時,k=2 to 3,迴圈2次

當j=3時,k=3 to 3,迴圈1次

內層迴圈的迴圈次數為14

【解答】a

7.在窗體上畫乙個命令按鈕,然後編寫如下事件過程:

private sub command1_click()

b = 0

do until b< 0

a = val(inputbox("輸入a的值"))

b = val(inputbox("輸入b的值"))

a = a+b

loop

print a

end sub

程式執行後,依次輸入5、4、3、2、1、0、1、2,則輸出結果是    。

a.15 b.12 c.1 d.3

【分析】程式執行後,共輸入4組資料,a依次取值為5、3、1、1,b依次取值為4、2、0、2。

注意到迴圈條件是「b<0」,所以當「a=1,b=0」時,還要再輸入第4組資料,這時「a=1,b=2」,計算出a的值為3,然後判斷出b<0為真,結束迴圈。還要注意到,a=a+b從形式上看是將b累加到變數a中,但實際上並不會起到累加的作用,因為變數a不斷被賦予新值。

這樣,不管輸入多少組資料,a的值僅僅是最後一組輸入的資料之和。

【解答】d

8.在窗體中新增命令按鈕,編寫如下程式:

private sub command1_click()

a=0for m=1 to 10

a=a+1

b=0for j=1 to 10

a=a+1

b=b+2

next j

next m

print a,b

end sub

單擊命令按鈕,程式的執行結果為    。

a.10, 20 b.20, 110 c.110, 20 d.200, 110

【分析】每執行一次外迴圈,a的值增加11,執行10次外層迴圈後a的值為11×10=110,b在每次執行外層迴圈後的值都是相同的,b=10×2=20。

【解答】c

9.閱讀下面程式段:

dim ln as single, m as single

dim k as integer, t as single

k = 0.0 : ln = 0.0 : m = 1.0 : t = 1.0

x! = val (inputbox("輸入x的值"))

dok = k + 1 : t = t *x

s = m * t / k : ln =ln + s

m = m

loop while k<10

print ln

程式段所計算的表示式是    。

a.x+x^2/2+x^3/3+x^4/4+ … +x^10/10

b.xx^2/2+x^3/3x^4/4+ … x^10/10

c.x+x^2+x/3+x/4+ … +x/10

d.xx^2+x/3x/4+ … x/10

【分析】這裡的do…loop迴圈的條件是k<10,while關鍵字放在loop語句中,這樣要先執行迴圈體,再進行條件判斷,這與第12例的do…loop迴圈有區別。第12題的until關鍵字放在do語句中,要先進行條件判斷,再決定是否執行迴圈體。這一點是while(until)關鍵字放在do語句中或放在loop語句中的區別所在。

第3章程式流程控制

本章主要內容 1 if語句 2 條件運算子 3 switch語句 4 while語句 5 do while語句 6 for next語句 迴圈巢狀 7 goto語句 exit語句 8 運算子的優先順序 3.1 選擇 分支 語句 結構化程式設計語言包含了三種且只有三種基本結構,即順序結構 分支結構和迴...

鋼結構第6章

第六章鋼結構施工安裝 第一節鋼結構工程安裝方案的編制 鋼結構工程安裝方案著重解決鋼結構工程安裝方法,安裝工藝順序及流水段劃分,安裝機械的選擇和鋼構件的運輸和擺放等問題。一 鋼結構工程安漩方法選擇 鋼結構工程安裝方法有分件安裝法 節間安裝法和綜合安裝法。1 分件安裝法 分件安裝法是指起重機在帶間內每開...

第6章金屬結構工程

第一節基礎知識 一 鋼材的使用 角鋼 槽鋼 工字鋼 鋼板等常以組合的型式應用於鋼屋架 鋼支撐 鋼柱 鋼牆架 鋼梁 鋼檁條和鋼操作平台等。圓鋼及鋼管常用於建築物的欄杆 扶梯 扶手及護欄等。鋼軌在一般結構中不常用,主要是應用於工業廠房中的吊車軌道 塔式起重機行駛軌道和車間鐵路路軌。二 鋼構件的連線 鋼構...