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