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( "%dn ",*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);//要爲