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

下載本文檔

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

文檔簡介

【MOOC期末】《C++程序設(shè)計實踐》(北京科技大學(xué))期末考試慕課答案

有些題目順序不一致,下載后按鍵盤ctrl+F進行搜索C++程序設(shè)計實踐(北京科技大學(xué))期末考試1.單選題:關(guān)于繼承表述錯誤的是:()

選項:

A、繼承是一種通過擴展一個已有對象的實現(xiàn),從而獲得新功能的復(fù)用方法。

B、泛化類(超類)可以顯式地捕獲那些公共的屬性和方法。特殊類(子類)則通過附加屬性和方法來進行實現(xiàn)的擴展。

C、破壞了封裝性,因為這會將父類的實現(xiàn)細節(jié)暴露給子類。

D、繼承本質(zhì)上是“白盒復(fù)用”,對父類的修改,不會影響到子類。

答案:【繼承本質(zhì)上是“白盒復(fù)用”,對父類的修改,不會影響到子類?!?.單選題:Open-Close原則的含義是一個軟件實體()

選項:

A、應(yīng)當(dāng)對擴展開放,對修改關(guān)閉

B、應(yīng)當(dāng)對修改開放,對擴展關(guān)閉

C、應(yīng)當(dāng)對繼承開放,對修改關(guān)閉

D、以上都不對

答案:【應(yīng)當(dāng)對擴展開放,對修改關(guān)閉】3.單選題:設(shè)計模式一般用來解決什么樣的問題()

選項:

A、同一問題的不同表相

B、不同問題的同一表相

C、不同問題的不同表相

D、以上都不是

答案:【同一問題的不同表相】4.單選題:以下代碼的輸出結(jié)果是:#includeusingnamespacestd;intSize(char*a){returnsizeof(a);}intmain(){chara[10],b[10];cout<<<''<<<<''<<

選項:

A、408

B、1010

C、88

D、108

答案:【108】5.單選題:已知inta[]={0,2,4,6,8,10},*p=a+1;其值等于0的表達式是()?

選項:

A、*(p++)

B、*(++p)

C、*(p--)

D、*(--p)

答案:【*(--p)】6.單選題:以下程序的輸出結(jié)果為()#includeusingnamespacestd;voidprint(char**str){++str;cout<<*str<

選項:

A、world

B、hello

C、字符w的起始地址

D、字符e

答案:【world】7.單選題:已知inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,不能表示數(shù)組a中元素的式子是()。

選項:

A、*p

B、*a

C、a[p-a]

D、a

答案:【a】8.單選題:這段代碼的輸出結(jié)果是#includeusingnamespacestd;voidfunc(int*p,int*q){p++;*q=*q+1;}intmain(){intm=1,n=2,*r=&m;func(r,&n);cout<<<","<<<","<

選項:

A、1,4

B、2,3

C、1,2

D、1,3

答案:【1,3】9.單選題:某公司欲開發(fā)一個軟件系統(tǒng)的在線文檔幫助系統(tǒng),用戶可以在任何一個查詢上下文中輸入查詢關(guān)鍵字,如果當(dāng)前查詢環(huán)境下沒有相關(guān)內(nèi)容,則系統(tǒng)會將查詢按照一定的順序轉(zhuǎn)發(fā)給其他查詢環(huán)境。基于上述需求,采用【】最為合適。

選項:

A、責(zé)任鏈模式

B、橋接模式

C、迭代器模式

D、適配器模式

答案:【責(zé)任鏈模式】10.單選題:應(yīng)用設(shè)計模式的一個優(yōu)點是【】。

選項:

A、適應(yīng)需求變化

B、程序易于理解

C、減少開發(fā)過程中的代碼開發(fā)工作量

D、簡化軟件系統(tǒng)的設(shè)計

答案:【適應(yīng)需求變化】11.單選題:Hanoi塔問題,現(xiàn)要求將塔座A上的所有圓盤移到塔座B上,并仍按同樣順序疊置,移動圓盤時遵守Hanoi塔問題的移動規(guī)則,由此設(shè)計出解Hanoi塔問題的遞歸算法正確的是()

選項:

