華為程序員面試筆試試卷
華為程序員面試考什么?筆試考什么?下面是一套網(wǎng)友回憶的華為程序員面試筆試試卷,僅供參考。
一、判斷題(對的寫T,錯的寫F并說明原因,每小題4分,共20分)
1、有數(shù)組定義int a[2][2]={{1},{2,3}};則a[0][1]的值為0。( 正確 )
2、int (*ptr) (),則ptr是一維數(shù)組的名字。( 錯誤 int (*ptr) ();定義一個指向函數(shù)的指針變量 )
3、指針在任何情況下都可進(jìn)行>, <,>=, <=,==運(yùn)算。( 錯誤 )
4、switch(c) 語句中c可以是int ,long,char ,float ,unsigned int 類型。( 錯,不能用實形 )
二、填空題(共30分)
1、在windows下,寫出運(yùn)行結(jié)果,每空2分,共10分。 char str[ ]= "Hello"; char *p=str; int n=10; sizeof(str)=( ) sizeof(p)=( ) sizeof(n)=( ) void func(char str[100]){ } sizeof(str)=( ) 答案:6,4,4,4, 具體解釋請參看我的空間里的“C/C++程序員應(yīng)聘試題剖析”
2、void getmemory(char **p, int num) { *p=(char *) malloc(num);} void test(void) { char *str=NULL; getmemory(&str,100); strcpy(str,"hello"); printf(str); } 運(yùn)行test函數(shù)有什么結(jié)果?( )10分 答案:輸出hello,但是發(fā)生內(nèi)存泄漏。
3、設(shè)int arr[]={6,7,8,9,10}; int *ptr=arr; *(ptr++)+=123; printf("%d,%d",*ptr,*(++ptr)); ( ) 10分答案:8,
8。這道題目的'意義不大,因為在不同的編譯器里printf的參數(shù)的方向是不一樣的,在vc6.0下是從有到左,這里先*(++ptr) 后*pt,于是結(jié)果為8,8
三、編程題(第一小題20,第二小題30分)
1、 不使用庫函數(shù),編寫函數(shù)int strcmp(char *source, char *dest) 相等返回0,不等返回-1;
答案:一、 int strcmp(char *source, char *dest) { assert((source!=NULL)&&(dest!=NULL)); int i,j; for(i=0; source[i]==dest[i]; i++) { if(source[i]=="