2018年2月6日 星期二

計概15-01程式語言的發展與種類-公職試題

【選擇題】

C01.程式設計師編寫的高階語言程式,通常需要先經過特定工具的處理:①組譯器②編譯器③聯結器,將高階程式語言轉成計算機可執行的形式,才能在計算機上執行。上述工具的處理順序為何,才能將由多個檔案組成的高階語言程式轉換成機器執行的二進制形式? (A)①②③ (B)③①② (C)②①③ (D)③②①。[109地方四等資處]

現代compiler的主要工作流程如下:原始碼(source code)→前置處理器(preprocessor)→編譯器(compiler)→組譯器(assembler)→目的碼(object code)→聯結器(linker)→執行檔(executables)

 

D02.在物件導向程式設計中,下列何者適用於描述「一個方法(Method)將依照呼叫物件的不同,而有不同的操作」? (A)抽象(Abstraction) (B)封裝(Encapsulation) (C)繼承(Inheritance) (D)多型(Polymorphism)[109地方四等資處]

多型:一樣的事情,有不同的做法。

 

B03.電腦開機後,下列何者是負責載入作業系統的程式? (A)Assembler (B)Bootstrap loader (C)Compiler (D)Linker[109地方四等資處]

(A)組譯器,(B)啟動載入器,(C)編譯器,(D)連結器。

 

B04.下列有關程式設計的觀念何者正確? (A)以高階語言(High level language)撰寫成的程式碼必須藉載入器(Loader)載入到記憶體中,之後才能以編譯器(Compiler)和組譯程式(Assembler)將其轉換成機械語言(Machine language)的形式 (B)機械語言與機器的特性有很密切的對應關係,因此程式碼不具可攜性(Portability) (C)高階語言和組合語言(Assembly language)與機器的特性沒有很密切的對應關係,因此兩者程式碼均具有可攜性 (D)由於組合語言通常只具備簡單的指令格式,因此以組合語言撰寫的程式碼會比以高階語言撰寫的程式碼具有更高的可讀性(Readability)[109地方四等電子]

電腦語言的翻譯工具:

1.組譯器:組合程式→全部組譯→目的程式→連結程式→機器語言(可執行檔)→載入程式→執行→結果

2.直譯器:高階程式→逐行翻譯→機器語言指令→執行→結果

3.編譯器:高階程式→全部編譯→目的程式→連結程式→機器語言(可執行檔)→載入程式→執行→結果

(B)低階語言可攜性低,高階語言可攜性高。

 

B05.在物件導向程式語言中,我們可以承襲既有類別所定義的功能與屬性,以省去撰寫相同程式碼的時間。下列何者最能描述此種特性? (A)封裝(encapsulation) (B)繼承(inheritance) (C)委派(delegation) (D)多型(polymorphism)[109地方四等電子]

繼承性:繼承者可以承襲被繼承者的特性。

 

A06.對於自然語言處理的敘述,下列何者錯誤? (A)自然語言的複雜度較電腦的程式語言來得低 (B)自然語言處理具有機器翻譯功能,可以將一篇英文文章翻譯成中文文章 (C)自然語言通常有四項特徵:字彙、文法、語意及結構 (D)自然語言處理提供人們使用一般語言(例如:華語)來和電腦或機器互動。[109身心五等]

自然語言處理(Natural Language Processing, NLP)是透過複雜的數學模型及演算法使機器能認知、理解並運用人類語言的技術。

 

D07.下列那種程式語言不具備物件導向的特性? (A)Java (B)C++ (C)ASP.NET (D)Fortran[109身心四等]

FortranFormula Translation的縮寫,1957年由IBM提出,是一個被正式採用的高階程式語言。

 

B08.編譯器是在下列那一個階段,判斷程式是否符合語法(syntax) (A)詞法分析(lexical analysis) (B)解析(parsing) (C)語意分析與機器碼產生(semantic analysis and code generation) (D)機器碼最佳化(code optimization)[109普考資處]

解析:當編譯器完成語彙分析之後,會將程式中的每一筆敘述,歸類為文法中的某一種語言結構。

 

A09.下列何者不屬於物件導向式程式語言(object-oriented programming languages) (A)C (B)C# (C)Java (D)Visual Basic[109普考電子]

