編程語言B卷參考答案_第1頁
編程語言B卷參考答案_第2頁
編程語言B卷參考答案_第3頁
編程語言B卷參考答案_第4頁
編程語言B卷參考答案_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、題號(hào)一二三四五六七八九十基本題 總分附加題得分評卷人文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持深圳大學(xué)期末考試試卷開/閉卷閉卷A/B卷B課程編號(hào)課程名稱編程語言學(xué)分1,5命題人(簽字) 審題人(簽字)年 月二一.選擇題(共10題,每小題2分,共20分,答案請?zhí)顚懺诘谒拇箢}前的表格中).以下哪條不影響語言的可讀性?()A .簡單性 B, 正交性 C.語法設(shè)計(jì)D. 類型檢查.開發(fā)專家系統(tǒng)時(shí),通過描述事實(shí)和規(guī)則由模式匹配得出結(jié)論,這種情況下適用的編程 語百是()。A .邏輯式語言 B .函數(shù)式語言 C .腳本語言 D .命令式(或過程式)語H.考慮以下文法: 一 a | b 一 b

2、 | b以下語句中哪個(gè)屬于該文法生成的語言?()A.bbaabbB.bbababbC.babaabbD.bababb.以下哪些文法有二義性?()A.A +|B *id -a|b|cB.A 一+*|id -a|b|cC.A -*|B +id -a|b|cD,以上三項(xiàng)均二義性.以下哪幾項(xiàng)屬于變量的屬性?()名字類型生命周期數(shù)值綁定A. B. C. D. 6,以下哪些不屬于根據(jù)存儲(chǔ)空間劃分的數(shù)組分類?()A,固定棧動(dòng)態(tài)數(shù)組 B.棧動(dòng)態(tài)數(shù)組 C.靜態(tài)數(shù)組 D,顯示堆動(dòng)態(tài)數(shù)組.子程序的一般特性包括以下哪幾項(xiàng)?()每個(gè)子程序只有一個(gè)入口調(diào)用子程序與被調(diào)用子程序之間是平等的當(dāng)執(zhí)行被調(diào)用子程序時(shí),調(diào)用子程序被

3、暫停被調(diào)用子程序終止時(shí),控制權(quán)交還給調(diào)用子程序1文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持A. B. C. D.以下哪幾項(xiàng)屬于指針類型的設(shè)計(jì)問題?()指針變量的生存期堆動(dòng)態(tài)變量的生存期指針的聲明指針的初始化A.B. C. D. .在采用從右到左計(jì)算的語言中,已知b=10,以下哪些語句一定能改變變量b的值?()if(b+ != 12) & (b5) b = b/2;while (b+ / 3) | (b 12) break;if(b+ != 12) | (b5) b = b/2;D.以上三項(xiàng)都不能.以下哪些問題屬于迭代語句的設(shè)計(jì)問

4、題()控制迭代語句的設(shè)計(jì)迭代語言的類型控制語句的位置迭代表達(dá)式無法表達(dá)的值A(chǔ). B. C.D.二.判斷題 (共10題,每小題1分,共10分,答案請?zhí)顚懺诘谒拇箢}前的表格中).聲明式語言包括了邏輯式語言,關(guān)系式語言,和基于約束的語言。().程序語言描述分為語法和語義。(). BNF中,句子是指由開始符號(hào)經(jīng)過推導(dǎo)得到的字符串。().相對于BNF EBNFS然增強(qiáng)了可讀性和可寫性,但并未增強(qiáng)表達(dá)能力。().引用類型變量和指針變量一樣,可以改變所指向的內(nèi)存地址的數(shù)值。().任何一個(gè)計(jì)數(shù)循環(huán)都可以用邏輯控制循環(huán)來構(gòu)建,反之也成立。().顯式堆動(dòng)態(tài)變量是可以沒有名字的。().在編程語言中,一般采用公理語義

5、來驗(yàn)證程序的正確性。().類型的擴(kuò)展轉(zhuǎn)換通常是安全的。().關(guān)系運(yùn)算符的優(yōu)先級通常高于算術(shù)運(yùn)算符。()三.填空題(共5空,每空2分,共10分,答案請?zhí)顚懺诘谒拇箢}前的表格中).按照運(yùn)算符的優(yōu)先級從高到低排序有+,-(一元),二,and,結(jié)合性為從右到左, 寫出下列表達(dá)式的運(yùn)算順序。a+bc=0 and c+d=(-a )c(-d)=a and -a+by) then b = a-3 else b=2*a-1; b5(6分)考慮下列程序:int x;void setx(int n) x = n;void printx() print(x); /打印函數(shù)void foo(function S, f

6、unction P, int n)int x = 5;if n % 2 = 1 then setx(n);else S(n);if n 3 then printx();else P();setx(0);foo(setx, printx, 1); printx();setx(0);foo(setx, printx, 2); printx();setx(0);foo(setx, printx, 3); printx();setx(0);foo(setx, printx, 4); printx();假設(shè)語言采用動(dòng)態(tài)作用域,那么(1)當(dāng)采用淺綁定時(shí),這個(gè)程序?qū)⒋蛴〕鍪裁矗?2)當(dāng)采用深綁定時(shí),這個(gè)程序

