C軟件工程師入職筆試題及答案_第1頁
C軟件工程師入職筆試題及答案_第2頁
C軟件工程師入職筆試題及答案_第3頁
C軟件工程師入職筆試題及答案_第4頁
C軟件工程師入職筆試題及答案_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、簡答題(共50分)1.你常用的主機(jī)、OS、編譯工具和調(diào)試工具是什么。如何查看系統(tǒng)進(jìn)程信息,你常用的進(jìn)程管理命令有哪些?(問題盡量基于你常用的Unix環(huán)境作答)。(10分)答:我常用的是Sun主機(jī),操作系統(tǒng)一般是Solaris8或Solaris10編譯工具包括:g+,gcc,cc等。調(diào)試工具包括:gdb。(該項(xiàng)了解應(yīng)聘者對編程環(huán)境的偏好,無標(biāo)準(zhǔn)答案。)常用的進(jìn)程管理命令是:查看:prstat-a或top管理:plddpid顯示鏈接到每個(gè)進(jìn)程的動態(tài)鏈接庫pstackpid顯示十六進(jìn)制與符號堆跟蹤信息fuserfilespwdxpid查看進(jìn)程運(yùn)行目錄ptreepid查看進(jìn)程樹信息2.C中的mallo

2、c和C+中的new有什么區(qū)別。(10分)答:malloc和new有以下不同:(1)new、delete是操作符,可以重載,只能在C+中使用。(2) malloc、free是函數(shù),可以覆蓋,C、C+中都可以使用。(3) new可以調(diào)用對象的構(gòu)造函數(shù),對應(yīng)的delete調(diào)用相應(yīng)的析構(gòu)函數(shù)。(4) malloc僅僅分配內(nèi)存,free僅僅回收內(nèi)存,并不執(zhí)行構(gòu)造和析構(gòu)函數(shù)。(5) new、delete返回的是某種數(shù)據(jù)類型指針,malloc、free返回白是void指針。注意:malloc申請的內(nèi)存空間要用free釋放,而new申請的內(nèi)存空間要用delete釋放,不要混用。因?yàn)閮烧邔?shí)現(xiàn)的機(jī)理不同。答:結(jié)構(gòu)

3、化的程序設(shè)計(jì)將數(shù)據(jù)和對數(shù)據(jù)的操作分離,程序是由一個(gè)個(gè)的函數(shù)組成的,面向?qū)ο蟮某绦蛟O(shè)計(jì)將數(shù)據(jù)和操作封裝在一起,程序是由一個(gè)個(gè)對象組成的,對象之間通過接口進(jìn)行通信,它能夠較好地支持程序代碼的復(fù)用。4、 一個(gè)oracle實(shí)例是由SGA和哪幾個(gè)后臺進(jìn)程組成的?SGA有哪些組成部分及簡述它們的作用?PGA是什么?(10分)答:后臺進(jìn)程:系統(tǒng)監(jiān)控和進(jìn)程監(jiān)控進(jìn)程(SMON和PMON)、數(shù)據(jù)庫寫進(jìn)程(DBWR)、日志寫進(jìn)程(LGWR)、歸檔進(jìn)程(ARCH)、檢查點(diǎn)(CKPT);其它可選進(jìn)程:調(diào)度進(jìn)程(Dnnn)、恢復(fù)進(jìn)程(RECO)、快照進(jìn)程(SNPn)、鎖進(jìn)程(LCKn)、并行查詢進(jìn)程(Pnnn)。數(shù)據(jù)寫進(jìn)

4、程(dbwr):負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入數(shù)據(jù)文件;日志寫進(jìn)程(lgwr):將重做日志緩沖區(qū)中的更改寫入在線重做日志文件;系統(tǒng)監(jiān)控(smon):檢查數(shù)據(jù)庫的一致性如有必要還會在數(shù)據(jù)庫打開時(shí)啟動數(shù)據(jù)庫的恢復(fù);進(jìn)程監(jiān)控(pmon):負(fù)責(zé)在一個(gè)Oracle進(jìn)程失敗時(shí)清理資源;檢查點(diǎn)進(jìn)程(chpt):負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫中時(shí),更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫狀態(tài)信息;歸檔進(jìn)程(arcn):在每次日志切換時(shí)把已滿的日志組進(jìn)行備份或歸檔;作業(yè)調(diào)度器(cjq):負(fù)責(zé)將調(diào)度與執(zhí)行系統(tǒng)中已定義好的job,完成一些預(yù)定義的工作;恢復(fù)進(jìn)程(reco):保證分布式事務(wù)的一

