国语精品91自产拍在线观看二区_色偷偷五月天_天天射夜夜爽_99久久免费国产特黄_1717国产精品久久

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

時(shí)間:2022-07-11 14:49:33 筆試 我要投稿
  • 相關(guān)推薦

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

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

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

1.說出下面這個程序的運(yùn)行結(jié)果,并簡要敘述其理由:

char buf1[10]="hello";

char buf2[10]="hello";

if (buf1==buf2)

printf("equal!");

else printf("not equal!");

答:因?yàn)閎uf1,buf2分配了不同的內(nèi)存塊,而比較的是數(shù)組名,實(shí)際上是兩個分別指向數(shù)組起始元素地址的指針。

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

int loop,a[5];

int* p=a;

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

{ p++;

*p=loop;

}

答:數(shù)組a[5]在創(chuàng)建時(shí)沒有初始化, 在for循環(huán)里也沒有起到完全初始化數(shù)組的作用,而且對一塊未知內(nèi)存賦值。在最后一輪循環(huán)結(jié)束時(shí)p指向了數(shù)組a[5]的最后一個元素的下一個地址。

string 系列

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

{

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

char *address = strDest;

while( (*strDest++ = * strSrc++) != ‘\0’ );

return address;

}

char* strncpy(char* strdest, const char* strsrc, int n)

{

assert((strdest != NULL) && (strsrc != NULL));

char* address = strdest;

while(n-- > 0)

*strdest++ = *strsrc++;

return address;

}

int strcmp(const char* str1, const char* str2)

{

assert((str1 != NULL) && (str2 != NULL);

int ret = 0;

while (!(ret = (unsigned char*)*str1 - (unsigned char*)*str2) && (*str2))

{

str1++;

str2++;

}

if (ret > 0)

ret = 1;

else if (ret < 0)

ret = -1;

return ret;

}

int strlen(const char* str)

{

assert(str != NULL);

int len = 0;

while (\