Page 1


第4章

程式語言簡介及實例應用 學習目標與統測命題趨勢 物件導向觀念的考題有增多的趨勢,在 VB 興起後,有關於物件導向程式設計(OOP)的觀 念問題如多型、繼承、類別、屬性等考題一再出籠。 程式的流向控制,基本的迴圈流程是考生一定要會的。同學們在追蹤變數時,可先將程式 中所有的變數先排成一列,迴圈變數在左(例如:I),迴圈內重複改變的變數放右(例如: Sum),且將離開迴圈的條件列出,每當迴圈變數有變化時,同時將重複改變的變數變化值列出 來,順便參考一下條件值成立與否。頂多做久一點,一定可以得到結果。同學們可以參考老師後 面的題目與解析,正確地做出幾題,我想信心會大大的增強。茲將本章重點命題比重之趨勢分析 如下:(↑:上升,—:持平,↓:下降) 命 題 焦 點

趨勢

說   明

1 程式語言分類

程式語言的種類與用途,容易出題。

2 程式語言的解讀與執行

傳統重點考題,題型較固定。

3 演算法與流程圖介紹

流程圖可取代複雜的程式,容易出題。

4 物件導向的觀念

目前的程式設計觀念主流,容易出題。

5 Visual Basic

VB 的環境簡單易使用,容易出題。

6 VB 的資料型態

傳統重點考題,注意不同資料型態與 Byte 數。

7 VB 的即時運算視窗

VB 運算式最簡單的使用方式,容易出題。

8 程式的選擇

傳統重點考題,題型較固定,容易出考古題。

9 程式迴圈

傳統重點考題,迴圈變化莫測,容易出題。

0 副程式

Sub 的各種寫法與參數傳遞,容易出題。

q 數值函數

數值函數簡單易用,容易出題。

w 字串函數

與傳統 BASIC 表達有些差異。

e 陣列變數的使用

連續性記憶體的觀念,考題固定。

r 排序與搜尋

較複雜的演算法,考題固定,但較難懂。


104

第 4 章  程式語言簡介及實例應用

應考秘笈 1 熟記三種電腦語言的翻譯方式:直譯、組譯、編譯。 2 分辨低階與高階語言之異同,並熟記常用的幾種高階語言。 3 熟記結構化程式設計的三大架構:循序、選擇、重複。 4 了解各流程圖的含義。 5 練習如何繪製一個流程圖。 6 練習流程圖考題變數內含值的追蹤。 7 了解物件導向的四大要素:封裝性、繼承性、多型性、抽象性。 8 大致了解 Visual BASIC 的作業環境與操作介面。 9 熟悉表單中物件工具的屬性及用法。 0 了解程式碼如何建立。 q 了解即時運算視窗及運算式如何設計。 w 了解布林代數及基本的邏輯如 And、Or、Not、Xor 等邏輯運算。 e 熟練 If…Then…判斷式的用法。 r 熟練計次迴圈 For…Next 迴圈的用法。 t 熟練雙層迴圈的用法,並了解外圈變數與內圈變數的關係。 y 要知道迴圈內所重複的敘述式的意義。 u 熟記數值函數。 i 熟練條件迴圈 While…Wend,Do…Loop 的用法。 o 要會分辨選擇排序與氣泡排序法。 p 要會用循序與二分這兩種搜尋法。


第 4 章  程式語言簡介及實例應用

105

1 單元

程式語言簡介 命題焦點1 程式語言分類 一、程式語言的進展 世代

等級

第一代

種類

特   色 1 二進位→ 0 與 1 的符號。

機械語言

2 速度最快,可直接控制硬體,但解讀性最差。

低階 1 以英文縮寫表示指令,如 MOV 表搬移。

語言 第二代

組合語言

第三代

程序導向語言

第四代

2 速度第二快,亦可直接控制硬體,但需組譯程式加 以解讀後才可執行,解讀性只比機械語言好。

高階

物件導向語言

語言

(OOP)

第五代

1 以結構化架構撰寫程式。 2 結構化三大架構為:循序、選擇、重複 1 將程式或裝置程式物件化。 2 物件導向的特色:封裝性、繼承性、多型性。

人工智慧語言

1 以知識庫與推理引擎推導規則。 2 特色:機械學習與邏輯推理。

二、低階與高階語言的比較 比較項目

低階語言

高階語言

學習因難、不易撰寫。

寫法較接近人類語言。

可讀性

程式維護

指令執行速度

程式長(因指令碼短)

程式短(因指令碼長)

直接控制(機械語言)、組譯式(組合語言)

直譯式、編譯式

特色

同一功能之程式碼長度 電腦翻譯方式


106

第 4 章  程式語言簡介及實例應用

老師實例講解 1 *(  D  )1 在電腦程式語言的演進過程中,機器語言屬於第一代語言,組合語言屬於第二代語 言。下列關於機器語言及組合語言在不同電腦中使用的敘述,何者正確? A需使用 相同的機器語言和相同的組合語言 B需使用相同的機器語言和不同的組合語言 C 需使用不同的機器語言和相同的組合語言 D需使用不同的機器語言和不同的組合語 言 (  A  )2 可以直接被電腦接受的語言是 (  A  )3 機器語言及組合語言又稱為

A機器語言 B組合語言 C C 語言 D高階語言 A低階語言 B人工智慧語言 C套裝軟體語言 D高

階語言 (  B  )4 要和電腦溝通,最直接也最基本的語言是機器碼,又稱機器語言。但一般人卻不直接 使用機器語言來撰寫程式,以下何者是合理的原因? 機器語言可讀性差

A機器語言執行速度太慢 B

C機器語言必須經過組譯才能執行 D機器語言必須經過編譯才

能執行 (  A  )5 下列哪一種電腦語言是屬於低階語言?

A Assembly B Pascal C BASIC D

COBOL

學生立即練習1 (  A  )1 程式語言中哪一種程式,執行速度最快,但偵錯最不容易?

A機器語言 B組合語

言 C商用語言 D培基語言 (  A  )2 程式設計師通常不使用機器語言來撰寫程式,其原因是 器語言須經編譯才能執行

C機器語言執行速度慢 D機器語言指令功能少

*(  C  )3 關於程式語言的敘述,下列何者不正確?

A機器語言對硬體有很強的控制能力

Visual Basic 具有視覺化的設計,屬於物件導向語言 程式,屬於高階語言

A機器語言可讀性差 B機 B

C組合語言可以用來寫硬體驅動

D Java 具有物件導向特性,可應用在網際網路程式 【95 工程】

(  A  )4 下列程式語言,何者屬低階語言?

A 組合語言 B BASIC C Visual Basic D C

++

【95 電子】

*(  C  )5 下列何種程式語言無法宣告資料型態?

A C B Visual Basic C機器語言 D

COBOL

【98 工程】

(  B  )6 下列哪一種程式語言所撰寫的程式,在執行前無須先經過組譯、直譯或編譯的程序?

A組合語言 B機器語言 C物件導向語言 D程序性高階語言

【100 工程】

三、常見的電腦高階語言 名稱 BASIC VB VB.net

說   明 1 優點為簡單易學、易懂。 2 有 Visual Basic 為「物件導向式」的 BASIC 語言。 3 可編譯成可執行檔,也可以即時運算視窗來進行直譯方式的執 行。

程式初學者 一般用途 交談式語言


第 4 章  程式語言簡介及實例應用

107

1 美國國防部發展出來的通用程式語言。 COBOL

金融界使用

2 其語法表示接近於口語化的英文表示。 3 編譯式。 1 處理科學、數學及工程上等等複雜的計算。

Fortran

工程科學用

2 語法相當嚴謹,容錯性較差。 3 編譯式。 1 由瑞士教授 Nilaus Wirth 在 1970 年完成第一個 Pascal 編輯器。

Pascal

2 為一種「結構化」的程式語言。

Delphi

3 Delphi 為 Pascal 的物件導向版本。

學術研究用

4 編譯式。 1 於 1972 年在貝爾實驗室發展出來的。 C語言 C++ C#

2 編寫 Unix 的作業系統。 3 其可攜性相當高,可移植至不同硬體架構的機器上執行,因此被 視為「中階程式」。

撰寫系統程式 撰寫應用程式

4 「C++」與「C#」語言均為「物件導向式」的 C 語言。 5 編譯式。 1 目前美國是積極開發 Lisp,而日本與法國則開發 Prolog。

Lisp Prolog

2 編譯式。

人工智慧語言

1 為 Sun 公司所發展出來的物件導向式語言。 2 Java Application:是一個獨立可執行的應用程式。(編譯式) 3 Java Applet:必須透過瀏覽器中的 Java 直譯器來執行。(直譯 式)

Java

4 Java Script和 VB Script:一種可以嵌入 HTML 文件中的命令語 言。(直譯式)

產生動態網頁 撰寫應用程式

5 屬於用戶端執行的程式碼。 1 Php 是一種描述語法,可免費取得,主要用於 Linux 網站伺服器。

PHP

2 和 ASP 相同之處是都是內嵌在 HTML 網頁中。

XML HTML

3 屬於伺服器端執行的程式碼。

網頁程式設計

4 直譯式。 1 結構化查詢語言。

SQL

2 使用者與資料庫之間的存取交談式語言。

資料庫存取

3 目前免費版本為 MySql。

老師實例講解 2 *(  C  )1 下列何者屬於直譯式語言?

A C++ B Pascal C BASIC D Delphi

*(  B  )2 下列哪一個程式語言最具有「物件導向」的相關特性? C Fortran D組合語言

A COBOL B Visual Basic


108

第 4 章  程式語言簡介及實例應用

*(  A  )3 下列何種電腦語法,主要不是使用於網頁方面的程式設計?

A SQL B PHP C

XML D Java Script (  C  )4 人工智慧意指賦予電腦如人腦般能夠思考與推理的能力,在人工智慧研究領域裡最常 用的語言是下列哪一項?

A Pascal B Fortran C Prolog D ADA

*(  D  )5 下列何種程式語言依機器種類不同而異?

A VB B C 語言 C BASIC D

Aassembly

學生立即練習2 A SQL B VB

(  C  )1 通常用來描述網頁的語法,且用於網頁頁面規劃的電腦語言為何?  C PHP D Java (  B  )2 下列有關 BASIC 語言的敘述,何者正確?

A BASIC 語言是由美國史丹佛大學

(STANFORD UNIVERSITY)的教授所發展出來的

B BASIC 語言是一種高階語言

C BASIC 語言只能被直譯(Interpret),不能被編譯(Compile) 能用來撰寫視窗程式 * (  C  )3 下列哪一種程式語言不是物件導向程式語言?

D BASIC 語言不

A C++ B Java C Pascal D

Smalltalk (  D  )4 下列有關程式語言之敘述,何者不正確? 以在不同作業系統間移植

A組合語言為低階語言

B JAVA 程式可

C物件導向語言具封裝、繼承與多型特性

需經過組譯即可執行

D組合語言不 【99 商管】

命題焦點2 程式語言的翻譯與執行 一、各種語言的翻譯方式(系統程式) 1 組譯式:直接將組合語言的原始程式碼(.asm),組譯成機械碼(.obj)以供電腦連結與執行。 用來翻譯組合語言所寫的程式又稱為「組譯器」(Assembler)。

組合語言 原始程式

組譯器

目的檔

(Assembler)

(*.obj)

(.asm) 庫存函數

連結器

可執行檔

(Linker)

(*.exe)

2 編譯式(Compiler):將原始程式進行分析(Analysis),若沒有錯誤則將其轉換成「目的碼」 (*.obj),此目的碼再與其他程式的目的碼或程式支援函數庫加以連結,而成「可執行檔」 (.exe)以供電腦執行。 3 編譯程式的工作,可細分為: 1 語彙分析(Lexical Analysis) 2 語法分析(Syntax Analysis)


第 4 章  程式語言簡介及實例應用

109

3 語意分析(Semantics Analysis) 4 最佳化(Optimization) 5 產生目的碼

高階語言 原始程式

編譯器

目的檔

(Compiler)

(*.obj)

(.c) 庫存函數

連結器

可執行檔

(Linker)

(*.exe)

4 直譯式:將原始程式逐行翻譯成可執行的機械碼,並逐行執行。其缺點為每次欲重新執行程式 時,均必需再從程式的第一行開始翻譯、執行。此外,直譯程式也必需常駐在記憶體中,較占 用記憶體空間。又稱為「解譯程式」(Interpreter)。 高階語言

直譯器

原始程式

(Interpreter)

可執行指令

二、三種翻譯方式的比較 組譯式(Assembly)

直譯式(Interpreter)

編譯式(Comipler)

原始程式碼

低階語言

高階語言

高階語言

產生目的檔

分析語法

整個程式

逐行分析

整個程式

執行方式

分析 1 次執行 n 次

分析 n 次執行 n 次

分析 1 次執行 n 次

硬體相關

較有關

較無關

較無關

可攜性

學習性

程式執行速度

有哪些語言

MASM

HTML、Java script

C、C++、VB、Java

1 連結程式(Linker):將各不同的目的碼(.obj)及函數加以連結成可執行檔(.exe)。 2 載入程式(Loader):將欲執行的程式從硬碟載入主記憶體(RAM)之中,以利執行。 3 公用程式(Utility):提供分類(Sort)、合併(Merge)、編輯(Edit)等功能。


110

第 4 章  程式語言簡介及實例應用

老師實例講解 *(  A  )1 利用下列何種程式語言所撰寫的原始程式碼交由機器執行前,不需要經過編譯器 (Compiler)或直譯器(Interpreter)的處理?

A組合語言(Assembly Language) 

B C++語言 C Fortran D Visual Basic *(  C  )2 程式經編譯(Compile)後,不會產生下列哪一種輸出? Message)  B列印原始程式(Source Program Listing)

A診斷訊息(Diagnostic C可執行模組(Executable

Module) D目的模組(Object Module) (  C  )3 編寫程式的一般流程為何? (Link/Load)

A執行(Execution),編譯(Compile),連接/載入

B編譯,執行,連結/載入

C編譯,連結/載入,執行

D連結/

載入,編譯,執行 (  C  )4 使用直譯器(Interpreter)將程式翻譯成機器語言的方式,下列敘述何者正確? 譯器與編譯器(Compiler)翻譯方式一樣 式的同時,立即翻譯並執行

B先翻譯成目的碼再執行之

A直

C在鍵入程

D依行號順序,依序翻譯執行

(  D  )5 編譯程式(Compiler)可以找出程式原始碼(Source Code)的何種錯誤?

A邏輯錯

誤(Logical Error) B設備錯誤(Device Error)

C執行錯誤(Run Time Error) 

D語法錯誤(Syntax Error) *(  D  )6 下列有關個人電腦系統軟體之敘述,何者錯誤?

A組合語言程式需經由組譯程式

(Assembly)翻譯成目的程式 記憶體中,以利執行 系統程式

B載入程式(Loader)可將待執行的程式載入適當的

C連結程式(Linker)用來連結主程式、副程式、庫存函數或

D編譯程式不產生目的程式,故執行速度較直譯程式快

(  D  )7 開發程式的過程中,常會用到1編譯程式(Compiler) 2載入程式(Loader) 3 連結程式(Linker) 4編輯程式(Editor)來處理所開發的程式,這些軟體使用依順 序為何?

A 1234 B 4321 C 4123 D 4132

(  C  )8 原始的組合語言程式經過組譯程式處理後,產生目的程式(.obj 檔),尚需要何種系 統軟體再處理,才可以順利執行?

A編譯器 B除錯程式 C連結程式 D編輯程

式 *(  A  )9 高階語言所編寫的程式原始檔,須經由下列何種程式的轉換之後,才會成為可執行 檔?

A編譯程式、連結程式 B驅動程式、載入程式

C組譯程式、驅動程式 D

連結程式、載入程式

【98 工程】

(  B  )0 下列何者不是一般的高階語言程式編譯器(Compiler),在編譯高階語言原始程式碼 時,會進行的編譯步驟?

A原始程式碼之掃描 B修正原始程式碼的錯誤語法 C

語法語意分析 D產生中間碼或目的碼

【99 工程】

學生立即練習 *(  C  )1 小華使用 Boland C6.0 的編譯器在為客戶撰寫會計系統軟體,下列有關編譯程式 (Compiler)之敘述,何者錯誤? 法錯誤

A可以產生目的檔 B可以檢查出原始程式之語

C可以產生執行檔並執行 D無法偵測出原始程式之邏輯性錯誤

*(  B  )2 同上題,小華所編譯與連結後,儲存於硬碟的可執行應用程式,其副檔名為何?

A *.com B *.exe C *.bat  D *.bas


第 4 章  程式語言簡介及實例應用

*(  B  )3 同上題,針對小華所開發的軟體系統,下列敘述何者正確? 可編譯應用程式,故屬於應用軟體

A編譯器(Compiler)

B會計系統輔助會計作業,屬於應用軟體

業系統不能編譯程式,所以不是系統軟體

111

C作

D作業系統(Operation System)可以編譯

程式,所以屬於系統軟體 (  A  )4 以高階語言或組合語言所撰寫的程式,稱之為 的程式(Object Program)

A原始程式(Source Program) B目

C執行程式(Execution Program) D編譯程式

(Compiler Program) *(  B  )5 下列有關編譯程式(Compiler)與直譯程式(Interpreter)的敘述,何者不正確? 兩者皆可將高階語言所寫的程式或敘述轉換成機器碼 結,載入至主記憶體方可執行

A

B兩者翻譯的程式均須再經連

C直譯過程中,一有錯誤就立即停止,供使用者修

改,故較適合初學者用以學習高階語言

D程式經編譯過程,完全正確無誤後,下次

再要執行該程式,便不需要重新編譯 (  B  )6 BASIC 語言的翻譯器有兩種型態,一是解譯器(Interpreter)另一種是編譯器 (Compiler),請選出下列正確的敘述

A解譯器與編譯器都屬於硬體

B解譯器是

每當把一個 BASIC 指令翻譯成機器語言後立即就執行

C同一個 BASIC 程式在使用

編譯器的電腦上,執行速度會比在使用解譯器的電腦慢

D編譯器和解譯器都是應用

程式 *(  D  )7 下列哪一項不屬於高階語言編譯程式(Compiler)的功能? Analysis) B語法解析(Parsing)

