【MOOC答案】《C++程序設(shè)計實踐》(北京科技大學(xué))章節(jié)作業(yè)慕課答案_第1頁
【MOOC答案】《C++程序設(shè)計實踐》(北京科技大學(xué))章節(jié)作業(yè)慕課答案_第2頁
【MOOC答案】《C++程序設(shè)計實踐》(北京科技大學(xué))章節(jié)作業(yè)慕課答案_第3頁
【MOOC答案】《C++程序設(shè)計實踐》(北京科技大學(xué))章節(jié)作業(yè)慕課答案_第4頁
【MOOC答案】《C++程序設(shè)計實踐》(北京科技大學(xué))章節(jié)作業(yè)慕課答案_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

【MOOC答案】《C++程序設(shè)計實踐》(北京科技大學(xué))章節(jié)作業(yè)慕課答案

有些題目順序不一致,下載后按鍵盤ctrl+F進行搜索第一章RAPTOR:描述問題的分析和設(shè)計第一章作業(yè)1.分段電費【問題描述】夏天到了,各家各戶的用電量都增加了許多,相應(yīng)的電費也交的更多了。小玉家今天收到了一份電費通知單。小玉看到上面寫:月用電量在150千瓦時及以下部分按每千瓦時0.4463元執(zhí)行,月用電量在151~400千瓦時的部分按每千瓦時0.4663元執(zhí)行,月用電量在401千瓦時及以上部分按每千瓦時0.5663元執(zhí)行;小玉想自己驗證一下,電費通知單上應(yīng)交電費的數(shù)目到底是否正確呢。請編寫一個程序,已知用電總計,根據(jù)電價規(guī)定,計算出應(yīng)交的電費應(yīng)該是多少?!据斎胄问健枯斎胍粋€整數(shù),表示用電總計(單位以千瓦時計),不超過10000?!据敵鲂问健枯敵鲆粋€數(shù),保留到小數(shù)點后1位(單位以元計,保留到小數(shù)點后1位)?!緲永斎搿?67【樣例輸出】121.5

答案:【測試用例1正確。1分輸入50輸出:22.3測試用例2正確。1分輸入150輸出:66.9測試用例3正確。1分輸入250輸出:113.6測試用例4正確。1分輸入350輸出:160.2測試用例5正確。1分輸入450輸出:211.8】2.奇偶排序【問題描述】給出數(shù)組a=[a_1,a_2,a_3,a_4,...,a_n],其中每個數(shù)均不相同,n為奇數(shù)。給定一個操作f(i),當(dāng)a_i>a_(i+1)時,交換a_i與a_(i+1),否則不進行交換?,F(xiàn)在我們想通過一種名叫“奇偶排序”的辦法,將該數(shù)組按增序排序,排序方法如下:在第k趟排序中:如果k為奇數(shù),則進行f(1),f(3),f(5),....,f(n-2)的操作。如果k為偶數(shù),則進行f(2),f(4),f(6),....,f(n-1)的操作??梢宰C明,通過這樣的辦法,一定可以將數(shù)組實現(xiàn)升序排序?,F(xiàn)在請你輸出,哪一趟排序完之后,數(shù)組第一次實現(xiàn)了升序排序。(如果已經(jīng)為升序,則輸出0)【輸入形式】第一行輸入一個數(shù)t(t<100),代表一共有t組數(shù)據(jù)。對每組數(shù)據(jù),輸入兩行,第一行為一個數(shù)n(3<=n<=999,n為奇數(shù)),代表數(shù)組的長度。第二行輸入n個不同的數(shù)a_1,a_2,...,a_n(a_i<=1000)?!据敵鲂问健恳还灿衪行,對每組數(shù)據(jù),輸出一行答案,代表數(shù)組第一次實現(xiàn)了升序排序的趟數(shù)。【樣例輸入】3332174571326512345【樣例輸出】350【樣例說明】第一組數(shù)據(jù)中,對應(yīng)排序過程為:在第一次排序后,對應(yīng)數(shù)組為[2,3,1];在第二次排序后,對應(yīng)數(shù)組為[2,1,3];在第三次排序后,對應(yīng)數(shù)組為[1,2,3];故答案為3。

