2022年下半年程序員下午試卷_第1頁
2022年下半年程序員下午試卷_第2頁
2022年下半年程序員下午試卷_第3頁
2022年下半年程序員下午試卷_第4頁
2022年下半年程序員下午試卷_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯年下半年程序員下午試卷2022年下半年程序員下午試卷題庫匯總

1.試題一(共15分)閱讀以下說明和流程圖,填補(bǔ)流程圖中的空缺(1)~(5),將解答填入答題紙的對應(yīng)欄內(nèi)?!菊f明】求連續(xù)函數(shù)f(x)的根(方程f(x)=0的解)的最簡單方法是二分法。為此,首先需要在若干點(diǎn)上檢查函數(shù)值的符號,如果發(fā)現(xiàn)f(a)與f(b)符號相反(a[15分]

2.試題二(共15分)閱讀以下說明和C函數(shù),將應(yīng)填入(n)處字句寫在答題紙的對應(yīng)欄內(nèi)?!菊f明1】函數(shù)Counter(intn,intw[])的功能是計(jì)算整數(shù)n的二進(jìn)制表示形式中1的個(gè)數(shù),同時(shí)用數(shù)組w記錄該二進(jìn)制數(shù)中1所在位置的權(quán)。例如,十進(jìn)制數(shù)22的二進(jìn)制表示為10110。對于該二進(jìn)制數(shù),1的個(gè)數(shù)為3,在w[0]中存入2(即21)、w[1]中存入4(即22)、w[2]中存入16(即24)?!綜函數(shù)1】intCounter(intn,intw[]){inti=0,k=1;while((1)){if(n%2)w[i++]=k;n=n/2;(2);}returnI;}【說明2】函數(shù)Smove(intA[],intn)的功能是將數(shù)組中所有的奇數(shù)都放到所有偶數(shù)之前。其過程為:設(shè)置數(shù)組元素下標(biāo)索引i(初值為0)和j(初值為n-1),從數(shù)組的兩端開始檢查元素的奇偶性。若A[i]、A[j]都是奇數(shù),則從前往后找出一個(gè)偶數(shù),再與A[j]進(jìn)行交換;若A[i],A[j]都是偶數(shù),則從后往前找出一個(gè)奇數(shù),再與A[i]進(jìn)行交換;若A[i]是偶數(shù)而A[j]是奇數(shù),則交換兩者,直到將所有的奇數(shù)都排在所有偶數(shù)之前為止。【C函數(shù)2】voidSmove(intA[],intn){inttemp,i=0,j=n-1;if(n<2)return;while(i<j){if(A[i]%2==1A[j]%2==1){(3);}elseif(A[i]%2==0A[j]%2==0){(4);}else{if((5)){temp=A[i];A[i]=A[j];A[j]=temp;}i++,j--;}}}[15分]

3.試題三(共15分)閱讀以下說明、C函數(shù)和問題,將解答寫入答題紙的對應(yīng)欄內(nèi)?!菊f明1】函數(shù)testfl(intm,intn)對整數(shù)m、n進(jìn)行某種運(yùn)算后返回一個(gè)整數(shù)值?!綜函數(shù)1】inttest_fl(intm,intn){intk;k=mn?m:n;for(;(k%m!=0)||(k%n!=0);k++);returnk;}【問題1】(5分)(1)請寫出發(fā)生函數(shù)調(diào)用test_fl(9,6)時(shí),函數(shù)的返回值;(2)請說明函數(shù)test_fl的功能。【說明2】設(shè)在某C系統(tǒng)中為每個(gè)字符分配1個(gè)字節(jié),為每個(gè)指針分配4個(gè)字節(jié),sizeof(x)計(jì)算為x分配的字節(jié)數(shù)。函數(shù)test_f2()用于測試并輸出該C系統(tǒng)為某些數(shù)據(jù)分配的字節(jié)數(shù)?!綜函數(shù)2】voidtest_f2(){charstr[]="NewWorld";char*p=str;chari='\0';void*ptr=malloc(50);printf("%d\t",sizeof(str));printf("%d\n",sizeof(p));printf("%d\t",sizeof(i));printf("%d\n”,sizeoqptr)),}【問題2】(4分)請寫出函數(shù)test_f2()的運(yùn)行結(jié)果?!菊f明3】函數(shù)test_f3(chars[])的功能是:將給定字符串s中的所有空格字符刪除后形成的串保存在字符數(shù)組tstr中(串s的內(nèi)容不變),并返回結(jié)果串的首地址?!綜函數(shù)3】char*test_f3(constchars[]){chartstr[50]={'\0'};unsignedinti,k=0;for(i=0;i

4.試題四(共15分)閱讀以下說明和C函數(shù),將解答填入答題紙的對應(yīng)欄內(nèi)。【說明】函數(shù)del_substr(S,T)的功能是從頭至尾掃描字符串S,刪除其中與字符串T相同的所有子串,其處理過程為:首先從串S的第一個(gè)字符開始查找子串T,若找到,則將后面的字符向前移動將子串T覆蓋掉,然后繼續(xù)查找子串T,否則從串S的第二個(gè)字符開始查找,依此類推,重復(fù)該過程,直到串S的結(jié)尾為止。該函數(shù)中字符串的存儲類型SString定義如下:typedefstruct{char*ch;/*串空間的首地址*/intlength;/*串長*/}SString;【C函數(shù)】voiddelsubstr(SString*S,SStringT){inti,j;if(S-length<1||T.length<1||S-length<T.length)return;i=0;/*i為串S中字符的下標(biāo)*/for(;;){j=0;/*j為串T中字符的下標(biāo)*/while(i<S-lengthj<T.length){/*在串S中查找與T相同的子串*/if(S-ch[i]==T.ch[j]){i++;j++;}else{i=(1);j=0;/*i值回退,為繼續(xù)查找T做準(zhǔn)備*/}}if((2)){/*在S中找到與T相同的子串*/i=(3);/*計(jì)算S中子串T的起始下標(biāo)*/for(k=i+T.length;klength;k++)/*通過覆蓋子串T進(jìn)行刪除*/S-ch[(4)]=S-ch[k];S-length=(5);/*更新S的長度*/}elsebreak;/*串S中不存在子串T*/}}[15分]

從下列2道試題(試題五至試題六)中任選1道解答。如果解答的試題數(shù)超過1道,則題號小的1道解答有效。

5.試題五(共15分)閱讀以下說明和C++代碼,將應(yīng)填入(n)處字句寫在答題紙對應(yīng)欄內(nèi)?!菊f明】已知類LinkedList表示列表類,該類具有四個(gè)方法:addElement()、lastElement()、numberOfElement()以及removeLastElement()。四個(gè)方法的含義分別為:voidaddElement(Object):在列表尾部添加一個(gè)對象;ObjectlastElement():返回列表尾部對象;intnumberOfElement():返回列表中對象個(gè)數(shù);voidremoveLastElement():刪除列表尾部的對象。現(xiàn)需要借助LinkedList來實(shí)現(xiàn)一個(gè)Stack棧類,C++代碼1和C++代碼2分別采用繼承和組合的方式實(shí)現(xiàn)。【C++代碼1】classStack:publicLinkedList{public:voidpush(Objecto){addElement(o);};//壓棧Objectpeek(){return(1);};//獲取棧頂元素boolisEmpty(){//判斷棧是否為空returnnumberOfElement()==0;};Objectpop(){//彈棧Objecto=lastElement();(2);returno;};};【C++代碼2】classStack{private:(3);public:voidpush(Objecto){//壓棧list.addElement(o);};Objectpeek(){//獲取棧頂元素returnlist.(4);};boolisEmpty(){//判斷棧是否為空returnlist.numberOfElement()==0;};Objectpop(){//彈棧Objecto=list.lastElement();list.removeLastElement();returno;};};【問題】若類LinkedList新增加了一個(gè)公有的方法removeElement(intindex),用于刪除列表中第index個(gè)元素,則在用繼承和組合兩種實(shí)現(xiàn)棧類Stack的方式中,哪種方式下Stack對象可訪問方法removeElement(intindex)?(5)(A.繼承B.組合)[15分]

6.試題六(共15分)閱讀以下說明和Java代碼,將應(yīng)填入(n)處字句寫在答題紙對應(yīng)欄內(nèi)?!菊f明】已知類LinkedList表示列表類,該類具有四個(gè)方法:addElement()、lastElemen()、numberOfElement()以及removeLastElement()。四個(gè)方法的含義分別為:voidaddElement(Object):在列表尾部添加一個(gè)對象;ObjectlastElement():返回列表尾部對象;intnumberOfElement():返回列表中對象個(gè)數(shù);voidremoveLastElement():刪除列表尾部的對象。現(xiàn)需要借助LinkedList來實(shí)現(xiàn)一個(gè)Stack棧類,Java代碼1和Java代碼2分別采用繼承和組合的方式實(shí)現(xiàn)?!綣ava代碼1】publicclassStackextendsLinkedList{publicvoidpush(Objecto){//壓棧addElement(o);}publicObjectpeek(){//獲取棧頂元素return(1);}publicbooleanisEmpty(){//判斷棧是否為空returnnumberOfElement()=0;}publicObjectpop(){//彈棧Objecto=lastElement();(2);returno;}}【Java代碼2】publicclassStack{private(3);publicStack(){list=newLinkedList();}publicvoidpush(Objecto){list.addElement(o);}publicObjectpeek{//獲取棧頂元素returnlist.(4);}publicbooleanisEmpty(){//判斷棧是否為空returnlist.numberOfElement()==0;}publicObjectpop(){

溫馨提示

  • 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

提交評論