7、將打印出什么?(4分)考慮下列程序int i = 0;3文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持int fun(int k) if(i % 2 = 0) return k*2;return k;)void main() int x = 3;x = +i + fun(x);的值什么?簡要寫出計(jì)算過程的值什么?簡要寫出計(jì)算過程swap調(diào)用后,變量value和list的值分別是什么?)(1)如果操作數(shù)是從左到右計(jì)算,(2)如果操作數(shù)是從右到左計(jì)算,(9分)考慮下列程序void swap(int a, int b) a = a+b;

8、b = a-b; a = a-b;)void main() int value = 2, list5 = 1,2,3,4,5;swap(value, list0);swap(list0, value);swap(value, listvalue);對以下每種參數(shù)傳遞方法,在每個(gè)(1)按值傳遞(2)按引用傳遞(3)按值-結(jié)果傳遞五、解答題(共2題,25+10, 35分)(25分)假設(shè)某語言的表達(dá)式遵循如下的結(jié)合性和優(yōu)先級規(guī)則:優(yōu)先級最局*(乘方)%, 兀+, 兀-最低*,/結(jié)合性左結(jié)合%, 兀+, 兀-右結(jié)合*,*,/(1)假設(shè)操作數(shù)是整數(shù)和c,d,e,且允許括號(hào),請根據(jù)以上優(yōu)先級和結(jié)合性,寫出

9、 BNF(2)根據(jù)(1)中的BNF寫出表達(dá)式+4%3/3*3的推導(dǎo)樹及其最右推導(dǎo)前五步和后五步 請寫出計(jì)算這些表達(dá)式的屬性文法,并對(2)中表達(dá)式進(jìn)行計(jì)算(10分)給定下列程序r = x;q = 0;while (y = r) r = r - y;q = q + 1;請分別寫出在狀態(tài)x=7,y=3下的操作語義和指稱語義(包括具體過程)附加題 (共2題,10+20,共30分)(10 分)假設(shè) FOR語句的形式為 FOR(; ; ), 以計(jì)算最弱 前置條件為例,設(shè)計(jì)FOR句的公理語義。(20分)利用附加題1中的規(guī)則,計(jì)算下列程序P和后置條件的最弱前置條件(包括 具體過程)f = 1;4文檔來源為:

10、從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持for(c = n; c 1; c = c - 1) x = f;for(y = c; y 1; y = y-1) f = f + x;)f = n!201702編程語言試卷B參考答案與評分標(biāo)準(zhǔn)一、選擇題(10小題,每小題2分,共20分)DADBC DDACA二、判斷題(10小題,每小題1分,共10分)TTFTF FTTTF三、填空題(5個(gè)空,每空2分,共10分)21 11) (a+b) 1c) 2=0)3 and (c+d) 4=(-a)5)6)7(2) (c (-d) 1)2=a)3 and (

11、-(a+b) 4)5=(-b)6d)7)8)922 (1) (a+b) 1c)2=0)3 and c)4+d)5=(-a)6)7(2) (c (-d) 1)2=a)3 and (-a)4)5+b)65,即a8;條件不成立時(shí),2a-15,即a3 (1分)。因此if語句的前置條件是a8 (1分)。最后的前置條件為 2b+a8 (1分)。(6分)1, 0; 2, 0; 3, 0; 4, 0 (第一組和第三組各1分,第二組和第四組各 0.5分)1, 0, 5, 2; 0, 0; 4, 4 (第一組和第三組各1分,第二組和第四組各 0.5分)(4分)(1)從左到右:先算+i,得1 (此時(shí)i=1),再算f

12、un(x),得3,結(jié)果為4 (2分)(2)從左到右:先算fun(x),得6,再算+i,得1 (此時(shí)i = 1),結(jié)果為7 (2分)注:只寫結(jié)果無過程得1分(9分)(1)按值傳遞:value=2, list5 = 1,2,3,4,5 (1 分)value=2, list5 = 1,2,3,4,5 (1 分)value=2, list5 = 1,2,3,4,5 (1 分)(2)按引用傳遞:value=1, list5 = 2,2,3,4,5 (1 分)value=2, list5 = 1,2,3,4,5 (1 分)value=3, list5 = 1,2,2,4,5 (1 分)(3)按值結(jié)果傳遞:

