《算法笔记》(胡凡)day1-C语言与C++入门

    科技2023-10-01  76

    《算法笔记》(胡凡)day1-C语言和C

    引言C/C++快速入门一.简介二.数据类型的取值范围1.整型2.浮点型 二.常用的match函数三.数组1.memset-对数组中每个元素赋一个相同的值2.字符数组3.string.h头文件 四.指针与引用1.引用与指针的区别

    引言

    《算法笔记》是针对研究生复试上级,考取PAT等级,CCF的CSP认证编写的算法学习指导书籍,配合《算法笔记上级训练实战指南》效果更好。

    写者作为一个CS专业的大学生马上面临着考研or保研的考验,因此对于能够抵机试成绩的算法等级考试具有浓厚兴趣,特此写文,记录自己学习算法的过程。

    C/C++快速入门

    一.简介

    该部分是为了帮助读者快速上手编写程序所写,具有C/C++基础的读者,可以直接跳过了。 但是如果读者跟写者一样,学过C/C++的基础语法,但是对具体的细节不能熟练掌握可以按照需要选择合适的部分。

    这里我们不再深究C/C++基础语法,只对算法中的常用部分进行说明。

    另:这里我们以C语言为主,一方面是C++向下兼容C,可以用C处理C++的大部分问题,另一方面,相比C++,C的处理速度更快,能够一定程度上减少超时现象的出现。

    二.数据类型的取值范围

    这是很多人在写算法的时候容易忽视的一部分,因为在很多考试中,对于测试数据的范围往往有明确要求,了解这些变量的取值范围能够有效避免超出范围的情况。

    1.整型

    分为short,int,long long,其中short用到的比较少,不再赘述 对于int类,一个整数占据32bit,即4Byte,取值范围自然为 而对于long long类的长整型,一个整数占据64bit,也就是8Byte,取值范围为

    2.浮点型

    对单浮点型float来说,取值范围为 但是有效精度只有6~7位,对于精度要求高的问题不适用。

    对于双精度double来说,取值范围为 有效位数为15~16位,比起float优秀得多。

    二.常用的match函数

    1.fabs(double x) 求绝对值

    2.floor(double x)和ceil(double x)分别为向下和向上取整数

    3.pow(double r, double p)求r的p次幂

    4.sqrt(double x)算数平方根

    5.log(double x)返回double型变量的以自然数为底的对数

    6.sin(double x),cos(double x)和tan(double x)弧度制求三角函数

    7.在第六条函数前加“a”会求反三角函数

    8.round(double x)求x的四舍五入

    三.数组

    基础语法不再赘述,下面介绍数组中常用的函数

    1.memset-对数组中每个元素赋一个相同的值

    格式为: memset(数组名,值,sizeof(数组名))

    需要注意的是memset需要程序开头添加string.h头文件,只建议初学者只给数组赋值0或者-1。这是因为memset使用的是按字节赋值,即对每个字节赋相同的值,组成int型的4个字节会被赋成相同的值。如果要赋值为其他数字请使用fill函数,我们日后会说到。

    2.字符数组

    要注意字符数组会在末尾自动添加空字符“\0”,在使用gets和scanf输入时会自动添加到后面,并占据一个字符位置,而puts和printf就是通过识别\0来停止的。 特别提示1:结束符会占据一个字符长度,因此字符数组长度要比实际存储的字符串长度多1 特别提示2:如果不是使用scanf或gets输入字符串,例如使用getchar一定要在输入的每个字符串后手动添加\0,否则会有乱码。

    3.string.h头文件

    1.strlen()可以得到字符数组中第一个\0前的字符的个数 2.strcmp(字符数组1,字符数组2)返回两个字符串大小的比较结果,比较原则是按照字段顺序,如果1<2,返回一个负数;1==2,返回0;1>2,返回正整数。 3.strcpy(字符数组1,字符数组2)把2的内容复制给1,包括了结束符。 4.strcat(字符数组1,字符数组2)把2字符串接到1后面

    四.指针与引用

    1.引用与指针的区别

    引用是C++中的语法。

    众所周知,函数的参数是作为局部变量使用的,对局部变量的操作不会影响外部的变量,如果要修改传入的参数,就只能使用指针。但是引用可以不使用指针。引用实际不产生副本,而是给原变量起了一个别名。使用引用的方法很简单,只需要在函数的参数类型后面加一个&即可。

    Processed: 0.019, SQL: 8