C屬於程序導向程式語言

 

D10.下列那一項工作作業,不是一般的作業系統可以提供的? (A)分時作業(Time-sharing) (B)多工作業(Multi-tasking) (C)硬碟管理(Disk Management) (D)語言翻譯作業(Language Translation)[109普考電子]

(D)語言翻譯作業:組譯器、編譯器、直譯器。

 

B11.下列何者為直譯式語言? (A)Java (B)JavaScript (C)C++ (D)Objective-C[109鐵路員級]

在瀏覽器上的JavaScript是直譯式語言

 

B12.請問下列語言或符號,何者經常被用來描述程式語言的文法? (A)SQL (B)BNF (C)XML (D)PHP[109鐵路員級]

BNF(Backus Normal Form):用於表示上下文無關文法的語言。

 

D13.下列何者不是聯結器(linker)所需負責的工作? (A)負責合併來自不同程式模組的目的(object)檔案 (B)確保程式中沒有未解決的參考(references) (C)決定程式模組在執行時期所占用的記憶體位址 (D)將低階語言程式轉換成目的檔案,以供稍後執行。[110地方四等資處]

組譯器:將低階語言程式轉換成目的檔案,以供稍後執行。

 

A14.下列何者不是「物件導向程式設計」的特性? (A)關聯性 (B)封裝性 (C)繼承性 (D)多型性。[110身心五等]

物件導向程式設計的特性:封裝性(Encapsulation)、繼承性(Inheritance)、多型性(Polymorphism)、抽象性(Abstraction)

 

A15.下列那一個選項所列舉的程式語言都是物件導向程式語言? (A)C++R語言 (B)JavaBASIC (C)SmalltalkCOBOL (D)CPython[110身心五等]

物件導向程式語言有:C#C++Common LispDelphiJavaJavaScriptObjective-CPerlPHPPythonRubySmalltalkSwiftVB

 

D16.下列軟體開發流程模型(Software Process Model)中,何者將依序進行規格制定、設計、實作、測試與維護階段,並且在前一階段工作完成後,才會開始下一階段的工作? (A)建構與修復模型(Build and Fix Model) (B)漸增模型(Incremental Model) (C)螺旋模型(Spiral Model) (D)瀑布模型(Waterfall Model)[110身心四等]

瀑布模型:是軟體開發架構,前一階段完成後,下一階段才繼續往下做。

 

A17.下列那個程式語言相對選項中其他語言是較為低階(最接近機器碼)的程式語言? (A)組合語言(Assembly Language) (B)C程式語言(C Language) (C)Python語言(Python Language) (D)結構化查詢語言(Structured Query Language)[110初考資處]

組合語言:第二代程式語言,最接近第一代低階的機械語言。

C程式語言、Python語言:第三代高階語言。

結構化查詢語言:第四代高階語言。

 

D18.「可以將物件使用介面的程式實作部分隱藏起來,不讓使用者看到,同時確保使用者無法任意更改物件內部的重要資料」。以上這段敘述,是在描述物件導向程式設計的那一種特性? (A)繼承 (B)多型 (C)抽象 (D)封裝。[110初考資處]

封裝性(Encapsulation):將物件內部的屬性與方法加以封裝,只能透過物件的介面(interface)來取得。

 

C19.使用瀑布模型進行軟體開發專案,開發團隊需依循下列何者適當的順序,來完成該軟體開發專案? (A)設計階段→分析階段→實作階段→測試階段 (B)設計階段→分析階段→測試階段→實作階段 (C)分析階段→設計階段→實作階段→測試階段 (D)分析階段→設計階段→測試階段→實作階段。[110國安五等]

瀑布模型:是軟體開發架構,前一階段完成後,下一階段才繼續往下做。

 

C20.下列何者是電腦硬體執行時使用的語言? (A)高階語言 (B)符號式語言 (C)機器語言 (D)組合語言。[110國安五等]

機器語言由01組成,電腦能直接辨識和執行的指令集合。

 

A21.請問將程式原始碼(Source Code)轉換至可執行碼(Object Code)之編譯過程中,其中將符號(Symbol)轉為標記(Token)的轉換工具,是下列那一個? (A)詞法分析器(Lexical Analyzer) (B)語法分析器(Syntax Analyzer) (C)語意分析器(Semantic Analyzer) (D)碼產生器(Code Generator)[110國安五等資處]