13、value=1, list5 = 2,2,3,4,5 (1 分)value=2, list5 = 1,2,3,4,5 (1 分)value=3, list5 = 1,2,2,4,5 (1 分)五、解答題(25+10=35分)1. (1) (5 分)5文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持 - * | / | - % | - + | - | - * | - INT | c | d | e | ( )注:只要文法正確即可得5分,否則根據(jù)產(chǎn)生式酌情給分,例如3個(gè)產(chǎn)生式1分(2)推導(dǎo)樹(略)(5分),最右推導(dǎo)(略)(5分,每步0.5分

14、)(3)屬性文法,其中屬性為 val (1分) - * 語義函數(shù): .val = mul(.val, .val) - / 語義函數(shù): .val = div(.val, .val) - 語義函數(shù): .val = .val - % 語義函數(shù): .val = mod(,val, .val) - 語義函數(shù): ,val = .val - +語義函數(shù):.val = .val - -語義函數(shù):.val = -.val - 語義函數(shù):.val = .val - * 語義函數(shù): .val = power(.val, .val) - 語義函數(shù):.val = .val - INT | a | b | c語義函數(shù):.

15、val = lookup(table)l -,(, ,),語義函數(shù): ,val = .val注:只要語義函數(shù)符合(1)文法即可得6分,否則根據(jù)語義函數(shù)酌情給分,例如5個(gè)語義函數(shù)2分求值過程(略,可在(2)中推導(dǎo)樹中標(biāo)明),3分,只給正確結(jié)果得1分。(10 分)記整個(gè)程序?yàn)?P,循環(huán)語句為 Wo操作語義(5分)r=x, x=7,y=3 - x=7,y=3,r=7 TOC o 1-5 h z q=0, x=7,y=3,r=7 - x=7,y=3,r=7,q=0(1 分)(可合并為 r=x; q=0, x=7,y=3 -x=7,y=3,r=7,q=0)在x=7,y=3,r=7,q=0下,y x=7,

16、y=3,r=4,q=0q=q+1, x=7,y=3,r=4,q=0 - x=7,y=3,r=4,q=1(1 分)(可合并 r=r-y; q=q+1, x=7,y=3,r=7,q=0 - x=7,y=3,r=4,q=1)在x=7,y=3,r=4,q=1下,y x=7,y=3,r=1,q=2(1 分)在x=7,y=3,r=4,q=1下,y x=7,y=3,r=1,q=2(1 分)6文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.文檔來源為:從網(wǎng)絡(luò)收集整理,word版本可編輯.歡迎下載支持指稱語義(5分)M(P)(x=7,y=3)=M(r=x; q=0; W)(x=7,y=3)=(M(W) o M(

17、r=x; q=0;) (x=7,y=3)=M(W)( M(r=x; q=0;)(x=7,y=3) TOC o 1-5 h z =M(W)( x=7,y=3,r=7,q=0 )(1 分)=M(r=r-y; q=q+1; W)( x=7,y=3,r=7,q=0)=(M(W) o M(r=r-y; q=q+1;) (x=7,y=3,r=7,q=0)(0.5 分)=M(W)( M(r=r-y; q=q+1;)(x=7,y=3,r=7,q=0)=M(W)( x=7,y=3,r=4,q=1 )(1 分)=M(r=r-y; q=q+1; W)( x=7,y=3,r=4,q=1)=(M(W) o M(r=r-

18、y; q=q+1;) (x=7,y=3,r=4,q=1)(0.5 分)=M(W)( M(r=r-y; q=q+1;)(x=7,y=3,r=4,q=1)=M(W)( x=7,y=3,r=1,q=2 )(1 分)=x=7,y=3,r=1,q=2(1 分)附加題(10+20=30分)1 (10 分)若P stmt1 I,且I and cond stmt3;stmt2 I,那么則有P FOR (stmt1; cond; stmt2) stmt3 I and not cond注:轉(zhuǎn)化WHILE語句也可以。2 ( 20 分)外層For語句的不變式I1為f = n!/c! and c=0里層 For 語句的不變式 I2 為 f= (n!/c!)*(c-y+1) and y0 and c=y and x =(n!/c!)(1)證明外層循環(huán)終止時(shí)能推出給定的后置條件(2)求解外層for的最弱前置條件內(nèi)層for的最弱前置條件x=f的最弱前置條件(3)求解f = 1的最弱前置條件(n=0)(1)證明外層循環(huán)終止時(shí)能推出給定的后置條件I1 and not c 1 = f = n!/c! and c=0 and c f = n!/c! and c!=1 = f = n!(2)求解外層fo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論