答案:【測試用例1正確1分輸入10515432541325525431542531513542515324521435535142523154545213輸出:4355441435測試用例2正確1分輸入15925897413631237645327117171672148361113121011554931232342081622114231310123919617152152187115241357513642719111063151724918167125181314191119248113105679689147235935168724999847513621915851431317918191612211671014177161412515171048921363111輸出:70717019341287691417測試用例3正確輸入29693485217101100543910266095496851981973527289858101873680752072151330402148241152619689573770998831418142908619337153231617256482745448836241412329434747679676524785439156629596384937873315655692227746385069輸出:899測試用例4正確。1分輸入5761437525512343321523145514235輸出:64333測試用例5正確。1分輸入1171215397161451061241713118輸出:12】3.輸入任意整數(shù)存入變量n中,若n≤0則輸出“Error!”;否則組織循環(huán)結(jié)構(gòu)流程計算sum=1/2+2/3+3/4+…+n/(n+1)的值,然后分別輸出變量n和sum的值。

答案:【輸入n:1分輸出sum:1分判斷n<=0:1分循環(huán)賦初值:2分i=1,sum=0循環(huán)結(jié)構(gòu):1分Loop循環(huán)條件:1分i>n循環(huán)體:2分sum賦值,i賦值開始結(jié)束:1分】第一章測驗1.單選題:算法的空間復(fù)雜度是指【】

選項:

A、算法程序的長度

B、算法程序中的指令條數(shù)

C、算法程序所占的存儲空間

D、算法執(zhí)行過程中所需要的存儲空間

答案:【算法執(zhí)行過程中所需要的存儲空間】2.單選題:算法的時間復(fù)雜度是指【】

選項:

A、執(zhí)行算法程序所需要的時間

B、算法程序的長度

C、算法執(zhí)行過程中所需要的基本運算次數(shù)

D、算法程序中的指令條數(shù)

答案:【算法執(zhí)行過程中所需要的基本運算次數(shù)】3.單選題:下面敘述正確的是【】

選項:

A、算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

B、算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)

C、算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D、以上三種描述都不對

答案:【算法的有窮性是指算法必須能在執(zhí)行有限個步驟之后終止】4.單選題:算法的有窮性是指:

選項:

A、算法程序的運行時間是有限的

B、算法程序所處理的數(shù)據(jù)量是有限的

C、算法程序的長度是有限的

D、算法只能被有限的用戶使用

答案:【算法程序的運行時間是有限的】5.單選題:程序流程圖中帶有箭頭的線段表示的是:

選項:

A、圖元關(guān)系

B、數(shù)據(jù)流

C、控制流

D、調(diào)用關(guān)系

答案:【控制流】6.單選題:某算法的時間復(fù)雜度為O(),表明該算法的【】。

選項:

A、問題規(guī)模是

B、執(zhí)行時間等于

C、執(zhí)行時間與成正比

D、問題規(guī)模與成正比

答案:【執(zhí)行時間與成正比】7.單選題:下列敘述中正確的是【】

選項:

A、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度也必定大

B、一個算法的空間復(fù)雜度大,則其時間復(fù)雜度必定小

C、一個算法的時間復(fù)雜度大,則其空間復(fù)雜度必定小

D、上述三種說法都不對

答案:【上述三種說法都不對】8.單選題:下列選項中不屬于結(jié)構(gòu)化程序設(shè)計方法的是【】

選項:

A、自頂向下

B、逐步求精

C、模塊化

D、可復(fù)用

答案:【可復(fù)用】9.單選題:結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是【】

選項:

A、程序的規(guī)模

B、程序的易讀性

C、程序的執(zhí)行效率

D、程序的可移植性

答案:【程序的易讀性】10.單選題:一個算法應(yīng)該是【】。

選項:

A、程序

B、問題求解步驟的描述

C、要滿足五個基本屬性

D、A和C

答案:【問題求解步驟的描述】第二章鏈表與簡單數(shù)據(jù)結(jié)構(gòu)第二章作業(yè)1.采用遞歸的方法逆序打印單鏈表:輸入一組字符,按順序建立單鏈表,最后逆序輸出。輸入的數(shù)據(jù)為字符型,輸入格式:第1行,字符的個數(shù)k;第2行,用空格分開的k個字符。輸出格式:一行輸出,空格為分隔符。例:輸入:5abcde輸出:edcba

鏈表節(jié)點定義:0-2分構(gòu)建鏈表:0-2分遞歸實現(xiàn):0-2分輸出結(jié)果正確:0-2分】第二章測驗1.單選題:已知H為不帶頭節(jié)點的單鏈表。在H的表頭插入一個新結(jié)點t的語句段是:()

