首页 > 分享 > c语言面试题总结

c语言面试题总结

1.用宏定义1年一年有多少秒(365)

#define ONE_YEAR_PER_SECOND (365*24*60*60)UL

2,用宏函数实现MIN(x,y),说明写宏函数的注意事项

#define MIN(x,y) {((x) < (y))?(x):(y)}

问题:请总结写宏函数和宏定义时的注意事项 

3,c语言中常用到的循环

1,while(1){}

2,for(;;){{;}}

4,static关键字的作用 :定义全局变量和局部变量,定义函数 ,c/c++里面的区别,

全局变量

static int g_num;

局部变量

void test_fun()

{

static int v_num = 0;

v_num++;

}

声明函数

static int test_fun()

{

}

补充问题:(1)static 定义的全局变量和 普通定义的全局变量有啥区别

 (2)static 定义的函数和 普通定义的函数有啥区别

5,const关键字的作用: 定义变量和指针的区别,const int * p 和 int * const p的区别

声明变量

const int adress_num = 0x1001;

声明指针变量

int const *p = NULL;

int* const p = NULL;

int const * const p = NULL;

6.volaite关键字的作用:防止代码变量优化

看看下面的例子,那个是正确的用法

code 1:

int squre_test1(voliate int *a)

{

return (*a)*(*a);

}

code 2:

int squre_test2(voliate int *a)

{

int i = *a;

int j = *a;

return i*j;

}

code 3:

int squre_test3(voliate int *a)

{

int i = *a;

return i*i;

}

问题:根据上面的例子总结voliate的用法 

7,用宏函数实现位操作(给一个int 数据,将bit位置1,将bit位清零)

#define SET_BIT(a,bit) (a | (0x1 << bit))

#define CLR_BIT(a,bit) (a & (~(0x1 << bit)))

8,用代码实现在地址为 0X34f90的位置上放一个整形数据0x1234;

int test()

{

int *p = 0x34f90;

int a = 0x1234;

p = & a;

}

 注意事项:数据存在的大小端问题

9.中断服务程序中的注意事项;看看下面这个例子,指出下面有多少错误

#define PI 3.1415926

__interrupt double area_test(double r)

{

double s = PI * r * r;

printf("s = %lfn",s);

return s;

{

(1)中断函数不能有返回值

(2)中断函数不要用函数入参

(3) 中断函数里面不要用浮点数,

(4)中断函数里面不要用打印函数printf,

10 ,看看下面这段程序输出是多少

int compare_test()

{

int a = -20;

int b = 10;

return a+b > 0?1:0;

}

int main()

{

int a = compare_test();

printf("a = %dn",a);

return 0;

}

 11,看看这段代码这么写的好处

code 1:

unsigned int zero = 0;

unsigned int negzero = 0xffff;

code 2:

unsigned int zero = 0;

unsigned int negzero = ~0;

提示:代码的谦容性和可扩展性

12,看看下面这段有趣的代码输出是什么!

int test_malloc()

{

int* p = (int*)malloc(0);

if( p == NULL)

{

printf(" p is invalid nullptrn");

return -1;

}

else

{

printf(" p is valid nillptrn");

}

return 0;

}

13,c++ 怎么调用c语言中的函数呢!

#ifdef _cplusplus

{

extern "C"

#endif

code segment

#ifdef _cplusplus

}

#endif

14,sizeof的用法;

char s[] = " my test string";

char * p = s;

printf(" sizeof(s) = %ld,sizeof(p) = %ldn",sizeof(s),sizeof(p));

15, 运算符的优先级是什么样的:

16,#define和typedef 的用法区别在哪里

#define POINTER_DEFINE int*

typedef POINTER_TYPEDEF int*

POINTER_DEFINE p1,p2; //等价于 int* p1,p2;

POINTER_TYPEDEF p1,p2;//等价为 int *p1,*p2;

17,c语言实现 char* strcat(const char* str1,char* str2);  

思考: 将 str2 连接到str1,为什么还有返回值;

18,程序什么时候使用多线程,使用多线程需要主要什么,什么时候单线程使用率高

19 项目工程中日志文件满了怎么办

20.局部变量和全局变量重名会出现什么情况

int test_num = 10;

int test_fun()

{

int test_num = 3;

}

int main()

{

printf("test_num = %dn",test_num);

test_fun();

printf("test_num = %dn",test_num);

return 0;

}

21,如何使用已经定义过的全局变量;

extern int g_num;

22.do while(1) 和 while(1) do的区别

do while(1) 先运行一遍循环里面代码,再做判断

while(1) do 先做判断.再运行一遍循环里面代码

23, struct(结构) 和 union(联合)的区别?

24,函数指针和普通指针的区别

25,说明define和const在语法和含义上有什么不同?

26, strcpy()和memcpy()的区别?

27,函数参数入栈的顺序 int fun(int a,int b,int c)

相关知识

2024年前端框架:第二章:Layui(类UI ) 框架:关于2,2024年最新初级Web前端开发面试题
C语言面试题目:把int 直接赋值给char 例如char c = 10;
如何用c语言输出一朵花
传教士问题c语言
如何用c语言编程玫瑰花
c语言玫瑰花代码devc++
c语言编程花朵,C语言花朵代码.doc
C语言情人节玫瑰花代码
C语言烟花代码,C语言实现烟花表白代码
写一个C语言代码测量土壤湿度

网址: c语言面试题总结 https://m.huajiangbk.com/newsview1055226.html

所属分类:花卉
上一篇: 花店送花:三类比较常见的问题
下一篇: 买花讲究诀窍,不清楚这3种“骗局