C語言開發面試題


 (以下是題主參加的一家偏向Linux平台開發的公司軟件崗位筆試題,分享原題,后面附上題主91分的部分參考答案^V^)  

一、(8分)請問一下程序輸出什么結果?

  char *getStr(void)

{

  char p[] = "hellow world";

  return p;

}

void test(void)

{

  char *str = NULL;

  str = getStr();

  printf(str);

}

二、(5分)test2函數有問題嗎,如果有,請支出問題出在什么地方並給出正確答案。

void test2()

{

  char string[10], str[10];

  int i;

  for(i = 0; i < 10; i++)

  {

    str[i] = 'a';

  }

  strcpy(string, str);

}

三、(5分)用預處理指令#define 聲明一個常數,用以表明一年中有多少秒。(忽略閏年問題)

四、(5分)寫一個“標准”宏MIN,這個宏輸入兩個參數並返回較小的一個。

五、(8分)你怎么樣用C編寫死循環呢?

六、(10分)用變量a給出下面的定義:

1、一個整型數;

2、一個指向整型數的指針;

3、一個指向指針的指針,它指向的指針是指向一個整型數;

4、一個有10個整型數的數組;

5、一個有10個指針的數組,該指針是指向一個整型數的;

6、一個指向有10個整型數數組的指針;

7、一個指向函數的指針,該函數有一個整型數參數並返回一個整數;

8、一個有10個指針的數組,該指針指向一個函數,該函數有一個整型參數並返回一個整型數;

 

七、(5分)關鍵字static的作用是什么?

 

八、(10分)關鍵字const有什么含意?

下面的聲明都是什么意思?

1)const int a;

2)int const a;

3)const int *a;

4)int *const a;

5)int const *a const;

九、(5分)下面的代碼輸出是什么?為什么?

void foo(void)

{

  unsigned int a = 6;

  int b = -20;

  (a - b > 6) ? puts(">6") : puts("<=6");

}

十、(5分)動態分配內存可能發生的問題是什么?

十一、(5分)volatile這個關鍵字的作用是什么?

十二、(8分)進程之間進行通信的方式有幾種,它們分別是什么?

十三、(8分)請寫出下面的程序的輸出結果:

#include<stdio.h>

int main()

{

  int a = 10, b, c, d;

  b = a++;

  c = ++a;

  d = 10 * (++a);

  printf(" b : %d , c:%d, d :%d ", b , c, d);

  return 0;

}

十四、(5分)進程和線程的區別是什么?

十五、(8分)請列舉四種位運算符,並說明它們一般用於什么地方。

 

部分參考答案:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM