




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、幾道華為經(jīng)典C語言面試題1、找錯voidtestl()charstring10;char*str1="0123456789”;strcpy(stringzstrl);這里string數(shù)組越界,因為字符串長度為10,還有一個結(jié)束符'0'。所以總共有11個字符長度。string數(shù)組大小為10,這里越界了。PS:使用strcpy函數(shù)的時候一定要注意前面目的數(shù)組的大小一定要大于后面字符串的大小,否則便是訪問越界。voidtest2()<charstring10zstrl10;for(i=0;i<10;i+)<strli=,a,;strcpy(string,s
2、trl);這里有一個一眼就能看出的問題,那就是變量i沒有定義,這在代碼編譯階段編譯器可以幫你發(fā)現(xiàn),很容易搞定。然而很多問題是自己造成的漏洞,編譯器是幫不上什么忙的。這里最大的問題還是strl沒有結(jié)束符,因為strcpy的第二個參數(shù)應(yīng)該是一個字符串常量。該函數(shù)就是利用判斷第二個參數(shù)的結(jié)束符來得到是否拷貝完畢。所以在for循環(huán)后面應(yīng)加上strlp9='0';PS:字符數(shù)組和字符串的最明顯的區(qū)別就是字符串會被默認的加上結(jié)束符0。voidtest3(char*strl)<charstring10;if(strlen(strl)<=10)<strcpy(stringzs
3、trl);)這里的問題仍是越界問題。strlen函數(shù)得到字符串除結(jié)束符外的長度,如果這里是二10話,就很明顯越界了。小結(jié):上面的三個找錯的函數(shù),主要是考查對字符串和字符數(shù)組的概念的掌握以及對strcpy函數(shù)和strlen函數(shù)的理解。2、找錯DSNget_SRM_no()staticintSRM_no;intI;for(I=0;I<MAX_SRM;I+)<SRMno<Vo=MAXSRM;if(MY_SRM.state=IDLE)break;)if(I>=MAX_SRM)return(NULL_SRM);elsereturnSRM_no;)這里for循環(huán)的判斷語句是后來我加
4、上的,估計在網(wǎng)上流傳的時候被人給弄丟了,根據(jù)對程序的分析,給補上了。估計錯誤應(yīng)該不是這兒。簡單的閱讀一下這個函數(shù),可以大概的可以猜測出這個函數(shù)的功能是分配一個空閑的SRA峨。方法:從上次分配的RAMfc后的RAMfc開始檢測SRAM5個RAM夬,看是否是IDLE狀態(tài),如果是IDLE則返回當前的RAMfc的號SRM_no如果所有的RA雌都不是IDLE狀態(tài),則意味著無法分配一個RAM合函數(shù)調(diào)用者,返回一個表示沒有RA晌分配的標志(NULL_SRM。經(jīng)過上面的分析,則這里可以知道,這個函數(shù)的錯誤是for循環(huán)里面沒有給SRM_n迄個變量累加1.3、寫出程序運行結(jié)果intsum(inta)autoint
5、c=0;staticintb=3;c+=1;b+=2;return(a+b+c);voidmain()intI;inta=2;for(I=0;I<5;I+)printf("%d,",sum(a);運行結(jié)果是:8,10,12,14,16,在求和函數(shù)sum里面c是auto變量,根據(jù)auto變量特性知每次調(diào)用sum函數(shù)時變量c都會自動賦值為0.b是static變量,根據(jù)static變量特性知每次調(diào)用sum函數(shù)時變量b都會使用上次調(diào)用sum函數(shù)時b保存的值簡單的分析一下函數(shù),可以知道,若傳入的參數(shù)不變,則每次調(diào)用sum函數(shù)返回的結(jié)果,都比上次多2.所以答案是:8,10,12,
6、14,16,4、func(1)=?intfunc(inta)intb;switch(a)case 1: 30;case 2: 20;case 3: 16;default:0;returnb;在case語句中可能忘記了對變量b賦值。如果改為下面的代碼:intfunc(inta)intb;switch(a)case 1:case 2:case 3:b = 30;b = 20;b = 16;b = 0;default:returnb;因為case語句中漏掉了break語句,所以無論傳給函數(shù)的參數(shù)是多少,運行結(jié)果均為0.5、aq-pinta3;a0=0;a1=1;a2=2;intvoid ResetT
7、heTime(int *year,int *month,int *date,int *hour,intminute,int*second)p,*q;P=a;q=&a2;很明顯:aq-p=a2=2;6、內(nèi)存空間占用問題定義intint dayOfMonth12=31,28,31,30,31,30,31,31,30,31,30,31;if( *year < 0| *month < 1 | *month > 12 |a34,則變量占有的內(nèi)存空間為:16位系統(tǒng)24,32位編譯系統(tǒng)中是48.PS:公式:3*4*sizeof(int*)7、程序編寫編寫一個函數(shù),要求輸入年月日時分
8、秒,輸出該年月日時分秒的下一秒。如輸入2004年12月31日23時59分59秒,則輸出2005年1月1日0時0分0秒。*date<1|*date>31|*hour<0|*hour>23|*minute<0|*minute>59|*second<0|*second>60)return;if(*year%400=0|*year%100!=0&&*year%4=0)dayOfMonth1=29;if(*second>=60)*second=0;*minute+=1;if(*minute>=60)*minute=0;*hour+
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 胰腺炎并發(fā)癥及護理
- 蕁麻疹患兒的護理
- 膝關(guān)節(jié)韌帶圍手術(shù)期護理
- 2025年電商綠色物流行業(yè)綠色金融支持政策研究
- 人教A版高一下冊數(shù)學必修一2.3.1一元二次不等式及其解法【課件】
- 北師版八年級數(shù)學上冊5.3.1應(yīng)用二元一次方程組-雞兔同籠【課件】
- 2025年環(huán)保產(chǎn)業(yè)園循環(huán)經(jīng)濟模式下的能源綜合利用研究報告
- 包裝容器策劃書3
- 包機公司運營方案
- 糖尿病足部護理查房
- 《中小學生端午節(jié)安全教育主題班會》課件
- 高級網(wǎng)絡(luò)技術(shù)試題及答案
- 2025年春季《中華民族共同體概論》第二次平時作業(yè)-國開(XJ)-參考資料
- 第3章 一元一次不等式(組)單元測試(原卷)2024-2025學年湘教版七年級數(shù)學下冊
- 股權(quán)終止合作協(xié)議書
- 河南省鄭州市2025年中考二模語文試題(含答案)
- 2025園林景觀設(shè)計合同范本
- 《海南三亞西島景區(qū)營銷現(xiàn)狀問卷調(diào)查及營銷問題和優(yōu)化對策》12000字
- 江蘇省蘇、錫、常、鎮(zhèn)2025屆高考仿真模擬生物試卷含解析
- 北理工-學術(shù)論文寫作與表達-期末考試答案-適用40題版本
- (高清版)TDT 1042-2013 土地整治工程施工監(jiān)理規(guī)范
評論
0/150
提交評論