嵌入式面试问题(C语言)

一、关键字

1、volatile的作用

2、static的作用,为什么static变量只初始化一次?

3、const的作用,什么是指针常量和常量指针?什么是指向常量的常指针?

4、typedef 和define的区别?

二、变量、常量和指针

1、定义常量define还是const哪个好?

2、全局变量和局部变量的区别?能否同名?

3、数组指针和指针数组?

4、函数指针和指针函数?

5、野指针是什么?如何避免?

三、内存

1、堆和栈的区别?

2、什么是内存泄漏?

3、new/delete和malloc/free的区别?

四、预处理

1、#error的作用是什么?

2、#include<>和#include" "的区别?

3、头文件的作用?、

五、其他

1、extern "C"的作用?

2、strlen和sizeof的区别?

3、struct和union的区别?

4、什么是大端和小端?

5、C程序的编译流程?

六、

1、实现strcpy函数

char* mystrcpy(cha* str; const char* str1)
{
    char* temp = str;
    while(*temp ++ = *str1++)
    return str;
}

2、实现strcat函数

char* mystrcat(char* str1, char* str2)
{
    char* temp = str1;
    while(*temp!='\0')
    temp++;

    while(*str2!'\0')
    {
        *temp = *str2;
        temp++;
        str2++;
    }
    *temp='\0';
    return str1;
}

3、实现strlen函数 

int mystrlen(char* str)
{
    int i=0;

    while(*str!='\0')
    i++;
    return i;

}

4、冒泡排序

void bublleSort(int* arr, int size)
{
    for(int i =0; i < size -1;i++)
    {    
        for(int j=0; j<size-1-i;j++)
            {
                if(arr[j]<arr[j+1])        
                  {  int temp = arr[j];
                    arr[j]= arr[j+1];
                    arr[j+1] =temp;
                    }    
             }

    }



}

5、

void SelectSort(int * arr ,int size)
{

    for(int i= 0;i<size;i++)
        {
            int minindex =i;     
       for (int j=i+1;j<size-1;j++)
                {
                    if(arr[j]<arr[minindex])
                        {
                            minindex=j;
                        }
                
                }
                int temp=arr[i];
                arr[i]=arr[minindex];
                arrminindex=temp;




        }



}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值