選項:

A、t->next=H;H=t;

B、H=t;t->next=H;

C、t->next=H->next;H=t;

D、t->next=H->next;H->next=t

答案:【t->next=H;H=t;】2.單選題:判斷帶頭結(jié)點的單鏈表H為空的條件是()

選項:

A、H==NULL

B、H=NULL

C、H->next==NULL

D、H->next==H

答案:【H->next==NULL】3.單選題:已知H是帶頭節(jié)點的單鏈表,節(jié)點p既不是第一個節(jié)點,也不是尾節(jié)點,刪除p節(jié)點直接后繼的語句是()

選項:

A、p->next=null;

B、p=p->next;

C、p=p->next->next;

D、p->next=p->next->next;

答案:【p->next=p->next->next;】4.單選題:某線性表中最常用的操作是“在最后一個元素之后插入一個元素”和“刪除第一個元素”,則采用哪種數(shù)據(jù)結(jié)構(gòu)最節(jié)省操作時間()。

選項:

A、單鏈表

B、僅有頭指針的單循環(huán)鏈表

C、僅有尾指針的單循環(huán)鏈表

D、以上三種都一樣

答案:【僅有尾指針的單循環(huán)鏈表】5.單選題:在一個單向循環(huán)鏈表中,若要在p所指的節(jié)點之后插入一個新結(jié)點s,則需要執(zhí)行下面哪個語句段()。

選項:

A、p->next=s;s->next=p;

B、s->next=p->next;p->next=s;

C、s->next=p->next;p=s;

D、s->next=p;p->next=s;

答案:【s->next=p->next;p->next=s;】6.單選題:在一個以H為頭節(jié)點的單循環(huán)鏈表中,指針p指向鏈表尾的條件是()。

選項:

A、p->next==H

B、p->next==NULL

C、p->next->next==H

D、p->next=H

答案:【p->next==H】7.單選題:已知鏈表H,指針p指向H中某結(jié)點,執(zhí)行語句p=p->next不會刪除該鏈表中結(jié)點。

選項:

A、正確

B、錯誤

答案:【正確】8.單選題:鏈表的長度是鏈表所占用的存儲空間的大小。

選項:

A、正確

B、錯誤

答案:【錯誤】9.單選題:在單鏈表中,只要知道某個節(jié)點的指針即可訪問該節(jié)點。因此,單鏈表是一種隨機存取結(jié)構(gòu)。

選項:

A、正確

B、錯誤

答案:【錯誤】[vk-content]10.單選題:線性表采用鏈?zhǔn)酱鎯?,便于插入和刪除操作。

選項:

A、正確

B、錯誤

答案:【正確】第三章數(shù)據(jù)存儲及內(nèi)存管理第三章測驗1.單選題:執(zhí)行以下語句后,變量a的值是?inta=1;int*p1=&a;*p1=2;a=3;int*p2=p1;*p2=4;

選項:

A、1

B、2

C、3

D、4

答案:【4】2.單選題:下列函數(shù)的輸出內(nèi)容是:chara[10]={"abcdefg"};char*p=&a[3];cout<<p;

選項:

A、“defg”

B、“defg”

C、“de”

D、“de”

答案:【“defg”】3.單選題:下列函數(shù)的運行結(jié)果是:inta[6]={1,2,3,4,5,6};int*p=a;cout<<*p++;cout<<*(p++);cout<<*(++p);cout<<*++p;

選項:

A、1234

B、1245

C、2345

D、2356

答案:【1245】4.單選題:已知有如下代碼,執(zhí)行后*p1和*p2的值是?int*p1,p2;inta=1;p1=&a;p2=p1;*p1=2;*p2=3;

選項:

A、23

B、33

C、21

D、無法編譯

答案:【無法編譯】5.單選題:閱讀以下代碼,請問函數(shù)的輸出結(jié)果是?#includeusingnamespacestd;intmain(){inta=1;intb=2;intc=3;intd=4;int*p1=&a;int*p2=&b;int*p3=&c;p2=p3;p1=&d;p3=p1;cout<<a<<<<<*p1<<*p2<<*p3;<span=""><<<<*p1<<*p2<<*p3;<>}

選項:

A、4344434

B、1234434

C、4344411

D、1234411

答案:【1234434】6.多選題:已知inta=1;下列四句話,能夠成功編譯的是:

選項:

A、int*p1=a;

B、int*p2=&a;

