C語言面試題大彙總之華為面試題
女性時尚購物網編輯: 8、程式的區域性變數存在於(堆疊)中,全域性變數存在於(靜態區 )中,動態申請資料存在於( 堆)中。 9、設有以下說明和定義: typedef union {long i; int k[5]; char c;} DATE; struct data { int cat; DATE cow; double dog;} too; DATE max; 則語句 printf( "%d ",sizeof(struct date)+sizeof(max));的執行結果是:___52____ 答:DATE是一個union, 變數公用空間. 裡面最大的變數型別是int[5], 佔用20個位元組. 所以它的大小是20 data是一個struct, 每個變數分開佔用空間. 依次為int4 + DATE20 + double8 = 32. 所以結果是 20 + 32 = 52. 當然...在某些16位編輯器下, int可能是2位元組,那麼結果是 int2 + DATE10 + double8 = 20 10、佇列和棧有什麼區別? 佇列先進先出,棧後進先出 11、寫出下列程式碼的輸出內容 #include
int inc(int a) { return(++a); } int multi(int*a,int*b,int*c) { return(*c=*a**b); } typedef int(FUNC1)(int in); typedef int(FUNC2) (int*,int*,int*); void show(FUNC2 fun,int arg1, int*arg2) { INCp=&inc; int temp =p(arg1); fun(&temp,&arg1, arg2); printf( "%d\n ",*arg2); } main() { int a; show(multi,10,&a); return 0; } 答:110 12、請找出下面程式碼中的所以錯誤 說明:以下程式碼是把一個字串倒序,如“abcd”倒序後變為“dcba” 1、#include "string.h " 2、main() 3、{ 4、 char*src= "hello,world "; 5、 char* dest=NULL; 6、 int len=strlen(src); 7、 dest=(char*)malloc(len); 8、 char* d=dest; 9、 char* s=src[len]; 10、 while(len--!=0) 11、 d++=s--; 12、 printf( "%s ",dest); 13、 return 0; 14、} 答: 方法1: int main() { char* src = "hello,world "; int len = strlen(src); char* dest = (char*)malloc(len+1);//要為\0分配一個空間 char* d = dest; char* s = &src[len-1];//指向最後一個字元 while( len-- != 0 ) *d++=*s--; *d = 0;//尾部要加\0 printf( "%s\n ",dest); free(dest);// 使用完,應當釋放空間,以免造成記憶體匯洩露 return 0; } 方法2: #include #include main() { char str[]= "hello,world "; int len=strlen(str); char t; for(int i=0; i
【C語言面試題大之華為面試題】相關文章: