2018年4月12日 星期四

計概15-07副程式與函數-其他試題

【技藝競賽試題】

D01.下列程式執行後,z的值為何? (A)54321 (B)5123233 (C)51234 (D)5321211[96技競]

Dim x, z As String

x = "4321": z = "5"

For i = 3 To 1 Step -1

 z = z + Right(x, i)

Next i

Print z

i

x

z

i

x

z

 

4321

5

2

21

532121

3

321

5321

1

1

5321211

 

B02.下列程式執行的結果? (A)21 (B)18 (C)26 (D)17[97技競]

X = 6: Y = 7: Z = 8

X = X + 1: Y = Y - 2: Z = X + Y X = 7: Y = 5: Z = 12

Call SUBADD(X, Y, Z)

Print X + Y + Z 3 + 6 + 9 = 18

Sub SUBADD(A, B, C)

 A = A - 4: B = B + 1: C = A + B A = 3: B = 6: C = 9

End Sub

 

C03.若一VB程式如下,執行主程式Main(),其結果會印出變數a的值為 (A)-1 (B)0 (C)1 (D)2[97技競]

Private Sub Good(s As Integer)

 s = s + 1 0 + 1 = 1

End Sub

Private Sub Bad(ByVal t As Integer)

 t = t - 2 1 - 2 = -1

End Sub

Private Sub Main()

 Dim a As Integer

 a = 0

 Call Good(a) 1

 Call Bad(a) 1

 Print a 1

End

 

A04.計算一個學生國文(CHI)、英文(ENG)和理化(PAC)成績的平均分數(以四捨五入法取至小數點後第二位),下列運算式何者正確? (A)AVG = Int(((CHI + ENG + PAC) / 3 + 0.005) * 100) / 100 (B)AVG = Int((CHI + ENG + PAC) / 3 * 100) / 100 (C)AVG = Int(((CHI + ENG + PAC) / 3 + 0.05) * 100) / 100 (D)AVG = Int((CHI + ENG + PAC) / 3 + 0.005) * 100 / 100[97技競]

 

B05.下列何者可模擬擲骰子出現之點數? (A)Rnd(6) (B)Int(6*Rnd(X))+1 (C)Int(Rnd(6))+1 (D)Int(6*Rnd(X))[97技競]

(A)0 <= Rnd(6) < 1(B)Int(6 * Rnd(X)) + 1整數1~6(C)Int(Rnd(6)) + 1整數1(D)Int(6 * Rnd(X))整數1~5

 

D06.下列有關BASIC敘述何者錯誤? (A)Print Right$("ABCD", 2)的結果為CD (B)Print Sgn(-90) * Abs(-90)的結果為-90 (C)Print Cint(3.75) + Sqr(9)的結果為7 (D)Print Int(-7.85) + Fix(7.85)的結果為0[97技競]

Int(-7.85) + Fix(7.85) = (-8) + 7 = -1

 

D07.下列程式之輸出結果為何? (A)DDCCBBAA (B)ABCDDCBA (C)AABBCCDD (D)DDDCDBDA[97技競]

A$ = "ABCD": s$ = ""

SL% = Len(A$) 4

For I% = SL% To 1 Step -1

 s$ = s$ + Right$(A$, 1) + Mid$(A$, I%, 1)

Next I%

Print s$

I%

s$

I%

s$

4

DD

2

DDDCDB

3

DDDC

1

DDDCDBDA

 

B08.執行下列Visual Basic程式片段後,副程式subP()執行了幾次? (A)1 (B)2 (C)3 (D)5[98技競]

Private Sub Form_Activate()

 Dim x As Integer

 Dim y As Integer

 x = 15: y = 2

 For i = 1 To x

  If x > y Then

   x = x - y

  Else

   Call subP(x, y)

  End If

 Next i

End Sub

Private Sub subP(x As Integer, y As Integer)

 x = x + 30: y = y * 3

End Sub

x = 1, y = 2x = 1, y = 6,執行2

 

A09.下列程式之Print a的結果為何? (A)10 (B)20 (C)30 (D)5[98技競]