C、int*p3=*p1;

D、int*p4=&*p2;

答案:【int*p2=&a;;int*p4=&*p2;】第三章作業(yè)1.【題目描述】用鏈表實現(xiàn)插入排序,從小到大排序?!据斎敫袷健康谝恍幸粋€數(shù)n表示數(shù)的個數(shù)第二行n個數(shù)表示待排序的序列【輸出格式】一行n個數(shù)表示排序的結(jié)果?!緲永斎搿?321【樣例輸出】123

答案:【正確定義了鏈表結(jié)點類(或結(jié)構(gòu)體)類的數(shù)據(jù)成員定義正確類的構(gòu)造函數(shù)正確類的析構(gòu)函數(shù)正確鏈表能夠被正確建立,不發(fā)生運行時錯誤鏈表能夠正確完成插入排序的功能能夠正確按順序輸出排序后的答案防止了內(nèi)存泄漏問題】2.【題目描述】給你一個字符串,其中有若干數(shù)字,利用鏈表相關(guān)知識從頭開始將數(shù)字按順序移動至字符串末端。如19js98ss移動后是jsss1998【樣例輸入】19js98ss【樣例輸出】jsss1998

答案:【正確定義了數(shù)據(jù)存儲(例如數(shù)組、鏈表)正確遍歷整個數(shù)組正確完成輸入字符串的讀入正確判斷數(shù)字正確完成將所有數(shù)字移動至末尾的功能能夠正確輸出答案能夠正確按順序輸出排序后的答案】第四章面向?qū)ο蟮母拍罴皯?yīng)用第四章測驗1.多選題:以下關(guān)于智能指針,描述正確的是

選項:

A、make_unique()函數(shù)不會創(chuàng)建新的對象。

B、智能指針本質(zhì)是函數(shù)模板。

C、share_ptr指針與其他指針一起管理動態(tài)對象,只有當(dāng)管理此對象的所有指針生存期結(jié)束之后,此對象才能被釋放。

D、weak_ptr可以指向share_ptr所管理的動態(tài)對象。

答案:【share_ptr指針與其他指針一起管理動態(tài)對象,只有當(dāng)管理此對象的所有指針生存期結(jié)束之后,此對象才能被釋放。;weak_ptr可以指向share_ptr所管理的動態(tài)對象?!?.多選題:關(guān)于對象的復(fù)制和移動語義,以下描述正確的是

選項:

A、將一個對象賦值給另一個對象時,會調(diào)用復(fù)制構(gòu)造函數(shù)。

B、用一個舊對象去初始化新對象時,會調(diào)用復(fù)制構(gòu)造函數(shù)。

C、在實現(xiàn)移動構(gòu)造函數(shù)時要將動態(tài)數(shù)組的控制權(quán)由傳入對象轉(zhuǎn)移給當(dāng)前對象。

D、左值引用可以引用匿名對象。

答案:【用一個舊對象去初始化新對象時,會調(diào)用復(fù)制構(gòu)造函數(shù)。;在實現(xiàn)移動構(gòu)造函數(shù)時要將動態(tài)數(shù)組的控制權(quán)由傳入對象轉(zhuǎn)移給當(dāng)前對象。】3.多選題:關(guān)于迭代器,以下描述正確的是

選項:

A、由std::set::const_iteratorit;定義的迭代器it,僅適用于set型容器。

B、由std::set::const_iteratorit;定義的迭代器it,可以進行自增自減運算。

C、容器stack、容器queue、容器priority_queue沒有迭代器。

D、使用間址運算可獲取迭代器所指元素的值。

答案:【由std::set::const_iteratorit;定義的迭代器it,僅適用于set型容器。;容器stack、容器queue、容器priority_queue沒有迭代器。;使用間址運算可獲取迭代器所指元素的值。】4.多選題:關(guān)于容器,描述正確的是

選項:

A、vector容器本質(zhì)上是類模板

B、deque容器具備vector容器所沒有的功能,即將新元素添加到序列尾端。

C、array、vector和deque中的元素會被按序存放在一塊連續(xù)的內(nèi)存中。

D、在刪除頭尾元素的情形下,list容器與vector容器效率一樣。

答案:【vector容器本質(zhì)上是類模板;array、vector和deque中的元素會被按序存放在一塊連續(xù)的內(nèi)存中。;在刪除頭尾元素的情形下,list容器與vector容器效率一樣?!?.多選題:關(guān)于類模板,描述正確的是

