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种“骗局 |