Linux下C语言的几道经典面试题

本篇文章整理了几道Linux下C语言的经典面试题,相信对大家更好的理解Linux下的C语言会有很大的帮助,欢迎大家探讨指正。

1、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?

1
2
3
4
5
6
#include <stdio.h>
int main() {
int i = 43;
printf("%d\n",printf("%d",printf("%d",i)));
return 0;
}

答案如下:

1
4321

2、C语言程序不使用任何条件运算符,打印出十次”Hello”?

答案如下:

1
2
3
4
5
6
7
#include <stdio.h>
int main(int argc, char *argv[]){
int i=0;
while(10 - i++)
printf("Hello");
return 0;
}

或是:

1
2
3
4
5
6
7
#include <stdio.h>
int main(int argc, char *argv[]){
int i;
for(i=0;10 - i;i++)
printf("Hello");
return 0;
}

3、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?

1
2
3
4
5
6
7
8
#include<stdio.h>
int main(){
int a=300;
char *p=(char *)&a;
printf("%d\n",*p);
printf("%d",*++p);
return 0;
}

答案如下:

1
2
44
1

4、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?

1
2
3
4
5
6
#include<stdio.h>
int main(){
enum color{RED,BLUE,GREEN=-2,YELLOW,PINK};
printf("%d %d",BLUE,PINK);
return 0;
}

答案如下:

1
1 0

5、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?

1
2
3
4
5
6
7
#include<stdio.h>
int main(){
char c=127;
printf("%d",++c);
printf("%d",++c);
return 0;
}

答案如下:

1
2
-128
-127

6、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?

1
2
3
4
5
6
7
#include<stdio.h>
int main(){
int i=2,j=5,k=3;
int a=i&&j>=k;
printf("%d",a);
return 0;
}

答案如下:

1
1

7、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <string.h>
int main(void) {
int a[2000];
char *p = (char *)a;
int i;
for( i = 0; i < 2000; i++)
a[i] = -i - 1;
printf("%d\n", strlen(p));
return 0;
}

答案如下:

1
1020

最后,以上整理的Linux下C语言经典面试题,欢迎大家讨论指正。

大师兄 wechat
欢迎关注我的微信公众号:Python大师兄