面向對象程序設計(山東聯(lián)盟 青島理工大學) 知到智慧樹網課答案_第1頁
面向對象程序設計(山東聯(lián)盟 青島理工大學) 知到智慧樹網課答案_第2頁
面向對象程序設計(山東聯(lián)盟 青島理工大學) 知到智慧樹網課答案_第3頁
面向對象程序設計(山東聯(lián)盟 青島理工大學) 知到智慧樹網課答案_第4頁
面向對象程序設計(山東聯(lián)盟 青島理工大學) 知到智慧樹網課答案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

面向對象程序設計(山東聯(lián)盟-青島理工大學)-知到答案、智慧樹答案緒論單元測試1、問題:C++僅僅是C語言的高版本而已。選項:A:對B:錯答案:【錯】2、問題:C++是面向對象程序設計語言。選項:A:對B:錯答案:【對】第一章單元測試1、問題:程序應該必須包含的部分是()選項:A:數據結構和算法B:高級語言C:注釋D:頭文件答案:【數據結構和算法】2、問題:C++對C語言作了許多改進,下列描述中()使C++語言成為面向對象的語言。選項:A:允許函數重載,并允許函數有默認參數B:規(guī)定函數說明必須用原型C:引進了類和對象的概念D:增加了一些新的運算符答案:【引進了類和對象的概念】3、問題:對象之間的相互作用和通信是通過消息。下列哪項不是消息的組成部分()選項:A:要執(zhí)行的函數的名字B:要執(zhí)行的函數的內部結構C:接受消息的對象D:函數需要的參數答案:【要執(zhí)行的函數的內部結構】4、問題:最初的計算機編程語言是()選項:A:低級語言B:匯編語言C:機器語言D:高級語言答案:【機器語言】5、問題:下列各種高級語言中,()不是面向對象的程序設計語言。選項:A:JavaB:C:DelphiD:C++答案:【】6、問題:結構化程序設計的基本結構不包含以下哪項()選項:A:順序B:循環(huán)C:跳轉D:選擇答案:【跳轉】7、問題:C++比機器語言可讀性強,但運行效率比機器語言程序低。選項:A:對B:錯答案:【對】8、問題:C++具有()特點。選項:A:支持多態(tài)性B:支持數據封裝和數據隱藏C:支持泛型編程D:支持繼承和重用答案:【支持多態(tài)性;支持數據封裝和數據隱藏;支持泛型編程;支持繼承和重用】9、問題:()不是屬于面向對象程序設計的特性。選項:A:數據相關性B:多態(tài)性C:封裝性D:繼承性答案:【數據相關性】10、問題:編寫C++程序一般需要經過的幾個步驟依次是()選項:A:編輯調試編譯連接B:編輯編譯連接運行C:編譯編輯連接運行D:編譯調試編輯連接答案:【編輯編譯連接運行】第二章單元測試1、問題:對于動態(tài)分配內存空間描述正確的是()。選項:A:delete運算符只能釋放由new分配的動態(tài)存儲空間B:delete運算符可以釋放動態(tài)的存儲空間和靜態(tài)的存儲空間C:用malloc分配空間,將觸發(fā)構造函數的調用D:使用new運算符分配的內存空間的長度必須是常量答案:【delete運算符只能釋放由new分配的動態(tài)存儲空間】2{、問題:下面的程序執(zhí)行后的輸出結果是()。#includeusingnamespacestd;intmain(){intk=1,t=0;switch(k)case1:t+=10;case2:t+=20;break;default:t+=3;}cout<選項:A:23B:20C:30D:10答案:【30】3、問題:string是STL庫中封裝的一個類。選項:A:錯B:對答案:【對】4、問題:設x和y均為int型變量,則執(zhí)行以下的循環(huán)后,y值為()。for(y=1,x=1;y<=50;y++){if(x==10)break;if(x%2==1){x+=5;continue;}x-=3;}選項:A:7B:4C:5D:6答案:【6】5、問題:以下程序代碼的執(zhí)行結果是()。intmain(){inti;for(i='A';i<'I';i++,i++)cout<選項:A:abcdefghB:編譯不通過,無輸出C:acegiD:aceg答案:【aceg】6、問題:以下程序執(zhí)行后的輸出結果是()。intmain(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;cout<選項:A:自然數1~9的累加和B:自然數1~9中的奇數之和C:自然數1~10中的偶數之和D:自然數1~10的累加和答案:【自然數1~10中的偶數之和】7、問題:在C++語言中,下列屬于構造類型的是()。選項:A:數組類型B:整型C:字符型D:實型答案:【數組類型】8、問題:設d為字符變量,下列表達式不正確的是()。選項:A:d=’a’B:d=”a”C:d=’g’D:d=97答案:【d=”a”】9、問題:設有,則表達式(x++*1/3)的值是()。選項:A:4B:0C:3D:答案:【3】10、問題:#include"iostream"usingnamespacestd;intmain(){inty=3,x=3,z=1;cout<<(++x,y++)<<””<選項:A:43B:42C:33D:34答案:【33】第三章單元測試1、問題:對C++語言函數的有關描述中,正確的是()。選項:A:函數必須有返回值,否則不能使用函數B:C語言函數既可以嵌套定義又可以嵌套調用C:C語言程序中有調用關系的所有函數必須放在一個源文件中D:在調用函數時,只能把實參的值傳遞給形參,形參的值不能傳遞給實參答案:【在調用函數時,只能把實參的值傳遞給形參,形參的值不能傳遞給實參】2、問題:若有以下函數調用語句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句中實參的個數是()個:選項:A:4;B:3;C:5;D:6答案:【3;】3、問題:在傳值調用中,要求()。選項:A:形參和實參類型任意,個數相等;B:形參和實參對應的類型一致,個數任意。C:形參和實參對應的類型一致,個數相等;D:形參和實參類型都完全一致,個數相等;答案:【形參和實參對應的類型一致,個數相等;】4、問題:在C++程序中,有關函數的敘述正確的有()。選項:A:函數的定義可以嵌套,但函數的調用不可以嵌套B:函數的定義和調用均可以嵌套C:函數的定義和調用均不可以嵌套D:函數的定義不可以嵌套,但函數的調用可以嵌套答案:【函數的定義不可以嵌套,但函數的調用可以嵌套】5、問題:若用數組名作為函數調用的實參,傳遞給形參的是()。選項:A:數組的首地址B:數組元素的個數C:數組中全部元素的值D:數組第一個元素的值答案:【數組的首地址】6、問題:以下程序的運行結果是()。#include"iostream"usingnamespacestd;intfunc(inta,intb){return(a+b);}intmain(){intx=2,y=5,z=7,r;r=func(func(x,y),z);cout<選項:A:15B:12C:13D:14答案:【14】7{、問題:有以下程序#include"iostream"usingnamespacestd;voidpoint(char*p){p+=3;}intmain(){charb[4]='a','b','c','d'},*p=b;point(p);cout<<*p<選項:A:bB:cC:dD:a答案:【a】8、問題:設有定義:intn1=0,n2,*p=&n2,*q=&n1;,以下賦值語句中與n2=n1;語句等價的是()。選項:A:*p=*q;B:p=*q;C:*p=&n1;D:p=q;答案:【*p=*q;】9、問題:有以下程序#includeusingnamespacestd;intmain(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;cout<<*p<<”,”<<*q<選項:A:8,7B:8,8C:7,7D:7,8答案:【8,7】10、問題:以下語句或語句組中,能正確進行字符串賦值的是()。選項:A:char*sp='right!';B:char*sp;*sp='right!';C:chars[10];s='right!';D:chars[10];*s='right!';答案:【char*sp='right!';】11、問題:以下程序段中,不能正確賦字符串(編譯時系統(tǒng)會提示錯誤)的是()。選項:A:chars[10];strcpy(s,'abcdefg');B:chars[10];s='abcdefg';C:chart[]='abcdefg',*s=t;D:chars[10]='abcdefg';答案:【chars[10];s='abcdefg';】12、問題:設有定義語句intx[6]={2,4,6,8,5,7},*p=x,i;要求依次輸出x數組6個元素中的值,不能完成此操作的語句是()。選項:A:for(i=0;i<6;i++)cout<<*(p++);B:for(i=0;i<6;i++)cout<<*(p+i);C:for(i=0;i<6;i++)cout<<(*p)++;D:for(i=0;i<6;i++)cout<<*p++;答案:【for(i=0;i<6;i++)cout<<(*p)++;】13、問題:以下程序段執(zhí)行后,變量b的值是()。inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];選項:A:5B:9C:8D:6答案:【9】1{4、問題:有以下程序:#includeusingnamespacestd;voidsum(int*a){a[0]=a[1];}intmain(){intaa[10]=1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--)sum(&aa[i]);cout<選項:A:2B:3C:1D:4答案:【4】15、問題:不同命名空間中的標識符可以同名而不會發(fā)生沖突。選項:A:對B:錯答案:【對】第四章單元測試1(、問題:所謂數據封裝就是將一組數據和與這組數據有關操作組裝在一起,形成一個實體,這實體也就是)。選項:A:數據塊B:對象C:函數體D:類答案:【類】2、問題:一個函數功能不太復雜,但要求被頻繁調用,則應把它定義為()。選項:A:嵌套函數B:內聯(lián)函數C:遞歸函數D:重載函數答案:【內聯(lián)函數】3、問題:適宜采用inline定義函數情況是()。選項:A:函數代碼多、不常調用B:函數體含有循環(huán)語句C:函數體含有遞歸語句D:函數代碼少、頻繁調用答案:【函數代碼少、頻繁調用】4、問題:類MyA的拷貝構造函數的原型是()選項:A:MyA()B:MyA(MyA&)C:MyA(MyA)D:MyA(MyA*)答案:【MyA(MyA&)】5、問題:在類中說明的成員可以使用關鍵字的是()。選項:A:cpuB:publicC:registerD:extern答案:【public】6、問題:下列不能作為類的成員的是()。選項:A:自身類對象B:自身類對象的引用C:自身類對象的指針D:另一個類的對象答案:【自身類對象】7、問題:假定AA為一個類,a()為該類公有的函數成員,x為該類的一個對象,則訪問x對象中函數成員a()的格式為()。選項:A:x.aB:x->aC:x.a()D:(*x).a()答案:【x.a()】8、問題:靜態(tài)成員函數沒有()。選項:A:返回類型B:指針參數C:返回值D:this指針答案:【this指針】9、問題:下面程序輸出結果是()。#includeusingnamespacestd;classexample{inta;public:example(intb=5){a=b++;}voidprint(){a=a+1;cout<選項:A:62B:61C:51D:52答案:【62】10、問題:一個類可包含析構函數的個數是()。選項:A:至少1個B:0個C:0個或多個D:1個答案:【1個】11、問題:下列關于析構函數描述正確的是()。選項:A:不能指定返回類型B:函數體中必須有delete語句C:返回類型必須是void類型D:可以重載答案:【不能指定返回類型】12、問題:拷貝構造函數創(chuàng)建對象時,使用已經存在的同類對象來進行初始化,由編譯器自動調用。選項:A:對B:錯答案:【對】13、問題:this指針存在于類的成員函數中,指向被調用函數所在的類實例的地址。選項:A:對B:錯答案:【對】14、問題:如果一個對象被聲明為常對象,則不能調用該對象的非const型的成員函數(除了由系統(tǒng)自動調用的隱式構造函數和析構函數)。選項:A:錯B:對答案:【對】15、問題:拷貝構造函數,是一種特殊的構造函數,它在創(chuàng)建對象時,是使用同一類中之前創(chuàng)建的對象來初始化新創(chuàng)建的對象。選項:A:錯B:對答案:【對】第五章單元測試1、問題:如果從原有類定義新類可以實現(xiàn)的是()。選項:A:數據封裝B:繼承機制C:數據抽象D:信息隱藏答案:【繼承機制】2、問題:下面敘述不正確的是()。選項:A:基類的公有成員在派生類中仍然是公有的B:對基類成員的訪問必須是無二義性的C:派生類一般都用公有派生D:賦值兼容規(guī)則也適用于多重繼承的組合答案:【基類的公有成員在派生類中仍然是公有的】3、問題:在公有派生類的成員函數不能直接訪問基類中繼承來的某個成員,則該成員一定是基類中的()。選項:A:保護成員B:保護成員或私有成員C:私有成員D:公有成員答案:【私有成員】4、問題:在私有繼承的情況下,基類的公有成員在派生類對象中的訪問權限()。選項:A:受保護B:不受保護C:保持不變D:受限制答案:【受限制】5、問題:對基類和派生類的關系描述中,錯誤的是()。選項:A:派生類是基類的特殊化B:派生類是基類的具體化C:基類繼承了派生類的屬性D:派生類是基類定義的延續(xù)答案:【基類繼承了派生類的屬性】6、問題:關于this指針使用說法正確的是()。選項:A:保證每個對象擁有自己的數據成員,但共享處理這些數據的代碼B:保證基類公有成員在子類中可以被訪問。C:保證基類保護成員在子類中可以被訪問。D:保證基類私有成員在子類中可以被訪問。答案:【保證每個對象擁有自己的數據成員,但共享處理這些數據的代碼】7、問題:假設,即類Y是類X的派生類,則說明一個Y類的對象時和刪除Y類對象時,調用構造函數和析構函數的次序分別為()。選項:A:X,Y;X,YB:;C:X,Y;D:;X,Y答案:【X,Y;】8、問題:以下基類中的成員函數表示純虛函數的是()。選項:A:virtualvoidtt()=0B:voidtt(int)=0C:virtualvoidtt(int){}D:virtualvoidtt(int)答案:【virtualvoidtt()=0】9、問題:關于類的靜態(tài)成員函數描述錯誤的是()。選項:A:不是對象的成員B:在創(chuàng)建對象前不存在C:不能直接訪問非靜態(tài)函數D:不能說明為虛函數答案:【在創(chuàng)建對象前不存在】10、問題:如果派生類的成員函數的原型與基類中被定義為虛函數的成員函數原型相同,那么,這個函數自動繼承基類中虛函數的特性。選項:A:錯B:對答案:【對】第六章單元測試1、問題:重載運算符限制在C++語言中已有的運算符范圍內的允許重載的運算符之中,不能創(chuàng)建新的運算符。()選項:A:對B:錯答案:【對】2、問題:重載之后的運算符可以改變運算符的優(yōu)先級和結合性,也能改變運算符操作數的個數及語法結構。()選項:A:對B:錯答案:【錯】3、問題:運算符重載為類的成員函數和重載為友元函數不同的是,重載為成員函數時聲明和定義中省略了第一個參數,因為成員函數總是與對象捆綁使用的,被捆綁的對象就是被操作的第一參數。()選項:A:對B:錯答案:【對】4、問題:雙目運算符重載為友元函數時有兩個參數即運算符的兩個操作數,而重載為成員函數時只有一個參數,即運算符的第二個操作數()。選項:A:錯B:對答案:【對】5、問題:operator運算符就是運算符重載函數的函數名,比如:operator+就是函數名。()選項:A:對B:錯答案:【對】6、問題:基類中定義的虛函數為整個類族提供了一個通用的框架,說明了一般類所應該具有的行為,派生類根據自己的情況給出自己的定義,即對基類中定義的虛函數進行重定義。()選項:A:對B:錯答案:【對】7、問題:C++中的虛函數的作用主要是實現(xiàn)了多態(tài)機制,即父類類別的指針(或者引用)指向其子類的實例,然后通過父類的指針(或者引用)調用實際子類的成員函數。多態(tài)機制可以簡單地概括為“一個接口,多種方法”。()選項:A:錯B:對答案:【對】8、問題:當編譯器在編譯程序的過程中看到某個類中有虛函數的標志時,就會為這個類的實際對象創(chuàng)建一個指針即虛函數表指針vtbl,以指向類中的虛函數表。虛函數表里包含了所有的虛函數代碼的地址,以NULL結束。虛函數如果在派生類被重寫,就由派生類重寫的虛函數地址來代替。()選項:A:錯B:對答案:【對】9、問題:有虛函數的類,其對象的空間比沒有虛函數的類多了一個指針的空間,這個指針就是指向虛函數表的指針。()選項:A:對B:錯答案:【對】10、問題:構造函數可以定義為虛函數,析構函數不可以定義為虛函數。()選項:A:對B:錯答案:【錯】11、問題:析構函數的作用是在對象撤銷之前做必要的“清理現(xiàn)場”的工作。()選項:A:對B:錯答案:【對】12、問題:當派生類的對象從內存中撤銷時一般先調用派生類的析構函數,然后再調用基類的析構函數。()選項:A:對B:錯答案:【對】13、問題:當一個類有子類時,該類的析構函數必須是虛函數,否則子類的析構函數不會被調用,使得子類對象被撤銷之前動態(tài)申請的資源沒有被釋放,造成內存泄漏。()選項:A:對B:錯答案:【對】14、問題:下列屬于動態(tài)多態(tài)的是()。選項:A:構造函數重載B:虛函數C:函數重載D:運算符重載答案:【虛函數】15、問題:下面的說法錯誤的是()。選項:A:函數重載在編譯時表現(xiàn)出的多態(tài)性是靜態(tài)多態(tài)性,而虛函數則在運行時表現(xiàn)出的多態(tài)性是動態(tài)多態(tài)性。B:C++支持兩種多態(tài)性,靜態(tài)聯(lián)編所支持的多態(tài)性被稱為靜態(tài)多態(tài)性,動態(tài)聯(lián)編所支持的多態(tài)性被稱為動態(tài)多態(tài)性。C:C++的兩種聯(lián)編方式為:靜態(tài)聯(lián)編和動態(tài)聯(lián)編。D:函數模板和類模板的實例化的過程是通過動態(tài)聯(lián)編實現(xiàn)的。答案:【函數模板和類模板的實例化的過程是通過動態(tài)聯(lián)編實現(xiàn)的?!康谄哒聠卧獪y試1、問題:關于函數模板,描述錯誤的是()。選項:A:用關鍵字template引出對類型參數名的聲明B:函數模板必須由程序員實例化為可執(zhí)行的模板函數C:函數模板不是函數,它需要以具體的類型為實參才能生成函數D:函數模板的實例化由編譯器實現(xiàn)答案:【函數模板必須由程序員實例化為可執(zhí)行的模板函數】2、問題:假設有函數模板定義如下:templateintMin(T*a,intsize){Ttemp=a[0];intj=0;for(inti=1;i選項:A:Min(ArrayX,int);B:Min(ArrayX,10);C:Min(ArrayX,size);D:Min(ArrayX);答案:【Min(ArrayX,10);】3、問題:假設有模板定義如下:templateTMin(Tm1,Tm2){return(m1選項:A:templatefloatMin(Tm1,Tm2){return(m1B:templateT1Min(T1m1,T2m2){return(m1C:templateT1Min(T1a[],T2n){T1minnum=a[0];for(inti=0;ia[i])minnum=a[i];returnminnum;}D:templateTMin(Tm1,Tm2,Tm3){Ttemp=Min(m1,m2);returnMin(temp,m3);}答案:【templatefloatMin(Tm1,Tm2){return(m1】4、問題:建立類模板對象的實例化過程為()。選項:A:基類—派生類B:類模板—模板類—對象C:模板類—模板函數D:類模板—對象答案:【類模板—模板類—對象】5、問題:類模板Array的模板參數定義如下:template則下面哪個對象的定義是錯誤的?()選項:A:Array<double,10>a;B:Arraya;C:Arraya;D:Arraya(10);答案:【Arraya;】6、問題:下面定義類模板模板參數的定義語句錯誤的是()。選項:A:templateB:templateC:templateD:template答案:【template】7、問題:以下類模板、模板類、普通類之間的派生方式正確的是()選項:A:從普通類派生出類模板B:從模板類派生出普通類C:從類模板派生出新的類模板D:從模板類派生出類模板答案:【從普通類派生出類模板;從模板類派生出普通類;從類模板派生出新的類模板;從模板類派生出類模板】8、問題:類模板templateclassX{},其中,函數模板f定義為該類模板實例化的每個模板類的友元,則其說明應為()。選項:A:templatefriendvoidX::f(x&)B:friendvoidf();C:friendvoidX::f();D:templatefriendvoidf(X&);答案:【templatefriendvoidf(X&);】9、問題:下面vector容器的定義不正確的是()選項:A:vectorv;B:vectorv(10);C:vectorv;D:vectorv;答案:【vectorv;】10、問題:順序容器中,能通過pop_front()刪除最前面的元素的是()。選項:A:B:list,dequeC:D:答案:【】11、問題:函數模板實例化時,沒有普通傳值參數的類型轉換機制。()選項:A:錯B:對答案:【對】12、問題:把通過函數模板按實際類型生成的函數稱為模板函數,這個過程稱為實例化。編譯程序實例化后的模板函數自動生成目標代碼。()選項:A:錯B:對答案:【對】13、問題:函數模板中可以有不止一個類型參數,每一個類型參數前面都要加typename或class來說明。()選項:A:對B:錯答案:【對】14、問題:下面是類模板的定義語句分別是char、double、float類型的變量,則下面定義對象的語句哪一個是錯誤的?()選項:A:ClassXobj;B:ClassXobj;C:ClassXobj;D:ClassX<>obj;答案:【ClassXobj;】15、問題:編譯器會選擇實參經過自動類型轉換后能夠匹配的模板函數進行匹配。()選項:A:錯B:對答案:【錯】第八章單元測試1、問題:下面關于C++輸入輸出的說法正確的是()選項:A:C++有專門的輸入輸出命令;B:C++流是指信息向外部設備(如鍵盤和磁盤)輸入輸出的過程。C:C++通過一種稱為流的機制提供了輸入和輸出方法;D:流是一種靈活且面向對象的I/O方法;答案:【C++通過一種稱為流的機制提供了輸入和輸出方法;;流是一種靈活且面向對象的I/O方法;】2、問題:cout是()的一個對象,處理標準輸出。選項:A:ostreamB:clogC:cerrD:isteam答案:【ostream】3、問題:下列程序的輸出結果是()。#includeusingnamespacestd;intmain(){inti=1;cout<<++i<<i++<<i<<i++<<++i<<endl;return0;}選項:A:22335B:23345C:54535D:53525答案:【23345】4、問題:設己定義浮點型變量data,按data在內存中的表示原樣輸出到顯示器上,正確的語句是()。選項:A:cout.write((double*)&data,sizeof(double));B:cout.write((char*)&data,sizeof(double));C:cout.write((char*)&data,data);D:cout.write((double*)&data,data);答案:【cout.write((char*)&data,sizeof(double));】5、問題:若定義cin>>str;當輸入ObjectWindowsProgramming!,所得的結果是()選項:A:str=ObjectWindowsProgramming!B:C:str=ObjectD:str=ObjectWindowsProgramming答案:【str=Object】6、問題:在C++中,用getline函數讀取string對象時()。選項:A:讀取字符直至

溫馨提示

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

評論

0/150

提交評論