選項:

A、類模板制作出的類中數(shù)據(jù)成員個數(shù)相同并且函數(shù)成員個數(shù)也相同。

B、類模板如果有數(shù)組型的數(shù)據(jù)成員,數(shù)組的長度可以用變量定義。

C、類模板內(nèi)部有可能出現(xiàn)對全局函數(shù)的定義。

D、對類模板中的成員函數(shù)進行專門化處理的目的是讓成員函數(shù)適用于特殊場景。

答案:【類模板制作出的類中數(shù)據(jù)成員個數(shù)相同并且函數(shù)成員個數(shù)也相同。;類模板如果有數(shù)組型的數(shù)據(jù)成員,數(shù)組的長度可以用變量定義。;類模板內(nèi)部有可能出現(xiàn)對全局函數(shù)的定義。;對類模板中的成員函數(shù)進行專門化處理的目的是讓成員函數(shù)適用于特殊場景。】6.多選題:關(guān)于函數(shù)模板,描述正確的是()

選項:

A、函數(shù)模板的功能是制作一組參數(shù)類型相同的函數(shù)。

B、編譯器在編譯由模板定義的函數(shù)時,對于函數(shù)調(diào)用語句,會根據(jù)形參的類型,對實參進行類型轉(zhuǎn)換。

C、template中的T可以作為返回類型、參數(shù)類型和函數(shù)中的變量類型。

D、編譯器負責(zé)實現(xiàn)函數(shù)模板的實例化。

答案:【template中的T可以作為返回類型、參數(shù)類型和函數(shù)中的變量類型。;編譯器負責(zé)實現(xiàn)函數(shù)模板的實例化?!?.多選題:以下關(guān)于類間關(guān)系,描述正確的是()

選項:

A、有類A和類B,如果A包含B類型的數(shù)據(jù)成員,則類A和B是has-a關(guān)系。

B、有類A和類B,如果A包含B類型的指針或引用,則A和B是part-of關(guān)系。

C、use-a和has-a關(guān)系在代碼中的表現(xiàn)形式是相同的,我們只能從語義的角度區(qū)分這兩種關(guān)系。

D、part-of、has-a、uses-a這三種關(guān)系的共同點是A類中包含B類型的成員。

答案:【use-a和has-a關(guān)系在代碼中的表現(xiàn)形式是相同的,我們只能從語義的角度區(qū)分這兩種關(guān)系。;part-of、has-a、uses-a這三種關(guān)系的共同點是A類中包含B類型的成員。】8.多選題:以下關(guān)于類的繼承關(guān)系,描述正確的是()

選項:

A、類之間的繼承關(guān)系具有傳遞性。

B、父類具有子類的特征。

C、一個基類可以有多個派生類。

D、一個派生類可以有多個基類。

答案:【類之間的繼承關(guān)系具有傳遞性。;一個基類可以有多個派生類。;一個派生類可以有多個基類?!?.單選題:weak_ptr僅能存儲動態(tài)對象的地址,不能訪問對象的成員。

選項:

A、正確

B、錯誤

答案:【正確】10.單選題:move()函數(shù)可將賦值運算符的右操作數(shù)強制轉(zhuǎn)換為左值。

選項:

A、正確

B、錯誤

答案:【錯誤】11.單選題:右值引用的宿主生存期非常短,通常是用完就會被釋放掉。

選項:

A、正確

B、錯誤

答案:【正確】12.單選題:可以用下標(biāo)訪問list容器中的元素。

選項:

A、正確

B、錯誤

答案:【錯誤】13.單選題:派生類對象不會建立基類的私有數(shù)據(jù)成員。

選項:

A、正確

B、錯誤

答案:【錯誤】14.單選題:派生類公有繼承基類時,可以訪問基類的所有數(shù)據(jù)成員。

選項:

A、正確

B、錯誤

答案:【錯誤】第四章作業(yè)1.繼續(xù)完善大學(xué)數(shù)據(jù)處理程序。要求:思考在處理大學(xué)數(shù)據(jù)時可使用哪些容器模板,并利用容器模板改寫代碼。思考在處理大學(xué)數(shù)據(jù)時可使用哪些算法模板,并利用算法模板改寫代碼。思考在處理大學(xué)數(shù)據(jù)時有哪些功能相近的操作,自定義并使用函數(shù)模板。思考在處理對象之間的復(fù)制操作時,如何利用移動構(gòu)造函數(shù)使復(fù)制操作更有效率。提交:源代碼(壓縮成rar文件上傳)。實驗報告(填寫到答題框中),需包含:體現(xiàn)程序功能的多張運行截圖、體現(xiàn)使用容器模板的關(guān)鍵代碼及其文字分析、體現(xiàn)使用算法模板的關(guān)鍵代碼及其文字分析、體現(xiàn)自定義函數(shù)模板的關(guān)鍵代碼和文字分析、體現(xiàn)移動構(gòu)造函數(shù)的關(guān)鍵代碼及其文字分析。

