1、常用数学函数头文件#includemath或者#includemath.h函数原型功能备注intabs(intx)求整数x的绝对值longlabs(longx)求长整型数x的绝对值doublefabs(doublex)求实数x的绝对值doublesqrt(doublex)求x的值doublepow(doublex,doubley)求yx的值doubleexp(doublex)求xe的值doublelog(doublex)计算In(x)的值doublelog10(doublex)计算10log()x的值doublesin(doublex)计算sin(x)的值doublecos(doublex)计算cos(x)的值doubletan(doublex)计算tan(x)的值doubleasin(doublex)计算arsin(x)的值doubleacos(doublex)计算arcos(x)的值doubleatan(doublex)计算arctan(x)的值doublesinh(doublex)计算x的双曲正弦函数值doublecosh(doublex)计算x的双曲余弦值doubletanh(doublex)x的双曲正切函数值doublefmod(doublex,doubley)求x/y的余数(双精度数),返回值为x-n*y(n为整数商,非四舍五入);与x的符号相同。doubleceil(doublex)不小于x的最小整数(返回值为double型)doublefloor(doublex)不大于x的最大整数(返回值为double型)doublemodf(doublex,double*y)取x的整数部分送到y所指向的单元格中2、常用字符串处理函数头文件#includecstring或者#includestring.h函数原型功能备注char*strcpy(char*p1,constchar*p2)将p2所指向的字符串拷贝到p1所指向的存储区中。p1的长度一定要大于p2的实际长度。char*strncpy(char*p1,constchar*p2,size_tn)将p2所指向的字符串的前n个字符拷贝到p1所指向的存储区中p1的长度要大于n。char*strcat(char*p1,constchar*p2)将p2所指向的字符串连接到p1所指向的字符串结尾处,覆盖p1结尾处的'\0'。p1的长度要足够容纳合并后的整个字符串,包括’\0’。char*strncat(char*p1,constchar*p2,size_tn)将p2所指向的字符串的前n个字符连接到p1所指向的字符串结尾处,覆盖p1结尾处的'\0'。p1的长度要足够容纳合并后的整个字符串,包括’\0’。intstrcmp(constchar*p1,constchar*p2)比较p1,p2所指向的两个字符串的大小。若p1==p2,则返回零;若p1p2,则返回正数;若pr1p2,则返回负数。intstrncmp(constchar*p1,constchar*p2,n)比较p1,p2所指向的两个字符串的前n个字符大小。同上。char*strchr(constchar*p,charc)在字符串p中查找字符c首次出现的地址。若p中有c,则返回c在p中首次出现的地址;否则,返回NULL。char*strrchr(char*str,charc)在字符串p中查找字符c最后一次出现的地址。若p中有c,则返回c在p中最后一次出现的地址;否则,返回NULL。char*strstr(constchar*p1,constchar*p2)在字符串p1中查找子字符串p2。若p1中包含子字符串p2,则返回p2在p1中首次出现的首地址;否则,返回NULL。char*strlwr(char*p)将字符串p中的大写字母转换为小写字母。只转换p中的大写字母,不改变其他字符。返回指向p的指针。char*strupr(char*p)将字符串p中的小写字母转换为大写字母。只转换p中的小写字母,不改变其他字符。返回指向p的指针。intstrlen(constchar*p)求p所指向的字符串的长度不包括’\0’。char*strrev(char*p)反转字符串。返回指向p的指针。void*memcpy(void*p1,constvoid*p2,n)存储器拷贝,将p2所指向的共n个字节拷贝到p1所指向的存储区中void*memset(void*p,intv,n)p所指向的区域的前n个字节初始化为v值3、常用的系统函数头文件#includecstdlib或者#includestdlib.h函数原型功能备注voidabort(void)异常终止当前进程VisualC++中,如果以abort函数终止程序,则会在debug模式运行时弹出错误提示的对话框。Linux中,abort()会产生coredump。voidexit(intstatus)终止当前进程,返回(如果有父进程的话,否则返回给OS。①不同的值代表什么意义都是由编程者自己决定。习惯上,exit(0):正常结束程序运行;exit(非0):非正常结束程序运行。②父进程可以wait(&ret);waitpid(pid,&ret);来接收,ret中的值就是exit()返回的值。intatexit(void(*func)(void))注册终止函数(即main执行结束后调用的函数)①其参数是一个指向一个没有参数也没有返回值的个函数指针。②在一个程序中最多可以用atexit()注册32个处理函数,这些处理函数的调用顺序与其注册的顺序相反,也即最先注册的最后调用,最后注册的最先调用。同一个函数如若登记多次,则也会被调用多次。③一般程序执行到main()的结束就完成了,如果想在程序结束时做一些事情,可以尝试着用atexit()函数。程序在输出atexit挂接的函数后即终止。doubleatof(constchar*s)将s所指向的字符串转换成浮点数①跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。②成功则返回转化后的整数值,失败返回0。③参数s字符串可包含正负号、小数点或E(e)来表示指数部分。intatoi(constchar*s)将s所指向的字符串转换成整数longatol(constchar*s)将s所指的字符串转换成长整数intrand(void)产生一个随机整数voidsrand(unsignedint)初始化随机数产生器intsystem(constchar*s)将s所指向的字符串作为一个可执行文件,并加以执行max(a,b)求两个数中的大数min(a,b)求两个数中的小数(1)return语句、exit()函数和abort()函数的区别return语句exit()函数abort()函数级别return是语言级别的,它表示了调用堆栈的返回,当前函数的结束。其参数返回到上一级函数。直到main函数中,表示整个程序的终止。exit是系统调用级别的,通常用在子进程中,它表示了当前进程的结束。如果有父进程的话,其值返回给父进程,否则返回给OS。但,exit本身不是系统调用,而是一个C标准库的函数而已,在stdlib里面,系统调用是exit内部实现去完成的。exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束跳回操作系统。清理工作因为有stackunwinding(堆栈解退),所以执行时会调用局部析构函数,清理main或其他函数中的局部对象(自动对象)和局部静态对象。首先会执行由atexit()函数登记的函数;然后调用全局和静态对象析构函数,析构全局和静态对象。因为没有stackunwinding,所以决不会析构局部变量(自动对象)。同时刷新所有输出流、关闭所有打开的流并且关闭通过标准I/O函数tmpfile()创建的临时文件。调用时,不进行任何清理工作。直接终止程序。注:①在main函数中,调用return后,会隐式地交由系统调用exit()函数,结束主进程。②在C++、C#、Ruby、Java等面向对象语言中,因为exit()和abort()不销毁自动变量,容易造成内存泄露,所以最好不要使用exit()和abort()。(2)atexit()函数:程序例:#includestdio.h#includestdlib.hvoidexit_fn1(void){printf(Exitfunction#1called\n);}voidexit_fn2(void){printf(Exitfunction#2called\n);}intmain(void){atexit(exit_fn1);atexit(exit_fn2);return0;}输出:Exitfunction#2calledExitfunction#1called4、实现键盘和文件输入/输出的成员函数头文件#includeiostream或者#includeiostream.h函数原型功能返回值cinv输入值送给变量coutexp输出表达式exp的值istream&istream::get(char&c)输入字符送给变量cistream&istream::get(char*,int,char=‘\n’)输入一行字符串istream&istream::getline(char*,int,char=‘\n’)输入一行字符串voidifstream::open(constchar*,int=ios::in,int=filebuf::openprot)打开输入文件voidofstream::open(constchar*,int=ios::out,int=filebuf::openprot)打开输出文件voidfsream::open(constchar*,int,打开输入/输出文件int=filebuf::openprot)ifstream::ifstream(constchar*,int=ios::in,int=filebuf::openprot)构造函数打开输入文件ofstream::ofstream(constchar*,int=ios::out,int=filebuf::openprot)构造函数打开输出函数fstream::fstream(constchar*,int,int=filebuf::openprot)构造函数打开输入/输出文件voidistream::close()关闭输入文件voidofsream::close()关闭输出文件voidfsream::close()关闭输入/输出文件istream&istream::read(char*,int)从文件中读取数据ostream&istream::write(constchar*,int)将数据写入文件中intios::eof()判断是否到达打开文件的尾部1为到达2为没有istream&istream::seekg(streampos)移动输入文件的指针istream&istream::seekg(streamoff,ios::seek_dir)移动输入文件的指针streamposistream::tellg()取输入文件的指针ostream&ostream::seekp(streampos)移动输出文件的指针ostream&ostream::seekp(streamoff,ios::seek_dir)移动输出文件的指针streamposostream::tellp()取输出文件的指针