Private Sub Form_Activate()

 a = 10

 Call subP((a), (a)) 傳值呼叫,主、副程式的引數不共用記憶體位址

 Print a 10

End Sub

Private Sub subP(x As Integer, y As Integer)

 x = x + y 10 + 10 = 20

 Print x, y 20  10

 b = x + y 20 + 10 = 30

 Print x, y 20  10

End Sub

 

A10.執行下列Visual Basic程式片段,請問輸出的結果為何? (A)STUVW (B)QRSTU (C)SRTUV (D)UVWXY[98技競]

X$ = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Y$ = Mid$(X$, 6, 18) "FGHIJKLMNOPQRSTUVW"

Z$ = Right$(Y$, 5) "STUVW"

Print Z$

 

D11.Visual Basic程式中執行Print Chr$(Asc("H") + 3,則輸出的資料為 (A)H (B)I (C)J (D)K[98技競]

Chr$(X)Asc(X$)互為反函數,Chr$(Asc("H") + 3H後第3個字元K

 

B12.執行下列Visual Basic程式後的輸出結果為 (A)0 (B)1 (C)2 (D)3[98技競]

Dim n(1 To 5) As Integer, max_index As Integer

Dim i As Integer, max As Integer

max = 0: Randomize

For i = 1 To 5

 n(i) = Int(Rnd() * 1) + 1 n(i)之值為01

 If n(i) > max Then 1 > 0

  max = n(i) 1

  max_index = i - 1

 End If

Next i

Print max

 

D13.若一VB程式如下,則呼叫Test(1, -4, 3)會得到結果為 (A)0 (B)1 (C)2 (D)3[99技競]

Private Function Test(a, b, c) As Single

 Test = ((-b) + (b ^ 2 - 4 * a * c) ^ 0.5) / (2 * a)

End Function

Test = ((- 4) + ((- 4) ^ 2 - 4 * 1 * 3) ^ 0.5) / (2 * 1) = 3

 

D14.甲校18位男同學與乙校18位女同學準備到陽明山進行聯誼活動,若男同學們打算以抽籤的方式(籤號為1~18)來決定每人要騎摩托車載哪一位女同學上山。假設使用Visual BasicRnd()函數可產生不重複的亂數,請問重複執行下列哪一個敘述可模擬上述抽籤的動作? (A)Print Sqr(9) * Rnd() * 2 (B)Print Rnd() * 18 (C)Print Rnd() * Int(-18.2) * -1 (D)Print Int(Rnd() * 18) + 1[99技競]

(A)Sqr(9) * Rnd() * 2 = 3 * Rnd() * 2產生0~5的數值

(B)Rnd() * 18產生0~17的數值

(C)Rnd() * Int(-18.2) * -1 = Rnd() * -19 * -1產生0~18的數值

(D)Int(Rnd() * 18)+1產生1~18的整數

 

A15.若想將以下程式片段,達成四捨五入到整數位的效果(f值為正數),請問空白處應填入何值? (A)0.5 (B)0.49 (C)0.4 (D)0.9[99技競]

Dim f As Double

Print Int(f + ____)

 

D16.以下敘述何者有誤? (A)Int(x/2) = x/2,此判別式可以判斷x值是否為偶數 (B)Chr$(Asc("A") + 1)之值為"B" (C)Abs(Fix(Rnd * -1))之值必為0 (D)Abs(Int(Rnd * -1))之值必為1[99技競]

Abs(Int(Rnd * -1)) = Abs(0-1) = 01

 

B17.Visual Basic程式中,執行Print Len(Str$(123))之結果為何? (A)3 (B)4 (C)123 (D)執行錯誤。[99技競]

Len(Str$(123)) = Len("123") = 4

 

B18.下列程式三個變數ABC,要找出其中最大值,則必須在空格處填入 (A)A > B (B)C > A (C)B > C (D)C > B[100技競]

If B > A Then Swap(A, B)

If ____ Then Swap(A, C)

Print A

Sub Swap(ByRef A, ByRef B) 傳址呼叫,主、副程式的引數共用記憶體位址

 Dim T As Integer

 T = B: B = A: A = T

End Sub

 

D19.執行下列BASIC程式,其C結果為何? (A)2 (B)4 (C)5 (D)26[101技競]

Dim A, B, C As Integer

A = 1: B = 1

C = F(A, F(A, F(A, B)))

Function F(ByVal X As Integer, ByVal Y As Integer) As Integer

 F = X ^ 2 + Y ^ 2

End Function

F(1, 1) = 1 ^ 2 + 1 ^ 2 = 2

F(1, 2) = 1 ^ 2 + 2 ^ 2 = 5

F(1, 5) = 1 ^ 2 + 5 ^ 2 = 26

 

A20.「遞迴」程序會呼叫自己的程序,下列程序,使用遞迴來計算F1(4)為何? (A)16 (B)5 (C)10 (D)29[101技競]

Function F1(ByVal n As Integer) As Integer

 If n <= 1 Then

  F1 = 1

 Else

  F1 = F1(n - 1) + F1(n - 2) + n

 End If

End Function

F1(2) = F1(1) + F1(0) + 2 = 1 + 1 + 2 = 4

F1(3) = F1(2) + F1(1) + 3 = 4 + 1 + 3 = 8

F1(4) = F1(3) + F1(2) + 4 = 8 + 4 + 4 = 16

 

A21.執行下列BASIC程式,其A, B結果為何? (A)0, 4 (B)4, 0 (C)0, 0 (D)4, 4[101技競]

Dim A, B, answer(3) As Integer

Dim Str As String

Str = "6710": A = 0: B = 0

answer(0) = 1: answer(1) = 0: answer(2) = 6: answer(3) = 7

For i = 0 To 3

 For j = 0 To 3

  If answer(i) = Val(Mid(Str, j + 1, 1)) Then

   If i = j Then

A = A + 1

   Else

B = B + 1

   End If

  End If

 Next

Next

變數A是計算answer(i)Str兩者數字相同且位置相同的個數,變數B是計算兩者數字相同但位置不同的個數。

 

【其他試題】

A01.執行下列BASIC的運算式,何者的結果為1 (A) 2 * 2 - CINT(2.52) (B)SQR(INT(8.5) - 8) (C)FIX(1 * RND) (D)2 - RND

(A)取四捨六入五成雙的整數。2 * 2 - CINT(2.52) 2 * 2 - 3 4 - 3 1

(B)SQR(INT(8.5) - 8) SQR(8 - 8) SQR(0) 0

(C)RND產生01之間的隨機亂數。可用Randomize產生種子值,使每次執行產生不同的亂數。FIX取整數部分,不做四捨五入。

FIX(1 * RND) FIX(1 * 0.7055475) FIX(0.7055475) 0

(D)2 - RND 2 - 0.7055475 1.2944525

 

C02.Print Asc("A")的執行結果為65,則Print Chr$(90)的執行結果是什麼? (A)90 (B)0 (C)Z (D)2

 

A03.計算一個學生國文、英文和計概成績的平均分數(以四捨五入法取至小數點後第二位),下列運算式何者正確? (A)AVG = Int(((CHINESE + ENG + BCC) / 3 + 0.005) * 100) / 100 (B)AVG = Int((CHINESE + ENG + BCC) / 3 * 100) / 100 (C)AVG = Int(((CHINESE + ENG + BCC) / 3 + 0.005) * 100 / 100) (D)AVG = Int((CHINESE + ENG + BCC) / 3 + 0.05 * 100) / 100[82商業北夜]

 

A04.X = INSTR("PLANNING", "NN"),則X值為 (A)4 (B)0 (C)5 (D)7[84工業夜]

 

A05.Basic語言中,運算式16 / 4 - 2 ^ 5 * 8 MOD 7 + 20之值為何? (A)20 (B)21 (C)25 (D)18[85商業]

16 / 4 - 2 ^ 5 * 8 MOD 7 + 20 = 16 / 4 - 32 * 8 MOD 7 + 20 = 4 - 4 MOD 7 + 20 = 4 - 4 + 20 = 20

 

C06.BASIC語言中,若X = 5678,則LEN(STR$(X))為下列何值? (A)7 (B)6 (C)5 (D)4[85商業]

數值5678,變成字串「5678」,5的前面有一個空格,表示正數

數值-5678,變成字串「-5678」,5的前面有一個負號

 

B07.PRINT LEN(MID$("Civilization", 7))之結果為 (A)2 (B)6 (C)7 (D)以上皆非。[86商業南夜]

LEN(MID$("Civilization", 7)) = LEN("zation") = 6

 

C08.PRINT LOG(EXP(3))的輸出結果為 (A)0 (B)1 (C)3 (D)-1[87商業]

LOGEXP互為反函數,LOG(EXP(3)) = 3

 

A09.INT(RND * 12)所產生的整數亂數,其範圍為 (A)011 (B)112 (C)012 (D)110[87商業]

 

C10.Basic程式中,RND(A)可產生一亂數0<=RND(A)<1,則下列何者指令可產生一介於1025之間的整數(1025) (A)10 + INT(14 * RND) (B)10 + INT(15 * RND) (C)10 + INT(16 * RND) (D)10 + INT(25 * RND) - INT(10 * RND)[87商業北夜]

 

D11.下列Basic程式之執行結果為何? (A)314 (B)CBD (C)BAD (D)CAD[87商業北夜]

B$ = "314"

FOR I = 1 TO 3

 PRINT CHR$(ASC(MID$(B$, I, 1)) + ASC("A") - ASC("1"));

NEXT I

CHR$(ASC(MID$(B$, 1, 1)) + ASC("A") - ASC("1")) = CHR$(ASC("3") + 65 - 50) = CHR$(52 + 65 - 50) = CHR$(67) = ("C")

CHR$(ASC(MID$(B$, 2, 1)) + ASC("A") - ASC("1")) = CHR$(ASC("1") + 65 - 50) = CHR$(50 + 65 - 50) = CHR$(65) = ("A")

CHR$(ASC(MID$(B$, 3, 1)) + ASC("A") - ASC("1")) = CHR$(ASC("4") + 65 - 50) = CHR$(53 + 65 - 50) = CHR$(68) = ("D")

 

D12.若要刪除A$字串左邊的第一個字元,其Basic敘述為 (A)AS = MID$(A$, 1, 1) (B)A$ = LEFT$(A$, 1) (C)A$ = RIGHT$(A$, 1) (D)A$ = RIGHT$(A$, LEN(A$) - 1)[88工設]

 

D13.根據下列Basic敘述,何者可隨機產生一個從1199的正整數亂數值? (A)PRINT INT(98 * RND) + 10 (B)PRINT INT(89 * RND) + 10 (C)PRINT INT(88 * RND) + 11 (D)PRINT INT(89 * RND) + 11[88工設]

 

B14.假設X$ = "12"Y$ = "3",下列Basic關係運算式之值,何者為假? (A)LEN(X$ + Y$) = 3 (B)VAL(X$ + Y$) = 15 (C)LEN(X$) + LEN(Y$) = 3 (D)VAL(X$) + VAL(Y$) = 15[88商業]

VAL("12" + "3") = VAL("123") = 123

 

C15.Basic中,INT(RND * 100)所產生之亂數值,其範圍為何? (A)0100 (B)1100 (C)099 (D)199[88商業北夜]

 

A16.Basic中,若Y = -17.52,則SGN(Y)之值為何? (A)-1 (B)-17 (C)1 (D)0[88商業北夜]

 

C17.有關字串函數之敘述,下列何者錯誤? (A)PRINT LEN("QUICKBASIC")之結果為10 (B)PRINT RIGHT$("BASIC", 2)之結果為IC (C)PRINT MID$("BASIC", 2, 3)之結果為SI (D)PRINT RTRIM$("ABC") + LTRIM$("DEF")之結果為ABCDEF[88商業北夜]

MID$("BASIC", 2, 3) = "ASI"

 

D18.下列Basic程式執行結果為何? (A)0 (B)5 (C)6 (D)11[88資管推甄]

GREETING$ = "HAPPY NEW YEAR"

PRINT INSTR(7, GREETING$, "Y")

 

C19.執行Basic敘述PRINT LEN(LEFT$("computer", 10)),其結果為何? (A)computer (B)10 (C)8 (D)0[89工設]

LEN(LEFT$("computer", 10)) = LEN("computer") = 8

 

C20.執行Basic敘述S = FIX(RND * 100),則S的範圍為 (A)0S100 (B)1S100 (C)0S99 (D)1S99[89工設]

 

C21.下列有關Basic數值函數的敘述,何者錯誤? (A)ABS(X)在求X的絕對值 (B)SQR(X)在求X的平方根 (C)EXP(X)在求X的對數值 (D)TAN(X)在求X的正切函數值。[89工設北夜]

 

C22.Basic中,執行下列INT函數之結果,何者正確? (A)INT(-7.6)結果為-6 (B)INT(-7.6)結果為-7 (C)INT(-7.6)結果為-8 (D)INT(7.6)結果為8[89工設北夜]

INT(7.6) = 7

 

B23.下列有關Basic副程式的敘述,何者錯誤? (A)副程式可以呼叫另一副程式 (B)一個副程式只能被主程式呼叫1 (C)副程式具有程式容易維護的優點 (D)副程式具有利於程式分工撰寫的優點。[89工設北夜]

 

B24.已知字元AASCII碼為65,則Basic敘述PRINT CHR$(ASC("A") + 1)之輸出結果為 (A)A (B)B (C)65 (D)66[89商業北夜]

CHR$(ASC("A") + 1) = CHR$(65 + 1) = CHR$(66) = "B"

 

A25.下列那一個敘述可以印出十進位72的八進位值? (A)PRINT OCT$(72) (B)PRINT HEX$(72) (C)PRINT VAL("72") (D)PRINT ASC("72")[89資管保甄]

 

B26.在資料結構中,"stack"稱為 (A)佇列 (B)堆疊 (C) (D)鏈結串列。[90教育視導]

 

C27.下列何者不是一種資料結構(Data Structure) (A)佇列(Queue) (B)堆疊(Stack) (C)資料庫(Database) (D)鏈結串列(Linked List)[90教育視導]

 

B28.在資料結構中"FIFO"稱為 (A)先進後出 (B)先進先出 (C)只進不出 (D)只出不進。[90教育視導]

 

B29.系統在處理遞迴函數呼叫時,常需要何種資料結構來輔助? (A)佇列(queue) (B)堆疊(stack) (C)(tree) (D)鏈結串列(linked list)[90教育視導]

 

A30.在資料結構中"LIFO"稱為 (A)後進先出 (B)先進先出 (C)只進不出 (D)只出不進。[90教育視導]

 

A31.在資料結構中,"Queue"稱為 (A)佇列 (B)堆疊 (C) (D)鏈結串列。[90教育視導]

 

A32.下列那項非堆疊事例? (A)排隊買票 (B)堆積木 (C)蓋房子 (D)堆盤子。[90教育視導]

 

C33.堆疊資料型態的基本特性是 (A)只進不出 (B)先進先出 (C)先進後出 (D)只出不進。[90教育視導]

 

A34.在堆疊中,所有的新增和刪除的操作 (A)均在同一端完成 (B)均在不同的兩端完成 (C)必須在中間段完成 (D)在何處完成沒有限制。[90教育視導]

 

B35.在佇列中,所有的新增和刪除的操作 (A)均在同一端完成 (B)均在不同的兩端完成  (C)必須在中間段完成 (D)在何處完成沒有限制。[90教育視導]

 

【綜合題】

【題目1】執行Print Int(-7 / 3) * 3的輸出結果為?

Int取小於等於的最大整數

Int(-7 / 3) * 3 = Int(-2.333) * 3 = -3 * 3 = -9

 

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。