詞法分析器:編譯程式組成的一部分,負責將符號轉為標記。

 

C22.在物件導向程式設計(Object-Oriented Programming)方法中,下列何者乃是將抽象性函式介面的實作細節包裝隱藏起來的方法? (A)繼承(Inheritance) (B)多型(Polymorphism) (C)封裝(Encapsulation) (D)抽象(abstraction)[110國安五等資處]

封裝性:將物件內部的屬性與方法加以封裝,只能透過物件的介面(interface)來取得。

 

B23.軟體測試(software testing)中,下列何種方法是使用一組測試資料讓軟體的每一條指令最少執行一次? (A)Alpha testing (B)Basis path testing(基本路徑測試) (C)Beta testing (D)Black-box testing(黑箱測試)[110普考資處]

基本路徑測試:用於狀態轉換測試,會產生一組測試數據,讓軟體的每個指令最少執行一次。

 

A24.在物件導向程式設計中,下列特性何者可以達到資訊隱藏(Information Hiding)的目的? (A)封裝(Encapsulation) (B)識別(Identity) (C)繼承(Inheritance) (D)多型(Polymorphism)[110普考資處]

封裝:將物件內部的屬性與方法加以封裝,只能透過物件的介面(interface)來取得。

 

B25.多執行序程式設計(multithreaded programming)的各項好處中,不包括下列何者? (A)應答性(Responsiveness) (B)負載平衡(Load Balance) (C)經濟(Economy) (D)可擴大尺度性(Scalability)[110普考資處]

多執行序程式設計的好處:(A)應答性,(B)資源共享(Resource Sharing)(C)經濟性,(D)可擴大尺度性。

 

A26.在物件導向程式中,子類別可以覆寫父類別的方法內容,使該方法擁有不同於父類別的行為,此稱為 (A)Override (B)Overload (C)Polymorphism (D)Encapsulation[110普考電子]

多載(Overload):在一個類別中,定義多個名稱相同,但參數不同的方法。

多型(Polymorphism):一個方法將依照呼叫物件的不同,而有不同的操作。

封裝(Encapsulation):將物件內部的屬性與方法加以封裝,只能透過物件的介面(interface)來取得。

 

A27.下列有關編譯器(compiler)的敘述,何者正確? (A)可將高階語言的程式轉換成組合語言的程式 (B)可將組合語言的指令轉換成二進形式的機器碼 (C)可將某個指令集架構的機器碼轉換成另一個指令集架構的機器碼 (D)可管控計算機上各種程式所使用的資源。[110關務四等]

編譯過程:高階程式→編譯程式→目的程式→連結程式→機器語言(可執行檔)→載入程式→執行→結果。編譯1次執行多次。

 

B28.下列計算機語言,何者可用於合成(synthesis)硬體電路?①C++V②PythonVerilogJavaVHDL (A)②③ (B)③⑤ (C)①② (D)④⑤。[110鐵路員級]

硬體描述語言(Hardware Description Language, HDL)主要有VHDLVerilog等。

 

B29.在物件導向程式中,在一個類別(Class)中,可定義多個名稱相同但參數(Parameter)不同的方法(Method),此稱為 (A)Override (B)Overload (C)Encapsulation (D)Polymorphism[111身心四等]

(A)覆寫:子類別可以覆寫父類別的方法內容,使該方法具有不同父類別的行為。

(C)封裝:將物件內部的屬性與方法加以封裝,只能透過物件的介面(interface)來取得。

(D)多型:一個方法將依照呼叫物件的不同,而有不同的操作。

 

B30.CJavaPHP三種程式語言來考慮,就①程序式(procedural)②物件導向式(object-oriented)③腳本式(scripting)三種程式語言類別,以及最適合開發④網路程式⑤網頁程式⑥系統程式三種應用需求而言,下列敘述何者正確? (A)C:①⑥、Java:③④、PHP:②⑤ (B)C:①⑥、Java:②④、PHP:③⑤ (C)C:①⑤、Java:③⑥、PHP:②④ (D)C:①④、Java:②⑤、PHP:③⑥。[111初考資處]

 