A、voidHanoi(intn,intA,intC,intB){if(n>0){Hanoi(n-1,A,C,B);Move(n,a,b);Hanoi(n-1,C,B,A);}}

B、voidHanoi(intn,intA,intB,intC){if(n>0){Hanoi(n-1,A,C,B);Move(n,a,b);Hanoi(n-1,C,B,A);}}

C、voidHanoi(intn,intC,intB,intA){if(n>0){Hanoi(n-1,A,C,B);Move(n,a,b);Hanoi(n-1,C,B,A);}}

D、voidHanoi(intn,intC,intA,intB){if(n>0){Hanoi(n-1,A,C,B);Move(n,a,b);Hanoi(n-1,C,B,A);}}

答案:【voidHanoi(intn,intA,intB,intC){if(n>0){Hanoi(n-1,A,C,B);Move(n,a,b);Hanoi(n-1,C,B,A);}}】12.單選題:Raptor流程通過拖動順序、選擇、循環(huán)、賦值等流程圖框進行算法描述,能夠根據(jù)輸入數(shù)據(jù)得到運行結(jié)果嗎?

選項:

A、不能

B、可以,只要raptor流程圖正確描述了算法,九能夠根據(jù)輸入執(zhí)行得到正確結(jié)果

C、可以,但是有時不能得到正確結(jié)果

D、不知道

答案:【可以,只要raptor流程圖正確描述了算法,九能夠根據(jù)輸入執(zhí)行得到正確結(jié)果】13.單選題:下圖所示的算法流程圖中,輸出S的表達式為()。

選項:

A、1+2+3+......+100

B、1/(1+2+3+.....+100)

C、1+2+3+......+99

D、1/(1+2+3+.....+99)

答案:【1+2+3+......+99】14.單選題:算法的三種邏輯結(jié)構(gòu)是

選項:

A、順序,流程,循環(huán)

B、順序,條件,嵌套

C、順序,條件,循環(huán)

D、流程,條件,循環(huán)

