C筆試—— seven_第1頁(yè)
C筆試—— seven_第2頁(yè)
C筆試—— seven_第3頁(yè)
C筆試—— seven_第4頁(yè)
C筆試—— seven_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、筆試考了175分。 回憶的時(shí)候發(fā)現(xiàn)自己出了很多錯(cuò)誤,概念題也錯(cuò)了不少答的不好的地方,回帖指正,本著幫助大家的原則,用盡腦力今天全部回憶了一遍一、指出程序中的錯(cuò)誤,說(shuō)明原因并修正。1、Int *p,*q;p=(int*)malloc(sizeof(int)*20);q=(int*)malloc(sizeof(int)*10);q=p;/修改的話可以刪除這句話free(p);free(q);/重復(fù)釋放同一內(nèi)存會(huì)報(bào)錯(cuò),還剩一塊內(nèi)存沒(méi)有釋放,內(nèi)存泄露2、交換兩個(gè)字符串Void swap(char *p, char *q) Char temp100; Strcpy(temp,p); Strcpy(p,q

2、);Strcpy(q,temp);二、簡(jiǎn)答題1、arr為整型數(shù)組,N為數(shù)組長(zhǎng)度-1,enumb為整型變量,下列函數(shù)負(fù)責(zé)找出arr數(shù)組中等于enumb的元素所在位置。For(i=N-1;arr!=enumb;-i) Printf(“%d”,i);指出程序會(huì)出現(xiàn)的3種異常,并說(shuō)明原因。I為負(fù)數(shù)且運(yùn)行結(jié)束,i為正數(shù)且運(yùn)行結(jié)束,i一直遞減直到堆棧溢出2、if(B) s1 else s2;請(qǐng)用顯式結(jié)構(gòu)語(yǔ)言表示該程序段,用偽代碼寫(xiě)出來(lái)(注明條件跳轉(zhuǎn)和強(qiáng)制跳轉(zhuǎn))。if(b) goto L1;s2; goto L2;L1: s1;L2:;3、C語(yǔ)言中,常量存儲(chǔ)在哪兒?static 全局變量和static 局部

3、變量存儲(chǔ)在哪兒?全局變量(外部變量)的說(shuō)明之前再冠以static 就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲(chǔ)方式,靜態(tài)全局變量當(dāng)然也是靜態(tài)存儲(chǔ)方式。這兩者在存儲(chǔ)方式上并無(wú)不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個(gè)源程序,當(dāng)一個(gè)源程序由多個(gè)源文件組成時(shí),非靜態(tài)的全局變量在各個(gè)源文件中都是有效的。而靜態(tài)全局變量則限制了其作用域,即只在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。由于靜態(tài)全局變量的作用域局限于一個(gè)源文件內(nèi),只能為該源文件內(nèi)的函數(shù)公用,因此可以避免在其它源文件中引起錯(cuò)誤。static全局變量與普通的全局變量有什么區(qū)別:static全局變量只初使化一次

4、,防止在其他文件單元中被引用;static局部變量和普通局部變量有什么區(qū)別:static局部變量只被初始化一次,下一次依據(jù)上一次結(jié)果值;三、填空題(部分參考seven版)1. 選擇排序法的鏈表實(shí)現(xiàn)P=(struct node*)malloc(sizeof();p->next=head;head=p;/新建一個(gè)頭結(jié)點(diǎn)p=head->next;k=q=head;while(.) /初始化,記不得了,大體結(jié)構(gòu)就這樣while(p) if(q->next->data<p->data) q=p; p=p->next;If(q!=k)r=q-;q->next

5、=r->next;p->next=r;P=head;head=head->next;free(p)return head;2. 快速排序法求某個(gè)數(shù)組前n個(gè)元素第k大的數(shù)(答案大概是 i<j break low=i+1 high=i-1 .return a )Low=0;high=n-1;doI=low;j=high;t=a;do While(a-j>t); While(a+i<t); If(i<j)swap(aj,a);/具體代碼實(shí)在忘了,反正不是空空,我這樣寫(xiě)運(yùn)行是一樣的while(i<j);If(i=k) Returnt;If(i>k)

6、 high=i-1;if(i<k) low=i+1;while(low<high);Return alow;/這個(gè)空我可能錯(cuò)了3. 100個(gè)人圍成圈,從第一個(gè)人開(kāi)始,13報(bào)數(shù),數(shù)到3的人退出,問(wèn)剩下來(lái)的人編號(hào)是多掃?約瑟夫環(huán)數(shù)組實(shí)現(xiàn)(答案大概是 p=a+N ,k=N, p>a+N, i<3 ,i%3, a!=0 )/此題我理解為0號(hào)那個(gè)人不算,只算1-100人Int aN+1;Int *p=a,i;For(i=0;i<N+1;i+) *p=i;P=a+1;K=N;For(j=1,i=0;k!=1;j+) If(p>a+N) p=a+1; If(*p!=0)

7、i+; If(i%3)=0) k-;i=0;*p=0;For(i=0;i<N+1;i+) If(p!=0) Printf(.);4. 完美乘法,a*b=c,abc中只出現(xiàn)09的數(shù)字,且每個(gè)數(shù)字在這個(gè)等式中只出現(xiàn)一遍。(答案大概是 c=a*b while(y>0) y=y/10;if(fx!=1) t=1; if(t=0) n+ 這題看著麻煩,其實(shí)最簡(jiǎn)單)/這題程序太多了,很多地方記不得了,但不影響填空f(shuō)or(i=12;i<999;i+) t=0;for(x=0;x<10;x+) fx=0;for(j=345;j<9999;j+) c=a*b; s0=a;s1=b;

8、s2=c; for(x=0;x<3;x+) y=sx; while(y>0) Int t=y%10; ft+; y=y/10;for(x=0;x<10;x+) if(fx!=1) t+; if(t=0)n+;四、程序題1、編寫(xiě)函數(shù),實(shí)現(xiàn)字符串的逆序,不允許申請(qǐng)新的數(shù)組空間Void reverse(char *str) Int i=0,len=strlen(str); For(;i<len/2;i+) Char a=str;/突然想到我當(dāng)時(shí)寫(xiě)成了Int,。日 str=strlen-i-1; strlen-i-1=a;2、身份證長(zhǎng)度是18,其中第7至14個(gè)數(shù)字是生日,編寫(xiě)完

9、整程序判斷2個(gè)身份證號(hào)的出生日期先后。Int judge(char *s1,char*s2) Int low=6,high=14,i; For(i=low;i<high;i+) If(s1>s2) Return 1; Else if(s1<s2) Return -1;Return 0;3、編寫(xiě)完整程序,計(jì)算1-x+x2/2!-x3/3!+xn/n!,只允許有Main函數(shù),不允許定義其他函數(shù),x是單浮點(diǎn)數(shù),n是整數(shù)。(ywt貢獻(xiàn))Floatsum=0,x=1,res=0,res1=0;Int i,j,k;for(i=1;i<n;i+) /循環(huán)n次 for(j=1;j<

10、;i;j+) /求階乘 sum=sum*j; for(k=0;k<i;k+) /求次方 x=x*x; res=x/sum; /得到結(jié)果 if(i%2=1) /處理符號(hào) res=0-res; res1=res+res1; 4、編寫(xiě)完整程序,一個(gè)鏈表,找出其中數(shù)據(jù)項(xiàng)最大的結(jié)點(diǎn),然后將其移動(dòng)到鏈表尾部(結(jié)點(diǎn)node由整型data和節(jié)點(diǎn)指針next構(gòu)成),不允許申請(qǐng)新的結(jié)點(diǎn)。(特殊情況我沒(méi)考慮)Struct node*p,*q,*r;P=q=head;while(p->next) if(q->next->data<p->next->data) q=p; p=p

11、->next;r=q->next;q->next=r->next;p->next=r;五、從提高程序執(zhí)行效率的角度,說(shuō)明C語(yǔ)言采取哪些措施并指出原因。寫(xiě)的越多分越多,時(shí)間不夠的隨便寫(xiě)吧,我寫(xiě)了一點(diǎn)點(diǎn)扣了不少分15屆推免生復(fù)試筆試題(粗略回憶)考試時(shí)間120分鐘,總共10題,前9題均為編程題,最后一題這幾年均沒(méi)變過(guò)(從程序執(zhí)行效率方面考慮,請(qǐng)簡(jiǎn)述C語(yǔ)言采取的一些措施和原因)1,編寫(xiě)完整程序,實(shí)現(xiàn)如下功能:輸入一串?dāng)?shù)字(以0結(jié)尾),逆序存入單鏈表2,操作一數(shù)組(不排序),使之左邊元素都小于右邊元素,返回分界點(diǎn)的數(shù)組下標(biāo)3,有兩個(gè)非降序數(shù)據(jù)A,B;讓B元素逐個(gè)插入到A中

12、,使得A中各元素均不小于B中元素,且操作后的A,B數(shù)組非降序(我是覺(jué)得這題意思有些奇怪,沒(méi)太弄懂)4,有兩個(gè)帶頭結(jié)點(diǎn)的遞增 鏈表listA、listB,合并兩個(gè)鏈表,使得新鏈表遞減剩下的記不太清了,14號(hào)上午考的,過(guò)了一周才想起來(lái)稍稍回憶下T_T記憶中考了3道題都跟鏈表有關(guān),好像還都是插入,頭插排序也不少,有個(gè)題就是讓給字符串?dāng)?shù)組字典排序,還有排序的變種(題2)還有個(gè)題讓設(shè)計(jì)個(gè)遞歸算法,遍歷數(shù)組同時(shí)查找其最大值和最小值.不知道屆時(shí)考研復(fù)試試題變化情況如何,以上回憶僅供參考,希望能有所助益機(jī)試題1、設(shè)計(jì)一個(gè)程序,該程序能夠統(tǒng)計(jì)一篇英文文章中每個(gè)單詞出現(xiàn)的頻率,并將單詞連同單詞頻率保存到文件中。 程序執(zhí)行方式為WordsCounter arg1 arg2,其中: l WordsCounter為可執(zhí)行程序的名稱 l arg1代表英文文章所對(duì)應(yīng)的文件名 l arg2代表保存統(tǒng)計(jì)結(jié)果的文件 測(cè)試文章:Epaper.txt2、輸入一行數(shù)字,把這

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論