C31.軟體程序(software process)是生產軟體系統的一組相關活動。雖然有許多種不同的軟體程序,它們在某種形式上卻都必須包含四種基本的軟體工程活動。下列那一項活動不是這四種基本活動之一? (A)軟體規格制定(software specification) (B)軟體開發(software development) (C)軟體測試(software testing) (D)軟體演進(software evolution)[111普考資處]

軟體程序:軟體規格制定、軟體開發、軟體確認、軟體演進。

 

C32.下列何者屬於直譯式程式語言(Interpreted language) (A)C (B)C++ (C)BASIC (D)FORTRAN[111普考電子]

直譯式程式語言:LispPascalBASIC

目的程式:無

執行速度:慢

翻譯執行:每次執行須直譯1

翻譯過程:高階程式→直譯程式→機器語言(可執行檔)→執行→結果

翻譯方式:執行翻譯、執行,若有錯誤則停止

 

D33.相較於組合語言,下列何者不是一般高階程式語言常見的優點? (A)可讀性高 (B)具可攜性 (C)較易於維護 (D)執行效率大幅度改善。[111鐵路員級]

執行效率較組合語言差。

 

D34.為維護軟體開發品質,對開發的軟體進行測試是非常重要的一環。下列那個測試方式,需要事先瞭解程式的運作流程,並針對每個程式執行路徑進行測試? (A)黑箱測試(black-box testing) (B)淨室測試(clean room testing) (C)整合測試(integration testing) (D)白箱測試(white-box testing)[112地方四等資處]

黑箱測試:測試應用程式的功能。

淨室測試:測試應用程式的規範和標準。

整合測試:測試模組或元件間接口的交互作用,確保能正確協同工作。

白箱測試:測試應用程式的內部結構或運作。

 

D35.從來源代碼(Source code)到目標代碼(Object code)的翻譯過程包含以下步驟,1:目標代碼生成、2:語意分析(Semantic)3:語法分析(Syntax)4:詞彙法分析(Lexical),正確順序為 (A)3241 (B)3421 (C)4231 (D)4321[112身心五等]

1.詞彙法分析:將來源代碼的字符序列分割成一系列的Token,並標記其詞法單位。

2.語法分析:對照語法規則將Token轉換成語法樹(Syntax Tree)

3.語意分析:根據語言規則和上下文,檢查語法和類型,產生符號表(Symbol Table)

4.目標代碼生成:將經過語意分析的語法樹轉換為目標平台上的機器碼。

 

C36.在物件導向程式設計中,有關抽象類別的描述下列何者錯誤? (A)抽象類別可定義抽象方法 (B)抽象類別可被一般類別直接繼承 (C)可生成抽象類別的物件 (D)抽象類別可實作一般方法。[112初考資處]

抽象類別,不能夠被具象化(instantiate),不能夠生成物件,但可以擁有指向抽象類別之指標,以便於操作抽象類別的各個衍生類別。

 

B37.MVC是軟體工程中的一種軟體架構模式,用來簡化應用程式開發並增加程式的可維護性。請問MVC指的是 (A)Module, Verification, Consistent (B)Model, View, Controller (C)Module, View, Container (D)Model, View, Container[112初考資處]

MVC:模型(Model)、視圖(View)和控制器(Controller)

 

A38.下列有關程式語言的描述何者正確? (A)C語言可對記憶體直接處理,UNIX作業系統就是利用C語言開發完成 (B)C++語言是一種結構化程式設計語言 (C)ADA是一種早期的標記語言 (D)JAVA是由微軟公司開發的物件導向程式語言。[112初考資處]

(B)C++語言是物件導向程式語言

(C)ADA是一種程式設計語言

(D)JAVA是昇陽(Sun)公司開發的物件導向程式語言

 

B39.軟體工程對軟體開發程序(development process)的第一個階段是那個? (A)設計(Design) (B)分析(Analysis) (C)實作程式(Implementation) (D)測試(Testing)[112國安五等]

軟體開發的程序:1.分析,2.設計,3.實作程式,4.測試,5.部署(Deployment)6.維護(Maintenance)

 

