範文齋

位置:首頁 > 職場範文 > 筆試

華為C/C++筆試題系列二

筆試2.24W

華為筆試題;C;C++;

華為C/C++筆試題系列二

1.說出下面這個程式的執行結果,並簡要敘述其理由:

char buf1[10]="hello";

char buf2[10]="hello";

if (buf1==buf2)

printf("equal!");

else printf("not equal!");

答:因為buf1,buf2分配了不同的記憶體塊,而比較的是陣列名,實際上是兩個分別指向陣列起始元素地址的指標。

2.指出下面這段程式中存在一些什麼問題:

int loop,a[5];

int* p=a;

for (loop=0;loop<5;loop++)< p="">

{ p++;

*p=loop;

}

答:陣列a[5]在建立時沒有初始化, 在for迴圈裡也沒有起到完全初始化陣列的作用,而且對一塊未知記憶體賦值。在最後一輪迴圈結束時p指向了陣列a[5]的最後一個元素的下一個地址。

string 系列

char * strcpy( char *strDest, const char *strSrc )

{

assert( (strDest != NULL) && (strSrc != NULL) );

char *address = strDest;

while( (*strDest++ = * strSrc++) != ‘