




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
【MOOC答案】《C++程序設計實踐》(北京科技大學)章節作業慕課答案
有些題目順序不一致,下載后按鍵盤ctrl+F進行搜索第一章RAPTOR:描述問題的分析和設計第一章作業1.分段電費【問題描述】夏天到了,各家各戶的用電量都增加了許多,相應的電費也交的更多了。小玉家今天收到了一份電費通知單。小玉看到上面寫:月用電量在150千瓦時及以下部分按每千瓦時0.4463元執行,月用電量在151~400千瓦時的部分按每千瓦時0.4663元執行,月用電量在401千瓦時及以上部分按每千瓦時0.5663元執行;小玉想自己驗證一下,電費通知單上應交電費的數目到底是否正確呢。請編寫一個程序,已知用電總計,根據電價規定,計算出應交的電費應該是多少。【輸入形式】輸入一個整數,表示用電總計(單位以千瓦時計),不超過10000。【輸出形式】輸出一個數,保留到小數點后1位(單位以元計,保留到小數點后1位)。【樣例輸入】267【樣例輸出】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.奇偶排序【問題描述】給出數組a=[a_1,a_2,a_3,a_4,...,a_n],其中每個數均不相同,n為奇數。給定一個操作f(i),當a_i>a_(i+1)時,交換a_i與a_(i+1),否則不進行交換。現在我們想通過一種名叫“奇偶排序”的辦法,將該數組按增序排序,排序方法如下:在第k趟排序中:如果k為奇數,則進行f(1),f(3),f(5),....,f(n-2)的操作。如果k為偶數,則進行f(2),f(4),f(6),....,f(n-1)的操作。可以證明,通過這樣的辦法,一定可以將數組實現升序排序。現在請你輸出,哪一趟排序完之后,數組第一次實現了升序排序。(如果已經為升序,則輸出0)【輸入形式】第一行輸入一個數t(t<100),代表一共有t組數據。對每組數據,輸入兩行,第一行為一個數n(3<=n<=999,n為奇數),代表數組的長度。第二行輸入n個不同的數a_1,a_2,...,a_n(a_i<=1000)。【輸出形式】一共有t行,對每組數據,輸出一行答案,代表數組第一次實現了升序排序的趟數。【樣例輸入】3332174571326512345【樣例輸出】350【樣例說明】第一組數據中,對應排序過程為:在第一次排序后,對應數組為[2,3,1];在第二次排序后,對應數組為[2,1,3];在第三次排序后,對應數組為[1,2,3];故答案為3。
答案:【測試用例1正確1分輸入10515432541325525431542531513542515324521435535142523154545213輸出:4355441435測試用例2正確1分輸入15925897413631237645327117171672148361113121011554931232342081622114231310123919617152152187115241357513642719111063151724918167125181314191119248113105679689147235935168724999847513621915851431317918191612211671014177161412515171048921363111輸出:70717019341287691417測試用例3正確輸入29693485217101100543910266095496851981973527289858101873680752072151330402148241152619689573770998831418142908619337153231617256482745448836241412329434747679676524785439156629596384937873315655692227746385069輸出:899測試用例4正確。1分輸入5761437525512343321523145514235輸出:64333測試用例5正確。1分輸入1171215397161451061241713118輸出:12】3.輸入任意整數存入變量n中,若n≤0則輸出“Error!”;否則組織循環結構流程計算sum=1/2+2/3+3/4+…+n/(n+1)的值,然后分別輸出變量n和sum的值。
答案:【輸入n:1分輸出sum:1分判斷n<=0:1分循環賦初值:2分i=1,sum=0循環結構:1分Loop循環條件:1分i>n循環體:2分sum賦值,i賦值開始結束:1分】第一章測驗1.單選題:算法的空間復雜度是指【】
選項:
A、算法程序的長度
B、算法程序中的指令條數
C、算法程序所占的存儲空間
D、算法執行過程中所需要的存儲空間
答案:【算法執行過程中所需要的存儲空間】2.單選題:算法的時間復雜度是指【】
選項:
A、執行算法程序所需要的時間
B、算法程序的長度
C、算法執行過程中所需要的基本運算次數
D、算法程序中的指令條數
答案:【算法執行過程中所需要的基本運算次數】3.單選題:下面敘述正確的是【】
選項:
A、算法的執行效率與數據的存儲結構無關
B、算法的空間復雜度是指算法程序中指令(或語句)的條數
C、算法的有窮性是指算法必須能在執行有限個步驟之后終止
D、以上三種描述都不對
答案:【算法的有窮性是指算法必須能在執行有限個步驟之后終止】4.單選題:算法的有窮性是指:
選項:
A、算法程序的運行時間是有限的
B、算法程序所處理的數據量是有限的
C、算法程序的長度是有限的
D、算法只能被有限的用戶使用
答案:【算法程序的運行時間是有限的】5.單選題:程序流程圖中帶有箭頭的線段表示的是:
選項:
A、圖元關系
B、數據流
C、控制流
D、調用關系
答案:【控制流】6.單選題:某算法的時間復雜度為O(),表明該算法的【】。
選項:
A、問題規模是
B、執行時間等于
C、執行時間與成正比
D、問題規模與成正比
答案:【執行時間與成正比】7.單選題:下列敘述中正確的是【】
選項:
A、一個算法的空間復雜度大,則其時間復雜度也必定大
B、一個算法的空間復雜度大,則其時間復雜度必定小
C、一個算法的時間復雜度大,則其空間復雜度必定小
D、上述三種說法都不對
答案:【上述三種說法都不對】8.單選題:下列選項中不屬于結構化程序設計方法的是【】
選項:
A、自頂向下
B、逐步求精
C、模塊化
D、可復用
答案:【可復用】9.單選題:結構化程序設計主要強調的是【】
選項:
A、程序的規模
B、程序的易讀性
C、程序的執行效率
D、程序的可移植性
答案:【程序的易讀性】10.單選題:一個算法應該是【】。
選項:
A、程序
B、問題求解步驟的描述
C、要滿足五個基本屬性
D、A和C
答案:【問題求解步驟的描述】第二章鏈表與簡單數據結構第二章作業1.采用遞歸的方法逆序打印單鏈表:輸入一組字符,按順序建立單鏈表,最后逆序輸出。輸入的數據為字符型,輸入格式:第1行,字符的個數k;第2行,用空格分開的k個字符。輸出格式:一行輸出,空格為分隔符。例:輸入:5abcde輸出:edcba
鏈表節點定義:0-2分構建鏈表:0-2分遞歸實現:0-2分輸出結果正確:0-2分】第二章測驗1.單選題:已知H為不帶頭節點的單鏈表。在H的表頭插入一個新結點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.單選題:判斷帶頭結點的單鏈表H為空的條件是()
選項:
A、H==NULL
B、H=NULL
C、H->next==NULL
D、H->next==H
答案:【H->next==NULL】3.單選題:已知H是帶頭節點的單鏈表,節點p既不是第一個節點,也不是尾節點,刪除p節點直接后繼的語句是()
選項:
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.單選題:某線性表中最常用的操作是“在最后一個元素之后插入一個元素”和“刪除第一個元素”,則采用哪種數據結構最節省操作時間()。
選項:
A、單鏈表
B、僅有頭指針的單循環鏈表
C、僅有尾指針的單循環鏈表
D、以上三種都一樣
答案:【僅有尾指針的單循環鏈表】5.單選題:在一個單向循環鏈表中,若要在p所指的節點之后插入一個新結點s,則需要執行下面哪個語句段()。
選項:
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為頭節點的單循環鏈表中,指針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中某結點,執行語句p=p->next不會刪除該鏈表中結點。
選項:
A、正確
B、錯誤
答案:【正確】8.單選題:鏈表的長度是鏈表所占用的存儲空間的大小。
選項:
A、正確
B、錯誤
答案:【錯誤】9.單選題:在單鏈表中,只要知道某個節點的指針即可訪問該節點。因此,單鏈表是一種隨機存取結構。
選項:
A、正確
B、錯誤
答案:【錯誤】[vk-content]10.單選題:線性表采用鏈式存儲,便于插入和刪除操作。
選項:
A、正確
B、錯誤
答案:【正確】第三章數據存儲及內存管理第三章測驗1.單選題:執行以下語句后,變量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.單選題:下列函數的輸出內容是:chara[10]={"abcdefg"};char*p=&a[3];cout<<p;
選項:
A、“defg”
B、“defg”
C、“de”
D、“de”
答案:【“defg”】3.單選題:下列函數的運行結果是: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.單選題:已知有如下代碼,執行后*p1和*p2的值是?int*p1,p2;inta=1;p1=&a;p2=p1;*p1=2;*p2=3;
選項:
A、23
B、33
C、21
D、無法編譯
答案:【無法編譯】5.單選題:閱讀以下代碼,請問函數的輸出結果是?#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;】第三章作業1.【題目描述】用鏈表實現插入排序,從小到大排序。【輸入格式】第一行一個數n表示數的個數第二行n個數表示待排序的序列【輸出格式】一行n個數表示排序的結果。【樣例輸入】3321【樣例輸出】123
答案:【正確定義了鏈表結點類(或結構體)類的數據成員定義正確類的構造函數正確類的析構函數正確鏈表能夠被正確建立,不發生運行時錯誤鏈表能夠正確完成插入排序的功能能夠正確按順序輸出排序后的答案防止了內存泄漏問題】2.【題目描述】給你一個字符串,其中有若干數字,利用鏈表相關知識從頭開始將數字按順序移動至字符串末端。如19js98ss移動后是jsss1998【樣例輸入】19js98ss【樣例輸出】jsss1998
答案:【正確定義了數據存儲(例如數組、鏈表)正確遍歷整個數組正確完成輸入字符串的讀入正確判斷數字正確完成將所有數字移動至末尾的功能能夠正確輸出答案能夠正確按順序輸出排序后的答案】第四章面向對象的概念及應用第四章測驗1.多選題:以下關于智能指針,描述正確的是
選項:
A、make_unique()函數不會創建新的對象。
B、智能指針本質是函數模板。
C、share_ptr指針與其他指針一起管理動態對象,只有當管理此對象的所有指針生存期結束之后,此對象才能被釋放。
D、weak_ptr可以指向share_ptr所管理的動態對象。
答案:【share_ptr指針與其他指針一起管理動態對象,只有當管理此對象的所有指針生存期結束之后,此對象才能被釋放。;weak_ptr可以指向share_ptr所管理的動態對象。】2.多選題:關于對象的復制和移動語義,以下描述正確的是
選項:
A、將一個對象賦值給另一個對象時,會調用復制構造函數。
B、用一個舊對象去初始化新對象時,會調用復制構造函數。
C、在實現移動構造函數時要將動態數組的控制權由傳入對象轉移給當前對象。
D、左值引用可以引用匿名對象。
答案:【用一個舊對象去初始化新對象時,會調用復制構造函數。;在實現移動構造函數時要將動態數組的控制權由傳入對象轉移給當前對象。】3.多選題:關于迭代器,以下描述正確的是
選項:
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.多選題:關于容器,描述正確的是
選項:
A、vector容器本質上是類模板
B、deque容器具備vector容器所沒有的功能,即將新元素添加到序列尾端。
C、array、vector和deque中的元素會被按序存放在一塊連續的內存中。
D、在刪除頭尾元素的情形下,list容器與vector容器效率一樣。
答案:【vector容器本質上是類模板;array、vector和deque中的元素會被按序存放在一塊連續的內存中。;在刪除頭尾元素的情形下,list容器與vector容器效率一樣。】5.多選題:關于類模板,描述正確的是
選項:
A、類模板制作出的類中數據成員個數相同并且函數成員個數也相同。
B、類模板如果有數組型的數據成員,數組的長度可以用變量定義。
C、類模板內部有可能出現對全局函數的定義。
D、對類模板中的成員函數進行專門化處理的目的是讓成員函數適用于特殊場景。
答案:【類模板制作出的類中數據成員個數相同并且函數成員個數也相同。;類模板如果有數組型的數據成員,數組的長度可以用變量定義。;類模板內部有可能出現對全局函數的定義。;對類模板中的成員函數進行專門化處理的目的是讓成員函數適用于特殊場景。】6.多選題:關于函數模板,描述正確的是()
選項:
A、函數模板的功能是制作一組參數類型相同的函數。
B、編譯器在編譯由模板定義的函數時,對于函數調用語句,會根據形參的類型,對實參進行類型轉換。
C、template中的T可以作為返回類型、參數類型和函數中的變量類型。
D、編譯器負責實現函數模板的實例化。
答案:【template中的T可以作為返回類型、參數類型和函數中的變量類型。;編譯器負責實現函數模板的實例化。】7.多選題:以下關于類間關系,描述正確的是()
選項:
A、有類A和類B,如果A包含B類型的數據成員,則類A和B是has-a關系。
B、有類A和類B,如果A包含B類型的指針或引用,則A和B是part-of關系。
C、use-a和has-a關系在代碼中的表現形式是相同的,我們只能從語義的角度區分這兩種關系。
D、part-of、has-a、uses-a這三種關系的共同點是A類中包含B類型的成員。
答案:【use-a和has-a關系在代碼中的表現形式是相同的,我們只能從語義的角度區分這兩種關系。;part-of、has-a、uses-a這三種關系的共同點是A類中包含B類型的成員。】8.多選題:以下關于類的繼承關系,描述正確的是()
選項:
A、類之間的繼承關系具有傳遞性。
B、父類具有子類的特征。
C、一個基類可以有多個派生類。
D、一個派生類可以有多個基類。
答案:【類之間的繼承關系具有傳遞性。;一個基類可以有多個派生類。;一個派生類可以有多個基類。】9.單選題:weak_ptr僅能存儲動態對象的地址,不能訪問對象的成員。
選項:
A、正確
B、錯誤
答案:【正確】10.單選題:move()函數可將賦值運算符的右操作數強制轉換為左值。
選項:
A、正確
B、錯誤
答案:【錯誤】11.單選題:右值引用的宿主生存期非常短,通常是用完就會被釋放掉。
選項:
A、正確
B、錯誤
答案:【正確】12.單選題:可以用下標訪問list容器中的元素。
選項:
A、正確
B、錯誤
答案:【錯誤】13.單選題:派生類對象不會建立基類的私有數據成員。
選項:
A、正確
B、錯誤
答案:【錯誤】14.單選題:派生類公有繼承基類時,可以訪問基類的所有數據成員。
選項:
A、正確
B、錯誤
答案:【錯誤】第四章作業1.繼續完善大學數據處理程序。要求:思考在處理大學數據時可使用哪些容器模板,并利用容器模板改寫代碼。思考在處理大學數據時可使用哪些算法模板,并利用算法模板改寫代碼。思考在處理大學數據時有哪些功能相近的操作,自定義并使用函數模板。思考在處理對象之間的復制操作時,如何利用移動構造函數使復制操作更有效率。提交:源代碼(壓縮成rar文件上傳)。實驗報告(填寫到答題框中),需包含:體現程序功能的多張運行截圖、體現使用容器模板的關鍵代碼及其文字分析、體現使用算法模板的關鍵代碼及其文字分析、體現自定義函數模板的關鍵代碼和文字分析、體現移動構造函數的關鍵代碼及其文字分析。
答案:【所提交文件的完整性和規范性:提交了實驗報告,并且實驗報告書寫清晰規范(1分)提交了源代碼,源代碼書寫清晰規范,包含適當的注釋(1分)實驗報告中包含體現容器模板使用的關鍵代碼(1分),對關鍵代碼有合理的文字分析(1分)實驗報告中包含體現算法模板使用的關鍵代碼(1分),對關鍵代碼有合理的文字分析(1分)實驗報告中包含體現自定義函數模板的關鍵代碼(1分),對關鍵代碼有合理的文字分析(1分)實驗報告中包含體現移動構造函數的關鍵代碼(1分),對關鍵代碼有合理的文字分析(1分)】2.編寫C++程序處理某大學的數據,大學的數據包括學生信息、教師信息、課程信息、選課信息、教室信息等。(1)思考并定義所需的類以及類間關系。(2)類的數目需在三個以上,類間關系需體現part-of、has-a、use-a、is-a。(3)在處理繼承關系時,需用到虛函數和抽象類。提交:(1)源代碼(壓縮成rar文件上傳)。(2)實驗報告(填寫到答題框中),需包含:包含所有類和類間關系的類圖、體現程序功能的多張運行截圖、體現以上四種類間關系的關鍵代碼及其文字分析、體現虛函數和抽象類使用的關鍵代碼和文字分析。
答案:【所提交文件的完整性和規范性:提交了實驗報告,并且實驗報告書寫清晰規范(1分)提交了源代碼,源代碼書寫清晰規范,包含適當的注釋(1分)類圖清晰規范(包含三個以上類以及它們之間的關系)(1分)實驗報告中包含體現part-of關系的關鍵代碼(1分),對關鍵代碼有準確的文字分析(1分)實驗報告中包含體現has-a關系的關鍵代碼(1分),對關鍵代碼有準確的文字分析(1分)實驗報告中包含體現use-a關系的關鍵代碼(1分),對關鍵代碼有準確的文字分析(1分)實驗報告中包含體現is-a關系的關鍵代碼(1分),對關鍵代碼有準確的文字分析(1分)實驗報告中包含體現虛函數定義及其使用的關鍵代碼(1分),對關鍵代碼有合理的文字分析(1分)實驗報告中包含體現抽象類定義的關鍵代碼(1分),對關鍵代碼有合理的文字分析(1分)】第五章程序規范與調試第五章作業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循環中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的平方=”<<
答案:【找到程序出錯點,即使用小括號包圍函數體將小括號改為花括號】第五章測驗1.單選題:對于給定的整數數組,求出最大值,程序運行結果沒有求出最大值。這種錯誤屬于()
選項:
A、語法錯誤
B、運行錯誤
C、邏輯錯誤
D、調用錯誤
答案:【邏輯錯誤】2.單選題:在某段代碼代碼中,如果函數沒有定義出現的錯誤屬于()
選項:
A、語法錯誤
B、運行錯誤
C、邏輯錯誤
D、調用錯誤
答案:【語法錯誤】3.單選題:注釋不但為了提高可讀性,而且會被計算機編譯。
選項:
A、正確
B、錯誤
答案:【錯誤】4.單選題:注釋是編寫程序的人給一條語句、程序段、函數、類和文件等的解釋或提示,能提高程序代碼的可讀性。
選項:
A、正確
B、錯誤
答案:【正確】5.單選題:代碼閱讀的次數多于編寫的次數,但是為了保證程序員很好的編寫代碼,應該確保索取的名字更側重于編寫方便,而不是閱讀方便。
選項:
A、正確
B、錯誤
答案:【錯誤】第六章如何用算法解決問題第六章作業1.給定一個由十位阿拉伯數字組成的密碼,通過枚舉所有的可能情況破解出正確的密碼。給定的密碼為9090909011。
答案:【定義正確的密碼定義組成密碼的所有可能字符的密碼字典定義枚舉函數枚舉函數能輪詢所有的值能破解正確密碼】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,如何才能讓背包里裝入的物品的價值總和最大?
答案:【定義物品重量和價值的數組代碼中體現出問題的解法數量對每一種解法與當前解法的物品價值對比,選擇不超過最大重量且價值較高的解法輸出最優解法使在不超過最大重量,物品的總價值最高】3.有四個物品,他們各自的重量和價值如下:·物品1:weight=2,value=3·物品2:weight=3,value=4·物品3:weight=4,value=5·物品4:weight=5,value=6而背包能夠承受的最大重量為8,如何才能讓背包里裝入的物品的價值總和最大?
答案:【定義物品重量和價值的數組得到問題的解法數量對每一種解法與當前解法的物品價值對比,選擇不超過最大重量且價值較高的解法輸出最優解法使在不超過最大重量,物品的總價值最高】4.倉頡造數【問題描述】我們要求找出具有下列性質數的個數(包含輸入的正整數nn)。先輸入一個正整數nn,然后對此正整數按照如下方法進行處理:不作任何處理;在它的左邊加上一個正整數,但該正整數不能超過原數的一半;加上數后,繼續按此規則進行處理,直到不能再加正整數為止。【輸入形式】1個正整數n(n<1000)【輸出形式】1個整數,表示具有該性質數的個數。【樣例輸入】6【樣例輸出】6【樣例說明】滿足條件的數為6,16,26,126,36,136
答案:【測試用例1正確。測試用例2正確。測試用例3正確。測試用例4正確。測試用例5正確。】5.整數分治【問題描述】將整數n分成kn分成k份,且每份不能為空,任意兩個方案不相同(不考慮順序)。例如n=7,k=3時,下列三種分法視為相同的:1,1,51,5,15,1,1問有多少種不同的分法。【輸入形式】輸入兩個數n(7<=n<=200),k,(2<=k<=6)【輸出形式】1個整數,即不同的分法。【樣例輸入】73【樣例輸出】4【樣例說明】四種分法為:1,1,51,2,41,3,32,3,31,
答案:【測試用例1正確。測試用例2正確。測試用例3正確。測試用例4正確。測試用例5正確。】第六章測驗1.單選題:寫出如下程序的運行結果: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.單選題:對遞歸程序的優化的一般的手段為【】
選項:
A、尾遞歸優化
B、循環優化
C、堆棧優化
D、停止值優化
答案:【尾遞歸優化】3.單選題:一個遞歸算法必須包括【】
選項:
A、遞歸部分
B、終止條件和遞歸部分
C、循環部分
D、終止條件和循環部分
答案:【終止條件和遞歸部分】4.單選題:請問當調用f(10)時,f()被調用多少次?intf(intx){if(x<=2)return1;returnf(x-2)+f(x-4)+1;}
選項:
A、14
B、15
C、20
D、24
答案:【15】5.單選題:下面哪種排序算法最適合對雜亂無章的數據進行排序()
選項:
A、冒泡排序
B、快速排序
C、選擇排序
D、插入排序
答案:【快速排序】6.單選題:對下列關鍵字序列用快速排序法進行排序時,速度最慢的是()
選項:
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.單選題:下面哪種算法是針對大數據具有優秀的排序性能,且實現相對簡單()
選項:
A、冒泡排序
B、插入排序
C、選擇排序
D、快速排序
答案:【快速排序】8.單選題:冒泡排序算法最壞情況下的時間復雜度是()
選項:
A、Θ(n)
B、Θ()
C、Θ(nlogn)
D、Θ()
答案:【Θ()】9.寫出以下遞歸程序的運行結果#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】第七章綜合練習——文本檢索第七章測驗1.單選題:下列哪種算法在文本匹配時,不需要文本指針回溯()
選項:
A、BF算法
B、AC算法
C、Wu-Maner算法
D、KMP算法
答案:【AC算法】2.單選題:在KMP算法中,計算模式串中各位置最長相同前后綴長度的數組kmpNext,是在()階段進行計算
選項:
A、預處理階段
B、文本匹配階段
C、文本指針回溯階段
D、文本讀取階段
答案:【預處理階段】3.單選題:對于模式={GCAGTM}建立壞字符數組bmBc[],沒有出現在模式中的字符K,bmBc[k]是()
選項:
A、7
B、6
C、8
D、2
答案:【6】4.單選題:對于給定的一段文本和一個模式,下面幾種算法中,那種算法比較次數最多()
選項:
A、BM算法
B、AC-BM算法
C、BF算法
D、KMP算法
答案:【BF算法】第七章作業1.有文本集“All_of_the_students_are_very_cool_in_this_school.”,模式集{student,crude,school},請根據此模式集,使用Wu-Manber算法,假設B=2,計算SHIFT表、HASH表和PREFIX表。
答案:【計算正確的SHIFT表計算正確的HASH表計算正確的PREFIX表】2.有個文本集“abdenet
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/SHBX 005-2024雙向拉伸聚乳酸薄膜
- T/CET 411-2024鐵路場所LED照明技術規范
- T/CGAS 029-2024面向燃氣物聯網NB-IoT智能表的安全芯片檢測技術規范
- 消防橋架采購合同2篇
- 下學期c語言考試題及答案
- 上海小學三升四數學試題
- 上海卷煙廠面試題及答案
- 上海五年級小學數學試卷
- T/CCOA 66-2023油莎豆粉
- 居室空間設計核心要素解析
- DB32/T 4205-2022鄉村公共空間治理規范
- 福建百校聯考2025屆高三5月高考押題卷-物理試卷(含答案)
- 2025年山東省青島市即墨區九年級二模考試數學試卷
- 2025-2030中國DCS控制系統行業市場現狀分析及競爭格局與投資發展研究報告
- 2025屆浙江省金華市義烏市高三下學期三模物理試題(含答案)
- 貴州省煙草專賣局(公司)筆試試題2024
- 招投標相關知識培訓課件
- 中國血脂管理指南2024版解讀課件
- 大學生宿舍設計調研報告
- 煤礦“一通三防”安全管理措施的有效性分析
- 外貿英語電子課件
評論
0/150
提交評論