範文齋

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

華爲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++) != ‘