5、致性,在分布式事務(wù)中,要么同時(shí)commit,要么同時(shí)rollback;SGA包含:db_cacheshared_poollarge_pooljava_pooldb_cache數(shù)據(jù)庫緩存(BlockBuffer)占據(jù)Oracle數(shù)據(jù)庫SGA(系統(tǒng)共享內(nèi)存區(qū))的主要部分,Oracle數(shù)據(jù)庫通過使用LRU算法,將最近訪問的數(shù)據(jù)塊存放到緩存中,從而優(yōu)化對磁盤數(shù)據(jù)的訪問;shared_poo:l共享池中保存數(shù)據(jù)字典高速緩沖和完全解析或編譯的的PL/SQL塊和SQL語句及控制結(jié)構(gòu);large_pool使用MTS配置時(shí),因?yàn)橐赟GA中分配UGA來保持用戶的會話,就是用Large_pool來保持這個(gè)會話內(nèi)存

6、;使用RMAN做備份的時(shí)候,要使用Large_pool這個(gè)內(nèi)存結(jié)構(gòu)來做磁盤I/O緩存器;java_pool:為javaprocedure預(yù)備的內(nèi)存區(qū)域,如果沒有使用javaproc,java_pool不是必須的。PGA:程序全局區(qū),是保存有特定服務(wù)進(jìn)程的數(shù)據(jù)和控制信息的內(nèi)存結(jié)構(gòu),這個(gè)內(nèi)存結(jié)構(gòu)是非共享的,只有服務(wù)進(jìn)程本身才能夠訪問它自己的PGA區(qū)。每個(gè)服務(wù)進(jìn)程都有它自己的PGA區(qū),各個(gè)服務(wù)進(jìn)程PGA區(qū)的總和即庫實(shí)例的PGA區(qū)的大小。一般情況下,PGA區(qū)都由私有SQL工作區(qū)和會話內(nèi)存區(qū)組成。5、你在項(xiàng)目中用到了xml技術(shù)的哪些方面?如何實(shí)現(xiàn)的?(10分)答:用到了數(shù)據(jù)存貯,信息配置兩方面。在做數(shù)據(jù)

7、交換平臺時(shí),將不能數(shù)據(jù)源的數(shù)據(jù)組裝成XML文件,然后將XML文件壓縮打包加密后通過網(wǎng)絡(luò)傳送給接收者,接收解密與解壓縮后再同XML文件中還原相關(guān)信息進(jìn)行處理。在做軟件配置時(shí),利用XML可以很方便的進(jìn)行,軟件的各種配置參數(shù)都存貯在XML文件中。二、按要求補(bǔ)充函數(shù)源代碼(20分)1、完成順序查找函數(shù)f_seq()。其過程是:從表頭開始,根據(jù)給定的模式,逐項(xiàng)與表中元素比較。如果找到所需元素,則查找成功,并打印出它在表中的順序號。如果查找整個(gè)表仍未找到所需對象,則查找失敗。(10分)#includevoidf_seq(char*list,char*object,intlen)/list指針數(shù)組,指向字符

8、串/object模式串/len表的長度char*p;intstrcmp(char*s,char*t);p=list;while()/plist+lenif(strcmp(*p,object)=0)break;else;/p+if(pnext=NULLp=head-next;head-next=NULL;while()/p!=NULL或ptemp1=head;/head=p;temp2=p;p=p-next;/temp2-next=temp1;或head-next=temp1;/Matchwhilestatenmentreturnhead;/返回逆置后的鏈表的頭結(jié)點(diǎn)寫sql。(共10分)SQLd

9、escemp;NameNull?TypeEMPNONOTNULLNUMBER(4)ENAMEVARCHAR2(10)JOBVARCHAR2(9)MGRNUMBER(4)HIREDATEDATESALNUMBER(7,2)COMMNUMBER(7,2)DEPTNONUMBER(2)5分)1) 查出各部門薪水最高的三個(gè)員工的部門、姓名和薪水。答:breakondeptno;selectdeptno,ename,salfrom(selectdeptno,ename,sal,row_number()over(partitionbydeptnoorderbysal)asrankfromemp)where

