(以下是題主參加的一家偏向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分)請列舉四種位運算符,並說明它們一般用於什么地方。
部分參考答案: