




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2009訊飛軟件開發(fā)筆試題目(C+)A卷1、(4分)用變量a給出下面的定義a) 一個(gè)整型數(shù);b)一個(gè)指向整型數(shù)的指針;c)一個(gè)指向指針的指針,它指向的指針是指向一個(gè)整型數(shù);d)一個(gè)有10個(gè)整型的數(shù)組;e)一個(gè)有10個(gè)指針的數(shù)組,該指針是指向一個(gè)整型數(shù);f)一個(gè)指向有10個(gè)整型數(shù)數(shù)組的指針;g)一個(gè)指向函數(shù)的指針,該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù);h)一個(gè)有10個(gè)指針的數(shù)組,該指針指向一個(gè)函數(shù),該函數(shù)有一個(gè)整型參數(shù)并返回一個(gè)整型數(shù)答案:a)int a b)int *a; c)int *a; d)int a10; e)int *a 10; f) int a10, *p=a; g)int (*a
2、)(int) h) int( *a10)(int) 2、(4分)請(qǐng)寫出以下語(yǔ)句的輸出結(jié)果:Int i=43;Int j=5;Double f=25.45181;a) printf(“i=%d,j=%d,f=%3.2f”,i,j,f);b) printf(“i=%x,j=%06d,i/j=%d”,i,j,i/j);答案:A)i=43,j=5,f=25.45 B)i=2b ,j=00005,i/j=8 (%x顯示的是一個(gè)無(wú)符號(hào)的0x 16進(jìn)制的整數(shù),%06d輸出的是6位數(shù),不夠6位數(shù),前面補(bǔ)0,i/j兩個(gè)整數(shù)相除,只取商的整數(shù)值)3、(2分)請(qǐng)完成以下宏定義:a)用預(yù)處理指令#define 聲明一
3、個(gè)常數(shù),用以表明1年中有多少個(gè)秒(忽略閏年問(wèn)題)b)寫一個(gè)“標(biāo)準(zhǔn)”宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)答案:a)#define seconds 365*24*60*60b) #define MIN(a,b) (a)<(b)?(a):(b)擴(kuò)展:MAX宏 #define MAX (a)>(b)(a):(b) ABS宏 #define ABS (x)>0)?(x):(-(x)4、(6分)以下為32為windows下的c+程序,請(qǐng)計(jì)算:a)char str=”hello”;char *p=str;請(qǐng)計(jì)算:sizeof(str)= sizeof(p)= strlen(p)=答
4、案:6, 4,5b)void func(char str100)Void *p=malloc(100);請(qǐng)計(jì)算:sizeof(str)=101sizeof (p)=4推薦精選c) int a3=1,2,3;int b=sizeof(a)/sizeof(a0);請(qǐng)計(jì)算:b=35、(2分) 設(shè)有定義:int n=0,*p=&n,*q=&p; 則以下選項(xiàng)中,正確的賦值語(yǔ)句是(d)a)p=1; b)*q=2; c)q=p; d)*p=5;6、(2分)const關(guān)鍵字的用途?(至少說(shuō)明兩種)答案:(1)可以定義 const 常量 (2)const 可以修飾函數(shù)的參數(shù)、返回值,甚至函數(shù)的定
5、義體。被const 修飾的東西都受到強(qiáng)制保護(hù),可以預(yù)防意外的變動(dòng),能提高程序的健壯性。7、(2分)typedef的c語(yǔ)言中頻繁用以聲明一個(gè)已經(jīng)存在的數(shù)據(jù)類型的同義詞。也可以用以預(yù)處理器做類似的事情。例如:#define dps struct s*Typedef struct s *tps;以上兩種情況的意圖都是要定義dps和tps作為一個(gè)指向結(jié)構(gòu)s指針。哪種方法更好一些呢?(如果有的話)為什么?Typedef更好一些,因?yàn)閐efine只是簡(jiǎn)單的替換,比如聲明dps a,b等價(jià)于struct *a,b;所以這樣聲明是錯(cuò)誤的,而Typedef卻不會(huì)這樣。8、(8分) 以下是一組有關(guān)內(nèi)存知識(shí)的問(wèn)題,
6、請(qǐng)仔細(xì)看題,回答:Void GetMemory(char *p)P=(char *)malloc(100);Void Test(void)Char *str=Null;GetMemory(str);Strcpy(str,”hello world”);Printf(str);請(qǐng)問(wèn)運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)果?a)_會(huì)出錯(cuò),不能傳遞動(dòng)態(tài)分配的內(nèi)存,str一直為空char *GetMemory(void)Char p=”hello world”);Return p;Void Test(void)Char *str=NULL;Str=GetMemory();Printf(str);請(qǐng)問(wèn)運(yùn)行Test
7、函數(shù)會(huì)有什么結(jié)果?推薦精選b)_會(huì)產(chǎn)生錯(cuò)誤,不能返回子函數(shù)的局部變量值,因?yàn)樵诤瘮?shù)退出時(shí),局部變量的值也清空。void GetMemory2(char *p,int num)*p=(char *)malloc(num);Void Test(void)Char *str=NULL;GetMemory(&str,100);Strcpy(str,”hello”);Printf(str);請(qǐng)問(wèn)運(yùn)行Test函數(shù)會(huì)有什么結(jié)果?c)_hello。void Test(void)Char *str=(char *)malloc(100);Strcpy(str,”hello”);Free(str);If(
8、str!=NULL)Strcpy(str,”world”);Printf(str);請(qǐng)問(wèn)運(yùn)行test函數(shù)會(huì)有什么樣的結(jié)果?雖然能拷貝成功,但是這樣使用很不安全,free(str)后,str成為懸浮指針。9、(6分)請(qǐng)寫出以下程序的輸出結(jié)果:Class APublic:A() Printf(“A constructed.n”);Virtual A()printf(“A deconstructed.n”);Virtual void Fn()printf(“A fn called.n”);Class B:public APublic:B()推薦精選printf(“B constructed.n”);
9、Virtual B()printf(“B deconstructed.n”);Virtual void Fn()printf(“B fn called.n”);Class C:public BPublic:C()printf(“C constructed.n”);Virtual C()printf(“C deconstructed.n”);Virtual void Fn()printf(“C fn called.n”);Void main(int argc,char* grgv)A *pA=new B;If(pA!=NULL)pA->fn();B *pB=static_cast<B
10、*>(pA);If(pB!=NULL)pB->fn();C * pC=static_cast<C*>(pA);If(pC!=NULL)pC->fn();delete pA;A constructed.B constructedB fn called.B fn called.B fn called.B deconstructed.A deconstructed.10.(2分)以下說(shuō)法錯(cuò)誤的是:(b)A)指針和引用作為函數(shù)參數(shù)都可以改變實(shí)參B)指針和引用都可以在定義后任意的改變指向C)引用必須在創(chuàng)建的時(shí)候初始化,而指針則不需要D)不能空引用,但是可以有空指針11、(2
11、分) 下列關(guān)于多態(tài)的描述,錯(cuò)誤的是(c)A)C+語(yǔ)言的多態(tài)性分為編譯時(shí)的多態(tài)和運(yùn)行時(shí)的多態(tài)性推薦精選B)編譯時(shí)的多態(tài)性可以通過(guò)函數(shù)重載來(lái)實(shí)現(xiàn)C)運(yùn)行時(shí)的多態(tài)性可以通過(guò)模板和虛函數(shù)來(lái)實(shí)現(xiàn)D)實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的機(jī)制稱動(dòng)態(tài)綁定12、(2分) 運(yùn)算符的重載形式有兩種,重載為_類的成員函數(shù)_和_類的友元函數(shù)_13、(2分) main主函數(shù)執(zhí)行完畢后,是否可能會(huì)再執(zhí)行一段代碼?請(qǐng)說(shuō)明理由?答:可以,可以用_onexit()注冊(cè)一個(gè)函數(shù),在main結(jié)束之后調(diào)用f1,f2,f3,f4。14、(2分)C+中的空類,默認(rèn)產(chǎn)生那些類成員函數(shù)?答:默認(rèn)構(gòu)造函數(shù)、析構(gòu)函數(shù)、默認(rèn)拷貝函數(shù)和賦值操作符15、(4分)簡(jiǎn)述ST
12、L庫(kù)的功能,并給出遍歷一個(gè)包含一組整型數(shù)的vector的代碼。答:標(biāo)準(zhǔn)模板庫(kù)是一個(gè)基于模板的容器類庫(kù),包括鏈表、列表、隊(duì)列和堆棧。標(biāo)準(zhǔn)模板庫(kù)還包含許多常用的算法,包括排序和查找。標(biāo)準(zhǔn)模板庫(kù)的目的是提供對(duì)常用需求重新開發(fā)的一種替代方法。標(biāo)準(zhǔn)模板庫(kù)已經(jīng)經(jīng)過(guò)測(cè)試和調(diào)試,具有很高的性能并且是免費(fèi)的。最重要的是,標(biāo)準(zhǔn)模板庫(kù)是可重用的,當(dāng)你知道如何使用一個(gè)標(biāo)準(zhǔn)模板庫(kù)的容器后,就可以在所有的程序中使用它而不需要重新開發(fā)了。容器是包容其他對(duì)象的對(duì)象。標(biāo)準(zhǔn)C+庫(kù)提供了一系列的容器類,它們都是強(qiáng)有力的工具,可以幫助C+開發(fā)人員處理一些常見的編程任務(wù)。標(biāo)準(zhǔn)模板庫(kù)容器類有兩種類型,分別為順序和關(guān)聯(lián)。順序容器可以提供對(duì)
13、其成員的順序訪問(wèn)和隨機(jī)訪問(wèn),關(guān)聯(lián)容器則經(jīng)過(guò)優(yōu)化類的鍵值訪問(wèn)它們的元素。標(biāo)準(zhǔn)模板庫(kù)在不同操作系統(tǒng)是可移植的。#include<iostream>#include<vector>using namespace std;int sum(vector<int > vec)int result=0;vector<int>:iterator p=vec.begin();while(p!=vec.end()cout<<*p<<" "result+=*p+;return result;int main()vector&
14、lt;int> v1(100);cout<<v1.size()<<endl;/100cout<<sum(v1)<<endl;/0v1.push_back(23);cout<<v1.size()<<endl;/101cout<<sum(v1)<<endl;/23v1.reserve(1000);v1900=900;cout<<v1900<<endl;cout<<v1.front()<<endl;推薦精選cout<<v1.back()&l
15、t;<endl;v1.pop_back();cout<<v1.back()<<endl;return 0;16、(5分)請(qǐng)寫出貝葉斯公式若A1,A2,An構(gòu)成完備事件組,且P(Ai)>0,(i=1,2,n),則對(duì)任一事件B(P(B)>0)有:17、(5分)進(jìn)程和線程的區(qū)別和聯(lián)系?進(jìn)程和線程的關(guān)系:(1)一個(gè)線程只能屬于一個(gè)進(jìn)程,而一個(gè)進(jìn)程可以有多個(gè)線程,但至少有一個(gè)線程。(2)資源分配給進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。(3)處理機(jī)分給線程,即真正在處理機(jī)上運(yùn)行的是線程。(4)線程在執(zhí)行過(guò)程中,需要協(xié)作同步。不同進(jìn)程的線程間要利用消息通信的
16、辦法實(shí)現(xiàn)同步。線程是指進(jìn)程內(nèi)的一個(gè)執(zhí)行單元,也是進(jìn)程內(nèi)的可調(diào)度實(shí)體.與進(jìn)程的區(qū)別:(1)調(diào)度:線程作為調(diào)度和分配的基本單位,進(jìn)程作為擁有資源的基本單位(2)并發(fā)性:不僅進(jìn)程之間可以并發(fā)執(zhí)行,同一個(gè)進(jìn)程的多個(gè)線程之間也可并發(fā)執(zhí)行(3)擁有資源:進(jìn)程是擁有資源的一個(gè)獨(dú)立單位,線程不擁有系統(tǒng)資源,但可以訪問(wèn)隸屬于進(jìn)程的資源.(4) 系統(tǒng)開銷:在創(chuàng)建或撤消進(jìn)程時(shí),由于系統(tǒng)都要為之分配和回收資源,導(dǎo)致系統(tǒng)的開銷明顯大于創(chuàng)建或撤消線程時(shí)的開銷。但是進(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會(huì)對(duì)其它進(jìn)程產(chǎn)生影響,而線程只是一個(gè)進(jìn)程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒(méi)有單獨(dú)的地
17、址空間,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉,所以多進(jìn)程的程序要比多線程的程序健壯,但在進(jìn)程切換時(shí),耗費(fèi)資源較大,效率要差一些 18、(10分) 請(qǐng)不用任何c runtime函數(shù)實(shí)現(xiàn)以下函數(shù):Inter trim_str(char *pstr)函數(shù)功能如下:1) 濾掉字符串頭尾的空格、回車、tab2) 輸出字符串通過(guò)輸入字符串指針?lè)祷?) 如果成功則返回0否則返回非0#include<iostream>using namespace std;#define ERR -1;int trim_str(char *pstr)char *p=pstr;char *m;推薦精選if(p=
18、NULL)return ERR;while(*p!='0')if(*p=' ')|(*p='n')|(*p='t')m=p;while(*m!='0')*m=*(m+1);m+;elsep+;return 0;int main() char s="ab deedeasd " int i=trim_str(s);if(i=0)cout<<"成功"<<endl;elsecout<<"失敗"<<endl;cout&
19、lt;<s<<endl;return 0;19、(10分)有N個(gè)大小不等的自然數(shù)(1,2,3,.N)請(qǐng)將它們從小到大排列。算法要求:時(shí)間復(fù)雜度為O(n),空間復(fù)雜度為O(1)。請(qǐng)簡(jiǎn)要說(shuō)明你采用的排序算法并寫出c的偽代碼。#include<iostream>using namespace std;const int MAX=1000;int dataMAX;推薦精選void paixu(int *p,int m)int k=0;for(int i=0;i<MAX;i+)datai=0;for(int j=0;j<m;j+)data*(p+j)+;for(
20、i=0;i<MAX;i+)if(datai!=0)for(j=0;j<datai;j+)*(p+k)=i;k+;int main()int a=1,3,1,27,13,2,4,80,43,23,18,46;int len;len=sizeof(a)/sizeof(int);paixu(a,len);for(int i=0;i<len;i+)cout<<ai<<" "return 0;20、(10分) 用文字和圖示(類圖)描述你所知道的除單件模式和簡(jiǎn)單工廠之外的一種設(shè)計(jì)模式,并用c+實(shí)現(xiàn)單例模式:類圖:推薦精選Singleton<
21、;<static>>singleton:Singleton *<<static>>GetInstance()Singleton()class Singletonpublic:static Singleton* GetInstance();private:Singleton()Singleton()static Singleton *singleton;Singleton* Singleton:singleton=NULL;Singleton* Singleton:GetInstance()if(singleton=NULL)singleton=new
22、Singleton();return singleton;21、(10分)請(qǐng)?jiān)谙铝腥}中任選一題作答A)什么是內(nèi)存的垃圾回收集算法,其作用是什么?據(jù)你所知,有那些開發(fā)語(yǔ)言中提供了垃圾收集機(jī)制?答:一種自動(dòng)內(nèi)存管理的策略,就是自動(dòng)垃圾回收機(jī)制。既然是自動(dòng)垃圾回收,那么平臺(tái)肯定得采取一種方式發(fā)現(xiàn)垃圾,然后清除。這就是垃圾收集算法所關(guān)注的問(wèn)題。垃圾收集算法的任務(wù)就是將活動(dòng)的對(duì)象和已經(jīng)死掉的對(duì)象分別出來(lái),然后將死掉的對(duì)象的內(nèi)存回收,而且為了更好的利用內(nèi)存,有的算法還會(huì)對(duì)內(nèi)存碎片進(jìn)行壓縮。 JAVA,C#B)現(xiàn)在非常多的用戶都在談SOA,根據(jù)Gartner的預(yù)測(cè),2008年,企業(yè)80%應(yīng)用都將
23、通過(guò)使用SOA來(lái)實(shí)現(xiàn),你理解SOA是什么?SOA的關(guān)鍵特點(diǎn)有哪些?SOA帶來(lái)什么?答:面向服務(wù)的體系結(jié)構(gòu) 面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以一種統(tǒng)一和通用的方式進(jìn)行交互。C)隨著互聯(lián)網(wǎng)的普及,很多新興的、傳統(tǒng)的軟件廠商都在探討SAAS的前景,甚至很多行業(yè)觀點(diǎn)認(rèn)為SAAS是軟件行業(yè)的未來(lái)趨勢(shì)。你是怎么理解SAAS
24、的,你怎么看待這種趨勢(shì)?SAAs和更早之前的ASP感念有什么異同?答:SaaS(Software-as-a-service)的意思是軟件即服務(wù),SaaS的中文名稱為軟營(yíng)或軟件運(yùn)營(yíng)。SaaS是基于互聯(lián)網(wǎng)提供軟件服務(wù)的軟件應(yīng)用模式。作為一種在21世紀(jì)開始興起的創(chuàng)新的軟件應(yīng)用模式,SaaS是軟件科技發(fā)展的最新趨勢(shì) SaaS提供商為企業(yè)搭建信息化所需要的所有網(wǎng)絡(luò)基礎(chǔ)設(shè)施及軟件、硬件運(yùn)作平臺(tái),并負(fù)責(zé)所有前期的實(shí)施、后期的維護(hù)等一系列服務(wù),企業(yè)無(wú)需購(gòu)買軟硬件、建設(shè)機(jī)房、招聘IT人員,即可通過(guò)互聯(lián)網(wǎng)使用信息系統(tǒng)。就像打開自來(lái)水龍頭就能用水一樣,企業(yè)根據(jù)實(shí)際需要,從SaaS提供商租賃軟件服務(wù)。推薦
25、精選 13、指針和引用的相同點(diǎn)和不同點(diǎn):相同點(diǎn):都是地址的概念;指針指向一塊內(nèi)存,它的內(nèi)容是所指內(nèi)存的地址;而引用則是某塊內(nèi)存的別名。不同點(diǎn):指針是一個(gè)實(shí)體,而引用僅是個(gè)別名;引用只能在定義時(shí)被初始化一次,之后不可變;指針可變;引用“從一而終”,指針可以“見異思遷”;引用沒(méi)有const,指針有const,const的指針不可變;引用不能為空,指針可以為空;“sizeof 引用”得到的是所指向的變量(對(duì)象)的大小,而“sizeof 指針”得到的是指針本身的大??;指針和引用的自增(+)運(yùn)算意義不一樣;引用是類型安全的,而指針不是 (引用比指針多了類型檢查14 、多線程問(wèn)題為什么多線程會(huì)比
26、單線程更耗時(shí)呢?其原因就在于,線程啟停以及線程上下文切換都會(huì)引起額外的開銷,所以消耗的時(shí)間比單線程多。為什么加鎖后的三線程比兩線程還慢呢?其原因也很簡(jiǎn)單,那把讀寫鎖就是罪魁禍?zhǔn)?。?shí)際情況并不是并行執(zhí)行,反而成了串行執(zhí)行,在采用多線程方法設(shè)計(jì)程序時(shí),如果產(chǎn)生的額外開銷大于線程的工作任務(wù),就沒(méi)有并行的必要。線程并不是越多越好,軟件線程的數(shù)量盡量能與硬件線程的數(shù)量相匹配。最好根據(jù)實(shí)際的需要,通過(guò)不斷的調(diào)優(yōu),來(lái)確定線程數(shù)量的最佳值。 15、什么是虛擬存儲(chǔ)器?虛擬存儲(chǔ)器的特點(diǎn)是什么?虛擬存儲(chǔ)器:在具有層次結(jié)構(gòu)存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)中,自動(dòng)實(shí)現(xiàn)部分裝入和部分替換功能,能從邏輯上為用戶提供一個(gè)比物理貯
27、存容量大得多,可尋址的“主存儲(chǔ)器”。虛擬存儲(chǔ)區(qū)的容量與物理主存大小無(wú)關(guān),而受限于計(jì)算機(jī)的地址結(jié)構(gòu)和可用磁盤容量。特點(diǎn):多次性、對(duì)換性、虛擬性。多次性是指一個(gè)作業(yè)被分成多次調(diào)入內(nèi)存運(yùn)行,亦即在作業(yè)運(yùn)行時(shí)沒(méi)有必要將其全部裝入,只需將當(dāng)前要運(yùn)行的那部分程序和數(shù)據(jù)裝入內(nèi)存即可;以后每當(dāng)要運(yùn)行到尚未調(diào)入的那部分程序時(shí),再將它調(diào)入。對(duì)換性是指允許在作業(yè)的運(yùn)行過(guò)程中進(jìn)行換進(jìn)、換出,亦即,在進(jìn)程運(yùn)行期間,允許將那些暫不使用的程序和數(shù)據(jù),從內(nèi)存調(diào)至外村的對(duì)換區(qū)(換出),待以后需要時(shí)再將它們從外存調(diào)至內(nèi)存(換進(jìn))。虛擬性是指能夠從邏輯上擴(kuò)充內(nèi)存容量,使用戶所看到的內(nèi)存容量遠(yuǎn)大于實(shí)際內(nèi)存容量。16、什么是this指
28、針?其主要功能是什么? this指針是類的一個(gè)自動(dòng)生成、自動(dòng)隱藏的私有成員,它存在于類的非靜態(tài)成員函數(shù)中,指向被調(diào)用函數(shù)所在的對(duì)象的地址。全局僅有一個(gè)this指針,當(dāng)一個(gè)對(duì)象被創(chuàng)建時(shí),this指針就指向?qū)ο髷?shù)據(jù)的首地址。 一種情況就是,在類的非靜態(tài)成員函數(shù)中返回類對(duì)象本身的時(shí)候,直接使用 return *this;另外一種情況是當(dāng)參數(shù)與成員變量名相同時(shí)使用this指針,如this->n = n (不能寫成n= n)推薦精選17、C+常見的內(nèi)存錯(cuò)誤:1. 內(nèi)存泄露:指應(yīng)用程序未釋放動(dòng)態(tài)申請(qǐng)的且不再使用的內(nèi)存,原因可能是
29、程序員疏忽或者錯(cuò)誤造成程序異常。在C/C+中,動(dòng)態(tài)申請(qǐng)的內(nèi)存是在堆上的。如果發(fā)送此類的內(nèi)存泄露,函數(shù)每執(zhí)行一次就丟失一塊內(nèi)存。長(zhǎng)時(shí)間運(yùn)行改程序可能引起系統(tǒng)"內(nèi)存耗盡"。2. 野指針:未初始化的指針?lè)Q為野指針。通常的避免方法就是在指針定義的時(shí)候就初始化,初始為NULL或者一個(gè)有意義的內(nèi)存地址。對(duì)于動(dòng)態(tài)申請(qǐng)的內(nèi)存地址,在該內(nèi)存釋放之后,對(duì)應(yīng)指針最好立即賦值為NULL。并在具體使用指針的時(shí)候判斷指針的值是否為NULL。3. 內(nèi)存越界訪問(wèn):內(nèi)存越界訪問(wèn)通常發(fā)生在數(shù)組、字符串或者連續(xù)內(nèi)存的訪問(wèn)。有兩種情況:讀越界,即讀了非有效的數(shù)據(jù)。如果所讀的內(nèi)存地址是無(wú)效的,程序會(huì)立即崩潰。如果所
30、讀內(nèi)存地址是有效的,讀入的時(shí)候不會(huì)有錯(cuò)誤,但是讀入的數(shù)據(jù)是隨機(jī)的,可能會(huì)產(chǎn)生不可控制的后果。舉個(gè)簡(jiǎn)單的例子,字符串輸出,如果沒(méi)有結(jié)束符,會(huì)輸出一堆亂碼也可能輸出正常,也就是說(shuō)結(jié)果是不可控的。寫越界,亦稱為緩沖區(qū)溢出,通常寫越界會(huì)發(fā)生錯(cuò)誤。內(nèi)存寫越界造成的后果是非常嚴(yán)重的。例如訪問(wèn)數(shù)組越界可能會(huì)修改訪問(wèn)數(shù)組的循環(huán)變量,造成死循環(huán)。4. 返回指向臨時(shí)變量的指針char * getString()char b = "Hello, Tocy!" return b;5. 試圖修改常量6. 內(nèi)存未分配成功,但已經(jīng)使用7. 內(nèi)存分配成功,但沒(méi)有初始化附加:goto語(yǔ)句有沒(méi)有必要存在程序設(shè)
31、計(jì)語(yǔ)言中答案:結(jié)構(gòu)程序設(shè)計(jì)是避免使用GOTO語(yǔ)句的一種程序設(shè)計(jì); 結(jié)構(gòu)程序設(shè)計(jì)是自頂向下的程序設(shè)計(jì); 結(jié)構(gòu)程序設(shè)計(jì)是一種組織和編制程序的方法,利用它編制的程序易于理解、易于修改; 程序結(jié)構(gòu)化的一個(gè)主要功能是使程序正確性的證明容易實(shí)現(xiàn); 結(jié)構(gòu)程序設(shè)計(jì)對(duì)設(shè)計(jì)過(guò)程中的每一步去驗(yàn)證其正確性,這樣便自動(dòng)導(dǎo)致自我說(shuō)明和自我捍衛(wèi)的程序設(shè)計(jì)風(fēng)格;2012年科大訊飛軟件筆試題一、單選題1、64變形的外角和是多少(A)是360度A、1*360B、1*180C、64*360D、64*1802、有一盆衣服(已經(jīng)洗過(guò)了,需要漂洗),請(qǐng)問(wèn)在漂洗次數(shù)固定的情況下如何分配水才能把衣服洗得最干凈(C)A、從少到多B、從多到少C
32、、平均分配,是求函數(shù)極值問(wèn)題D、隨便洗3、用力拉一根橡皮筋,橡皮筋上有沒(méi)有點(diǎn)還處在原來(lái)的位置沒(méi)有被拉走(B)A、有B、沒(méi)有C、有是有、有時(shí)沒(méi)有D、一般人拉沒(méi)有,劉謙拉就有4、假設(shè)一個(gè)應(yīng)用程序需要使用多個(gè)提供不同功能但在皆接口上有差異的類,適合使用的設(shè)計(jì)模式是(D(確定))A、裝飾模式B、迭代器模式C、工廠模式D、適配器模式5、結(jié)構(gòu)化程序設(shè)計(jì)主要強(qiáng)調(diào)的是(C)A、程序的規(guī)模B、程序的效率C、程序的易讀性D、程序設(shè)計(jì)語(yǔ)言的先進(jìn)性6、SQL Server中,刪除一個(gè)表的命令是(C)推薦精選A、DELETEB、CLEARC、DROPD、REMOVVE7、以下關(guān)于互斥量說(shuō)法錯(cuò)誤的是:(B)A、單線程程序
33、不需要使用互斥量B、互斥量可以被兩個(gè)以上的線程鎖定C、互斥量的激活是原子操作D、互斥量的創(chuàng)建和銷毀可以在不同的線程進(jìn)行8、在Windows任務(wù)管理器中發(fā)現(xiàn)某個(gè)進(jìn)程CPU占用率長(zhǎng)時(shí)間處于100%,以下可能導(dǎo)致該現(xiàn)象的原因是(D)A、程序處于大量I/O過(guò)程中B、多線程導(dǎo)致進(jìn)程死鎖C、等帶另一個(gè)程序響應(yīng)D、程序進(jìn)入死循環(huán)9、假設(shè)進(jìn)程中一個(gè)生產(chǎn)者線程,10個(gè)消費(fèi)者線程,為保證進(jìn)程間不出現(xiàn)死鎖,信號(hào)量的初值可以設(shè)置為(C)A、-1B、0C、1D、1010、使用兩個(gè)棧共享一片空間時(shí),當(dāng)(D)時(shí),才產(chǎn)生溢出A、其中一個(gè)棧的棧底到達(dá)這片內(nèi)存空間的中心點(diǎn)B、其中一個(gè)棧的棧頂?shù)竭_(dá)這片內(nèi)存空間的中心點(diǎn)C、兩個(gè)棧均不
34、空,且一個(gè)棧的棧頂?shù)竭_(dá)另一個(gè)棧的棧底(不可能發(fā)生這種情況)D、兩個(gè)棧的棧頂在這片內(nèi)存空間的某一位置相遇11、在一個(gè)單鏈表HL中,若要在指針?biāo)腹?jié)點(diǎn)的后面插入一個(gè)有指針second所指向的節(jié)點(diǎn),則執(zhí)行(A)A、second->next=first->next ; first->next=second;B、first->next=second->next;second=first;C、second->next=first->next ; second->next=first;D、first->next=second->next;secon
35、d->next=first;12、以下C語(yǔ)言編譯過(guò)程的真確步驟是(B)A、預(yù)處理 編譯 匯編 連接B、預(yù)處理 編譯 優(yōu)化(不能少了優(yōu)化) 匯編 連接C、編譯 優(yōu)化 匯編 運(yùn)行D、編輯 預(yù)處理 編譯 匯編 優(yōu)化 運(yùn)行13、在C語(yǔ)言程序編譯時(shí)出現(xiàn)如下錯(cuò)誤:“error LNK2019:unresoved external symbol"int_cdecl test(int)"(?testYAHHZ) referenced”可能的原因是(D)A、函數(shù)未定義B、變量未聲明C、變量未定義D、函數(shù)未聲明14、下列關(guān)于C語(yǔ)言中的函數(shù)敘述錯(cuò)誤的是(B)A、一個(gè)函數(shù)中可以有多條retu
36、rn語(yǔ)句B、調(diào)用函數(shù)必須要在一條獨(dú)立的語(yǔ)句中完成C、函數(shù)可以通過(guò)return語(yǔ)句傳遞函數(shù)值D、主函數(shù)main可以帶有參數(shù)15、在C語(yǔ)言中,打開可讀寫的二進(jìn)制文件myfile并向該文件追加寫入內(nèi)容,如果myfile不存在則創(chuàng)建新文件,正確的調(diào)用方式為()A、fopen("myfile","w")B、fopen("myfile","wb")C、fopen("myfile","r+b")D、fopen("myfile","a+b")a 表示追
37、加文件內(nèi)容。16、在C語(yǔ)言中,一個(gè)short int型數(shù)據(jù)在內(nèi)存中占2字節(jié),則short int型數(shù)據(jù)的取值范圍(B)推薦精選A、-256255B、-3276832767C、-6553665535D、-2147483647-214768364817、下面是對(duì)數(shù)組s的初始化,其中不正確的是(D)A、char s6="abcd"B、char s6='a','b','c','d'C、char s6=""D、char s6="abcdef"18、有以下一段程序代碼:void Ge
38、tMemory(char *p,int num)*p=(char *)malloc(num);void Test(void)char *str=NULL;GetMemory(&str,100);strcpy(str,"hello");printf(str);請(qǐng)問(wèn)運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)果(A)A、helloB、無(wú)效指針,輸出不確定C、NUllD、程序崩潰19、在32位系統(tǒng)中,有一類:class Apublic:virtual int test();virtual double test2();int test3();protected:double test4
39、();private:int a,b,c;定義了三個(gè)變量,加上一個(gè)虛函數(shù)表指針。大小為16;請(qǐng)問(wèn)sizeof(A)=(B)A、12B、16C、28D、3220、有以下一段程序代碼:class Apublic:virtual void func1()printf("A'sfuncl");void func2()("A'sfunc2");class B:public Apublic:推薦精選virtual void func1()printf("B'sfuncl");void func2()("B'
40、;sfunc2");void main()B inst_b;B *ptr_a=&b;ptr_a->func1();ptr_a->func2();程序的輸出結(jié)果為:(C)A、A'sfuncl B'sfunc2B、B'sfuncl A'sfunc2C、B'sfuncl B'sfunc2D、A'sfuncl A'sfunc2二、填空題1、操作系統(tǒng)中的存儲(chǔ)管理常用_虛擬存儲(chǔ)器_的方式來(lái)擺脫主存容量的限制。2、滿二叉樹第i層上的葉子節(jié)點(diǎn)數(shù)有_()_個(gè)。3、二分查找算法平均時(shí)間復(fù)雜程度是_o(log(n)_。4、
41、設(shè)x=3,y=2,x<<y=_12_。5、非成員函數(shù)聲明為類的_友元函數(shù)_才能訪問(wèn)這個(gè)類的private成員。6、帶有_純虛函數(shù)_的類稱為抽象類,它只能作為基類來(lái)使用。三、簡(jiǎn)答題(每題6分,共18分)1、列舉你所知道的排序算法和它們的平均復(fù)雜程度。答:1、冒泡排序(bubble sort) O(n2)2、雞尾酒排序(Cocktail sort, 雙向的冒泡排序) O(n2)3、插入排序(insertion sort) O(n2)4、選擇排序(selection sort) O(n2)5、堆排序(heapsort) O(nlog n)6、快速排序(quicksort) O(nlog
42、n)2、列舉析構(gòu)函數(shù)與普通類成員函數(shù)的不同點(diǎn)。答:1、析構(gòu)函數(shù)名也應(yīng)與類名相同,只是在函數(shù)名前面加一個(gè)波浪符,例如stud( )2、它不能帶任何參數(shù),也沒(méi)有返回值(包括void類型)。3、只能有一個(gè)析構(gòu)函數(shù),不能重載4、析構(gòu)函數(shù)在對(duì)象生存期即將結(jié)束的時(shí)刻被自動(dòng)調(diào)用3、在C+語(yǔ)言中使用宏定義經(jīng)常會(huì)引起一些錯(cuò)誤(如少打括號(hào)引起表達(dá)式值與預(yù)期不符等),列舉一些可以代替宏定義的方法。Method 1:內(nèi)聯(lián)函數(shù),Method 2:const方法Method 3:typedef 方法。四、編程題(共三題20分)1、 斐波那契數(shù)列的形式如下:1,1,2,3,5,8,13,n,編寫一個(gè)函數(shù)計(jì)算數(shù)列中第n個(gè)元素
43、的值。(5分)2、不調(diào)用任何系統(tǒng)函數(shù),實(shí)現(xiàn)一個(gè)字符串查找子串的函數(shù),如果包含字串,則返回該字符串的位置值,如果不包含,則返回-1。(7分)分兩步,推薦精選第一步:找到字符串中與子串首字符相等的字符在字符串中的位置。第二步:比較以后的字符是否相等。如果不等,記錄上次找到的第一次相等的位置,從這以后再尋找找到字符串中與子串首字符相等的字符在字符串中的位置。然后再比較以后的字符是否相等。2、 用算法實(shí)現(xiàn)將一個(gè)輸入的數(shù)字顛倒(輸入12345->54321),要求不調(diào)用任何系統(tǒng)函數(shù),也不能將輸入的數(shù)字轉(zhuǎn)換為字符串作為中間過(guò)渡。(8分)2013年科大訊飛軟件類筆試題1、相同表面積的正三棱錐、四面體、
44、六面體、正十二面體以及正二十面體,其中體積最大的是?正二十面體,物體越接近于球,體積越大2、上山和下山的路程都是1km,上山時(shí)速度15km/h,下山速度為多少才能到達(dá)時(shí)速30km/h(D) A 45km/h B 大于45km/h C 接近光速 D 永遠(yuǎn)不可能 設(shè)下坡速度x,則:1/x+1/15=2/30 => 1/x=03、三個(gè)骰子,出現(xiàn)兩個(gè)點(diǎn)數(shù)一樣的概率(5/12)4、凡是包含純虛函數(shù)的類都是抽象類嗎?
45、160; 對(duì)的5、數(shù)據(jù)庫(kù)oder by 和having知識(shí)點(diǎn)的。6、對(duì)應(yīng)“一個(gè)接口不同行為”的設(shè)計(jì)模式是。填空題1、對(duì)于無(wú)序整型數(shù)字的排序用什么算法最佳??焖倥判?、一串?dāng)?shù)字16個(gè),用折半查找查找一個(gè)存在的數(shù)字最多查多少次。3、構(gòu)造函數(shù)、重載運(yùn)算符函數(shù)、-不能定義為虛函數(shù)。靜態(tài)成員函數(shù)4、STL由xx、迭代器、算法組成。我答容器5、生產(chǎn)模式和消費(fèi)者模式都要用到的數(shù)據(jù)結(jié)構(gòu)是什么? 簡(jiǎn)答題: 1、線程和進(jìn)程用到的技術(shù)2、析構(gòu)函數(shù)和普通成員函數(shù)的區(qū)別3、冒泡和快排的優(yōu)缺點(diǎn)4、指針和引用的區(qū)別答:1) 引用必須被初始化,指針不必。2) 引用初始化以后不能被改變,指針可以改變所指的對(duì)象。3) 不存在指向空值的引用,但是存在指向空值的指針。三個(gè)編程題:1、統(tǒng)計(jì)一個(gè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2.2聲音的特性 說(shuō)課稿2025年初中人教版物理八年級(jí)上冊(cè)
- 2025年黨政領(lǐng)導(dǎo)干部黨章黨規(guī)黨紀(jì)知識(shí)考試題庫(kù)及答案(共150題)
- 智能財(cái)稅綜合實(shí)訓(xùn) 上篇 課件全套 社會(huì)共享初級(jí)代理實(shí)務(wù)-社會(huì)共享企業(yè)管家
- 2025年可生物降解有機(jī)垃圾厭氧發(fā)酵裝置合作協(xié)議書
- 2025年廣東省深圳市中考一模語(yǔ)文試題(原卷版+解析版)
- 銀行業(yè)務(wù)流程優(yōu)化與風(fēng)險(xiǎn)控制方案
- 網(wǎng)絡(luò)安全攻防實(shí)戰(zhàn)與防御策略
- 新能源行業(yè)光伏電站智能調(diào)度與管理方案
- 制造業(yè)智能化生產(chǎn)線升級(jí)方案
- 項(xiàng)目執(zhí)行階段工作總結(jié)與經(jīng)驗(yàn)教訓(xùn)分享報(bào)告
- 高中物理分層教學(xué)實(shí)施方案
- 農(nóng)貿(mào)市場(chǎng)建設(shè)項(xiàng)目可行性研究報(bào)告
- 大學(xué)英語(yǔ)四級(jí)閱讀理解精讀100篇
- 思想道德與法治2023版第三章繼承優(yōu)良傳統(tǒng) 弘揚(yáng)中國(guó)精神專題4第1講 教學(xué)設(shè)計(jì)
- 股東損害公司債權(quán)人利益責(zé)任糾紛起訴狀(成功范文)
- 中國(guó)石油轉(zhuǎn)觀念勇?lián)?dāng)創(chuàng)一流心得體會(huì) 中國(guó)石油轉(zhuǎn)觀念勇?lián)?dāng)創(chuàng)一流心得
- 中石油職稱俄語(yǔ)
- 七年級(jí)歷史下冊(cè)(人教版1-5課)測(cè)試題
- 蘇州職業(yè)大學(xué)職業(yè)適應(yīng)性測(cè)試題庫(kù)2021
- 遼寧升聯(lián)生物科技有限公司年產(chǎn)1.42萬(wàn)噸化學(xué)農(nóng)藥原藥智能化示范項(xiàng)目環(huán)境影響報(bào)告書
- 2015-2022年江蘇食品藥品職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文/數(shù)學(xué)/英語(yǔ)筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論