A40.有關物件導向程式語言特性的敘述,下列何者錯誤? (A)要使用運算子多載(Overload)必須先設計繼承類別架構 (B)若類別中的資料可視性設計為保護型(Protected),其子類別的物件具有存取權限 (C)類別中的封裝(Encapsulation)特性,可以把資料和功能包裝在類別物件中 (D)抽象(Abstract)類別一般無法產生實體物件。[112國安五等資處]

(A)Overload:在父類別內完成多載;Override:由子類別先繼承再覆寫。

(D)抽象類別可以實作屬性,亦可先宣告屬性再讓子類別來實作或覆寫。

 

C41.有關程式語言特性的敘述,下列何者錯誤? (A)PHP是具有物件導向特性的程式語言 (B)Python可以用來寫網頁應用程式 (C)Go是一種直譯型(Interpreted)的強型別(Strong type)程式語言 (D)Swift具有運算子多載(Overload)的功能。[112國安五等資處]

Go(Golang)Google開發的靜態強型別、編譯型、並發型,並具有垃圾回收功能的程式語言。

 

A42.下列何者不是一般作業系統的主要功能? (A)編譯程式語言 (B)提供使用者操作介面 (C)調配程序使用各種電腦資源 (D)檔案管理。[112普考資處]

編譯程式語言負責將高階語言編譯為低階語言。

 

A43.下列何者不屬於當測試者在進行軟體測試時,只需要知道程式的輸出入和系統功能,不用知道軟體的程式碼及內部結構即可測試的方法? (A)控制結構測試(Control structure testing) (B)徹底測試(Exhaustive testing) (C)隨機測試(Random testing) (D)邊界值測試(Boundary-value testing)[112普考資處]

控制結構測試(功能測試、黑盒測試):測試者只需要知道程式的輸出入和系統功能,不用知道軟體的程式碼及內部結構。

 

B44.下列何者關於文字檔(Text File)與二元檔(Binary File)的比較錯誤? (A)文字檔是以ASCII碼的方式儲存資料,而二元檔則是以二進位位元方式表達資料 (B)二元檔占有檔案的空間較大,故其執行的速度會較文字檔慢 (C)二元檔無法像文字檔一樣,直接用type命令或編輯程式看到內容 (D)二元檔用不著浪費時間作轉換,反之,文字檔則必須再作轉換的工作。[112普考資處]

(B)文字檔與二元檔占有檔案的空間大小,取決於儲存的資料量和編碼方式等因素。兩者執行速度的快慢,取決於程式的實作和處理方式。

 

A45.在一台計算機中,最重要的系統軟體包含:作業系統與編譯器,有關編譯器的敘述,下列何者正確? (A)將高階語言程式翻譯至機器指令 (B)處理基本輸入、輸出的動作 (C)配置計算機各個程式的資源,以利系統有效率的運行 (D)將符號表示的程式轉換為二進位形式。[112關務四等]

編譯器(Compiler)的功能,是將高階語言翻成機器語言。

 

C46.在自然語言處理中,要能了解一句話中的代名詞所指的是什麼,必須對語句分析到下列那一種層次? (A)語法分析(syntactic analysis) (B)語意分析(semantic analysis) (C)前後文分析(contextual analysis) (D)假說分析(hypothesis analysis)[112關務四等]

(A)語法分析:利用語文法則去了解句子內,詞彙的排列與語法闗係。

(B)語意分析:了解句子內詞彙的關係,以及句子所表達的涵義。

(C)前後文分析:了解代名詞指稱的重要部分,代名詞通常依賴於特定的語境或者說話的上下文。

(D)假說分析:不是解決代名詞所指對象的標準方法。

 

B47.下列何者非物件導向(object-oriented)程式設計的特性? (A)封裝(encapsulation) (B)可變物件(mutable object) (C)繼承(inheritance) (D)多型(polymorphism)[113初考資處]

物件導向程式設計的特性:封裝性、繼承性、多型性、抽象性。

 

A48.程式開發工具中,下列何者可以將組合語言撰寫的程式轉譯成二進位機器碼? (A)組譯器(Assembler) (B)編譯器(Compiler) (C)鏈結器(Linker) (D)載入器(Loader)[113初考資處]

組譯器:將組合語言轉譯成機器語言。

編譯器:將高階語言轉譯成機器語言。

2 則留言:

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