一、关键字
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;
}
}