下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
華為C語言軟件工程師面試題
那就是變量i沒有定義,這在代碼編譯階段編譯器可以幫你發(fā)覺,很簡單搞定。然而許多問題是自己造成的漏洞,編譯器是幫不上什么忙的。這里最大的問題還是str1沒有結(jié)束符,由于strcpy的其次個參數(shù)應(yīng)當(dāng)是一個字符串常量。該函數(shù)就是利用推斷其次個參數(shù)的結(jié)束符來得到是否拷貝完畢。所以在for循環(huán)后面應(yīng)加上str1p[9]=\\0;
pS:字符數(shù)組和字符串的最明顯的區(qū)分就是字符串會被默認(rèn)的加上結(jié)束符\\0。
voidtest3(char*str1)
{
charstring[10];
if(strlen(str1)=10)
{
strcpy(string,str1);
}
}
這里的問題仍是越界問題。strlen函數(shù)得到字符串除結(jié)束符外的長度。假如這里是=10話,就很明顯越界了。
小結(jié):上面的三個找錯的函數(shù),主要是考查對字符串和字符數(shù)組的概念的把握以及對strcpy函數(shù)和strlen函數(shù)的.理解。
2、找錯
DSNget_SRM_no()
{
staticintSRM_no;
intI;
for(I=0;I
{
SRM_no%=MAX_SRM;
if(MY_SRM.state==IDLE)
{
break;
}
}
if(I=MAX_SRM)
return(NULL_SRM);
else
returnSRM_no;
}
這里for循環(huán)的推斷語句是后來我加上的,估量在網(wǎng)上流傳的時候被人給弄丟了,依據(jù)對程序的分析,給補上了。估量錯誤應(yīng)當(dāng)不是這兒。
簡潔的閱讀一下這個函數(shù),可以也許的可以猜想出這個函數(shù)的功能是安排一個空閑的SRAM塊。方法:從上次安排的RAM塊后的RAM塊開頭檢測SRAM每個RAM塊,看是否是IDLE狀態(tài),假如是IDLE則返回當(dāng)前的RAM塊的號SRM_no。假如全部的RAM塊都不是IDLE狀態(tài),則意味著無法安排一個RAM給函數(shù)調(diào)用者,返回一個表示沒有RAM可安排的標(biāo)志(NULL_SRM)。
經(jīng)過上面的分析,則這里可以知道,這個函數(shù)的錯誤是for循環(huán)里面沒有給SRM_no這個變量累加1。
3、寫出程序運行結(jié)果
intsum(inta)
{
autointc=0;
staticintb=3;
c+=1;
b+=2;
return(a+b+c);
}
voidmain()
{
intI;
inta=2;
for(I=0;I5;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,14,16,
4、func(1)=?
intfunc(inta)
{
intb;
switch(a)
{
case1:30;
case2:20;
case3:16;
default:0;
}
returnb;
}
在case語句中可能遺忘了對變量b賦值。假如改為下面的代碼:
intfunc(inta)
{
intb;
switch(a)
{
case1:b=30;
case2:b=20;
case3:b=16;
default:b=0;
}
returnb;
}
由于case語句中漏掉了break語句,所以無論傳給函數(shù)的參數(shù)是多少,運行結(jié)果均為0。
5、a[q-p]=?
inta[3];
a[0]=0;a[1]=1;a[2]=2;
int*p,*q;
p=a;
q=a[2];
很明顯:a[q-p]=a[2]=2;
6、內(nèi)存空間占用問題
定義int**a[3][4],則變量占有的內(nèi)存空間為:16位系統(tǒng)24,32位編譯系統(tǒng)中是48。
pS:公式:3*4*sizeof(int**)。
7、程序編寫
編寫一個函數(shù),要求輸入年月日時分秒,輸出該年月日時分秒的下一秒。如輸入2023年12月31日23時59分59秒,則輸出2023年1月1日0時0分0秒。
voidResetTheTime(int*year,int*month,int*date,int*hour,int*minute,int*second)
{
intdayOfMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
if(*year0||*month1||*month12||
*date1||*date31||*hour0||*hour23||
*minute0||*minute59||*second0||*second60)
return;
if(*year%400==0||*year%100!=0*year%4==0)
dayOfMonth[1]=29;
if(*second=60)
{
*second=0;
*minute+=1;
if(*minute=60)
{
*minute=0;
*hour+=1;
if(*hour=24)
{
*hour=0;
*date+=1;
if(*datedayOfMont
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 換熱器課程設(shè)計致謝范文
- 二零二五年度合資成立智能物流配送公司合作協(xié)議3篇
- 通信安全課程設(shè)計題目
- 波紋阻火器課程設(shè)計
- 二零二五年度智能制造定向增發(fā)股份認(rèn)購協(xié)議書3篇
- 英語宏觀課程設(shè)計
- 二零二五年度智能通信基站場地租用及升級合同3篇
- 辦公室文員崗位的職責(zé)描述模版(2篇)
- 二零二五年度按揭中二手房買賣合同范本:按揭利率風(fēng)險控制版3篇
- 小學(xué)“陽光少年”評選活動方案(3篇)
- 西交大少年班英語考試試題
- 北京語言大學(xué)保衛(wèi)處管理崗位工作人員招考聘用【共500題附答案解析】模擬試卷
- 人教版七年級下冊數(shù)學(xué)全冊完整版課件
- 初中生物人教七年級上冊(2023年更新) 生物圈中的綠色植物18 開花和結(jié)果
- 水電解質(zhì)及酸堿平衡的業(yè)務(wù)學(xué)習(xí)
- CSCEC8XN-SP-安全總監(jiān)項目實操手冊
- 口腔衛(wèi)生保健知識講座班會全文PPT
- 成都市產(chǎn)業(yè)園區(qū)物業(yè)服務(wù)等級劃分二級標(biāo)準(zhǔn)整理版
- 最新監(jiān)督學(xué)模擬試卷及答案解析
- ASCO7000系列GROUP5控制盤使用手冊
- 污水處理廠關(guān)鍵部位施工監(jiān)理控制要點
評論
0/150
提交評論