答案:【順序,條件,循環(huán)】15.單選題:求遞歸次數(shù),請問當(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】16.單選題:實現(xiàn)合并排序利用的算法是()

選項:

A、分治策略

B、動態(tài)規(guī)劃法

C、貪心法

D、回溯法

答案:【分治策略】[vk-content]17.單選題:使用分治法求解不需要滿足的條件是()。

選項:

A、子問題必須是一樣的

B、子問題不能夠重復(fù)

C、子問題的解可以合并

D、原問題和子問題使用相同的方法解規(guī)模改變,問題性質(zhì)不變

答案:【子問題必須是一樣的】18.單選題:在尋找n個元素中第k小元素問題中,如快速排序算法思想,運用分治算法對n個元素進行劃分,如何選擇劃分基準?下面()答案解釋最合理。

選項:

A、隨機選擇一個元素作為劃分基準

B、取子序列的第一個元素作為劃分基準

C、用中位數(shù)的中位數(shù)方法尋找劃分基準

D、以上皆可行,但不同方法,算法復(fù)雜度上界可能不同

答案:【以上皆可行,但不同方法,算法復(fù)雜度上界可能不同】19.單選題:分治法的設(shè)計思想是將一個難以直接解決的大問題分割成規(guī)模較小的子問題,分別解決子問題,最后將子問題的解組合起來形成原問題的解。這要求原問題和子問題()。

選項:

A、問題規(guī)模相同,問題性質(zhì)相同

B、問題規(guī)模相同,問題性質(zhì)不同

C、問題規(guī)模不同,問題性質(zhì)相同

D、問題規(guī)模不同,問題性質(zhì)不同

答案:【問題規(guī)模不同,問題性質(zhì)相同】20.單選題:根據(jù)下列算法語句,當(dāng)輸入x為60時,輸出y的值為()

選項:

A、25

B、30

C、31

D、61

答案:【31】21.單選題:流程圖是描述()的常用工具。

選項:

A、程序

B、算法

C、數(shù)據(jù)結(jié)構(gòu)

D、計算規(guī)則

答案:【算法】22.單選題:關(guān)于算法的說法中正確的有()。Ⅰ.求解某一類問題的算法是唯一的(如:冒泡排序可以用:窮舉法、遞歸)Ⅱ.算法必須在有限步操作之后停止Ⅲ.算法的每一步操作必須是明確的,不能有歧義或含義模糊Ⅳ.算法執(zhí)行后一定產(chǎn)生確定的結(jié)果

選項:

A、1個

B、2個

C、3個

D、4個

答案:【3個】23.單選題:在程序中需要給變量命名,下面哪種是錯誤的命名法()

選項:

A、匈牙利命名法

B、大小寫命名法

C、下劃線命名法

D、駝峰式命名法

答案:【大小寫命名法】24.單選題:程序布局中需要確定如何將較長語句延續(xù)到下一行,下面從更易讀和更易維護的角度,哪種方式是最優(yōu)的程序布局()

選項:

A、后續(xù)行縮進

B、對齊于首個參數(shù)

C、每個參數(shù)一行,對齊于首個參數(shù)

D、每個參數(shù)一行,每個參數(shù)正常縮進

答案:【每個參數(shù)一行,每個參數(shù)正??s進】25.單選題:對于給定的整數(shù)數(shù)組,要求求出最大值,而程序運行結(jié)果沒有求出正確的最大值。這種錯誤屬于()

選項:

A、語法錯誤

B、運行錯誤

C、邏輯錯誤

D、調(diào)用錯誤

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

選項:

A、語法錯誤

B、運行錯誤

C、邏輯錯誤

D、調(diào)用錯誤

答案:【語法錯誤】27.單選題:以下程序的輸出結(jié)果是______。structnode{intx,y;structnode*p;}L[2];main(){L[0].x=1;L[0].y=2;L[1].x=3;L[1].y=4;L[0].p=&L[1];L[1].p=L;printf("%d%d\n",(L[0].p)->x,(L[1].p)->y);}

選項:

A、12

B、23

C、14

D、32

答案:【32】28.單選題:有Date類和Person類,以下代碼中對成員的初始化那句是錯誤的?

選項:

A、1

B、2

C、3

D、4

答案:【4】29.單選題:以下是使用面向?qū)ο蟮乃枷雽崿F(xiàn)的球員類(Player)和教練類(Coach),每個球員只能有一個教練,每個教練可以有多個球員,以下代碼中哪條語句是不合理的?

選項:

A、1

B、2

C、3

D、4

答案:【4】30.單選題:用面向?qū)ο蟮乃枷刖帉懗绦驅(qū)崿F(xiàn)球員類(Player),其中成員birthday為球員的生日,成員teams為其所屬的球隊(假設(shè)一個球員可以屬于多個球隊),以下代碼中哪個成員的定義是不合理的?

選項:

A、1

B、2

C、3

D、4

答案:【4】31.單選題:下面代碼的輸出結(jié)果是()int*a=newint[10];cout<<<’’<<<code=""><<’’<<<>

選項:

A、108

B、88

C、44

D、84

答案:【88】32.單選題:下列正確使用new申請數(shù)組的方式是():

選項:

A、int*a=newint[];

B、int*a=intnew[];

C、int*a=new[int];

D、int*a=newint[10];

答案:【int*a=newint[10];】33.單選題:下列關(guān)于數(shù)組與指針的區(qū)別描述正確的是?

選項:

A、數(shù)組要么在靜態(tài)存儲區(qū)被創(chuàng)建(如全局數(shù)組),要么在棧上被創(chuàng)建

B、用運算符sizeof可以計算出數(shù)組的大?。ㄗ止?jié)數(shù))

C、指針可以隨時指向任意類型的內(nèi)存。

D、用運算符sizeof可以計算出指針?biāo)赶騼?nèi)容的容量(字節(jié)數(shù))

答案:【用運算符sizeof可以計算出數(shù)組的大小(字節(jié)數(shù))】34.單選題:執(zhí)行以下代碼的結(jié)果是:chars[5];s="good";cout<<<code=""><<>

選項:

A、g

B、good

C、“good”

D、編譯出錯

答案:【編譯出錯】35.單選題:設(shè)二維數(shù)組A[0…m-1][0…n-1]按行優(yōu)先順序存儲在內(nèi)存中,第一個元素的地址為p,每個元素占k個字節(jié),則元素a[i][j]的地址為()

選項:

A、p+[(i*n+j)]*k

B、p+[(i-1)*n+j-1]*k

C、p+[(j-1)*n+i-1]*k

D、p+[j*n+i-1]*k

答案:【p+[(i*n+j)]*k】36.單選題:以下關(guān)于匿名函數(shù)代碼,說法錯誤的是

選項:

A、queryScore是在匿名函數(shù)之外聲明的,這里被捕獲到匿名函數(shù)中使用。

B、->后面的bool,說明了匿名函數(shù)返回值的類型。

C、匿名函數(shù)體中可以定義局部變量。

D、auto類型的變量rx接收匿名函數(shù)的返回值。

答案:【auto類型的變量rx接收匿名函數(shù)的返回值?!?7.單選題:以下代碼會出現(xiàn)的錯誤和原因()

選項:

A、出現(xiàn)編譯錯誤,在類的定義中不能重復(fù)使用占位符T。

B、出現(xiàn)運行錯誤,s2的m_id無法正常輸出。

C、出現(xiàn)編譯錯誤,實例化時不能將T設(shè)置為char*型。

D、出現(xiàn)運行錯誤,s2的delete重復(fù)釋放了內(nèi)存空間。

答案:【出現(xiàn)運行錯誤,s2的m_id無法正常輸出?!?8.單選題:Coach類和Player類繼承于Person類,且Person類中重載了輸出運算符<<,使用cout<<imgsrc="/0669b4c0a16c42ad99eec41e39e66ff0.png"alt="image"/>

選項:

A、dynamic_cast(it->second)

B、static_cast(it->second)

C、dynamic_cast(it->second)

D、static_cast(it->second)

答案:【dynamic_cast(it->second)】39.單選題:Team類描述球隊,球隊由一組球員組成(m_players成員),以下語句錯誤的是?

選項:

A、1

B、2

C、3

D、4

答案:【4】40.多選題:某銀行系統(tǒng)采用FactoryMethod方法描述其不同賬戶之間的關(guān)系,設(shè)計出的類圖如下所示。其中與FactoryMethod中的“Creator”角色相對應(yīng)的類是【】,與“Product”角色相對應(yīng)的類是【】。

選項:

A、Bank

B、Account

C、Checking

D、Savings

答案:【Bank;Account】41.多選題:下列哪些設(shè)計模式在結(jié)構(gòu)上符合下圖的描述?

選項:

A、策略模式

B、代理模式

C、裝飾器模式

D、觀察者模式

答案:【代理模式;裝飾器模式】42.多選題:在程序代碼布局中,每行只寫一條語句的優(yōu)點是()

選項:

A、便于閱讀代碼

B、方便定位并改正語法錯誤

C、便于調(diào)試

D、便于編輯

答案:【便于閱讀代碼;方便定位并改正語法錯誤;便于調(diào)試;便于編輯】43.多選題:以下說法錯誤的是

選項:

A、move()函數(shù)可將變量強制轉(zhuǎn)換為左值。

B、移動構(gòu)造函數(shù)的作用是完成深復(fù)制操作。

C、unique_ptr獨享它所指向的動態(tài)對象。

D、shared_ptr與其他指針共同管理一個動態(tài)對象。

答案:【move()函數(shù)可將變量強制轉(zhuǎn)換為左值。;移動構(gòu)造函數(shù)的作用是完成深復(fù)制操作?!?4.多選題:以下關(guān)于C++標(biāo)準庫中提供的模板,說法錯誤的是

選項:

A、vector是典型的順序容器模板

B、forward_list中的元素可以通過下標(biāo)訪問

C、multimap中的key可以重復(fù),并且元素有序存放

D、stack和queue都有迭代器

答案:【forward_list中的元素可以通過下標(biāo)訪問;stack和queue都有迭代器】45.多選題:以下代碼使用了類模板,對語句解釋錯誤的是

選項:

A、①定義了模板的兩個占位符,它們都是類型占位符。

