日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

我要投稿 投訴建議

c語言面試題及答案

時間:2022-11-10 19:34:22 面試試題 我要投稿
  • 相關(guān)推薦

c語言面試題及答案

  函數(shù)指針:

c語言面試題及答案

  定義:typedef void (F1)(int p1, int p2)

  typedef void (*F2)(int p1, int p2)

  test (int p1, int p2);

  F1 * fp1;

  F2 fp2;

  F1 fp3;

  問: 語句

  fp3 = test;

  fp2 = test;

  fp1 = test

  是否成立?

  答案:第一條語句有錯,其余兩天語句正確。

  指針運(yùn)算:

  int *p1, *p2;

  int value;

  p1 = (int *)0x500;

  p2 = (int *) 0x508;

  value = p2-p1;

  問:value的值?

  答案:2

  定義union,并說明如何使用。如何在union中進(jìn)行位域的定義?

  枚舉類型:

  enum type1 {

  A,

  B

  };

  enum type2 {

  C =1,

  D,

  E,

  F

  }

  問:A,B,D,E,F 的值分別是多少?

  答案:0,1,2,3,4

  宏定義函數(shù)與普通函數(shù)調(diào)用的區(qū)別?

  宏定義中若有多行,如何連接

  答案:用反斜杠’\’

  #define fn_max(x,y) \

  do { \

  ..... \

  ..... \

  }while(0)

  int main()

  {

  fn_max(x,y);

  }

  問:為什么要用do……while(0)把宏定義的多條語句括起來?

  答案:便于優(yōu)化

  struct struct_A{

  int a;

  char b;

  int c;

  short d;

  }

  struct struct_B{

  int a;

  char b;

  short c;

  int d;

  }

  struct_A a;

  struct _B b;

  問:sizeof(struct_A a) = ?

  sizeof(struct_A b) = ?

  答案:sizeof(a) 為16,sizeof(struct_A b)為12

  9. #include

  main()

  {

  char **p;

  char *m[] = {“Welcome \n”,

  “to \n”,

  “join \n”,

  “us! \n”

  };

  p = m;

  printf(“%s\n”,*p++);

  printf(“%c\n”,**p);

  }

  問:寫出程序的執(zhí)行結(jié)果

  答案:“Welcome”和“t”

  10. static局部變量和static全局變量的區(qū)別

  答案:主要是作用域的不同,static局部變量只在函數(shù)內(nèi)部或者程序塊內(nèi)有效,而static全局變量在整個C文件模塊中都有效,注意它在其它C文件中無效。

  11. 指向常量的指針和常指針的區(qū)別

  答案:指向常量的指針?biāo)赶虻膬?nèi)容不能被修改但能夠指向其它的量,而常指針是指向的內(nèi)容可以被修改但指針不能再指向其它地方。

  12. if (a=b)

  printf(“a==b”)

  else

  printf(“a!=b”);

  輸出結(jié)果為:

  A.a==b B.a!=b C.不一定 D.不能運(yùn)行

  答案:不一定,這要根據(jù)b的內(nèi)容來決定。通常再編程時不要使用此類的賦值語句。

  13.在內(nèi)聯(lián)函數(shù)中使用static變量,比如

  inline test()

  { static couter = 0;

  counter++;

  }

  會有什么問題?

  答案:會造成多次定義該變量,因此再內(nèi)聯(lián)函數(shù)中禁止定義靜態(tài)變量

  14. F是一個結(jié)構(gòu)類型,有如下定義:

  F f1,f2;

  問:f1=f2;語句是否成立?

  答案:該語句成立,不過有的編譯器不支持。實(shí)際上編譯器也是用內(nèi)存拷貝函數(shù)來實(shí)現(xiàn)的。

  15.全局變量、局部變量、模塊變量在內(nèi)存空間中如何存放?(數(shù)據(jù)區(qū)or?臻g?)

  答案:全局變量在全局空間分配,局部變量在棧空間分配,模塊變量在全局空間分配。

  16.struct A{

  ......

  ......

  union {

  int x;

  .....

  };

  }

  struct A a;

  問:a.x這樣的表示法是否成立?

  答案:成立

  如果結(jié)構(gòu)定義改為如下定義

  .struct A{

  ......

  int x;

  union {

  int x;

  .....

  };

  }

  那a.x表示法是否成立?

  答案:不成立,編譯時會報x變量重定義

  17. #define REDEF(name,arg1,arg...) \

  _##name (arg1,##arg)

  問:以下兩個語句宏展開的結(jié)果

  REDEF(test_fn1,int a,int b);

  REDEF(test_fn2,int a);

  答案:

  _test_fn1(int a ,int b)

  _test_fn2(int a);

  注意:在VC中不支持,gcc才支持該參數(shù)宏函數(shù)。

  18. fnxxxx_max(char str[])

  {

  putchar str[0];

  str++; //(1)

  printf(“%s”,str);

  }

  main()

  {

  char str[20]={“ABCDEFG”};

  fnxxxx_max(str);

  str++; //(2)

  printf(“%s”,str);

  }

  問:語句(1)和語句(2)是否成立?

  答案:語句(1)成立,語句(2)不成立

  19.#define SRR 0x001;

  #define SRT 0x002;

  #define SRI 0x0900;

  EVENT = SRR|SRT|SRI

  問:上面的語句有什么問題?EVENT的值會是多少?

  答案:宏展開后變?yōu)椋?/p>

  EVENT = 0x001; 0x002;0x0900;

  因此EVENT的值為0x001,所以在編程時一定要小心,一定不要在常量宏定義的后面加上分號。

http://www.fuchuonang.cn/

【c語言面試題及答案】相關(guān)文章:

c語言基礎(chǔ)面試題03-26

C語言筆試題目及答案03-26

c面試題目03-26

c語言心得04-24

面試題及答案02-06

計算機(jī)二級c語言考試習(xí)題及答案07-29

c語言編程心得06-19

hr面試題及答案12-30

華為c語言筆試題07-17

C語言實(shí)習(xí)目的09-26