10、rank=3;2) 查看各部門的薪水合計(jì),要求有總計(jì)信息。(5分)答:breakondeptnoskip1;selectdecode(grouping(deptno),1、計(jì),to_char(deptno)deptno,sum(sal)sum_salfromempgroupbyrollup(deptno);四、編碼實(shí)現(xiàn)冒泡排序(20分)答:冒泡排序編程實(shí)現(xiàn)如下:#include#defineLEN10/數(shù)組長度voidmain(void)intARRAY10=0,6,3,2,7,5,4,9,1,8;/待排序數(shù)組printf(n);for(inta=0;aLEN;a+)printf(%d,ARR

11、AYa);inti=0;intj=0;boolisChange;for(i=1;i=i;j-)/對當(dāng)前無序區(qū)ARRAYi.LEN自下向上掃描/交換記錄if(ARRAYj+1ARRAYj)ARRAY0=ARRAYj+1;/ARRAY0僅做暫存單元ARRAYj+1=ARRAYj;ARRAYj=ARRAY0;isChange=1;printf(n);for(a=0;aLEN;a+)printf(%d,ARRAYa);if(!isChange)break;printf(n);return;/發(fā)生了交換,故將交換標(biāo)志置為真/打印本次排序后數(shù)組內(nèi)容/本趟排序未發(fā)生交換,提前終止算法1 .概念填空題1.1

12、運(yùn)算符重載是對已有的運(yùn)算符賦予多重含義,使同一個(gè)運(yùn)算符在作用于不同類型對象時(shí)導(dǎo)致不同的行為。運(yùn)算符重載的實(shí)質(zhì)是函數(shù)重載,是類的多態(tài)性特征。1.2 可以定義一種特殊的類型轉(zhuǎn)換函數(shù),將類的對4轉(zhuǎn)換成基加數(shù)據(jù)類型的數(shù)據(jù)。但是這種類型轉(zhuǎn)換函數(shù)只能定義為一個(gè)類的成員函數(shù)而不能定義為類的友元函數(shù)。類類型轉(zhuǎn)換函數(shù)既沒有參數(shù),也不顯式給出返回類型。類類型函數(shù)中必須有return表達(dá)式的語句返回函數(shù)值。一個(gè)類可以定義多個(gè)類類型轉(zhuǎn)換函數(shù)。1.3 運(yùn)算符重載時(shí)其函數(shù)名由operator運(yùn)算符構(gòu)成。成員函數(shù)重載雙目運(yùn)算符時(shí),左操作數(shù)是對象,右操作數(shù)是函數(shù)參數(shù)。2 .簡答題運(yùn)算符重載的規(guī)則。2.1 簡述重載單目運(yùn)算符+

13、、-,前置和后置時(shí)的差別。2.2 C+中重運(yùn)算符是否都可以重載?是否都可以重載成類的成員函數(shù)?是否都可以重載成類的友元函數(shù)?2.3 構(gòu)造函數(shù)作為類型轉(zhuǎn)換函數(shù)的條件是什么。3 .選擇題3.1 在下列運(yùn)算符中,不能重載的是(B)A.!B.sizeofC.newD.delete3.2 不能用友員函數(shù)重載的是(A)。A.=B.=C.=D.+3.3 下列函數(shù)中,不能重載運(yùn)算符的函數(shù)是(B)。A.成員函數(shù)B.構(gòu)造函數(shù)C.普通函數(shù)D.友員函數(shù)3.4 如果表達(dá)式+i*k時(shí)中的+“和“*”都是重載的友元運(yùn)算符,則采用運(yùn)算符函數(shù)調(diào)用格式,該表達(dá)式還可表不為(B)。B.operator*(operator+(i),

14、k).k.operator*(operator+(i)VOLUMEoperator-(VOLUME)const;下列關(guān)于這A.operator*(i.operator+(),k)C.i.operator+().operator*(k)D3.5 已知在一個(gè)類體中包含如下函數(shù)原型:個(gè)函數(shù)的敘述中,錯(cuò)誤的是(B)。A.這是運(yùn)算符-的重載運(yùn)算符函數(shù)B.這個(gè)函數(shù)所重載的運(yùn)算符是一個(gè)一元運(yùn)算符C.這是一個(gè)成員函數(shù)D.這個(gè)函數(shù)不改變數(shù)據(jù)成員的值3.6 在表達(dá)式x+y*z中,+是作為成員函數(shù)重載的運(yùn)算符,*是作為非成員函數(shù)重載的運(yùn)算下列敘述中正確的是(C)。A.operator+有兩個(gè)參數(shù),operator*

15、有兩個(gè)參數(shù)B.operator+有兩個(gè)參數(shù),operator*有,個(gè)參數(shù)C.operator+有,個(gè)參數(shù),operator*有兩個(gè)參數(shù)D.operator+有,個(gè)參數(shù),operator*有,個(gè)參數(shù)4 .寫出下列程序運(yùn)行結(jié)果4.1 #include#usingnamesoacestd;classTpublic:T()a=0;b=0;c=0;T(inti,intj,intk)a=i;b=j;c=k;voidget(int&i,int&j,int&k)i=a;j=b;k=c;Toperator*(Tobj);private:inta,b,c;TT:operator*(Tobj)Ttempobj;te

16、mpobj.a=a*obj.a;tempobj.b=b*obj.b;tempobj.c=c*obj.c;returntempobj;intmain()Tobj1(1,2,3),obj2(5,5,5),obj3;inta,b,c;obj3=obj1*obj2;obj3.get(a,b,c);cout”(obj1*obj2):t”a=”at“b=”bt”c=”ctendl;(obj2*obj3).get(a,b,c);cout“(obj2obj3):t”“a=”at”b=”bt“c=”ctendl;(obj1*obj2):a=5b=10c=15(obj2*obj3):a=25b=50c=755編程

17、題51分?jǐn)?shù)類Fraction的算術(shù)運(yùn)算改寫成運(yùn)算符重載函數(shù),使分?jǐn)?shù)類能實(shí)現(xiàn)通常的分?jǐn)?shù)+、-、*、/等運(yùn)算。#includeusingnamespacestd;classFractionintnumerator,denominator;intcommon_divisor();/計(jì)算最大公約數(shù)voidcontracted();/分?jǐn)?shù)化簡public:Fraction(int=0,int=1);Fraction(Fraction&);Fractionoperator+(Fraction);Fractionoperator-(Fraction);Fractionoperator*(Fraction);

18、Fractionoperator/(Fraction);voidSet(int=0,int=1);voiddisp()coutfraction=numerator/denominatorendl;Fraction:Fraction(intnum,intdeno)Set(num,deno);Fraction:Fraction(Fraction&f)numerator=f.numerator;denominator=f.denominator;FractionFraction:operator+(Fractionf)FractionTemp(numerator*f.denominator+f.nu

19、merator*denominator,denominator*f.denominator);Temp.contracted();returnTemp;FractionFraction:operator-(Fractionf)FractionTemp(numerator*f.denominator-f.numerator*denominator,denominator*f.denominator);Temp.contracted();returnTemp;FractionFraction:operator*(Fractionf)FractionTemp(numerator*f.numerato

20、r,denominator*f.denominator);Temp.contracted();returnTemp;FractionFraction:operator/(Fractionf)FractionTemp(f.denominator,f.numerator);Temp=operator*(Temp);Temp.contracted();returnTemp;intFraction:common_divisor()intresidue;intdividend=numerator,divisor=denominator;while(residue=dividend%divisor)div

21、idend=divisor;divisor=residue;returndivisor;voidFraction:contracted()intresidue=common_divisor();numerator/=residue;denominator/=residue;if(denominator”、”做向量的輸入/輸出操作。注意檢測運(yùn)算的合法性。#include/usingnamespacestd;classVectorintvec10;public:Vector(intv10);Vector();Vector(Vector&);Vectoroperator+(Vector&);Vect

22、oroperator-(Vector&);friendostream&operator(ostream&out,Vector&);Vector:Vector(intv10)inti;for(i=0;i10;i+)veci=vi;Vector:Vector()inti;for(i=0;i10;i+)veci=0;Vector:Vector(Vector&v)inti;for(i=0;i10;i+)veci=v.veci;VectorVector:operator+(Vector&v)Vectorz;inti;for(i=0;i10;i+)z.veci=veci+v.veci;returnz;VectorVector:operator-(Vector&v)Vectorz;inti;for(i=0;i10;i+)z.veci=veci-v.veci;returnz;ostream&operator(ostream&out,Vec

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論