答案:【所提交文件的完整性和規(guī)范性:提交了實驗報告,并且實驗報告書寫清晰規(guī)范(1分)提交了源代碼,源代碼書寫清晰規(guī)范,包含適當(dāng)?shù)淖⑨專?分)實驗報告中包含體現(xiàn)容器模板使用的關(guān)鍵代碼(1分),對關(guān)鍵代碼有合理的文字分析(1分)實驗報告中包含體現(xiàn)算法模板使用的關(guān)鍵代碼(1分),對關(guān)鍵代碼有合理的文字分析(1分)實驗報告中包含體現(xiàn)自定義函數(shù)模板的關(guān)鍵代碼(1分),對關(guān)鍵代碼有合理的文字分析(1分)實驗報告中包含體現(xiàn)移動構(gòu)造函數(shù)的關(guān)鍵代碼(1分),對關(guān)鍵代碼有合理的文字分析(1分)】2.編寫C++程序處理某大學(xué)的數(shù)據(jù),大學(xué)的數(shù)據(jù)包括學(xué)生信息、教師信息、課程信息、選課信息、教室信息等。(1)思考并定義所需的類以及類間關(guān)系。(2)類的數(shù)目需在三個以上,類間關(guān)系需體現(xiàn)part-of、has-a、use-a、is-a。(3)在處理繼承關(guān)系時,需用到虛函數(shù)和抽象類。提交:(1)源代碼(壓縮成rar文件上傳)。(2)實驗報告(填寫到答題框中),需包含:包含所有類和類間關(guān)系的類圖、體現(xiàn)程序功能的多張運行截圖、體現(xiàn)以上四種類間關(guān)系的關(guān)鍵代碼及其文字分析、體現(xiàn)虛函數(shù)和抽象類使用的關(guān)鍵代碼和文字分析。

答案:【所提交文件的完整性和規(guī)范性:提交了實驗報告,并且實驗報告書寫清晰規(guī)范(1分)提交了源代碼,源代碼書寫清晰規(guī)范,包含適當(dāng)?shù)淖⑨專?分)類圖清晰規(guī)范(包含三個以上類以及它們之間的關(guān)系)(1分)實驗報告中包含體現(xiàn)part-of關(guān)系的關(guān)鍵代碼(1分),對關(guān)鍵代碼有準(zhǔn)確的文字分析(1分)實驗報告中包含體現(xiàn)has-a關(guān)系的關(guān)鍵代碼(1分),對關(guān)鍵代碼有準(zhǔn)確的文字分析(1分)實驗報告中包含體現(xiàn)use-a關(guān)系的關(guān)鍵代碼(1分),對關(guān)鍵代碼有準(zhǔn)確的文字分析(1分)實驗報告中包含體現(xiàn)is-a關(guān)系的關(guān)鍵代碼(1分),對關(guān)鍵代碼有準(zhǔn)確的文字分析(1分)實驗報告中包含體現(xiàn)虛函數(shù)定義及其使用的關(guān)鍵代碼(1分),對關(guān)鍵代碼有合理的文字分析(1分)實驗報告中包含體現(xiàn)抽象類定義的關(guān)鍵代碼(1分),對關(guān)鍵代碼有合理的文字分析(1分)】第五章程序規(guī)范與調(diào)試第五章作業(yè)1.邏輯錯誤示例2:交換a和b的值#includeintmain(){inta,b;a=3;b=4;a=b;b=a;cout<<”交換后,a的值為:”<<<”,b的值為:”<<<<”,b的值為:”<<

答案:【修改后程序能正常運行使用臨時變量存儲a或b的值,成功交換a、b的值】2.邏輯錯誤示例1:求1+2+……+99的值#includeUsingnamespacestd;intmain(){intsum=0;for(i=1;i<=100;i++){sum=sum+i;}cout<<”和為”<<<

答案:【修改后程序能正常運行for循環(huán)中i終止的判斷條件為i<100或i<=99或for(i=99;i>0;i--)等,答案合理即可】3.找出語法錯誤:#includeUsingnamespacestd;intmain()(intn,n2;n=5;n2=n*n;cout<<“n=“<<<”,n的平方=”<<<<”,n的平方=”<<

答案:【找到程序出錯點,即使用小括號包圍函數(shù)體將小括號改為花括號】第五章測驗1.單選題:對于給定的整數(shù)數(shù)組,求出最大值,程序運行結(jié)果沒有求出最大值。這種錯誤屬于()

選項:

A、語法錯誤

B、運行錯誤

C、邏輯錯誤

D、調(diào)用錯誤

答案:【邏輯錯誤】2.單選題:在某段代碼代碼中,如果函數(shù)沒有定義出現(xiàn)的錯誤屬于()

選項:

A、語法錯誤

B、運行錯誤

C、邏輯錯誤

D、調(diào)用錯誤

答案:【語法錯誤】3.單選題:注釋不但為了提高可讀性,而且會被計算機編譯。

選項:

A、正確

B、錯誤

答案:【錯誤】4.單選題:注釋是編寫程序的人給一條語句、程序段、函數(shù)、類和文件等的解釋或提示,能提高程序代碼的可讀性。

選項:

A、正確

B、錯誤

答案:【正確】5.單選題:代碼閱讀的次數(shù)多于編寫的次數(shù),但是為了保證程序員很好的編寫代碼,應(yīng)該確保索取的名字更側(cè)重于編寫方便,而不是閱讀方便。

選項:

A、正確

B、錯誤

答案:【錯誤】第六章如何用算法解決問題第六章作業(yè)1.給定一個由十位阿拉伯?dāng)?shù)字組成的密碼,通過枚舉所有的可能情況破解出正確的密碼。給定的密碼為9090909011。

答案:【定義正確的密碼定義組成密碼的所有可能字符的密碼字典定義枚舉函數(shù)枚舉函數(shù)能輪詢所有的值能破解正確密碼】2.有五個物品,他們各自的重量和價值如下:·物品1:weight=2,value=3·物品2:weight=3,value=4·物品3:weight=4,value=5·物品4:weight=5,value=6·物品5:weight=6,value=9而背包能夠承受的最大重量為10,如何才能讓背包里裝入的物品的價值總和最大?

答案:【定義物品重量和價值的數(shù)組代碼中體現(xiàn)出問題的解法數(shù)量對每一種解法與當(dāng)前解法的物品價值對比,選擇不超過最大重量且價值較高的解法輸出最優(yōu)解法使在不超過最大重量,物品的總價值最高】3.有四個物品,他們各自的重量和價值如下:·物品1:weight=2,value=3·物品2:weight=3,value=4·物品3:weight=4,value=5·物品4:weight=5,value=6而背包能夠承受的最大重量為8,如何才能讓背包里裝入的物品的價值總和最大?

答案:【定義物品重量和價值的數(shù)組得到問題的解法數(shù)量對每一種解法與當(dāng)前解法的物品價值對比,選擇不超過最大重量且價值較高的解法輸出最優(yōu)解法使在不超過最大重量,物品的總價值最高】4.倉頡造數(shù)【問題描述】我們要求找出具有下列性質(zhì)數(shù)的個數(shù)(包含輸入的正整數(shù)nn)。先輸入一個正整數(shù)nn,然后對此正整數(shù)按照如下方法進行處理:不作任何處理;在它的左邊加上一個正整數(shù),但該正整數(shù)不能超過原數(shù)的一半;加上數(shù)后,繼續(xù)按此規(guī)則進行處理,直到不能再加正整數(shù)為止?!据斎胄问健?個正整數(shù)n(n<1000)【輸出形式】1個整數(shù),表示具有該性質(zhì)數(shù)的個數(shù)?!緲永斎搿?【樣例輸出】6【樣例說明】滿足條件的數(shù)為6,16,26,126,36,136

答案:【測試用例1正確。測試用例2正確。測試用例3正確。測試用例4正確。測試用例5正確?!?.整數(shù)分治【問題描述】將整數(shù)n分成kn分成k份,且每份不能為空,任意兩個方案不相同(不考慮順序)。例如n=7,k=3時,下列三種分法視為相同的:1,1,51,5,15,1,1問有多少種不同的分法?!据斎胄问健枯斎雰蓚€數(shù)n(7<=n<=200),k,(2<=k<=6)【輸出形式】1個整數(shù),即不同的分法。【樣例輸入】73【樣例輸出】4【樣例說明】四種分法為:1,1,51,2,41,3,32,3,31,

