《第6章 程序設(shè)計語言 習題與答案》由會員分享,可在線閱讀,更多相關(guān)《第6章 程序設(shè)計語言 習題與答案(6頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第六章習題 P159-161
一、 復(fù)習題
1、簡述自然語言與形式語言的概念以及區(qū)別、匯編語言與機器語言的概念及區(qū)別。
自然語言是某一社會發(fā)展中形成的一種民族語言,而形式語言是進行形式化工作的元語言,它是以數(shù)學和數(shù)理邏輯為基礎(chǔ)的科學語言。用機器指令形式編寫的程序稱為機器語言,
用帶符號或助記符的指令和地址代替二進制代碼成為語言進化的目標。這些使用助記符語言的語言后來就被稱之為匯編語言。 (P144- P146)
2、試述計算機語言的類型,它們各有什么特點?
1.機器語言,是最低級的語言,由二進制碼組成,最早期的程序員通過在紙帶
2、上打點來寫程序
2.匯編語言,用助記符和地址符代替了二進制碼,更易于編寫。
3.高級語言,相對于匯編語言又上升了一步,更接近于自然語言,如C語言、Pascal、Java、C#等都是高級語言。 (P145-147)
3、列舉程序設(shè)計語言的幾種范型。
程序語言大致分為命令式程序設(shè)計語言、面向?qū)ο蟮某绦蛟O(shè)計語言、函數(shù)式程序設(shè)計語言和邏輯型程序設(shè)計語言等范型。 (P147-149)
4、簡述語言虛擬機。
提示:語言虛擬機是某種語言的解釋器。語言虛擬機是建立在硬件和操作系統(tǒng)之上,針對不同的硬件和操作
3、系統(tǒng)有不同的虛擬機,通過語言虛擬機屏蔽掉硬件的差異。這樣使得硬件系統(tǒng)能夠支持這種語言編寫的程序的有效執(zhí)行。目前最流行的語言虛擬機是Java虛擬機。
(P156)
5、計算機執(zhí)行用高級語言編寫的程序有哪些途徑?它們之間的主要區(qū)別是什么?
提示:主要有編譯、解釋等方式,也有兩種方式的混合使用的形式。
編譯是使用編譯器將高級語言編寫的源程序轉(zhuǎn)換成計算機可以執(zhí)行的機器語言可執(zhí)行程序,也可以理解為用編譯器產(chǎn)生可執(zhí)行程序的動作。編譯方式是一次編譯,然后執(zhí)行程序可以反復(fù)多次執(zhí)行。
解釋是另一種將高級語言轉(zhuǎn)換為可執(zhí)行程序的方式。與編譯不同,解釋性語言的程序不需要編譯,省了道工序,解釋性語言在運行
4、程序的時候才翻譯,每個語句都是執(zhí)行的時候才翻譯。這樣解釋性語言每執(zhí)行一次就要翻譯一次,效率比較低。
近來隨著網(wǎng)絡(luò)的發(fā)展,為了實現(xiàn)跨平臺但同時又保證一定的效率,出現(xiàn)了編譯、解釋混合的方式,先用偽編譯形成效率較高中間代碼,再用語言虛擬機進行解釋執(zhí)行,以屏蔽掉硬件的差異。 (P154-157)
6、請畫出編譯程序的總框圖。如果你是一個編譯程序的總設(shè)計師,設(shè)計編譯程序時應(yīng)當考慮哪些問題?
作為一個編譯程序的總設(shè)計 師,首先要深刻理解被編譯的源語言其語法及語義;其次,要充分掌握目標指令的功能及特點,如果目標語言是機器
5、指令,還要搞清楚機器的硬件結(jié)構(gòu)及操作系統(tǒng)的功能;第三,對編譯的方法及使用的軟件工具也必須準確化??傊傇O(shè)計師在設(shè)計編譯程序時必須估量系統(tǒng)功能要求、硬件設(shè)備及軟件工具等諸因素對編譯程序構(gòu)造的影響等。 (P154-156)
7、什么是IDE?
IDE集成開發(fā)環(huán)境的簡稱(Integrated Develop Environment)是一套用于程序開發(fā)的軟件工具集合,一般包括源代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。(P158)
8、簡述程序設(shè)計語言的基本構(gòu)成元素。
程序設(shè)計語言的語法元素主要有:字符集、表達式、語句、標識符、關(guān)鍵字和保留字、注釋等組成。
6、 (P149-P151)
9、簡述標識符及其作用域的概念
標識符是程序設(shè)計時設(shè)計人員用來命名事物的符號。標識符的作用域是指其被定義的有效的范圍,同一個表現(xiàn)形式的標識符在不再的區(qū)域里可以代表不同的含義。 (P150)
10、說明將源程序轉(zhuǎn)化為計算機能夠識別的指令的過程。
提示:該轉(zhuǎn)化過程即為編譯的基本過程,包括詞法分析;語法分析;中間代碼生成;代碼優(yōu)化;目標代碼生成等五個階段,各階段有具體的任務(wù)。 (P154-155)
二、 練習題
(一)填空題
1、____________語言的書寫方式接近于人們的思維習慣,使程序更易閱讀和理解。
7、
高級語言 (P146)
2、程序語言中的控制成分包括順序結(jié)構(gòu)、__________和循環(huán)結(jié)構(gòu)。
選擇結(jié)構(gòu) (P153)
3、在基于繼電器的計算機器時代,所謂“程序設(shè)計”實際上就是設(shè)置__________開關(guān),所以通常的情況是“設(shè)置程序”的時間比計算時間長。
繼電器 (P145)
4、自然語言的基本特征包括_________和_____________________。
歧義性、不夠嚴格和不夠統(tǒng)一的語法結(jié)構(gòu) (P144)
5、自然語言的輸入可以使用___________、___________、___________、___________等方式。
8、
6、函數(shù)與過程最明顯的區(qū)別在于_________________。
{ 過程本身不返回值,而函數(shù)本身返回值 }(P154)
7、通常按照程序運行時數(shù)據(jù)的_____能否改變,將數(shù)據(jù)分為常量和變量。
{ 值 } (P151)
8、__________是將源程序轉(zhuǎn)換為一種中間類型的代碼,通常其生成的是非常接近機器語言的二進制代碼。
偽編譯 (P156)
9、集成開發(fā)環(huán)境(IDE)是一套用于程序開發(fā)的軟件工具集合,一般包括___________、___________、___________和___________等工具。
{ 源代碼編輯器、編譯器、調(diào)試器和圖形用戶界面 }
9、 (P158)
10、用運算符號按一定的規(guī)則連接起來的、有意義的式子稱為__________。
表達式 (P151)
11、保留字也叫___________,指在語言中已經(jīng)定義過的字,使用者不能再將這些字來命名其他事物。
關(guān)鍵字 (P150)
12、操作符是用來代表運算操作的符號,每個操作符表示一種運算操作。通常語言中具備___________、___________、___________和___________等等幾類。
賦值操作符、算術(shù)操作符、比較操作符、邏輯操作符、位操作符 (P150)
13、類是面向?qū)ο笳Z言必須提供的由用戶定義的數(shù)據(jù)類型,它是將具有相
10、同___________、___________、___________的多個對象抽象而成的。
狀態(tài)、操作和訪問機制 (P148)
14、科學的語言基本上是___________性、___________性而非評論性的。
描述性、斷定性 (P145)
15、_________是能被其他程序調(diào)用,在實現(xiàn)某種功能后能自動返回到調(diào)用程序去的程序。
子程序 (P153)
16、形式語言是進行形式化工作的元語言,它是以________和________為基礎(chǔ)的科學語言。
數(shù)學和數(shù)理邏輯 (P145)
17、匈牙利命名法的基本原則是:標識符=____________+__
11、__________+____________。
屬性 類型 對象描述 (P150)
18、程序語言的分類沒有統(tǒng)一的標準,根據(jù)程序設(shè)計的方法將程序語言大致分為____________、____________、____________和____________設(shè)計語言等類型。
命令式程序設(shè)計語言、面向?qū)ο蟮某绦蛟O(shè)計語言、函數(shù)式程序設(shè)計語言和邏輯型程序設(shè)計語言 (P159)
19、邏輯型語言是一類以___________為基礎(chǔ)的語言,其代表是Prolog語言,這種語言與數(shù)據(jù)庫SQL語言有很多相似之處。
形式邏輯 (P148)
20、____________的選擇是語言設(shè)
12、計的第一件事。
字符集 (P149)
(二)選擇題
1、結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是______。
A、程序的規(guī)模 B、程序的易讀性 C、程序的執(zhí)行效率 D、程序的可移植性
B (P146)
2、程序設(shè)計語言從機器語言到高級語言的抽象,帶來的主要好處是_____。
A、高級語言接近算法語言,易學、易掌握 B、可讀性好,可維護性強,可靠性高
C、設(shè)計的程序可移植性好,重用率高 D、高級語言程序設(shè)計自動化程度高,開發(fā)周期短
A (P146)
3、下面是關(guān)于解釋程序和編譯程序的論述,其中正確的一條是__________
A、編譯程序和解釋程序均能產(chǎn)
13、生目標程序
B、編譯程序和解釋程序均不能產(chǎn)生目標程序
C、編譯程序能產(chǎn)生目標程序而解釋程序則不能
D、編譯程序不能產(chǎn)生目標程序而解釋程序能
A (P155)
4、近來計算機報刊中常出現(xiàn)的“Java”一詞是指_________。
A、一種計算機語言 B、一種計算機設(shè)備
C、一個計算機廠商云集的地方 D、一種新的數(shù)據(jù)庫軟件
A (P156)
5、采用編譯方法的高級語言源程序在編譯后_________。
A、生成目標程序 B、生成可在DOS下直接運行的目標程序
C、生成可執(zhí)行程序 D、生成可在DOS下直接運行的可執(zhí)行程序
C ?。≒15
14、5)
6、用高級程序設(shè)計語言編寫的程序,要轉(zhuǎn)換成等價的可執(zhí)行程序,必須經(jīng)過____。
A、匯編 B、編輯 C、解釋 D、編譯和連接
D (P155)
7、計算機硬件能直接執(zhí)行的只有____。
A、符號語言 B、機器語言 C、機器語言和匯編語言 D、匯編語言
B ?。≒145)
8、只有當程序要執(zhí)行時,它才會將原程序翻譯成機器語言,并且一次只能讀取、翻譯并執(zhí)行原程序中的一行語句,此程序稱為____。
A、目標程序; B、編輯程序; C、解釋程序; D、匯編程序。
C ?。?P156)
9、構(gòu)造編譯程序應(yīng)掌握____。
15、A、源程序 B、目標語言 C、編譯方法 D、以上三項都是
D ?。?P154)
10、編譯程序絕大多數(shù)時間花在
A、出錯處理 B、詞法分析 C、目標代碼生成 D、表格管理
D ?。?P154)
11、如果一個變量在整個程序運行期間都存在,但是僅在說明它的函數(shù)內(nèi)是可見的,這個變量的存儲類型應(yīng)該被說明為____。
A、靜態(tài)變量 B、動態(tài)變量 C、外部變量 D、內(nèi)部變量
D (P152)
12、在C語言中,函數(shù)的數(shù)據(jù)類型是指____。
A、函數(shù)返回值的數(shù)據(jù)類型 B、函數(shù)形參的數(shù)據(jù)類型
C、調(diào)用該函數(shù)時的實參的數(shù)據(jù)類型 D、任意指定的
16、數(shù)據(jù)類型
A
13、自然語言的計算機處理可以分為___________
A、文字和語音 B、語義 C、語法 D、語用
A
14、DLL的優(yōu)點有_____________
A、程序?qū)崿F(xiàn)模塊化 B、可方便地升級 C、程序加載速度快 D、程序不用編譯
A B C (P157)
(三)判斷題
1、匯編語言語句與特定的機器指令有一一對應(yīng)的關(guān)系 (對)
2、支撐機器語言的理論基礎(chǔ)是馮諾依曼模型 (錯)
3、形式化語言是人工語言符號系統(tǒng)發(fā)展的
17、第三階段 (錯)
(四)討論題
1、簡述匈牙利命名法。
匈牙利命名法。其基本原則是:標識符=屬性+類型+對象描述,其中每一對象的名稱都要求有明確含義,可以取對象名字全稱或名字的一部分。命名要基于容易記憶容易理解的原則。(P150)
2、試比較“while型”循環(huán)結(jié)構(gòu)和“do-while型”循環(huán)結(jié)構(gòu)。
“while型”循環(huán)結(jié)構(gòu)的邏輯含義是先判斷條件,若成立,則執(zhí)行需要重復(fù)的程序塊,然后再去判斷重復(fù)條件, 以決定是否繼續(xù)循環(huán)?!癲o-while型”循環(huán)結(jié)構(gòu)的邏輯含義是先執(zhí)行需要重復(fù)的循環(huán)體,然后計算關(guān)系表達式,以決定是否繼續(xù)循環(huán)。也就是說使用“while型”循環(huán)結(jié)構(gòu)可能不進行入循環(huán),循環(huán)體一次也不執(zhí)行;而“do-while型”循環(huán)結(jié)構(gòu)至少要執(zhí)行一次循環(huán)體。
(P153)
3、試比較腳本語言與其他類型語言的區(qū)別
腳本語言語法簡單。腳本通常是解釋運行而非編譯。腳本通常以文本(如ASCII)保存,只在被調(diào)用時進行解釋或編譯。,執(zhí)行腳本語言通常需要相應(yīng)的解釋器。
腳本編程速度更快,腳本文件明顯小于高級編程語言。腳本通常是解釋執(zhí)行的,速度較二進制文件執(zhí)行要慢,且運行時更耗內(nèi)存。
(P147)