B、②使用變量size定義數(shù)組長度,此種用法是錯誤的。

C、③的形參包括一個initializer_list類型的對象,這種對象可以接收任意長度的元素集合。

D、④使用模板生成了類實例Undergraduate。

答案:【①定義了模板的兩個占位符,它們都是類型占位符。;②使用變量size定義數(shù)組長度,此種用法是錯誤的?!?6.單選題:在進行設(shè)計以應(yīng)對變化的過程中,應(yīng)該遵循兩條基本策略:找出變化并封裝變化點;優(yōu)先使用對象組合,而不是類繼承

選項:

A、正確

B、錯誤

答案:【正確】47.單選題:類A和類B之間的關(guān)系如圖所示,則稱類B中的getName()方法是對類A中的getName()方法的重載(overload)。

選項:

A、正確

B、錯誤

答案:【錯誤】48.單選題:封裝性好的代碼更容易測試,因為它與其他代碼沒有耦合

選項:

A、正確

B、錯誤

答案:【正確】49.單選題:輸入任意一個學(xué)生的考試成績,然后按其所屬分數(shù)段打印對應(yīng)等級:90-100分為A等,80-89分為B等,70-79為C等,60-69為D等,60分以下為E等。raptor完成上述功能的算法流程圖是錯誤的。

選項:

A、正確

B、錯誤

答案:【錯誤】50.單選題:每個Raptor程序都必須有一個Start和End符號。

選項:

A、正確

B、錯誤

答案:【正確】51.單選題:遞歸調(diào)用算法與相同功能的非遞歸算法相比,主要問題在于重復(fù)計算太多,而且調(diào)用本身需要分配額外的空間和傳遞數(shù)據(jù)和控制,所以時間與空間開銷通常都比較大。

選項:

A、正確

B、錯誤

答案:【正確】52.單選題:為變量命名時最重要的考慮事項是該名字要完全、準確地表述出該變量所代表的事物。

選項:

A、正確

B、錯誤

答案:【正確】53.單選題:在只有頭節(jié)點指針的單鏈表上,插入新元素時,插在表尾比插在表頭更方便

選項:

A、正確

B、錯誤

答案:【錯誤】54.單選題:求某單鏈表的長度需要遍歷整個鏈表。

選項:

A、正確

B、錯誤

答案:【正確】55.單選題:已知單鏈表節(jié)點定義如下:structnode{intdata;structnode*next;}設(shè)指針p指向單鏈表中某節(jié)點,指針q指向某單個節(jié)點,則在p所指節(jié)點后面插入q所指節(jié)點的操作是:p->next=q;q->next=p->next;

選項:

A、正確

B、錯誤

答案:【錯誤】56.單選題:已知單鏈表節(jié)點定義如下:structnode{intdata;structnode*next;}設(shè)指針p指向單鏈表中某節(jié)點,指針q指向某單個節(jié)點,則在p所指節(jié)點后面插入q所指節(jié)點的操作是:p->next=q;

選項:

A、正確

B、錯誤

答案:【錯誤】57.單選題:某單向循環(huán)鏈表只有尾節(jié)點指針T,則需要遍歷整個單向循環(huán)鏈表才能訪問頭節(jié)點。

選項:

A、正確

B、錯誤

答案:【錯誤】58.單選題:某單向循環(huán)鏈表只有頭節(jié)點指針L,則需要遍歷整個單向循環(huán)鏈表才能訪問尾節(jié)點。

選項:

A、正確

B、錯誤

答案:【正確】59.單選題:一組數(shù)據(jù),采用數(shù)組存儲和采用鏈表存儲時,查找的效率不同,但占用的存儲空間是一樣的。

選項:

A、正確

B、錯誤

答案:【錯誤】60.單選題:單鏈表節(jié)點和雙向鏈表節(jié)點占用的存儲空間是一樣的。

選項:

A、正確

B、錯誤

答案:【錯誤】61.單選題:良好的代碼布局可以改善代碼的可讀性

選項:

A、正確

B、錯誤

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

選項:

A、正確

B、錯誤

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

選項:

A、正確

B、錯誤

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論