答案:【測試用例1正確。測試用例2正確。測試用例3正確。測試用例4正確。測試用例5正確?!康诹聹y驗1.單選題:寫出如下程序的運行結(jié)果:1.#include2.usingnamespacestd;3.voide(int);4.5.main()6.{7.inta;8.a=3;9.e(a);10.}11.12.voide(intn)13.{14.if(n>0)15.{16.e(--n);17.cout<<<””;18.e(--n);=""19.}=""20.}<=""code=""><<””;>

選項:

A、0120

B、0121

C、1201

D、0211

答案:【0120】2.單選題:對遞歸程序的優(yōu)化的一般的手段為【】

選項:

A、尾遞歸優(yōu)化

B、循環(huán)優(yōu)化

C、堆棧優(yōu)化

D、停止值優(yōu)化

答案:【尾遞歸優(yōu)化】3.單選題:一個遞歸算法必須包括【】

選項:

A、遞歸部分

B、終止條件和遞歸部分

C、循環(huán)部分

D、終止條件和循環(huán)部分

答案:【終止條件和遞歸部分】4.單選題:請問當(dāng)調(diào)用f(10)時,f()被調(diào)用多少次?intf(intx){if(x<=2)return1;returnf(x-2)+f(x-4)+1;}

選項:

A、14

B、15

C、20

D、24

答案:【15】5.單選題:下面哪種排序算法最適合對雜亂無章的數(shù)據(jù)進行排序()

選項:

A、冒泡排序

B、快速排序

C、選擇排序

D、插入排序

答案:【快速排序】6.單選題:對下列關(guān)鍵字序列用快速排序法進行排序時,速度最慢的是()

選項:

A、(30,25,35,15,20,5,10)

B、(20,10,15,35,30,25,5)

C、(20,30,5,15,10,25,35)

D、(5,10,15,20,25,30,35)

答案:【(5,10,15,20,25,30,35)】7.單選題:下面哪種算法是針對大數(shù)據(jù)具有優(yōu)秀的排序性能,且實現(xiàn)相對簡單()

選項:

A、冒泡排序

B、插入排序

C、選擇排序

D、快速排序

答案:【快速排序】8.單選題:冒泡排序算法最壞情況下的時間復(fù)雜度是()

選項:

A、Θ(n)

B、Θ()

C、Θ(nlogn)

D、Θ()

答案:【Θ()】9.寫出以下遞歸程序的運行結(jié)果#includeusingnamespacestd;voidf(intx[].Intn){if(n>1){f(&x[1],n-1);cout<<x[0];}elsecout<<x[0];}intmain(){intz[6]={1,2,3,4,5,6};f(z,6);cout<<”\n”;return0;}

答案:【654321】第七章綜合練習(xí)——文本檢索第七章測驗1.單選題:下列哪種算法在文本匹配時,不需要文本指針回溯()

選項:

A、BF算法

B、AC算法

C、Wu-Maner算法

D、KMP算法

答案:【AC算法】2.單選題:在KMP算法中,計算模式串中各位置最長相同前后綴長度的數(shù)組kmpNext,是在()階段進行計算

選項:

A、預(yù)處理階段

B、文本匹配階段

C、文本指針回溯階段

D、文本讀取階段

答案:【預(yù)處理階段】3.單選題:對于模式={GCAGTM}建立壞字符數(shù)組bmBc[],沒有出現(xiàn)在模式中的字符K,bmBc[k]是()

選項:

A、7

B、6

C、8

D、2

答案:【6】4.單選題:對于給定的一段文本和一個模式,下面幾種算法中,那種算法比較次數(shù)最多()

選項:

A、BM算法

B、AC-BM算法

C、BF算法

D、KMP算法

答案:【BF算法】第七章作業(yè)1.有文本集“All_of_the_students_are_very_cool_in_this_school.”,模式集{student,crude,school},請根據(jù)此模式集,使用Wu-Manber算法,假設(shè)B=2,計算SHIFT表、HASH表和PREFIX表。

答案:【計算正確的SHIFT表計算正確的HASH表計算正確的PREFIX表】2.有個文本集“abdenet

溫馨提示

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

評論

0/150

提交評論