在线OJ - 即在网页上写代码并提交,与预期结果进行对比
OJ - online judge
很多互联网公司在招聘时的笔试环节会采用在线OJ的形式
(在别人的编译器下不要画蛇添足)
1.IO型
所有代码都是自己来完成和实现
输入、计算、输出
2.接口型
只需要完成一个函数
假设其他需要的数据都是准备好的\
数组要么初始化,要么设置大小,要么同时,不能既不初始化也不设置大小:
int arr1[10];//10个元素
int arr2[] = { 1,2,3 };//3个元素
char arr3[] = { "123" };//4个元素(包含'\0')
数组内容当数组长度确定且设定内容不超出数组长度时,内容后一位会自动设定为‘\0’:
char arr[4] = { 'b','i','t' };//数组长度为4,最后一个位置会默认为'\0'
//不完全初始化,剩余的部分默认初始化为0
printf("%d\n", strlen(arr));
数字0和'\0‘本质上没区别,ASCII值都是0
求两个整数的较大值:
int Max(int x, int y)
{
if (x > y)
return x;
else
return y;
}
取模操作符%的两个操作数只能是整数:
int b = 7 % 2.0;//错误
sizeof是单目操作符,不是函数:
int a = 10;
printf("%d\n", sizeof(a));//4
printf("%d\n", sizeof(int));//4
printf("%d\n", sizeof a);//4
printf("%d\n", sizeof int);//报错
变量的命名:
1.有意义
int age;
float salary;
2.名字必须是字母、数字、下划线组成,不能有特殊字符,同时不能以数字开头
int 2b;//err
int _2b;//ok
3.变量名不能是关键字
1.static修饰局部变量的时候,局部变量出了作用域也不销毁。本质上,static修饰局部变量的时候,改变了变量的存储位置(栈区-->静态区)。影响了变量的生命周期,生命周期变长,和程序的生命周期一样。
2.static修饰全局变量的时候,这个全局变量的外部链接属性就变成了内部链接属性。其他源文件(.c/.cpp)就不能再使用这个全局变量了。(无论是否有static修饰,全局变量的存储位置始终是静态区)
3.static修饰函数的时候,一个函数本来是具有外部链接属性的,但是被static修饰的时候,外部链接属性变成内部链接属性,其他源文件(.c/.cpp)就不能再使用这个函数了。(同static修饰全局变量)
计算机存储结构:寄存器register(集成在CPU上)-->高速缓存cache-->内存-->硬盘
速度快,造价高,空间小————————————————————>速度慢,造价低,空间大
define定义宏:
#define ADD(x,y) ((x)+(y))
将ADD(x,y)替换为((x)+(y))
宏类似函数,但不同于函数