A語句分析(Lexical

C產生目的碼(Objext code Generation) D程

式執行(Program Execution) (  A  )8 下列何者主要為使用者執行應用程式時,負責將程式叫用至記憶體 RAM,以利 CPU 執行其指令?

A載入程式 B連結程式 C公用程式 D監督程式

*(  C  )9 下列敘述何者不正確? Assembler →機器語言

A原始程式→ Compiler →目的程式  B組合程式→

C高階語言→ Assembler →機器語言 D高階語言→ Compiler

→機器語言 (  D  )0 1代表編譯程式原始碼、2代表編寫程式原始碼、3代表載入可執行程式碼、4代表 產生程式目的碼、5代表連結程式目的碼,下列何種順序是正確的程式編寫與編譯過 程?

A 25314 B 25143 C 21543 D 21453

【99 工程】

命題焦點3 演算法與流程圖介紹 一、軟體系統發展生命週期:簡稱 SDLC,為發展軟體的步驟 系統分析

系統設計

系統發展

系統實施

系統評鑑


112

第 4 章  程式語言簡介及實例應用

二、程式設計的步驟 步

定義需求

問題分析

當針對某一個問題欲設計程式時,首先要先確定哪些問題要解決, 哪些工作項目要完成,這些均需清楚的定義出來。 利用流程圖或演算法,將解決問題的方法用圖表或列示執行步驟沙 盤推演一番,並驗證每一項步驟是否正確。

系統設計

將整個系統具體化,畫出整個作業的流程。

程式撰寫

分析具體化的系統流程,選擇適當的電腦語言程式撰寫。

程式的執行、偵錯與維護

將已經寫好的程式加以執行,並找出錯誤及不適當的部分加以修 正,且維護程式往後的正常功能。

三、演算法 將處理程式問題的步驟,以文字條列的方式,逐一列舉出來,這種方式稱為演算法(也可稱 之為虛擬碼)。特性為: 1 有限性:有起點與結束點。 2 確定性:步驟明確。 3 輸入輸出:不一定要有輸入,但一定要有輸出。程式流向最好是單一入口,單一出口的設計。 4 有效性:每一步驟必須在有限時間內完成。 5 簡潔性:層次分明,具可讀性。 範例 1:試寫一演算法,求等差級數 S=1+2+3+4+……+10 的過程 E:構思:先假設變數 S 與變數 I,S 用來累加 I 的變化,而 I 變數由 1 變化到 10 步驟 1:先讓 S=0(0 加上任何數等於任何數),I=1(I 初值設為 1) 步驟 2:讓 S 累加 I(S=S+I) 步驟 3:讓 I 加 1(I=I+1) 步驟 4:判斷 I 是否大於 10,若 I 大於 10 則進行步驟 5,否則跳回步驟 2(迴圈) 步驟 5:得到的結果 S 即為 1 加到 10 的值 55,I 最後跳出迴圈的值為 11

四、結構化程式設計應具備的原則 1 在程式的撰寫過程之中,應儘量少用 Goto 敘述,因為 Goto 的自由度太大,可能使程式的執行 流向不夠明確。 2 遵循三大架構,分別為:循序、選擇、重複。 3 不能造成程式無窮迴路。 4 Top-Down(由上而下)的程式發展。 5 每個細分的功能模組化(Modual)在程式內容中必須相互獨立。


第 4 章  程式語言簡介及實例應用

113

老師實例講解 1 (  A  )1 小華身為程式設計師,每年必須受客戶所託開發許多客製的軟體,於程式發展過程 中,小華必須導守何種開發軟體的順序才是正確的? 程序→程式設計→測試程式→執行程式 題→執行程式→測驗程式 →程式設計

A問題產生→分析問題→設計

B問題產生→程式設計→設計程序→分析問

C問題產生→執行程式→分析問題→設計程序→測試程式

D問題產生→測試程式→程式設計→執行程式→設計程序→分析問題

*(  C  )2 在程式設計的工具中,以使用類似英文的敘述來表示程式邏輯流程,謂之

A流程圖

B甘特圖 C虛擬碼 D卡諾圖 (  C  )3 所謂「虛擬碼」是表示 A CPU 能直接執行的機器碼 B無法有效解決問題的演算法 C使用文字來表示的演算法  D錯誤的程式碼 (  B  )4 下列何者是演算法所必須具備的特性之一? (Finiteness)

A開放性(Openness)  B有限性

C一致性(Consistency) D不可分割性(Atomicity) 【100 工程】

學生立即練習 1 (  A  )1 使用流程圖來表示演算法的優點為 較快

A以圖形表示較具親和性 B寫成程式後執行比

C用流程圖比較節省記憶體空間 D使用流程圖機器(CPU)能夠直接閱讀並

執行 (  B  )2 下列關於流程圖的敘述何者正確? 示,以免遺忘

A流程圖符號應儘量使用自己喜好的符號來表

B流程圖應使用大眾統一的符號,以便別人也能閱讀

能夠解決模糊不清的問題

C使用流程圖

D使用流程圖的原因是有較快的執行速度

(  A  )3 右列 5 個程式設計步驟:1分析需求與問題;2程式測試與除錯;3撰寫程式說明文 件;4撰寫程式碼;5處理程序設計。下列何種順序是正確的設計步驟?

A 154 【99 工管】

23 B 14532 C 13452 D 12345

(  D  )4 設計程式時,為表達流程圖或演算法所代表的指令執行過程,可以使用一種介於自然 語言與程式語言之間的表示法,稱之為

A二進碼 B對照碼 C機器碼 D虛擬碼 【100 工程】

五、流程圖符號 由提出「內儲程式」的馮紐曼博士(John Von Neu mamn)首先設計,而成為一種統一的標準。 起訖符號:

流向符號:

程式的開始或結束。

程式進行的方向。

輸入/出符號:

處理符號:

資料的輸入或輸出動作。

處理或執行的工作。(程

(資料)

序)

判斷符號:

連接符號:

條件的判斷。(決策)

流程圖連接。

註解符號:

準備符號:

註解說明。

初始狀態設定。


114

第 4 章  程式語言簡介及實例應用

卡片符號:

報表符號:

卡片輸入或輸出。

產生報表。(文件)

副程式符號:

人工作業符號:

(預設處理作業)

人工資料登錄或更正。

次頁連接符號: 前後頁次之連接。(換 頁)

資料檔。(循序存取) 排序符號: 由小到大或由大到小排序

顯示符號

的演算法,請將下

或合訂。 多重文件符號

學生立即練習 2 (  B  )1 參考右圖,

本題為判斷 輸入密碼是

否正確的演

列各個號碼的敘述 配合流程圖上的甲

表示文件或檔案的合併

人工輸入符號

老師實例講解 2 從 1 開始循序累加

資料庫。 合併符號:

磁帶符號:

(  C  )1 參考右圖,本題是

直接存取儲存裝置:

乙丙丁戊己,選擇

丙 是

正確的配合順序。

1 I=1

算法,請將 下列各個動

錯誤

作程序號碼 依序配合流

2判斷 I<10

3 I=I+1 =" ;Sum

程圖上的甲乙丙丁戊,選擇正確 的配合順序。

4 Print“Sum

丙 正確

1判斷密碼是否正確? 2輸入密碼

5 Sum=0

3提示輸入訊息

6 Sum=Sum+I

4提示錯誤訊息

A 153426

B 153246

5進入下一程序

C 152634

D 152346

A 31245 B 32154 C 32514 D 32145


第 4 章  程式語言簡介及實例應用

*(  B  )2 續上題,最終的累加結果會印出 A Sum=55 B Sum=45 Sum=0 D Sum=66

115

*(  C  )2 依據下列流程圖,變數 a 之輸出 值為多少?

C

A 68 B 84 C

104 D 124 開始 a=11

a<60 輸出 a a=a×2-8 結束

老師實例講解 3

學生立即練習 3

*(  C  )1 下列流程圖執行結果,變數 c 之

*(  C  )1 如圖所示,流程圖結束後,VarP

輸出值為何?

之值為何?

A 4 B 5

A 114 B 120

C 6 D 7

C 130 D 155

【96 商業】

開始

開始

c=0

VarP=100

i=1 K=2,10,2

j=2 k=3 i<10

VarP=VarP+K

K

是 i=i+j-k j=j+2

顯示 VarP

輸出 c

k=k+1 c=c+1

結束 結束

老師實例講解 4 (  C  )1 在流程圖中,通常以下列何者來表示決策或判斷的符號?

A 

  

B 

C  

D

【98 商管】


116

第 4 章  程式語言簡介及實例應用

(  D  )2 在流程圖的符號中,下列哪一個表示螢幕輸出符號?

A 

B 

C 

D

   (  D  )3 若是想要表示“資料由印表機(Printer)輸出",應選用下列哪一種流程圖符號? 

A 

B 

C  

D

   *(  C  )4 一流程圖如圖1所示,依流程順利執行後,列印 B 的值為何?

A 34 B 40 C 45

D 49 (  D  )5 假設三人體重分別為 A、B、C 且均不相等。處理流程如圖2所示,則下列何項為正確 敘述?

A三人體重需經三次比較 B將由大到小輸出三人體重

C將由小到大輸出

三人體重 D輸出三人體重中之最大者

【92 工設】 開始 輸入三人體重 A、B、C

A=10,B=0 是

B=B+A A=A-1

A>B?

A<6 是

B<C?

列印 B

輸出 A

輸出 B

圖1

輸出 C

圖2

*(  D  )6 在開始設計程式之前,下列工作何者為最優先? 些已經寫好的程式

A決定合適的程式語言 B收集一

C撰寫程式的演算法 D定義要解決的問題

*(  D  )7 下列何者不是結構化程式設計的主要特徵? 制結構

A>C?

B每種結構都是單一入口/單一出口

【95 工程】

A使用循序、選擇與重複等三種基本控 C使用模組化的設計技巧

下而上的設計方式

D採用由

【95 衛生】

學生立即練習 4 (  D  )1 程式流程圖

中的符號,表示下列何種意義?

A處理 B列印 C副程式 D

輸入/輸出 (  B  )2 在繪製流程圖時,If... Then... Else... End If 語法,應用何種符號表示?  C  D B (  C  )3 在流程圖符號中,下面哪一個表示輸入/輸出符號? A

 B

A

 C

D (  B  )4 流程圖的 件

符號其意義為何?

A程式的開始或結束  B以列表機印出報表文

C執行或處理某些工作 D表示資料的輸入或結果的輸出

(  A  )5 在處理某一問題時,將解決問題的方法和程序,逐步以文字敘述或圖形表達的方式展 示出來,稱之為

A演算法 B系統建置 C系統測試 D結構化程式設計


第 4 章  程式語言簡介及實例應用

(  B  )6 在結構化程式設計中,應該避免使用下列何種敘述?

117

A If... Then... B GoTo C

While... Wend D For... Next *(  B  )7 結構化程式設計通常由循序、選擇及重複結構組成,下列何者不是其主要的特點?

A從上而下將程式分解成多個程式模組

B每一個程式模組都具有多個入口及出口

C每一個程式模組分別負責一件獨立的工作

D簡化程式的複雜度

【96 商業】

命題焦點4 物件導向的觀念 1 常用的物件導向程式語言:Small-Talk(第一個物件導向語言)、Java、C++/C#、Visual Basic、Delphi... 2 物件導向語言的特性:繼承(Inheritance)、封裝(Encapsulation)、多型(Polymorphism)、 抽象(Abstraction)。 特性

說  明

範  例

一個物件擁有類別中部分或所有特 性,稱為繼承性。例如 A 繼承 B,乃 繼承

指物件類別 A(子類別)是物件類別 B(父類別)的一種,因此物件類別 A

■ 小轎車(子類別)是繼承自車子(父類 別)。 ■ 車子有輪子,小轎車不僅有輪子,還有四 個。

可以繼承物件類別 B 的屬性與方法。 是一種資訊隱藏的概念,可將物件實 封裝

例的屬性與方法一起封裝到類別中,

■ 駕使人只要會開小轎車即可,不必知道小 轎車的內部構造。

使用者只要會使用物件即可。 多型

抽象

用同樣的敘述(函數)來執行不同的

■ 同樣過高速公路收費站(函數),小轎車

物件中的相同的方法。

通過與大貨車通過的收費(方法)不同。 ■ Civic.break →喜美小轎車.剎車

將物件動作抽象化。

■ Civic.start →喜美小轎車.開動

3 物件導向語言的成員:類別(Class)、物件(Object)、屬性(Attribution)、事件(Event)、 程序(Procedure)、方法(Method)。 成員 類別 物件

具有相似的性質、行為、意義的物件集合。 包含程式碼、資料及屬性的組合,可以被視 為一個完整的物件單元。

車子、人類、鞋子…… 表單、文字方塊、按鈕……

屬性

物件的「靜態」特性值。

表單的大小、前景色、背景色、標題……

事件

對特定的物件所進行的動作。

對某個圖片物件按滑鼠左鍵一下(Click

方法 程序

物件內含操作的描述,指物件「動態」的特 性。 事件發生後,所執行該物件相對應的程式碼

圖片物件會移動。 按按鈕後做面積計算。


118

第 4 章  程式語言簡介及實例應用

老師實例講解 *(  C  )1 在物件導向的觀念中,下列何者表示某類別之屬性? 電腦在編譯 VB 程式

A電視在播映 DVD 影片  B

C電鍋使用 110 伏特電壓 D電子雞在唱 KTV

(  D  )2 在下列物件導向語言的特性中,哪一種特性是指每一個物件都包含許多不同「屬性」 及眾多針對不同「事件」而回應的「方法」? (Polymorphism)

A抽象性(Abstraction) B多型性

C繼承性(Inheritance) D封裝性(Encapsulation)

*(  B  )3 下列有關物件導向程式(Obiect-Oriented Programming;OOP)的敘述,何者不正確?

A Visual Basic 具有 OOP 的特性 B父類別(Parent Class)可以將子類別(Child Class)的方法重新定義 C多重繼承(Multi-Inheritance)係指一個子類別由多個父類 別衍生而來

D其資料封裝(Data Encapsulateion)之特性可降低軟體設計及維護的成

本 *(  D  )4 當程式設計師以物件導向方式開發一個「校務行政課程管理系統」時,下列何者通常 不會以類別(class)來表示?

A學生 B教師 C課程 D姓名

(  B  )5 在物件導向程式語言中,子類別(Subclass)會分享父類別(Superclass)所定義的結 構與行為,下列何者最能描述此種特性?

A封裝(Encapsulation)  B繼承

(Inheritance) C多型(Polymorphism) D委派(Delegation) (  A  )6 小華對 Windows XP 中的「我的電腦」點擊兩下(Double Click),試問此動作為物件 導向程式的哪一項?

A事件 B物件 C類別 D程序

(  D  )7 同上題,小華點擊後,「叫出」我的電腦的視窗,試問此為物件導向程式的哪一項? A事件 B物件 C類別 D程序 (  A  )8 下列何者不是「物件導向程式設計」的特性?

A機密性 B封裝性 C繼承性 D

多型性

【99 工管】

學生立即練習 (  B  )1 物件導向程式設計的英文縮寫為何?

A OPP B OOP C Object D Program

(  A  )2 以物件導向的觀點來看,大卡車、小客車、休旅車等都是汽車的一種,因此汽車是一 種

A類別 B屬性 C事件 D事件程序

(  C  )3 程式設計師可以用同樣的敘述來執行不同物件中相同的方法,這個特性稱為物件導向 程式設計的

A繼承性 B封裝性 C多型性 D抽象性

(  B  )4 物件對於某一事件(event)的回應方法稱為

A事件 B事件程序 C屬性 D類別

(  D  )5 在物件導向物件程式設計時,時常會提到「物件(Object)」這個名詞,每個物件包 含了很多的“內容",其內容可能包含了 (Method)

A事件程序(Event) B控制物件的方法

C物件的屬性(Property) D以上皆是

(  D  )6 Visual Basic 所撰寫的應用程式是以物件為基礎,應用程式的內容主要以何者所構成? A程式碼 B事件 C程序 D以上皆是 (  B  )7 「屬性」在物件中所扮演的角色 A屬性用來描述出物件的外形 B屬性用來表現出 物件的特性

C屬性用來表現出物件的功能 D屬性用來描述出物件的功能

(  D  )8 物件的「方法」是指

A用來描述出物件的功能 B用來表現出物件的外形

C用來

表現出物件的特性 D物件可執行的動作 (  C  )9 在物件導向的程式設計中,子類別會具備父類別的基本特性(包括屬性和方法),此 種特性稱為

A封裝性 B抽象性 C繼承性 D多態性

【98 工程】


第 4 章  程式語言簡介及實例應用

2 單元

程式語言實例應用 命題焦點1 Visual Basic 環境 一、Visual Basic(以下簡稱 VB)的大環境

圖4-2 VB10 的「整合開發環境」

二、VB 常用控制項工具(物件) Pointer

Picture Box

指標(用來選取物件)

圖片方塊(顯示圖片或文件)

Label

Text Box

標籤(顯示文字)

文字方塊(輸入或顯示文字)

Frame

Command Button

框架

指令按鈕

Check Box

Option Button

核取方塊(建立可複選選項)

選項按鈕(建立單選選項)

Combo Box

List Box

下拉式清單方塊

清單方塊

Horizontal Scroll Bar

Vertical Scrollbar

水平捲軸

垂直捲軸

Timer

Drive List Box

計時器(指定時間作什麼事)

磁碟機清單方塊

119


120

第 4 章  程式語言簡介及實例應用

Directory List Box

File List Box

目錄清單方塊

檔案清單方塊

Image

Data

影像(顯示圖片、影像)

資料控制項(連結資料庫)

三、專案總管 1 「專案」(Project)用來存放你所編寫的相關檔案。其預設名稱為「Project1.vbp」。當你執行 [檔案/新增專案]指令時,會增加新的專案,其預設名稱依序為 Project2、Project3...,每一個專 案預設至少有一個表單,其預設名稱為「Form1」。 2 在「專案總管」視窗的工具列有三個圖示鈕: 按鈕種類

按鈕功能

(檢視程式碼)

開啟所選取元件的「程式碼」視窗。

(檢視物件)

開啟所選取表單的「表單設計師」。

(切換資料夾)

隱藏或顯示專案下元件資料夾。

四、屬性視窗 每個控制項都有其自己的屬性,透過「屬性視窗」可以用來更改各個物件屬性的預設值。

五、程式碼視窗 對該物件滑鼠左鍵點兩下,即出現程式碼視窗。 副檔名

說明

.vbp

專案檔

.frm

表單檔

.bas

模組檔

.cls

物件類別檔


第 4 章  程式語言簡介及實例應用

121

六、VB 程式碼的格式 格

Private Sub Command1_click( ) Private Sub 物件名稱_某事件( ) 事件引發後的 Basic 程式碼集合

A=val (text1.text) B=a+10 Text2.text=B

End Sub

End Sub

七、物件中常用的事件 事 件 Change Click DBClick DragDrop

KeyPress

說   明 常用於 TextBox 文字方塊,當文字內容被修改(Text 屬性改變)時,VB 便會 執行 Change 事件內的程序。 當物件被滑鼠左鍵點一下時,VB 便會執行 Click 事件內的程序。 當物件被滑鼠左鍵點二下時,VB 便會執行 DBClick 事件內的程序。 當另一物件被拖曳至物件裡並放開滑鼠按鍵時,VB 便會執行 DragDrop 事件 內的程序。 針對某個物件,並按了鍵盤時,VB 便會執行 KeyPress 事件內的程序。並傳回 VbKey,此值相對應於鍵盤的 ASCII 碼。


122

第 4 章  程式語言簡介及實例應用

八、表單(Form)常用的屬性 屬 性

說   明

預設值

■ True:表單縮小或部分內容被覆蓋,當表單復原

AutoRedraw

False

時會重繪其內容。

(重繪)

■ False:不會重繪表單內容。

BackColor(背景色) Caption(標題)

&H8000000F&

設定表單工作區背景色。

Form1

表單標題欄上的文字。 選此屬性,會顯示字型對話方塊,在此對話方塊中

Font(字型)

新細明體

可設定字型樣式、大小……。

ForeColor(前景色)

設定表單工作區的前景色。

&H80000012& Form1

Name(名稱)

表單物件的名稱。

Picture(圖案)

設定表單內放置圖形檔名和路徑。

表單顯現在螢幕上或隱藏不出現。

True

表單的水平寬度(單位為 Twip)。

6495

Visible(顯現

隱藏)

Width(寬度)

■ 注意:程式執行前,Form 的屬性“AutoRedraw"要設定為“True"。

九、表單(Form)常用的事件 事件程序

說   明 程式執行第一個被執行的物件。當表單 1 被載入執行時,要做哪程序或設

Form_Load( )

定,一般而言,物件或程序的初始值設定,都在此宣告。

Form_Actirate( )

當程式執行時,若程式中 Form_Load 事件程序內有敘述,會先執行 Form_ Load 事件程序,接著再執行 Form_Activate 事件程序。

十、按鈕(Command)的常用屬性和表單差不多,介紹如下 屬 性 Caption Name

說   明

內定值

指令按鈕上面的標題文字。

Command1

指令按鈕的物件名稱。

Command1

1 True 表示已選取該指令按鈕。 Value (預設屬性)

2 False 表示沒有選取該按鈕。 3 如果在程式執行時,設定該屬性值為 True,就會觸動該指 令按鈕的 Click 事件。

False


第 4 章  程式語言簡介及實例應用

123

決定指令按鈕是顯現或隱藏: Visible

True

1 True:指令按鈕可看得到。 2 False:指令按鈕被隱藏。 指令按鈕是否作用:

Enabled

True

1 True:指令按鈕有作用。 2 False:指令按鈕無作用。

Picture

指令按鈕正常狀態圖片。

(無)

十一、標籤(Lael)較特殊的屬性如下 屬 性

說   明

預設值

標題(Caption)文字對齊方式: Alignment(對齊方式)

0-靠左對齊

1-靠右靠齊

0-靠左對齊

2-靠中對齊 BorderStyle(邊框)

標籤的框線樣式: 0-沒有框線

1-單線固定

0-沒有框線

十二、文字方塊(Text Box)較特殊的屬性 屬 性 MaxLength (本文長度)

Text(文字) (預設屬性)

說     明 設定文字方塊內可容納最多字元數目。若設定為「0」,表示長

0

度不限制。 例如:Text1.length=10 →文字方塊 1 只能輸入 10 個字元。 當文數字資料輸入到文字方塊內,會以字串方式放入 Text 屬性 中,若程式在設計或執行階段此屬性內容有異動,表單上對應 的文字方塊內的資料亦跟著異動。

十三、核取方塊(Check Box)較特殊的屬性 屬 性 Caption

說     明 標題名稱,預設名稱為 Check1,Check2……... 核取方塊被選取的狀態: 0-不核取:核取方塊未被選取(預設值)。

Value(預設屬性)

預設值

1-核取:核取方塊已被選取。 2-忽略:核取方塊內 v 符號呈灰色。 使用多個核取方塊時,可以單選或複選。

Text1


124

第 4 章  程式語言簡介及實例應用

核取方塊是否被核取: Enabled

1 True-核取方塊可以核取(預設值)。 2 False-核取方塊不能被核取。

十四、選項按鈕(Option Button) 屬 性 Caption

說     明 標題名稱,內定名稱為 Option1,Option2... 選項按鈕被選擇的狀態。 False:選項按鈕未被選取(預設值)。

Value(預設屬性)

True:選項按鈕已被選取。 1 使用多個選項按鈕時,只能單選。 2 選項按鈕與核對方塊常與框架(Frame)一起使用。 選項按鈕是否是有效:

Enabled

True-選項按鈕有效(預設值)。 False-選項按鈕無效。

老師實例講解 (  C  )1 在 VB 一個完整的程式稱之為一個專案,其副檔名為

A .bas B .frm C .vbp D

.cls (  A  )2 下列何者是放置控制項的操作平台,也可以當作程式執行時的輸出入視窗?

A表單

(Form) B文字標籤(Label) C文字框(Text) D命令鈕(Command) (  B  )3 用於顯示提示字元,執行時其內容不會改變的輸出框為

A表單(Form) B文字標

籤(Label) C文字框(Text) D命令鈕(Command) (  C  )4 下列何者為「命令鈕(Command)」物件 A

 B

 C

 D

*(  A  )5 程式執行時,能在表單上顯示文字和圖形,立即看到結果,須選擇

A Form_Load 

B Form_Activate C Form_Click D Form_DblClick (  D  )6 選 擇 性 的 資 料 輸 入 , 若 要 能 夠 複 選 須 使 用 A 選 項 鈕 ( O p t i o n )   B 命 令 鈕 (Command) C文字方塊(Text) D核取方塊(Check Box) *(  C  )7 右圖中,共含有幾個物件?(不使用陣列!) A 6 B 7 C 8 D 9 *(  B  )8 在 Visual Basic 中,下列何種屬性可以改變表單物件標題 列中的文字?

A BackColor B Caption C Name D

ControlBox (  D  )9 下列哪一個屬性可用來設定控制物件的顯示狀態? A Show B Picture C Value D Visible (  D  )0 設計 Visual Basic 程式時,若在表單上建立按鈕物件,則該按鈕物件至多會出現多少個 控制點,供程式設計師拖曳以調整按鈕物件的大小?

A 2 B 4 C 6 D 8 【100 工程】


第 4 章  程式語言簡介及實例應用

125

學生立即練習 *(  D  )1 在 Visual Basic 中,模組的副檔名為 A .cls B .vbp C .frm D .bas (  A  )2 Option Button 與 Check Box 何種可以作多重選擇?

A Check Box B Option Button

C兩者皆可 D兩者皆不可 (  A  )3 下列關於 VB 的描述,何者錯誤? A VB 表單的原點坐標右下角,向左 x 增加,向 上 y 增加

B VB 中的度量,預設值以 twip 為主

C 1twip 相當於 1440 分之 1 吋 D

要變更物件的標題名稱,應在屬性視窗中更改 Caption 名稱 (  C  )4 在 VB 中,下列哪一個函數可用來載入圖片?

A String( ) B Mid( ) C LoadPicture

( ) DRnd( ) (  B  )5 小王想用 Visual Basic 來製作兩車相撞的動畫,若他使用 2 個 Image 控制物件來分別繪 製 A 車與 B 車的圖像,那麼他還須使用下列哪一個控制物件來控制 2 車的速度? A Label B Timer C PictureBox D Shape (  C  )6 在 Visual Basic 中,若要改變選定控制物件的外觀,必須在哪一個視窗中作編修? A 專案總管視窗 B表單視窗 C屬性視窗 D表單配置視窗 (  B  )7 VB 的檔案中,副檔名為 *.frm 者,稱之為

A程式檔 B表單檔 C模組檔 D專案

檔 *(  B  )8 當核取方塊(Check Box)被選取時,其屬性 Value 值會被 設定為 A 0 B 1 C 2 D -1 (  A  )9 設定下列哪一個屬性,可以改變標籤中的文字對齊方式? A Alignment B BackColor C Caption D Font (  A  )0 每一個 Visual Basic 程式專案至少包含幾個表單? A 1 個 B 2 個 C 3 個 D 4 個 *(  C  )q 下列 Visual Basic 表單中,共使用幾個控制物件(表單本身不計)? A 4 B 7 C 8 D 12 【95 商業語文】 (  A  )w 在 Visual Basic 的整合式開發環境中,下列哪一個區域,最適合用來在表單上建立一個 按鈕物件?

A工具箱 B工作清單 C專案總管 D即時運算視窗

【100 工程】

命題焦點2 VB 的資料型態 一、VB 的保留字 所謂「保留字」是指 VB 系統所提供的屬性、事件、方法、運算子、敘述、和函數等所使用的 文字或運算符號,使用者不可拿來當變數使用。例如 Print、Cls、Rem、Form1、Text1 等等。

二、常數 不因為程式的執行,而改變其內容。


126

第 4 章  程式語言簡介及實例應用

文字常數 Unicode (2Bytes

字)

1 由一連串的字元組合而成的,包括中文字﹑英 2 在 VB 中文字常數前後必須使用雙引號括起 來,字串長度可由 0~65535 個字元。

“25,000" “3+5=?"

1 介於-32768 至+32767 範圍者,為整數常數。

25000、-123

2 &O或& →表示一個 8 進位整數。

&O17 → (17)8

非整數範圍,但十進位有效位數在 7 位以內,視

&H3A2B → (3A2B)16 3.141593、1.3E+2 65560

為單精數值。 非整數範圍,但十進位有效位數在 8 位以上16 位 以下者,視為倍精數值。 符號常數

“hello"

文字母、數字及特殊符號。

3 &H →表示一個 16 進位整數。 數值常數

使用 Const 來宣告常數,以巨集的方式表示一個 固定的數值。

965003214 1.3245D-10 Const Pi=3.14 (只要出現 Pi 就是3.14)

三、變數 是指在程式的執行過程中,隨著程式的執行而改變其內容。

四、變數的命名規則 1 一個變數名稱不能超過 255 個字元。 2 變數名稱第一個字元是字母(A-Z),大小寫均可或中文名稱。 3 除第一個字元外,其他字元可以為 A-z、a-z、0-9 或_等字元,建議少用中文名稱。 4 變數名稱最後一個字元可用型態宣告字元:%、&、!、#、@、$ 等符號來代表該變數的資料型 態。 5 變數名稱有多個單字時,中間可以加上底線“_",以增加變數名稱的可讀性。例如:tel_no 代 表電話號碼,id_no 代表身分證號碼。 6 若變數未設定初值時,數值變數的預設值為0;字串變數的預設值為空字串。

五、變數資料型態的宣告 1 使用 Dim,Redim,Static,Public 等敘述來宣告變數名稱。 2 使用 Private 宣告變數時,其變數生命週期僅限於該 sub 函數使用。 3 使用 Public 宣告變數時,其變數生命週期各 sub 函數均可使用,僅限於該程式。


第 4 章  程式語言簡介及實例應用

127

六、變數的種類 種

能儲存 0(False)及-1(True)兩

布林變數

種整數常數的變數。

位元組變數

能存 2 8 組整數常數的變數,常數 值的範圍為 0~255。 能存 2 16 組整數常數的變數,常數

整數變數

值的範圍為 -32768~32767。

長整數變數 單精浮點數

倍精浮點數

能存 232 組整數的變數。 使用 32 位元來表示可包含小數數 值的變數,有效位數 7 位。 使用 64 位元來表示可包含小數數 值的變數,有效位數 16 位。 一個 ASCII 字元為 1 個 Byte,一個 中文字元為 2 個 Byte,Unicode 為

字串變數

2 個 Bytes。 使用 64 位元來表示可包含小數數

Currency

值的變數,15 位整數及 4 位小數。

時間變數

專門存放日期或時間資料的變數。

宣告方式

(Byte) 2

Dim X As Boolean

1

Dim X As Byte

2

Dim X As Integer(或 X%)

4

Dim X As Long(或 X&)

4

Dim X As Single(或 X!)

8

Dim X As Double(或 X#)

2 (Unicode)

8 8

Dim X As String(或 X$) Dim X As Currency(或 X@) Dim X As Date X=“AM 08:00:05"

可以一下子被當成數值變數,可以 Variant

一下子又變成了字串變數,是一種

16(數值)

(VB 預設)

很方便的型態變數種類。但是占用

22(字串)

Dim X as Variant

記憶體空間,運算速度慢。

老師實例講解 *(  C  )1 在 BASIC 程式語言中,哪一個不是正確的變數名稱?

A DeFG B de_fg C de-fg

D deAfg *(  C  )2 在 BASIC 程式語言中,當變數 test 宣告成下列哪一種資料型態時,所需的記憶體最多 A Boolean B Integer C Double D Single *(  D  )3 下列何者是 Visual Basic 語言宣告變數的保留字? A Rem B Const C As D Dim (  B  )4 在 BASIC 語言中,一整數變數占用 2 位元組的記憶體,則此變數可表示的數值範圍為

A -32768~+32768 B -32768~+32767 C -32767~+32767 D -65535~+ 65535


128

第 4 章  程式語言簡介及實例應用

*(  C  )5 在一般程序中撰寫副程式時,若希望該副程式能被專案中的所有模組呼叫使用,則可 在定義副程式的 Sub 敘述前加上下列哪一個保留字? D Private (  A  )6 下列敘述何者錯誤? 間有2Bytes

A Dim B Const C Public 

A Boolean 變數的儲存空間有 1Bytes B Integer 變數的儲存空

Csingle變數的儲存空間有4Bytes

DDouble變數的儲存空間有 8Bytes,

Variant 數值變數的儲存空間有 16Bytes *(  C  )7 宣告變數“DIM A"請問 A 的資料型態是什麼?

A依在程式的使用而定 B Single

C Variant D一定要指明資料型態 (  B  )8 Visual Basic 中變數命名的規則及限制,下列何者不正確? (A~Z 或 a~z) B變數名稱的字數沒有限制

A須以英文字母為起頭

C不可使用保留字 D英文字母大小

寫並無區別

【99 工管】

學生立即練習 *(  B  )1 在 Visual BASIC 中,下列何項變數名稱不合法?

A BENZ% B 2BD$ C JOHN!

D FORD (  A  )2 BASIC 程式語言中,宣告變數的資料型態(Data Type),可在變數名稱的後面加一個 字元表示之;下列哪一個字元代表整數型態 (  C  )3 下列何者為單精確度實數變數?

A % B ! C # D $

A A# B A$ C A! D A%

*(  D  )4 在 BASIC 程式中使用 A# 變數此變數占用記憶體多少位元組(Bytes)?

A 2 B 4

C 6 D 8 *(  C  )5 於 VB 的即時運算視窗中,輸入 X%=32768 後,再按 Enter 鍵,會出現何種訊息? A語法錯誤 B進位 C溢位 D 32768 (  A  )6 Visual Basic 會將程式中未宣告的變數,視為下列哪一種資料型別?

A可變資料型別

B整數資料型別 C單精度資料型別 D倍精度資料型別 (  C  )7 下列哪一行 BASIC 程式所定義的資料結構,占有最少的記憶體位元組?

A Dim AA

as Long  B Dim BB as Double C Dim CC as Integer D Dim DD as Single (  C  )8 有關保留字 Public 和 Private 的敘述,下列何者錯誤? 示該程序可被專案中的所有模組使用

A若在程序前加上 Public,表

B若在程序前加上 Private,表示該程序只可被

所屬模組中的程序所使用 C若在表單模組的一般宣告區中使用 Public 宣告變數,該 變數為模組區域變數 D若在一般模組的一般宣告區中使用 Private 宣告變數,該變數 為模組區域變數 (  C  )9 根據 Visual Basic 變數與常數命名的規則,下列何者是正確的變數或常數名稱? Case B Sub C Tha D Then

A

【100 工程】


第 4 章  程式語言簡介及實例應用

129

命題焦點3 VB 即時運算與敘述表示 一、即時運算視窗   選取「檢視」→「即時運算視窗」。

二、程式基本敘述 1 若有多個指令敘述欲編輯在同一行號時,要以「:」(冒號)隔開。 2 REM 或´:程式的註解。在程式之中加上註解,可以使程式更具有可讀性,REM 或´之後的 所有文字符號,BASIC 均視為無意義的符號,不影響 BASIC 的指令執行。 3 LET 變數=變數、常數或運算式。LET 具有指定含義在,可省略不用只需用=即可。 例:LET A=B+C → A=B+C 4 [物件.]Print[<資料項>]:顯示資料的指令 1 Print 可以用?來代替。 2 若資料項為字串資料型態則印出資料時其前後均不會空格。 例如:Print“123"+“456"執行結果為 123456 3 若資料項為數值資料型態則印出資料時其前後均保留一個空格。 Print 123;456 執行結果為

123

456

數值前後均保留一個空格供正負號使用。

4 Print 單獨使用時,表示欲將游標換至下一列開頭,有換下列及顯示一列空白列的意思。

三、運算子優先順序 運算子優先順序為:算術>連接(&)>關係>邏輯


130

第 4 章  程式語言簡介及實例應用

1 算術運算子 優先權

運算子

1

( )

小括號

2

^

次方(乘冪)

3

負號

-3^2/2+.5 →得-4

4

*/

乘除

5*3/2 →得 7.5

5

\

除後取整數

43.2\6.6 →得 6

6

Mod

除後取餘數

43.2 Mod 6.6 →得 1

7

+-

加減

((3+5)*2-10) →得 6 3^2-4*2 → 得 1

5+3-2 →得 6

■ \與 Mod 相除時 → 若兩個數值中有小數,則先「四捨六入五取雙」再除。 2 電腦運算式表示 VB 敘述表示式範例

數學式範例 2

3X +4X-5 1

1 1 + - 2 3 4 (Q2+3)(2+Q3) a2+b2 x2+y2 A={[(3X2+4X-5)+4]-9y}

注 意

3*X^2+4*X-5

乘號、次方

1/2+1/3-1/4

分子、分母

(2^.5+3)*(2+3^.5)

次方

(a^2+b^2)/(x^2-y^2)

括號、次方

A=(((3*X^2+4*X-5)+4)-9*Y)

括號

3 連接運算子(&):可用來連接兩個以上相同或不同型態的常數或變數。 例如:“1234"& 5678 →“12345678" 4 關係運算子:比較數值大小或 ASCII 值的大小。 優先權

運算子

說   明 1 關係運算的過程中,每一個表示式均會產生一個「成立」 或「不成立」的結果。

8

>、<、>=、<=、 <>(或><)、=

2 「成立」又稱為「真」其值為 True(-1),「不成立」又 稱為「假」其值為 False(0) 3 數值比較:Print-3>100 →結果為 False 4 字元比較:Print“WinDows">“Mac"→結果為 True


第 4 章  程式語言簡介及實例應用

老師實例講解 1

學生立即練習 1

*(  C  )1 Print 20*4 Mod 7+6/3 的即時運算 結果

131

*(  A  )1 下列的 Visual Basic 指令執行後,

A 3 B 4 C 5 D 6

其輸出結果為何?

A 14 B 22

C 40 D 48 *(  A  )2 BASIC 程式之運算式?7 Mod 4+

Print 65\20*3+65/5 *(  B  )2 執行 BASIC 敘述 Print -3^2\2+7

43.2 Mod 7.3 所得之結果 A 的值 為:

結果為

A 4 B 5 C 6 D 7

A 2 . 5   B 3   C 11  

D11.5

老師實例講解 2 AB S-S4ASC 2

(  B  )1 將代數式 X=

2A

以 BASIC 語言表示成 A X=Sqr(B^2-4*A*C)/2*A

B X=(B^2-4*A*C)^.5/2/A 4*A*C)^0.5/2/A

C X=(B^2-4.A.C)^0.5/2.A D X=(B2-

*(  A  )2 執行 BASIC 敘述,Print (9^0.5+17 Mod 3) *2 的輸出結果為何?

A 10 B 13 C

16 D 19 *(  A  )3 下列 BASIC 式執行後 X,Y,Z 的結果依次為何? X=10:Y=20:Z=30:T=40 T=X:X=Y:Y=Z:Z=T:Print X,Y,Z A 20 30 10 B 30 10 20 C 30 20 10 D 10 30 20 *(  D  )4 在 VB 的即時運算視窗中,輸入 Print 3+2 & 7>50 後按 Enter 鍵,會出現何種結果?

A 32750 B 57>50 C False D True

學生立即練習 2 *(  D  )1 已知直角三角形的底為 A、高為 B,下列哪一個是求解斜邊 C 的 BASIC 正確敘述?

A A^2+B^2=C^2 B C^2=A^2+B^2 B^2)^0.5

C (A^2+B^2)^0.5=C D C=(A^2+

(  C  )2 VB 指令:Print“3" +“1"+(3&1)&(3+1),執行後印出的結果為:

A 3112 B 3134

C 31314 D 31313+1 5 邏輯運算子:邏輯運算又稱為布林運算。其運算子共分為六種,按優先權順序為:Not、And、 Or、Xor、Eqv 及 Imp 1 布林代數(位元邏輯): A.布林常數中,「真」以「1」代表,「假」以「0」代表。 B.布林變數,可以 A、B 或 X、Y 來代表,其值不是 0 就是 1。 2 基本運算:A 變數與 B 變數做邏輯運算 NOT 0 → 1(非假即真)NOT 1 → 0(非真即假) A

B

And

Or

Xor

Eqv

Imp

0

0

0

0

0

1

1

0

1

0

1

1

0

1


132

第 4 章  程式語言簡介及實例應用

1

0

0

1

1

0

0

1

1

1

1

0

1

1

都1才1

有1就1

不同為 1

相同為 1

10 為 0

口訣

■ 整數邏輯:「真」以 (-1)10 代表,「假」以 (0)10 代表。

老師實例講解 3 (  D  )1 在 A=True:B=True:C=False 的情況下;執行下列哪一項 Visual Basic 語言指令的 結果為真(True)?

A Print (not B) or C B Print (not A) and B

C Print (A or C)

and (not B) D Print (A and B) or (B and C) (  C  )2 下列真值表中的 F= A A Nor B B A And B

輸入

輸出

A

B

F

0

0

0

0

1

1

1

0

1

1 A 3 B 4 C 5 D 6 *(  A  )4 在 BASIC 語言中執行 Print 3+&O6+&HC 後,所顯示的是何值?

1

0

C A Xor B D A Nand B *(  D  )3 Print 3 Xor 5 的結果為

A 21 B 36C 

C 9 D 18

學生立即練習 3 (  C  )1 下列何者不是整數型態資料? A 11 B -123 C 3,000 D 245 *(  D  )2 使用 Visual Basic(VB)程式語言,在即時運算視窗的環境下,執行 Print NOT (3^2= 6) Or (6< >3*2),則螢幕輸出之資料為何? A –1 B False C 2 D True *(  A  )3 下列 Visual Basic 程式語言的邏輯運算中,何者的邏輯值為 True? A (3<5) XOR (20.3 Mod 2.7)>2 B“123"+ “456" =“579" C 5/4<5\4 D NOT 3+2<=5 *(  A  )4 BASIC 程式語言的整數常數可分為八進位、十進位及十六進位數值表示,執行 PRINT &H0F AND &HAB 的邏輯結果為 A 11 B 12 C 13 D 14

四、InputBox 輸入盒 1 InputBox 是系統元件,我們可以直接用來當成讓使用者輸入資料的介面。 2 用法:傳回值=InputBox (敘述文字,標題文字,預設值,X 坐標,Y 坐標) 例: Private Sub Command1_Click( ) Dim MyStr As String MyStr=InputBox (“請輸入你的姓名",“請問大名", “無名氏" ) Print MyStr“先生小姐 你好" ; End Sub


第 4 章  程式語言簡介及實例應用

五、MsgBox 訊息盒 1 msgbox 是系統元件,我們可以直接用來當成讓使用者輸出一個訊息方塊介面。 2 用法:MsgBox“提示文字"[,按鈕樣式,標題] 傳回值=MsgBox (提示文字,按鈕樣式,標題) 例: Private Sub Command1_Click( ) MsgBox“HELLO" Print MsgBox (“要取消嗎?",17,“請回答我的問題") End Sub

3 格式碼:為顯示在對話方塊內的按鈕與圖示種類所組合的格式 說   明 格式碼 Windows 英文版

Windows 中文版

0

只顯示 Ok 指令按鈕

只顯示 確定 指令按鈕

1

顯示 Ok 、 Cancel 兩指令按鈕

顯示 確定 、 取消 兩指令按鈕

4

顯示 Yes 、 No 兩指令按鈕

顯示 是(Y) 、 否(N) 兩指令按鈕

5

顯示 Retry 、 Cancel 指令按鈕

顯示 重試(R) 、 取消 兩指令按鈕

16 32 48 64 4 MsgBox 傳回值 參數

說明

VbOK

1

確定

VbCancel

2

取消

VbAbort

3

異常終止A

133


134

第 4 章  程式語言簡介及實例應用

例: Private Sub cmdEnd_Click( ) msg=“你確定要結束程式嗎?" code=65 title= “關閉程式" return_value=MsgBox (msg, code, title) If return_value=1 Then End End If End Sub

老師實例講解 4 *(  A  )1 下列何者是 MS Windows 程式設計中巨集語言的縮寫? A VBA B API C IIS  D PTE (  B  )2 在 Visual Basic 中,當我們要讓使用者做單一選項時,常用下列何者? A核取方塊 (check box) B選項按鈕(radio button) C橫式捲軸 D直式捲軸 (  A  )3 欲以 Visual Basic 製作表單(Form)程式,功能為在表單上有一「請按我」按鈕,按 了此按鈕後,就出現一個訊息方塊寫道「恭喜快考完了」,範例請見下圖。為達成目 的,在 VB 整合式開發環境中,建立一個新專案(project),在 Form 物件上先新建立 一個名稱為「Command1」的按鈕,將物件「Command1」的「Caption」屬性值改為 「請按我」後,再進行下列哪一動作即可完成程式? A在程序「Command1_Click」 內新增敘述「MsgBox “ ( 恭喜快考完了" )」 B在程序「請按我_Click」內新增敘述 「MsgBox “ ( 恭喜快考完了")」 C在程序「Command1_Click」內新增敘述「Print “ ( 恭喜快考完了")」 D在程序「請按我_Click」內新增敘述「Print “ ( 恭喜快考完 了")」按鈕後出現

學生立即練習 4 (  B  )1 欲出現下圖登入系統的畫面,需 使用下列何者 InputBox 敘述?

MyStr 為接收輸入值的變數) ( A MyStr=InputBox “ ( 登入系 統",“請輸入密 碼:", “xxxx"c B MyStr=InputBox “ ( 請輸入密碼:",“登入系統", “xxxx" ) C MyStr=InputBox “ ( xxxx",“請輸入密碼:",“登入系統") D MyStr=InputBox “ ( 請輸入密碼:",“xxxx" ,“登入系統")


第 4 章  程式語言簡介及實例應用

135

(  C  )2 在 VB 中,指令 Print MsgBox “ ( 有病毒入侵! 要繼續執行此程式?",X,“警告") 會出現如 下圖的訊息,試問該指令中的 X 值為何? A 32 B 33 C 49 D 50 (  B  )3 下列哪一個是用來顯示文字,並可輸入及修 改文字的控制物件? A Label B TextBox C OptionButton D Form *(  D  )4 下列哪一項可以在 Visual Basic 語言執行中顯示對話方塊? A ImageBox B PictureBox C TextBox D MsgBox

【93 工設】

命題焦點4 程式的選擇 1 結構化程式的三大架構:循序式、選擇式、重複式。 2 現將 Visual Basic 所提供的選擇結構分類如下: Ï 無條件選擇:Goto 敘述(此敘述不具結構化,建議少用) Ô Ï 單一選擇:If... Then 敘述 Ô Ô 選擇結構Ì Ï If... Then... Else 敘述 Ô Ô Ô Ô 條件選擇 ÔÌ 雙向選擇:ÌÔ Ó Ó IIf 函數 Ô Ô Ï Select Case 敘述 Ô Ô Ó 多向選擇 Ì Choose 函數 Ô Ó Switch 函數 3 單一條件決策: If 條件 Then 指令(做或不做)

If 條件 Then 指令 1 Else 指令 2(二擇一做)

no

yes

yes

若條件式成立,則執行指令,但若條件式不成 立時,則忽略指令,往下一行程式執行。

指令 1

no 指令 2

若條件式成立時,則做 Then 之後的指令敘述 1,否則條件式不成立時,則做 Else 之後的指 令敘述 2。


136

第 4 章  程式語言簡介及實例應用

5 多重 If「巢狀選擇」的寫法:(多擇一做) Select Case <變數>

If 條件一 Then

Case 條件一

If 條件二 Then

指令一

指令一

Case 條件二

Else

指令二

指令二 End If

Else

: Case Else

If 條件三 Then

其他敘述

指令三 End Select

Else 指令四

例:Case Is >=90(變數大於等於 90 即符合

End If

條件)

End If

例:Case–100 To 50(變數值介於 -100到 50 之間均符合條件) 例:Case 3 To 19,Is>=100,Is<-200(變 數值介於 3 到 19 間,或大於等於 100 或 小於 -200 均符合條件) Yes Yes

No

No

Yes

No 指令四

指令三

指令二

指令一

老師實例講解 1 *(  D  )1 下列程式執行後 S 值為何?

Case 1

Case 2

指令 1

指令 2

Case 3 指令 3

學生立即練習 1 *(  A  )1 請選出下列程式執行後之輸出

A 12 B 20 C 30 D 42

A 84 B 48 C-126 D 204

S=0:A=2

J=2:S=1:T=0

30:S=S+A

20:If J>4 Then Print T:End

If A>10 Then 70

T=T+J*(J+1)*(J+2)*S

A=A+2

S=-S

Goto 30

J=J+1

70:Print S

Goto 20


第 4 章  程式語言簡介及實例應用

老師實例講解 2

學生立即練習 2

*(  C  )1 執行下面的 Visual Basic 程式碼

*(  A  )1 下列程式執行後,螢幕上顯示之

後,輸出的資料為何?

A

結果是何值?

error

D

12 D 13

B large

C medium

137

A 8 B 9 C

small

A=3:B=2:C=10

Private Sub Form_Activate( )

Select Case A

X=5\2

   Case 1 To 4

Select Case X

     P=B^A

  Case 1

   Case Is>=5

  Print“small"

     P=B+C

  Case 2

End Select

  Print“medium"

Print P

  Case Else

End

  Print“large"

End Select

End Sub

老師實例講解 3 (  D  )1 下列有關結構化程式設計的敘述,何者有錯誤? A包含順序,選擇及重複三種基本 結構 B採用模組化程式設計,每一模組僅有單一的入口及出口 C避免使用 GOTO 敘述 D採用由下而上的設計方式 (  B  )2 右邊所示流程圖為 A For…Next 敘述 B If…Then 敘述 C Goto 敘述    D While…Wend (  A  )3 下列 BASIC 程式執行結果為何?

A A B B C C D D X=1:Y=2:Z=3 X=Y:Y=Z:Z=X If X+Z>Y Then Y=Z:Z=X:X=Y If X+Y=Y*Z Then Print“A" Else Print“B" End If Else Z=X:X=Y:Y=Z If Y+Z=X Then Print “C" Else


138

第 4 章  程式語言簡介及實例應用

Print “D" End If End If (  B  )4 在 Select Case 敘述中,Case 2,0,100 代表判斷測試值 A 是否等於字串“2,0, 100"

B是否等於 2 或 0 或 100 C介於 2~100 之間 D第二個變數

學生立即練習 3 (  D  )1 下列何者不是結構化程式的優點? A容易了解 B容易維護 C容易書寫、測試、 除錯 D減少 CPU 執行的時間 (  B  )2 If…Then…Else 為下列何種結構? A循序結構 B選擇結構 C重複結構 D以上 皆非 *(  B  )3 若 X 為偶數,印出“EVEN",若 X 為奇數,印出“ODD",則下列程式中的空格填 A X=2 B (X Mod 2=0) C (X\2=0) D (X/2=0)

If____Then Print “EVEN"Else Print“ODD" *(  D  )4 下列 BASIC 程式之執行結果為何?

A 400 B 800 C 1100 D 1300。

D=400 If D<=100 Then Fare=D*2 Else If D<=300 Then Fare=200+(D-100)*3 Else Fare=800+(D-300)*5 End If End If Print Fare (  B  )5 下列 BASIC 程式之執行結果為何? A 1 B 3 C 9 D 21 GR=1 Select Case GR Case 1 GR=GR+2 Case 2 GR=GR+3 Case Else GR=GR+6 End Select Print GR *(  D  )6 在 Visual Basic 中,有關於多向選擇(Select Case)的敘述,下列何者錯誤?

A

Case“Y":測試值是否為大寫 Y B Case“abc",“ABC":測試值是否和左列的兩個 字串之一相符

C Case 60 To 100:測試值是否介於 60~100 之間

100:測試值是否介於數值 -5 到 100 之間的數值

D Case-5,0,


第 4 章  程式語言簡介及實例應用

139

命題焦點5 程式的迴圈 一、單層計次迴圈指令

For 變數=初值 To 終值[STEP 調整值] Next<控制變數>

For

■ 迴圈的執行次數=(終值-初值)﹨調整值+1

敘述 1 敘述 2

■ 若省略 Step 調整值,則每執行完一次迴圈控 制變數便自動加1,直到變數的值超過終止 值,即停止迴圈的執行。 ■ 若加上 Step 調整值,則代表控制變數下一值

變數

為目前的值加上調整值。 ■ 若初值至終值的變化量為依次遞減,則調整 值應為負數。

老師實例講解 1 *(  C  )1 下列程式執行後,顯示的結果為 何? A 50 B 51 C 52 D

學生立即練習 1 *(  C  )1 下列程式片段的執行結果為

53

A 6 B 10 C 15 D 20 Sum=0

10 Sum=1

For I=1 To 5

20

Sum=Sum+I

30

J=I^2*2

Next I

40

Sum=2*Sum+J

Print Sum

50

60 Print Sum+2

For I=1 To 3

Next I

*(  C  )2 下列 BASIC 程式的輸出結果為

*(  A  )2 如下程式所示執行後,標記 30 的

何? A 57 B55 C 32 D 30

敘述其被執行的次數為 A 54 

C=2

B 55 C 56 D 57 Sum=0

For I=1 To 10 If I Mod 2=0 Then C=C+I Next I Print C

For I=-5 To 155 Step 3 30:Sum=Sum+I Next I Print Sum


140

第 4 章  程式語言簡介及實例應用

*(  B  )3 下列 Visual Basic 程式片段執行

*(  C  )3 同上題,其總和 Sum 的最後結果 為何? A 4050 B 4123

後,會在螢幕上出現幾個 # 號?

C 4023 D 4028

A 6 B 7 C 8 D 9

For I=19 To 1 Step –3 Print“#"; Next I *(  D  )4 下列 BASIC 迴圈執行完畢後,變 數 k 的值為何?

*(  D  )4 執行下列 BASIC 程式之結果,印 出 M=?

A 0 B 10 

A 33 B 34 C 35

C 11 D 13 For k=1 to 10

D 36 M=0

Print k

For I=0 To 5 For J=0 To 10-I*2

k=k+2

M=M+1

Next k

Next J Next I Print“M=";M

老師實例講解 2 請參考下列程式流程圖及以下列方式撰寫此程式,回答第 1 至 3 題 Private Sub Form_Click( )

start

For a = 5 To 終值 Step 增加值 6

a=5 a>=1

6 6

No Next a

Yes b=b*a

6 6

d=a+b+c

6 End Sub

c=c+a

output d

a=a-2

stop

*(  A  )1 若執行以此程式流程圖所撰寫之程式後,所得的正確 d 值為何? D 23 (  C  )2 程式中「For a=5 To 終值 Step 增加值」之「終值」應為何? D2 (  A  )3 程式中「For a=5 To 終值 Step 增加值」之「增加值」應為何? 1 D 2

A 8 B 9 C 16

A -2 B -1 C 1 A -2 B -1 C


第 4 章  程式語言簡介及實例應用

141

學生立即練習 2 (  B  )1 BASIC 語言中,使用 For…Next 迴路敘述時,增值為多少時可以省略? A 0 B 1  C 2 D 3。 *(  D  )2 下列 BASIC 程式是在計算 2

2

2

2

2 2 2 2 2 2 2 2 A 1 +2 +3 +……+7  B 1 +3 +5 +……+13 2

2

2

2

2

C 1 +2 +4 +……+64  D 1 +2 +4 +7 +……+22 ST=1:Sum=0 For K=1 To 7 Sum=Sum+ST*ST ST=ST+K Next K Print Sum

二、多重計次迴圈(巢狀 For 迴圈) For 變數 1=初值 1 To 終值 1 For 變數 2=初值 2 To 終值 2 : Next 變數 2 Next 變數 1

老師實例講解 3 *(  C  )1 以下的 Visual Basic 程式片段執行後,下列敘述何者不正確?  A執行結果為由星號 (*)構成的長方形 B每連續列印 5 個星號即會換到下一行 C Print 指令共被執行 35 次 D總共列印 7 列星號 For i=3 to 9 For j=7 To 11 Print “*"; Next j Print Next i *(  B  )2 下列 BASIC 程式執行後,S 值為何?  A 38 B 43 C 47 D 52 S=0 For K=1 To 6 Step 2 For J=3 To 8 Step 3 S=S+J Next J Next K S=S+K+J Print S


142

第 4 章  程式語言簡介及實例應用

*(  A  )3 執行下列 BASIC 程式片段後,請問 S=?  A 9 B 8 C 7 D 6 Dim S As Integer Dim I,J As Integer S=0 For I=1 To 5 For J=I To 1 step-2 S=S+1 Next J Next I *(  B  )4 下列 Visual Basic 程式片段執行後,會在螢幕上出現幾個*號?  A 19 B 22 C 25 D 28 For I=10 To 1 Step -3 For K=1 To I Print“*" Next K Next I

學生立即練習 3 (  C  )1 使用 Visual Basic(VB)程式語言執行以下程式碼後,螢幕總共輸出幾個*? A 8  B 10 C 12 D 14 For I=6 To 1 Step -2 For K=1 To I Print“*"; Next K Next I *(  C  )2 執行下列 Visual Basic 語言片段,程式順利執行後,列印 K 的值為何?  A 0 B -1 C -2 D -3 K=0 For I=1 to 5 For J=I+2 to 4 K=K+1 Next J K=K-1 Next I Print K *(  D  )3 執行下列程式其結果為何?  A 0 B 2 C 5 D程式錯誤 A=0 For I=1 To 5 For J=1 To 2 A=A+1 Next I


第 4 章  程式語言簡介及實例應用

143

Next J Print A *(  A  )4 執行下列程式,所得的結果,下列何者正確? A 22 B 23 C 24 D 25 E 26 S=0 For I=1 To 5 Step 2 For J=1 To I S=S+J Next J Next I Print S

三、條件式迴圈(前測試) While<條件式>

條件式成立時,就一直執行圈內的敘述直到條 件式不成立為止

: Wend

老師實例講解 4 *(  A  )1 下面程式可完成之工作為何?  A計算 2+3+4+…+50 B計算 1+2+3+…+ 49

C計算 2+3+4+…+51 D計算 1+2+3+…+50

S=0 X=1 While X<50 X=X+1 S=S+X Wend Print S END *(  C  )2 使用 Visual Basic(VB)程式語言執行以下程式碼後,則螢幕輸出之資料為何?  A 18 B 22 C 24 D 25 T=0 S=1 While S<=3 S=S+1 T=T+S*(S-1) Wend T=T+S Print T *(  D  )3 下面程式執行的結果為何?  A 0 B 12 C 60 D 120 Dim A,B,R As Integer


144

第 4 章  程式語言簡介及實例應用

A=24:B=60 DD=A:DR=B While DR<>0 R=DD Mod DR DD=DR DR=R Wend Print A*B/DD *(  C  )4 下列程式,其執行結果為何?  A 9 B 10 C 11 D 12 X=5 While X<16 S=S+X Mod 3:X=X+1 Wend Print S

學生立即練習 4 *(  D  )1 下列的程式的過程為 1+2+3+…+50 的累加計算,空白的敘述應為 A I<49 B I <50 C I<=49 D I<=50 I=1 Sum=0 While Sum=Sum+I I=I+1 Wend *(  C  )2 Basic 語言的片段程式如下,下述片段程式執行後,下列何者正確?  A Sum=8 B Sum=12 C Sum=16 D Sum=32 Sum=0 A=1 While A<10 Sum=Sum+A A=Sum Wend 下 *(  D  )3 執行下列 Visual Basic 語言片段程式的結果為何?  A N=82 B N=78 C N=54  D N=27 N=0:I=0 While I<50 If (I Mod 13=1) Then N=N+I End If I=I+3


第 4 章  程式語言簡介及實例應用

145

Wend Print“N=" ;N *(  B  )4 執行下述 VB 程式,出現提示符號時輸入數值 100,則輸出列印結果為  A 5 B 6  C 64 D 128 Private Sub Command1_Click( ) n=0 a=InputBox “ ( input data") While a>0 a=a-2^n n=n+1 Wend Print n–1 End Sub

四、Do…Loop 迴圈 Do While<條件式>

Do Until<條件式> :

: Loop

Loop

條件式成立時,重複迴圈(前測試)

條件式不成立時,重複迴圈(前測試)

Do

Do :

: Loop While<條件式>

Loop Until<條件式>

條件式成立,則重複迴圈(後測試)

條件式不成立,則重複迴圈(後測試)

注:迴圈未執行完前,可以用 Exit For 或 Exit Do 來強迫離開迴圈。

老師實例講解 5 (  C  )1 求執行下列 BASIC 程式後,輸出 I 值的結果為何?  A 32 B 37 C 42 D 47 I=32 Do If I>40 Then Exit Do I=I+5 Loop Print I *(  D  )2 以下的 Visual Basic 程式片段執行後,下列敘述何者不正確?  A變數 Number 被定義 為整數 B在迴圈中的變數 Number 每次都累加 1 C在迴圈中的變數 Sum 用來累加 變數 Number D變數 Sum 最後的值為 55 Dim Sum As Integer Dim Number As Integer Sum=0 Number=1


146

第 4 章  程式語言簡介及實例應用

Do While Number<10 Sum=Sum+Nnumber Number=Number+1 Loop *(  C  )3 下列 Visual Basic 語言片段程式的執行結果為何?  A D=1680 B D=168000 C D =15120 D D=151200 C=5:D=1 Do D=D*C C=C+1 Loop Until C>=10 Print“D=" ;D

學生立即練習 5 (  A  )1 下列 Visual Basic 語言片段程式執行後,何者正確?  A Sum1=4 B Sum1=10 C Sum2=19 D Sum2=55 Sum1=0 Sum2=0 K=0 Do While (k<10) Sum1=Sum1+1 Sum2=Sum2+K K=K+3 Loop *(  D  )2 a=15:b=27 x=a:y=b Do Until a=b If a>b Then a=a-b If a<b Then b=b-a Loop Print(x/a); “/ " ;(y/a) 上述程式之執行結果會印出:  A 9/5 B 0.5555 C 1 D 5/9 *(  A  )3 執行下列 VB 之片段程式後,印出的結果為  A 57 B 67 C 77 D 87 I=16 K=0 Do While I>10 For J=1 To I K=K+J Mod 5 Next J I=I-3 Loop Print K


第 4 章  程式語言簡介及實例應用

147

命題焦點6 副程式 副程式的叫用,是利用計算機處理記憶體的技巧—堆疊(stack)來達成。堆疊有先進後出的 特性,叫用副程式時,先將目前的位址 PUSH 堆疊,返回主程式時,再將原先推入堆疊的位址 pop 出來。所以整體而言,程式執行較花時間。

一、Sub... End Sub 副程序 [Private|Public][Static] Sub 程序名稱[(引數串列)] [程式區段] [Exit Sub] End Sub 說明: 1 Sub 程序的用法是以 Public 或 Private 開頭,最後以 End Sub 結束。當執行到 End Sub 後即返回 緊接在原呼叫處的下一個敘述。若欲中途離開程序,可使用 Exit Sub。 2 Private:表示該程序只允許被同一模組中的其它程序呼叫。 3 Public:表示該程序允許在該應用程式下所有模組中的其他程序呼叫。 4 Sub 副程序需以 Call 敘述呼叫,可分為兩種呼叫方式: 傳值呼叫(Call by value)

傳址呼叫(Call by address)

主副程式之間的變數,不共用記憶體位址。傳

主副程式之間的變數,共用記憶體位址。傳

遞時將參數兩邊加小括號,將其值「拷貝」給

遞時將參數兩邊不加括號,Sub 內的變數接收

Sub 副程式,Sub 內的變數接收後內容有任何

後,與主程式對應的變數共用相同的位址,在

改變,皆不影響主程式內原有變數的內容。

Sub 內的變數內容有任何改變,主程式對應的 變數內容也跟著改變。

例如:Call Add ((X), (3.7))

例如:Call Add (X, Y)

Private Sub Form_Activate ( )

Private Sub Form_Activate ( )

a=3:b=8:c=2

a=3:b=8:c=2

Call Sum (a, b, c)

Call Sum (a, b, c)

Print“a=", a; “b=" ;b,“c=" ;c

Print“a=" ;a,“ b=" ;b,“c=" ;c

End Sub

End Sub

Sub Sum (X, Y, Z)

Sub Sum (X, Y, Z)

X=X+1

X=X+1

Y=Y+1

Y=Y+1

Z=(X+Y)*Z

Z=(X+Y)*Z

Print“X=" ;X, “Y=" ;Y, “Z=" ;Z

Print“X=" ;X, “Y=" ;Y, “Z=" ;Z

End Sub

End Sub

結果為 →

結果為 →

X=4,Y=9,Z=26

X=4,Y=9,Z=26

a=3,b=8,c=26(a,b 與主程式相同)

a=4,b=9,c=26(a,b 跟著副程式改變)


148

第 4 章  程式語言簡介及實例應用

老師實例講解 1 *(  B  )1 執行以下之程式碼,輸出之資料為

A 3 4 3 4 B 3 4 4 5 C 3 4 0 0 D 3 4 4 3

Private Sub Form_Activate( ) X=3:Y=4 Call f (X, Y) Print X;Y; End Sub Sub f(a, b) Print a; b; a=a+1 b=b+1 End Sub (  C  )2 引數在主程式與副程式之間傳遞之方式,有傳址呼叫及傳值呼叫兩種,如下的 Call 敘 述中,哪些引數使用傳值呼叫?

A PID,PQty,Price,Limit B PID,PQty,Price

C PID,Limit D PQty,Price Call SubShowCase ((PID), PQty, Price, (Limit))

學生立即練習 1 (  B  )1 下列 Visual Basic 程式執行後,所輸出的資料為何? A-2 B-1 C 0 D 1 Private Sub Heart (m As Integer) m=m*(m+2) End Sub Private Sub Form_Activate( ) Dim C As Integer C=-1 Call Heart (C) Print C End Sub (  C  )2 下列 BASIC 程式執行完畢,A的值為何?

A -1 B 1 C -2 D 2

Private Sub Form_Activate( ) A=1:B=2 Call Change(A, B) End SUB Sub Change (X, Y) X=-X:X=-Y End Sub *(  D  )3 同上一題,程式執行完畢,B 的值為何? A-1

B1

C -2

D2


第 4 章  程式語言簡介及實例應用

149

二、Function…End Function 程序 [Public|Private][Static] Function 函數名稱(參數)[As 資料型態] [敘述區段] [Exit Function] 函數名稱=運算式 End Function 1 函數名稱:命名規則同變數名稱,後面須用 As 宣告該函數名稱的資料型態,否則視為自由型態 (Variant)。 2 執行完 Function 程序後,會將結果傳回給函數程序等號左邊的變數名稱。 變數名稱=函數名稱(參數) 3 程式遞迴(Recurcive):使用 Function 時,括號內的參數為 Function 本身,達成函數自己叫用 自己的目的。

老師實例講解 2 *(  D  )1執行下列程式片段後,K值為何?

A 1 B 5 C 15 D 120

Private Sub Form_Active( ) K=Game (5) Print K End Sub Function Game (X) If (X>1)Then Game=X*Game (X-1) Else Game=1 End If End Function

學生立即練習 2 *(  D  )1 執行下列 VB 程式後,印出的結果為 Private Sub Form_Activate( ) X=5 A=FS (X) Print A+X End Sub Function FS (X) FS=X For J=X To 3 Step-1 FS=FS*J Next J End Function

A 65 B 105 C 125 D 305


150

第 4 章  程式語言簡介及實例應用

命題焦點7 VB 內建函數 一、數值函數 函數

Abs (X)

求 X 的絕對值

Abs (-4.6) → 4.6

Sqr (X)

求 X 的平方根

Sqr (9) → 3

求 X 的正負號 Sgn (X)

1 當 X=0 時 Sgn (X)=0 2 當 X>0 時 Sgn (X)=1

Sgn (0) → 0

3 當 X<0 時 Sgn (X)=-1

Sgn (3.5) → 1

Sgn (-3.5) → -1

4 Sgn (X)×X=Abs (X) Exp (X)

自然指數

Exp (1) → 2.718282

Log (X)

自然對數

Log (1) → 0

用來求取小於等於X的整數

Int (X)

1 假如 X/Y=Int (X/Y) 成立,則 X 為 Y 之倍數

Int (3.5) → 3

2 假如 X/Y=X\Y 成立,則 X 為 Y 之倍數

Int (-3.5) → -4

3 若有一實數 W,欲小數 N 位以下四捨五入:

Int (3) → 3

N

N

Int (W*10 +0.5)/10

Int (0) → 0 3

3

例如:Int (3.14159*10 +0.5)/10 → 3.142 Cint (3.6) → 4 Cint (X)

用來求取 X 四捨六入五取雙後的整數部分。

Cint (-3.6) → -4 Cint (3.5) → 4 Cint (4.5) → 4

Fix (X)

直接去小數,取 X 的整數部分。 用來取電腦亂數的函數 1 Rnd 值介於 0 與 1 之間的單精度小數。

Rnd

2 若要產生介於 A與 B 之間的整數亂數, 公式:Int (Rnd*(B-A+1))+A (A≦B) 3 若要產生介於A與B之間的整數亂數,且間隔為 n 公式:Int (Rnd*(B-A+1)*n)+A (A≦B)

Fix (3.999) → 3 Fix (-3.001) → -3 Int (Rnd*10)+1 → 產生介 於 1 到 10 間的整數亂數之 其中一個 Int (Rnd*3)*2+10 → 產生 10,12,14 其中一個亂數

老師實例講解 1 *(  B  )1 下列 BASIC 程式語言函數運算,何者正確? A Fix (5.8)=6 B Int (5.8)=5 C Rnd (5.8)=5 D Sgn (5.8)=5


第 4 章  程式語言簡介及實例應用

151

*(  C  )2 假設樂透彩券的中獎號碼是 10~42,在 Visual Basic 語言中,下列何者可以產生一個 從 10 到 42 的整數亂數? A Int (Rnd*10)+33 B Int (Rnd*32)+10 C Int (Rnd*33) +10 D Int (Rnd*41)+2 *(  B  )3 下列敘述何者為正確的 BASIC 數值函數說明? A Sqrt (X) 的引數須大於零 B 0. Rnd<1

C Abs (Int (-9.55))=9 D以上皆是

*(  C  )4 若 A=5 且 B=3,則下列敘述之執行結果,何者會與其他三者不同? A Print Int (A/ B)

B Print Sgn (A-B) C Print Exp (LOG(A)) D Print Abs (A>B)

*(  C  )5 若 X<0 且非整數,則 A Sgn (X)=X B Int (X)=Fix (X) C Int (X)=Fix (X)-1  D Sqr (X)=-X

學生立即練習 1 *(  D  )1 在 BASIC 程式語言中,若 M=Int (Rnd*3)+2,則 M 可能的最大值為 A 5 B 3  C 2 D 4 (  B  )2 在 BASIC 程式語言中,執行 Print Cint (38.87)+Fix (-38.87) 的結果是 A 0 B 1  C -1 D 76 (  D  )3 For I=1 To 100 J=Int (Rnd*84)+7 Print J Next I A產生 7 至 91 之間的亂數為 100 個 C產生 1 至 100 之間的亂數為 81 個

B產生 7 至 81 之間的亂數為 100 個 D產生 7 至 90 之間亂數為 100 個

(  A  )4 下列各運算結果中何者最大? A Fix (-6.7) B Int (-7.1) C Cint (-6.7) D Int (-7.7) *(  C  )5 Print Log (Exp (3)) 的輸出結果為 A 0 B 1 C 3 D -1 (  B  )6 下列哪一個 BASIC 函數的功能是在求一個小於或等於 X 的最大整數? A Fix (X)  B Int (X) C Cint (X) D Abs (X) (  A  )7 執行 BASIC 敘述,Print Abs (-5)、Print Sgn (-5) 及 Print Exp (0) 其結果分別為何? A 5, -1, 1 B -1, 5, 0 C 5, 5, 0 D -1, 5, 1 E 5, -1, 0

二、字串函數 函  數

說     明 將數字轉變成為數值的函數:

Val (X$)

1 Val 函數可以將數字字元轉變為數值。 2 Val 函數中的參數若為一般文字,則視為 0。 將數值轉變成為數字字元的函數: 1 Str 字元函數,可以將數值資料轉變為數字字元,與 Val 函數相

Str (n)

反。 2 在 Str 函數將參數轉為數字時,會將原來數值資料的前面空格保 留,而截去數值資料的後面空格。


152

第 4 章  程式語言簡介及實例應用

Asc 會將字元串變數中的第一個字元轉變為Asc值。

Asc (X$)

Chr 函數,可以用來代表 AscII 表中的編號 n 的字元符號。(n 介於

Chr (n)

0 至 255 之間)

Len (X$)

求取字串的字元數

Lenb (X$)

求取字串長度的 Byte 數

Left (X$, n)

截取字串左邊 n 個字元為新字串的函數

Right (X$, n)

截取字串右邊 n 個字元為新字元的函數

Mid (X$, m, n)

從第 m 個字開始,截取中間 n 個字元

Instr (n, X$, Y$)

從第 n 個字開始,求取 Y$ 在 X$ 中位置

Hex (N)

將數值 N 轉換為十六進位數字

Oct (N)

將數值 N 轉換為八進位數字

Trim (X$)

刪除 X$ 左右的多餘空白

Ltrim (X$)

刪除 X$ 左邊的多餘空白

Rtrim (X$)

刪除 X$ 右邊的多餘空白

Ucase (X$)

英文小寫轉大寫

Lcase (X$)

英文大寫轉小寫

老師實例講解 2 *(  D  )1 Print Chr (ASC “ ( A")+2) 印出的結果為何? A A B 65 C 67 D C *(  B  )2 在 BASIC 語言中執行以下的程式碼後,螢幕輸出的資料為何?  A DIC B ONA  C TIONA D ICT A$=“DICTIONARY" B$=Mid (A$, 2, 7) C$=Right (B$, 3) Print C$ End *(  D  )3 Print Len (Str (65)) 下列結果,何者正確? A 65 B A C 2 D 3 (  C  )4 在 BASIC 程式語言中若 X$=“ABCDEFGHI"函數 Left (X$,5) 與下列哪一個函數產 生同樣的結果? A Right (X$, 5) B Asc (X$) C Mid (X$, 1, 5) D Oct (X$) ( PLANNING" “NN" , ),則 X 值為 A 4 B 0 C 5 D 7 *(  A  )5 X=Instr “ *(  B  )6 在 BASIC 程式語言中,執行 Oct (20) 可以得到哪一個數值? A 16 B 24 C 26 D 30


第 4 章  程式語言簡介及實例應用

153

學生立即練習 2 (  C  )1 若 Print Asc “ ( A") 的執行結果為 65,則 Print Chr (90) 的執行結果是什麼? A 90 B 0 C Z D 2 (  B  )2 使用 Left (A$, N)相當於使用 A Mid (A$, Len (A$)-N+1, N) B Mid (A$, 1, N) C Mid (A$, N, 1) D以上皆非 A 25.516 B 41.5 C 1625.5 D 2516.5

(  B  )3 下列程式執行後,結果應為 I$=“25.5":J$=“16" A=Val (I$):B=Val (J$) Print A+B

(  D  )4 已知字元 A 的 ASCII 碼為 (41)16,則 Print Chr (78) 的結果為何? A 78 B 7 C L DN (  D  )5 若 A$=''20",B$="30",求 Print Val (A$)*Val (B$) 之結果 A 2030 B 50 C 60 D 600

命題焦點8 陣列變數使用 一、陣列變數 陣列變數(Array):為一連續的記憶體空間。陣列在使用之前,必須先宣告其名稱、型態及 陣列中元素的個數,以使記憶體的分配有法可循。一維陣列若元素在 10 個之內可以不用宣告,若 超過 11 個以上就一定要宣告,否則會出現(Subscript Out of Range)註標超過範圍的錯誤訊息。 語法1:Dim 陣列名稱+型態(註標) 語法2:Dim 陣列名稱(註標)As 型態 例如:Dim A% (5),B# (2, 3) Dim A (2 To 8) AS Integer Dim B (1 To 5, -3 To 9) As Single 1 Dim A (n) →宣告一維字串陣列 A,n+1 個元素。Dim B (n, m) →宣告二維單精數值陣列 B,(n +1)*(m+1) 個元素 2 在同一程式中,陣列名稱不可以重複宣告,否則會出現「Duplicate Definitionin 行號」的訊息。 3 可用 Erase<陣列名稱>指令清除陣列變數。 4 所宣告的變數資料型態: 型 態

說 明

型 態

說 明

Integer

整數(2Bytes)

Single

單精數(4Bytes)

Double

倍精數(8Bytes)

String*N

N 個字元的字串

5 陣列變數的宣告範例: 陣列宣告 Dim a (5) As Integer

變數範圍 a (0)…a (5)

元素個數

記憶體(Byte)

6

12


154

第 4 章  程式語言簡介及實例應用

Dim a%(5)

a (0)…a (5)

6

12

Dim a(-3 To 5) As Integer

a (-3)…a (5)

9

18

Dim a(3, 4) As Single

a (0, 0)…a (3, 4)

20

80

Dim a#(3, 4)

a# (0, 0)…a# (3, 4)

20

160

老師實例講解 1 *(  D  )1 執行下面 Basic 程式後,輸出的結果為何?

A 0 B 1 C 3 D 6

Dim A (3) Sum= 0 For I=1 To 3 Sum=Sum+I A (I)=Sum Next I Print A (3) End *(  A  )2 下列 Visual Basic 程式執行後,何者的值與 B (3, 1) 的值相等? A B (0, 2) B B (1, 1) C B (1, 3) D B (2, 1) Private Sub Form_Activate ( ) Dim B (3, 3)As Integer For I=0 To 3 For J=0 To 3 B (I, J)=2*J* (I+J) Next J Next I End Sub

學生立即練習 1 *(  B  )1 下列程式執行後,螢幕上所顯示的 S 值為何? Dim A (10) For I=1 To 10 A (I)=I*2-1 Next I S=0 For I=1 To 10 Step 3 S=S+A (I) Next I Print S:End

A 30 B 40 C 50 D 60


第 4 章  程式語言簡介及實例應用

*(  A  )2 執行完下述程式後,請問 A (1, 2) 的值和哪一個元素的值相同?

155

A A (2, 1) B A (2,

2) C A (2, 3) D A (1, 3) Dim A (3, 3) For I=0 To 3 For J=0 To 3 A (I, J)= (I+1)* (J+1) Next J Next I

老師實例講解 2 *(  A  )1 執行下列 BASIC 程式片段時,請問陣列 A 占用記憶體多少 Bytes 的儲存空間?

A

160 B 96 C 80 D 48 Dim A (3, 4) As Double *(  B  )2 下列哪一項 BASIC 的陣列宣告方式錯誤? A Dim Arr1 (2, 10, 20) B Dim Arr1 (2), Arr1 (10, 20) C Dim Arr1 (2), ARR2 (10, 20) D Dim Arr$ (2), Arr% (10, 20)

學生立即練習 2 (  C  )1 陣列宣告 Dim A (10),則陣列 A 內有幾個元素? A 9 B 10 C 11 D 12 (  D  )2 BASIC 程式語言中,Dim Array1 (3, 4)宣告 Array1 陣列是一個二維陣列,它包含幾個 元素? A 2 B 7 C 12 D 20

二、排序與搜尋 1 內部排序:又稱為記憶體排序。適用於資料量少的時候,速度快。 2 外部排序:又稱為檔案排序。適用於資料量大的時候,速度慢。 3 簡易的排序方法有:選擇排序法、泡沬排序法。 4 選擇排序法:每一個與其他各項相比。 設有 N 項資料存在 A 陣列中,則有「選擇排序演算法」如下: : For I=1 To N-1 For J=I+1 To N

遞增

If a (I)>a (J) Then 對調 a (I), a(J);若 前項 > 後項 則對調 Next J Next I : 1 N-1 次循環才比完。(外迴圈變數 I 控制) 2 注意遞增或遞減排序。(改變大於或小於的比較關係) 3 注意比至第幾循環之第幾項。 4 總比較次數為 (n-1)*n/2。


156

第 4 章  程式語言簡介及實例應用

5 泡沫排序法(氣泡排序法):為相鄰兩個相比,若前項比後項大(或小)則對調。 設有 N 項資料存在 A 陣列中,則有「泡沫排序演算法」如下: : For I=1 To N-1 For J=1 To N-I

遞增

If A (J)>A (J+1) Then 對調 A (J), A (J+1);若 前項 > 後項 則對調 Next J Next I : 1 N-1次循環才比完。(外迴圈變數 I 控制) 2 注意遞增或遞減排序。(改變大於或小於的比較關係) 3 注意比至第幾循環之第幾項。 4 總比較次數為 (n-1)*n/2。 5 若加入旗標變數(flag)時,注意比較次數之增減。 6 循序搜尋法(Sequential): 1 要找的資料由陣列的第一筆(或最後一筆)資料開始,逐一比對。 2 n 項資料的平均搜尋次數為: (n+1)/2。 7 二分搜尋法: 1 做二分搜尋的先決條件,為資料已事先排序。 2 其搜尋的步驟為每次都和中間項比較:(設資料已由小到大排序) 1 若資料比中間項小,則在陣列左邊的範圍。 2 若資料等於中間項,則找到資料。 3 若資料比中間項大,則在陣列右邊的範圍。 3 若有 N 項資料要做「二分搜尋」時,其搜尋次數為取大於等於 log2N 的整數

老師實例講解 3 *(  C  )1 下面程式在標記 70 中之 Swap 函數總共呼叫幾次? 次 Private Sub Form_load( ) Dim X (5) X (1)=16:X (2)=8:X (3)=20:X (4)=3:X (5)=1 For I=1 To 4 For J=I+1 To 5 70:If X (I)>X (J)Then swap (X (I), X (J)) Next J Next I End Sub Sub Swap (x, y) Dim t As Variant t=x:x=y:y=t End Sub

A 6 次 B 7 次 C 8 次 D 9


第 4 章  程式語言簡介及實例應用

157

*(  D  )2 如下程式所示,BASIC 程式片段,執行後列印之 A(1),A(2),A(3),A(4),A(5)=? A 4 1 5 2 3 B 1 2 3 4 5 C 3 2 5 1 4 D 5 4 3 2 1 Private Sub Form_load( ) Dim A (5) A(1)=4:A(2)=1:A(3)=5:A(4)=2:A(5)=3 For I=1 To 4 For J=5 To I+1 Step-1 70:If A (J)>A (J-1)Then Swap (A (J), A (J-1)) Next J Next I Print A (1);A (2);A (3);A (4);A (5) End Sub Sub Swap (x, y) Dim t As Variant t=x:x=y:y=t End Sub *(  B  )3 假若將上題中所述之程式,列號為 70 的整列指令改為如下: 70:If A (I)>A (J) Then Swap (A (I), A (J)),其餘指令維持不變,則此修改後的程式, 執行後所列印出來的值為何? A 4 1 5 2 3 B 1 2 3 4 5 C 3 2 5 1 4 D 3 4 5 2 1 *(  A  )4 在 3000 筆已由大至小排序好的資料中,用二元搜尋法 (Binary Search)搜尋某一筆特定 資料 (假定資料存在),最多需要比較幾次可以搜尋到該筆資料? A 12 B 16 C 20 D 30 *(  C  )5 用泡沫排序法,將自小到大排序的數列(5, 10, 15, 20, 25)排序成由大到小的順序,需 比較多少次? A 0 B 5 C 10 D 15 (  B  )6 利用氣泡排序法,將以下數列資料 30,50,20,60,40 依遞減順序排列,請問在第一 次循環結束後,此數列應是下列哪一個? A 30,50,60,40,20 B 50,30,60, 40,20 C 20,30,40,50,60 D 30,40,50,60,20

學生立即練習 3 (  C  )1 給定 10 個大小隨機排列的正整數,如果要以泡沫排序的方式,由小而大排列,在程式 設計上使用巢狀 For...Next 處理,請問至少要使用幾層巢狀 For...Next? A 10 B 9 C 2 D 1 (  C  )2 利用氣泡排序法排列 N 筆資料的順序,最多做幾次的排序循環? A N/2 次 B N 次 C N-1 次 D N+1 次 (  D  )3 從已建立好的資料中,逐筆檢查,直到尋找到所指定的資料為止,此法稱為

A快速

搜尋法 B二分搜尋法 C費氏搜尋法 D循序搜尋法 (  C  )4 下列敘述何者錯誤?

A二分搜尋法所需的比較次數最多為 log N 次(log 以 2 為底)

B二分搜尋法只能應用在已排序的資料

C循序搜尋法平均所需的比較次數為 N/2 次

D循序搜尋法可應用在未排序的資料 *(  D  )5 下列哪一組資料,不能使用二分搜尋法? fred,bill,anne,adam

A rose,rosa,paul,mary,john,jane,

B 1,10,15,30,50,55,100,123,150

6,-8,9,12,-15,20,30,-50

C 1,-2,

D 1.43,-2,0,10.2,5.8,3.56,1.44


158

第 4 章  程式語言簡介及實例應用

(  C  )6 下面程式執行結果為何? 有一整數陣列,內含 9 個已排序的整數,假設給予一搜尋值 a,並利用二元搜尋法找 出搜尋值 a,請問在最壞的情況下,必須要對此陣列進行幾次搜尋,才能知道搜尋值 a 是否存在陣列中?

A 1 次 B 3 次 C 4 次 D 9 次

*(  C  )7 A 90 80 75 70 60 B 90 70 80 60 75 C 90 80 70 60 75 D 60 70 75 80 90 Private Sub Form_load( ) Dim E (5) E (1)=90:E (2)=70:E (3)=80:E (4)=60:E (5)=75 For J=1 To 2 For K=J+1 To 5 If E (J)>=E (K)Then 90 Call Swap (E (J), E (K)) 90:Next K Next J For I=1 To 5 Print E (I); Next I End Sub Sub Swap (x, y) Dim t As Variant t=x:x=y:y=t End Sub ( B )8 一組 10 個已排序的數值資料,若用二元搜尋法找其中某一個特定值,至多需要比對幾 次即可找到? A 3 B 4 C 5 D 9

【101 工管】


第 4 章  程式語言簡介及實例應用

159

綜合實力評量 基礎題 *(  C  )1 在 BASIC 語言中執行Print -2^2+8 Mod 5,則螢幕輸出之資料為何?

A 7 B -4

C -1 D 5 *(  A  )2 在 Visual Basic 語言中,為避免破壞結構化程式設計的單一入口與單一出口的特性,下 列哪一種類的指令應該減少使用?

A Goto B MsgBox C Do... Loop D Select

Case (  A  )3 下列何者是結構化程式設計的主要控制結構? 擇、跳躍

A重複、選擇、循序 B重複、選

C重複、跳躍、循序 D選擇、跳躍、循序

(  A  )4 下列關於 BASIC 語言的比較運算子,何者有誤?

A== B<= C<> D>=

*(  A  )5 在 Visual Basic 程式設計中,下列何者不是由使用者操作產生的事件? DblClick C MouseMove D KeyDown *(  C  )6 執行右列程式,印出的結果為何?

A 20 B 5 C 6 D 15

(  A  )7 利用循序搜尋法,找尋某一筆已知存在陣列(有 15 筆資料) 中的資料,最好的情況要作比較次數與最壞的情況要作比較 次數的平均為:

A 8 B 7 C 15 D 2

*(  A  )8 執行下列 BASIC 程式後,變數 Sum 的值為何?  A 15 B 125 

A Timer B S=0 X=20 For X=1 To 5 S=S+X Next X Print X

C 225 D 345 Dim i, j, k, Sum As Integer i=1:j=1:k=1 While (i<5) While (j<5) While (k<5) k=k+1 Wend j=j+1 Wend i=i+1 Wend Sum=i+j+k (  C  )9 執行下列 BASIC 程式後,輸出的結果為何?  A 4 B 3 4 C 5 4 D 3 5 4 a=3:b=5:c=4 If a>b Then If b>c Then Print a; Else Print b;


160

第 4 章  程式語言簡介及實例應用

End If Print c *(  D  )0 執行下列 Visual Basic 程式片段,程式順利執行後,列印 N 的值為何?  A -11.7  B -21 C -9 D -12 Private Sub Command1_Click( ) N=0 For K=–5.9 To 5 Step 2 If K<0 Then N=N+Int (K) End If Next K Print N End Sub (  D  )q 下列 Visual Basic 語言片段程式執行後,何者正確?

A a=6 B a=7 C b=11 

D b=12 a=5 b=10 If (a Mod 2=0) Then a=a+1 Else If (b Mod 2=0) Then b=b+2 Else a=a+2 b=b+1 End if End if (  C  )w 下列有關 Visual Basic 語言副程式與函數的敘述,何者不正確? A副程式內可以使用 全域變數 B函數內可以使用全域變數

C副程式可以回傳一個值給呼叫它的程式 

D函數可以回傳一個值給呼叫它的程式 (  D  )e 執行下列 BASIC 程式片段後,請問 ANSWER=?

A 3.5 B 5 C 5.5 D 6

Dim ANSWER As Integer ANSWER=17 Mod 2*3 +2^ (-1) *(  D  )r 利用氣泡排序法將以下資料:W、X、Y、Z 由大至小排列,需要幾次比較?

A 0 

B 3 C 5 D 6 (  D  )t 在一類別(Class)中可定義多個相同名稱之函數,其概念與下列哪個名詞最相關?  A 抽象化(abstraction)  B封裝(encapsulation) D多載(overloading)

C一般化(generalization) 


第 4 章  程式語言簡介及實例應用

161

進階題 *(  A  )1 在 Visual Basic 執行下列哪一項指令的結果為假(False)? 3)

B Print(NOT(4>5))Xor(5>6)

A Print(3>2)Xor(4>

C Print((3>4)Xor(5>4))And(7>6)

5)And(7>6))Or((3>4)And(5>6))

D Print((6> 【98 商管】

* (  B  )2 Visual Basic 語言的執行畫面,如右圖所示, 是哪一項指令執行的結果? A MsgBox (“成績公佈", vbOKCancel+ vbInformation, “國文成績 90") B MsgBox (“國文成績 90", vbOKCancel +vbInformation, “成績公佈") C MsgBox (“成績公佈", vbYesNo+vbInformation, “國文成績 90") D MsgBox (“國文成績 90", vbYesNo+vbInformation, “成績公佈") (  C  )3 若陣列 A 之宣告為 DIM A(2, 3)As Integer,A 之內容如下圖所 示,則執行 Print A(A(1, 2)-1,A(2, 3)+1) 指令後,答案為何 A 0 B 1 C 2 D 3

【97 工程】

*(  C  )4 使用 Visual Basic 程式語言執行下列程式碼後,所得結果為何? Dim F(100)

A 5 B 7 C 8 D 13

【98 商管】

陣列 A 註標 0 1 0 2 3 1 1 3 2 3 0

2 0 2 2

3 1 0 1

K=6 F(0)=0 F(1)=1 For J=2 To K F(J)=F(J-1)+F(J-2) Next J Print F(K)

【96 工設】

*(  D  )5 執行下列 Visual Basic 語言片段程式的結果為何? A 4 B 5 C 7 D 8 Dim A(5)As Integer A(1)=0 A(2)=1 For K=3 To 5 A(K)=K+A(K-1)-A(K-2) Next K Print A(5) *(  C  )6 執行下列 BASIC 程式片段後,請問 A(3, 1)=? A 4 B 3 C 2 D 0 Dim A(5, 5)As Integer Dim I,J As Integer For I=0 To 5 For J=0 To 5 If(I>J)Then A(I, J)=A(I-1, J)

【96 工管】


162

第 4 章  程式語言簡介及實例應用

ElseIf(I=J)Then A(I, J)=I+J Else A(I, J)=I*J End If Next J Next I

【94 管理】

*(  D  )7 有關下列 Visual Basic 程式碼的執行結果,何者正確? A 10 B 13 C 20 D 29 Private Sub Form _ Activate ( ) A=2:B=1 Print F(A, F(A, B)) End Sub Function F(X, Y) F=X^2+Y^2

End Function

【96 商業】

*(  D  )8 若陣列 A 之內容如圖,執行 Print A(A(2)+1)+1 指令後答案為 A 1 B 2 C 3 D 4

何?

【96 工程】

*(  B  )9 請利用氣泡排序法(Bubble Sort)將陣列中的七筆資料:88,

陣列 A 內容 2 3 0 1 註標 0 1 2 3

44,55,22,11,99,33 由左至右且由小到大排列,第二次 排序後的順序為何? 88,99

A 44,11,22,55,33,88,99 B 44,22,11,55,33,

C 22,44,11,55,33,88,99 D 11,22,44,33,55,88,99 【97 二技管理】

歷屆試題 *(  B  )1 執行下列 Visual Basic 程式碼,若出現提示符號時輸入數值 100,則正確結果為何? A 6 B 7 C 8 D 9

【96 商業】

Private Sub Form _ Activate( ) n=0 a=InputBox “ ( Input Data") While a>0 a=a-n ^ 2 n=n+1 Wend Print n-1 End Sub (  D  )2 下列何者為表示條件判斷之流程圖符號? A       B       C     D

【96 工程】

(  B  )3 下列 Visual Basic 程式片段,執行後的結果為何? A 16 B 24 C 30 D 36 Dim A(3, 3)As Integer For I=1 To 3


第 4 章  程式語言簡介及實例應用

163

For J=1 To 3 A(I, J)=A(I-1, J-1)+(I+J)*2 Next J Next I Print A(3, 3)

【97 商科】

(  C  )4 下列 Visual Basic 程式片段,執行後的結果為何? A 18 B 25 C 33 D 42 A=1: B=1 Do A=A+B Select Case A Case Is<10:A=A * 2 Case Is>10:A=A+3 End Select B=B+1 Loop Until B>5 Print A

【97 商科】

(  A  )5 下列 Visual Basic 程式片段,執行後的結果為何? A 4 B 6 C 8 D 10 Dim S As Integer Dim I As Integer S=0:I=0 While(I<10) S=S+1 I=I * 2+1 Wend Print S

【97 商科】

(  D  )6 使用 BASIC 程式語言執行下列程式碼後,則螢幕輸出多少個*符號? 15 個 C 20 個 D 30 個

A 12 個 B 【97 工設】

For I=1 To 3 For J=1 To 4 Step 3 For K=1 To 5 Print “*" Next K, J, I (  D  )7 使用 BASIC 程式語言執行下列程式碼後,則螢幕輸出結果是多少? 4 D 5 X=9 Y=5 Z=6 If(X Mod Y)>Z Then Print(Y Mod X) Else Print(Y Mod Z) EndIf

A 0 B 1 C 【97 工設】


164

第 4 章  程式語言簡介及實例應用

(  D  )8 下列對二元搜尋法(Binary Search)的敘述,何者有誤? B資料必須先排序 尋法

A平均效率比循序搜尋法好 

C在 N 個資料中搜尋,比較次數最多為 log2N D又稱為線性搜 【97 衛生】

(  B  )9 下列這段 BASIC 程式碼執行後,所印出的 X 值結果為何?

A 0 B 2 C 11 D

20

【97 衛生】

X=0 For Y=1 To 10 Step 2 For Z=10 To 1 Step –3 If Y=Z Then X=X+1 End If Next Z Next Y Print X (  A  )0 執行下列 Visual Basic 語言片段程式的結果為何? A 2 B 4 C 6 D 10 S=0 For K=1 To 4 S=S+(K Mod 2) Next K Print S

【97 管理】

(  C  )q 執行下列 Visual Basic 語言片段程式的結果為何? A 4 B 6 C 10 D 30 S=0 For X=1 To 2 For Y=1 To 3 S=S+1 Next Y S=S+2 Next X Print S

【97 管理】

( ABCDE", 3), 2) 其結果為何? *(  A  )w 在 Visual Basic 中執行 Print Right (Left “ A BC B CD C DE D CDE *(  C  )e 下列 Visual Basic 語言運算式之值,何者正確? B「7 \ 3+7*3」值為 22 46

【98 商管】 A「(3>4) Or (2<>5)」值為 False

C「3+4 Mod 2+5」值為 8 D「“12"+“34"」值為 【98 商管】

*(  D  )r 下列何者不屬於 Visual Basic 程式語法中資料型態的符號?

A String B Boolean 

C Date D Int

【98 工程】

*(  C  )t 當利用結構化程式設計的法則進行程式編寫時,下列何種流程圖的圖形不適用於循序 結構之設計?

A        B       C     D    

【98 工程】


第 4 章  程式語言簡介及實例應用

*(  B  )y 如右圖所示,程式流程圖中存在何種錯誤?

165

開始

A輸出的變數個數較設定初始值的變數個數少 B缺少判斷符號使得程式無法在有限的執行步驟內完成

A=1

C S=S+A 的指令語法不明確

S=0

D初始值設定不正確導致無法產生運算結果 【98 工程】 *(  D  )u 下列何者不是使用流程圖輔助程式設計的優點?

S=S+A

A易於掌控重點,減少錯誤 B有助於偵錯

A=A+1

C有助於程式日後的維護 D使用流程圖所輔助設計的程式,於電腦上執行必然快速 【98 工程】 (  C  )i 右圖所示的流程圖符號,其意義為何? A輸入 B處理 C註解 D顯示

【99 商管】

Print S

(  B  )o 下列有關流程圖的敘述,何者正確? A程式設計師可以利用流程圖代替編寫程式

結束

B流程圖的缺點是當符號很多時佔空間且難修改 C流程圖通常是由下而上由右至左繪製 【99 商管】

D流程圖無助於程式的除錯、修改與維護 (  B  )p 執行 Visual Basic 運算式 3^2*2-10 Mod 4/2 所得之結果為何? A 17 B 18 C 80 D 81

【99 商管】

(  D  )a 下列 Visual Basic 程式片段執行時,會在哪裡產生錯誤?

A Const A As Integer=2 

B Dim B As Integer C B=1 D A=B Const A As Integer=2

【99 商管】

Dim B As Integer B=1 A=B (  B  )s 下列 Visual Basic 運算式,何者為真(True)? Or (3<8)

A“abdc">“string" B (2>9)

C ((9 Mod 4)>2) And (8<3) D Not ((1<>2) Or (5=4))

(  C  )d 下列 Visual Basic 程式片段執行後,T 的值為何?

【99 商管】

A 256 B 240 C 225 D 196

T=0 U=0 Do While U<30 If U Mod 2=1 Then T=T+U End If U=U+1 Loop

【99 商管】

(  C  )f 下列繪製流程圖的動作中,何者最容易造成設計的錯誤? 起始與結束的符號

A流程圖的繪製必定加入

B用帶箭頭的流程線來標示工作處理的流向

C當流程圖較大且

複雜時,須儘量將所有圖形繪製於同一張設計紙上,並使用畫線交叉的方式標示,以 減少使用連接符號

D一般使用方形符號來標示處理的工作

【99 工管】


166

第 4 章  程式語言簡介及實例應用

(  C  )g 下列何者為給定之 Visual Basic 程式片段執行後的結果? A 7 B 8  C 9  D 10 A=2 B=3 S=A^B+Abs(A-B)Print S

【99 工管】

(  B  )h 下列何者為給定之 Visual Basic 程式語言函數執行後的結果? A 2 B 4 C 6 D 8 Print Len “ ( 中華民國")

【99 工管】

(  B  )j 下列何者為給定之 Visual Basic 程式片段執行後的結果? A 12 B 4 C 1 D 0 X=12:Y=4 If X<Y Then M=X Else M=Y Print M

【99 工管】

(  C  )k 下列何者為給定之 Visual Basic 程式片段執行後的結果? A 5 B 7 C 11 D 15 A=1:B=5 While B<10 B=B+2*A A=A+1 Wend Print B

【99 工管】

(  B  )l 若給定如下之 Visual Basic 副程式,則呼叫 Invest(3;15)會得到何種結果? A 3 B 4 C 12 D 15

【99 工管】

Sub Invest(X as Integer, Y as Integer) Ans=(X^2+Y Mod 4)/ 3 Print Ans End Sub *(  D  ); 在 Visual Basic 程式中,想要宣告一個數值變數用來儲存成績資料的平均值,精確度必 須達小數點後兩位,那麼在 Dim 的指令中,應該要使用下列哪一種資料型態?

A Byte B Integer C Long D Single

【100 商管】

*(  A  )z 下列哪一個 Visual Basic 的運算式執行後的計算結果值為 3?

A 5\2+2^0 B 5/2+5

Mod 2 C 5-2=3 D “2"+“1"

【100 商管】

*(  C  )x 下列哪一個 Visual Basic 的運算式執行後,可以獲得"5 月 1 日"的結果? A Left “ ( 20110501", 6)+“月"+Left “ ( 20110501", 8)+“日" +“月"+Mid “ ( 20110501", 1, 8)+“日" “ ( 20110501", 8, 1)+“日"

B Mid “ ( 20110501", 1, 6)

C Mid “ ( 20110501", 6, 1)+“月"+Mid

D Right “ ( 20110501", 3)+“月"+Right “ ( 20110501",

1)+“日"

【100 商管】

*(  D  )c 以下是一個體重評估的 Visual Basic 程式片段,假設小明和小華的身高和體重相同,都 是 height=160,weight=54,但是小明的性別 sex=“M",而小華的 sex=“F", 若由以下程式進行評估,執行之後 evaluation 的結果分別為何? evaluation 的結果都是“太瘦"

A小明和小華

B小明和小華 evaluation 的結果都是“太胖"

明 evaluation 的結果為“適中",而小華 evaluation 的結果為“太胖" evaluation 的結果為“太瘦",而小華 evaluation 的結果為“適中"

C小

D小明

【100 商管】


167

第 4 章  程式語言簡介及實例應用

Dim standard, height, weight As Integer Dim sex, evaluation As String If sex=“M" Then

開始

standard=(height - 80)*0.7 Else

i=0

standard=(height - 70)*0.6

j=1

End If Select Case weight-standard

i=i+j

Case Is>0

j=i-j

evaluation=“太胖" Case Is<0

evaluation=“太瘦" Case Else

i<9 否

evaluation=“適中"

輸出 j

End Select *(  D  )v 下列流程圖如右圖執行後的結果,變數 j 的輸出值為何? B 6 C 7 D 8

A 5 

【100 商管】

結束

*(  C  )b 以下是一個加上行號的 Do 迴圈指令 Visual Basic 程式片段,執行後 Ans 之值為 何?

A 9 B 14 C 40 D 280

【100 商管】

1 Dim i, Ans As Integer 2 Ans=1 3 i=1 4 Do While i <= 10 5

If i Mod 2=0 Then

6

Ans=Ans*i

7

End If

8

i=i+3

9 Loop *(  B  )n 續上題,要將上一題的程式改以 For 迴圈指令取代,下列程式第 4 行之中有 X、Y 和 Z 等三個變數,應該在行號 3 同一行後方撰寫哪一行指令指定其值,才能獲得相同的 結果?

A X=1:Y=3:Z=10 B X=1:Y=10:Z=3

D X=10:Y=1:Z=3 1 Dim i, Ans, X, Y, Z As Integer 2 Ans=1 3 4 For i=X To Y Step Z 5 If i Mod 2=0 Then 6 Ans=Ans*i 7 End If 8 Next

C X=3:Y=10:Z=1 【100 商管】


168

第 4 章  程式語言簡介及實例應用

(  D  )m 在 Visual Basic 中,下列哪一種資料型態所佔用的記憶體空間最多?

A整數(Integer)

B長整數(Long Integer) C單精準度浮點數(Single-precision Floating-point) D倍精準 度浮點數(Double-precision Floating-point) 【100 工程】 (  A  ), 在 Visual Basic 中,運算式 10.5\3.5+2^Fix(2.8)之結果為何? A 6 B 7 C 10 D 11

【100 工程】

(  A  ). 在 Visual Basic 中,下列字串運算的結果為何?

A“apple" B“asign" 

C“sign" D“simple" 【100 工程】 Left “ ( access", 1)+Choose (3, “i", “si", “pp", “imp")+Right “ ( grill", 1)+Mid “ ( next", 2, 1) (  D  )/ 關於 Visual Basic 的表單事件 Paint 的敘述,下列何者正確? 印表機列印時

B該事件發生在表單被記憶體儲存時

按鈕被按一下時

A該事件發生在表單被

C該事件發生在表單上的 Paint

D該事件發生在表單被搬動、放大或覆蓋表單的物件被移開時 【100 工程】

(  D  )! 下列 Visual Basic 程式片段執行後,X 之值為何?

A FALSE B NOT C Or D

TRUE

【100 工程】

Dim X As Boolean X=NOT FALSE And TRUE Or FALSE Or TRUE *( A )@ 結構化的程式語言應避免採用下列哪一種結構? A跳躍結構(GOTO) B重複結 構(repeat) C選擇結構(selection) D循序結構(sequential)

【101 商管】

*( B )# 請問下列程式於 Visual Basic 執行運算後,所得 100 個數值之陳述,何者正確? A都 是奇數,且是介於 0 至 12 之間 B都是偶數,且是介於 0 至 12 之間 C都是奇數, 且是介於 12 至 70 之間 D都是偶數,且是介於 12 至 70 之間

【101 商管】

Dim i As Integer For i=1 To 100 Print (Int(Rnd*59)And 12); Next i *( C )$ 小寫英文字母“a"的 ASCII 值為 97,請問 Asc(Right(Left(Mid (“Linsanity IsJeremyNotJerome", 4 ,8) , 6) ,2)) 於 Visual Basic 執行運算後,所得之結果為何? A 110 B 115 C 116 D 121

【101 商管】

*( C )% 下列 Visual Basic 的 7 行程式執行運算後,如果要得到下面所列的執行結果,請問程式 第三行空白處應填入哪一個運算式? A i+1 B Int(i)+1 C Abs(i)+1 D I Dim i , j As Integer For i=-4 To 4 For j=1 To Print“*"; Next j Print Next i [執行結果] ***** ****

【101 商管】


第 4 章  程式語言簡介及實例應用

169

*** ** * ** *** **** ***** *( C )^ 請問下列 Visual Basic 程式片段執行運算後,X(7)所得之結果為何? 8 D 9

A 5 B 7 C 【101 商管】

Dim Y , X(7) As Integer

開始

X(1)=2 Y=1

A=3

For Y=2 To 7

X=12

XY=Y+X(Y-1) \ 5 Next Y *( C )& 右圖某程式片段的運算流程,請問輸出的 A 值為何?

X>10

A 3 B 6 C 9 D 12 【101 商管】 *( C )* 在物件導向程式語言中,用於描述物件外觀、大小、

位置等的特徵值,稱之為何? A方法 B繼承 C 屬性 D裝封

【101 工管】

A=A+3 X=X-1

輸出 A

*( C )( 請問在流程圖中,「資料輸入或輸出」與「報表輸出」分別以何種圖示表示? A

B

C

D

【101 工管】

*( B )) 機器語言及組合語言是屬於下列何種程式語言類別?

A物件導向語言 B低階語言

C中階語言 D高階語言 【101 工管】 *( C )Q 執行完下列 Visual Basic 程式片段後,印出的結果為何? A R B 11 C 0 D R= T+K

【101 工管】

Dim T ,K, R As Integer T=5 : K=6 : R=0 Rem R=T+K Print R *( C )W 下列哪一個 10 進位數字,代表 16 進位數字系統中的(ACE)16? A 2567 B 2677  C 2766 D 2776 【101 工管】 *( B )E 在 Visual Basic 中,位元組(Byte)資料型態可儲存的最大數字為何? A 127 B 255 C 32767 D 65535

【101 工管】

*( D )R 以下四種 Visual Basic 的資料型別,何者占用最多的記憶體? A布林(Boolean)  B單精準度浮點數(Single) C長整數(Long) D日期時間(Date) 【101 工管】


170

第 4 章  程式語言簡介及實例應用

*( A )T 下列哪一個 Visual Basic 程式語言敘述,會先判斷測試條件為真(True)時,才執行迴 圈內的敘述? A Do While ... Loop B Do Until ... Loop C Do ... Loop While D Do ... Loop Until

【101 工管】

*( B )Y 執行完以下 Visual Basic 程式,總共會在螢幕顯示幾列結果? A 5 B 9 C 45 D 81

【101 工管】

Private Sub Form_Activate( ) Dim i , j As Integer For i=1 to 9 For j=1 to 9 Step 2 Print i; “x"; j; “="; i*j; “ "; Next j Print Next i End Sub *( B )U 執行完下列 Visual Basic 程式片段後,要使變數 c 的結果為“ABC123ABC",須執行 下列哪一選項?

A c=a+b+a B c=a&b&a C c=a+b&a D c=a&b+a

Dim a , c As String

【101 工管】

Dim b As Integer a=“ABC": b=123 *( D )I 在 Visual Basic 中,下列何者為正確日期資料? A$1/1/2012$ B @1/1/2012@  C%1/1/2012% D#1/1/2012# 【101 工管】 *( D )O 下列何者不是描述演算法的方式? A文字敘述 B流程圖 C虛擬碼 D甘特圖 【101 工管】 *( A )P 下列 Visual Basic 宣告敘述,何者不正確? A Dim Print As Integer B Dim T As String C Dim A(19) As Integer D Dim Beauty As Boolean *( C )A 執行完下列 Visual Basic 的 Form_Activate 程式後,印出結果為何? 11 C 121 D 562

【101 工管】 A P( 5, 6, 2) B 【101 工管】

Private Sub Form_Activate( ) Dim X ,Y, Z As Integer X=5 : Y=6 : Z=2 Print P(X,Y,Z) End Sub Function P(A,B,C) P=(A+B)^C End Function *( A )S 執行完下列 Visual Basic 程式片段後,會在螢幕顯示幾個星號? A 5 B 6 C 9  D 10 Dim A , B As Integer B=10 For A=1 To B Step 1 If (A MOD 2=0) Then Print“*" Next A

【101 工管】


第 4 章  程式語言簡介及實例應用

171

*( A )D 在 Visual Basic 中,運算式 3 * 2 ^ 2 Mod 3 * 2+6 \ 4/2,結果為何? A 3 B 4 C 5 D 6

【101 工管】

*( B )F 流程圖如下圖所示,請依照流程圖執行,最後印出 B 的值為何? A 20 B 24 C 27 D 36

【101 工管】 開始 A=7 , B=2 B=B+A

A=A-1

A<5 是 印出B 結束


掌握計算機概論複習講義教師用本  

計算機概論參考書 搶先試閱

Advertisement
Read more
Read more
Similar to
Popular now
Just for you