国产精品一久久香蕉产线看-国产精品一区在线播放-国产精品自线在线播放-国产毛片久久国产-一级视频在线-一级视频在线观看免费

華為面試題C語言軟件工程師

時(shí)間:2022-07-11 15:49:50 計(jì)算機(jī)軟件 我要投稿
  • 相關(guān)推薦

華為面試題C語言軟件工程師

華為面試題C語言軟件工程師

那就是變量i沒有定義,這在代碼編譯階段編譯器可以幫你發(fā)現(xiàn),很容易搞定。然而很多問題是自己造成的漏洞,編譯器是幫不上什么忙的。這里最大的問題還是str1沒有結(jié)束符,因?yàn)閟trcpy的第二個(gè)參數(shù)應(yīng)該是一個(gè)字符串常量。該函數(shù)就是利用判斷第二個(gè)參數(shù)的結(jié)束符來得到是否拷貝完畢。所以在for循環(huán)后面應(yīng)加上str1p[9] = ‘\0’;

pS:字符數(shù)組和字符串的最明顯的區(qū)別就是字符串會(huì)被默認(rèn)的加上結(jié)束符’\0’。

void test3(char* str1)

{

char string[10];

if(strlen(str1)<=10)

{

strcpy(string, str1);

}

}

這里的問題仍是越界問題。strlen函數(shù)得到字符串除結(jié)束符外的長度。如果這里是<=10話,就很明顯越界了。

小結(jié):上面的三個(gè)找錯(cuò)的函數(shù),主要是考查對(duì)字符串和字符數(shù)組的概念的掌握以及對(duì)strcpy函數(shù)和strlen函數(shù)的理解。

2、找錯(cuò)

DSN get_SRM_no()

{

static int SRM_no;

int I;

">  for(I=0;I

{

SRM_no %= MAX_SRM;

if(MY_SRM.state==IDLE)

{

break;

}

}

if(I>=MAX_SRM)

return (NULL_SRM);

else

return SRM_no;

}

這里for循環(huán)的判斷語句是后來我加上的,估計(jì)在網(wǎng)上流傳的時(shí)候被人給弄丟了,根據(jù)對(duì)程序的分析,給補(bǔ)上了。估計(jì)錯(cuò)誤應(yīng)該不是這兒。

簡單的閱讀一下這個(gè)函數(shù),可以大概的可以猜測出這個(gè)函數(shù)的功能是分配一個(gè)空閑的SRAM塊。方法:從上次分配的RAM塊后的RAM塊開始檢測SRAM每個(gè)RAM塊,看是否是IDLE狀態(tài),如果是IDLE則返回當(dāng)前的RAM塊的號(hào)SRM_no。如果所有的RAM塊都不是IDLE狀態(tài),則意味著無法分配一個(gè)RAM給函數(shù)調(diào)用者,返回一個(gè)表示沒有RAM可分配的標(biāo)志(NULL_SRM)。

經(jīng)過上面的分析,則這里可以知道,這個(gè)函數(shù)的錯(cuò)誤是for循環(huán)里面沒有給SRM_no這個(gè)變量累加1。

3、寫出程序運(yùn)行結(jié)果

int sum(int a)

{

auto int c=0;

static int b=3;

c+=1;

b+=2;

return(a+b+c);

}

void main()

{

int I;

int a=2;

for(I=0;I<5;i++)

{

printf("%d,", sum(a));

}

}

運(yùn)行結(jié)果是:8,10,12,14,16,

在求和函數(shù)sum里面c是auto變量,根據(jù)auto變量特性知每次調(diào)用sum函數(shù)時(shí)變量c都會(huì)自動(dòng)賦值為0。b是static變量,根據(jù)static變量特性知每次調(diào)用sum函數(shù)時(shí)變量b都會(huì)使用上次調(diào)用sum函數(shù)時(shí)b保存的值。

簡單的分析一下函數(shù),可以知道,若傳入的參數(shù)不變,則每次調(diào)用sum函數(shù)返回的結(jié)果,都比上次多2。所以答案是:8,10,12,14,16,

4、func(1) = ?

int func(int a)

{

int b;

switch(a)

{

case 1: 30;

case 2: 20;

case 3: 16;

default: 0;

}

return b;

}

在 case 語句中可能忘記了對(duì)變量b賦值。如果改為下面的代碼:

int func(int a)

{

int b;

switch(a)

{

case 1: b = 30;

case 2: b = 20;

case 3: b = 16;

default: b = 0;

}

return b;

}

因?yàn)閏ase語句中漏掉了break語句,所以無論傳給函數(shù)的參數(shù)是多少,運(yùn)行結(jié)果均為0。

5、a[q - p] = ?

int a[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、程序編寫

編寫一個(gè)函數(shù),要求輸入年月日時(shí)分秒,輸出該年月日時(shí)分秒的下一秒。如輸入2004年12月31日23時(shí)59分59秒,則輸出2005年1月1日0時(shí)0分0秒。

void ResetTheTime(int *year,int *month,int *date,int *hour,int *minute,int*second)

{

int dayOfMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};

if( *year < 0 || *month < 1 || *month > 12 ||

*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 )

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(*date > dayOfMonth[*month-1])

{

*date = 1;

*month += 1;

if(*month > 12)

{

*month=1;

*year += 1;

}

}

}

}

}

return;

}


【華為面試題C語言軟件工程師】相關(guān)文章:

c面試題08-04

華為c8812配置08-04

華為c8812解鎖方法08-01

華為C8812ROOT詳細(xì)教程08-01

華為C8810刷機(jī)包08-01

華為C8500刷機(jī)包08-04

華為C8812刷機(jī)教程08-01

華為 C8500刷機(jī)分享05-15

華為c8650root權(quán)限獲取08-01

華為C8650刷機(jī)教程方法08-01

主站蜘蛛池模板: 日xxxx| 黄污视频免费观看 | 99热99re8国产在线播放 | 亚洲美女爱做色禁图无遮 | 精品国产一区二区三区国产馆 | 美女视频黄的全免费网站 | 欧美午夜免费看爽爽爽 | 91香蕉视频污在线观看 | 欲漫涩漫画禁漫成人入口 | 日韩日b| 18男女很黄的视频 | 日韩精品一区二区三区中文版 | 黄网站视频在线观看 | 成人福利网站在线看视频 | 亚洲精品中文字幕乱码无线 | 国产成本人三级在线观看网站 | 国产精品suv一区二区 | 午夜久久久久久亚洲国产精品 | 视频一区欧美 | 久久生活片 | 日韩精品福利视频一区二区三区 | 操你啦在线播放 | 久草干| 中国黄色大片 | 久久精品视频6 | 制服美女视频一区 | 色视频免费观看高清完整 | 亚洲欧美日韩精品久久奇米色影视 | 国产一区二区三区毛片 | 午夜爽爽性刺激一区二区视频 | 成人18视频在线 | 成年人在线视频观看 | 精品400部自拍视频在线播放 | 天天操天天干视频 | 蝴蝶色综合综合成人网 | 欧美.亚洲.日本一区二区三区 | 免费国产人做人视频在线观看 | 欧美色爽 | 日日摸夜夜添夜夜添成人 | 热久久国产欧美一区二区精品 | 理论福利午夜 |