當前位置:學問谷 >

職場範例 >筆試 >

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

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

華為筆試題;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++) != ‘