c语言函数

C语言函数——常用数学函数

依然范特西╮ 提交于 2020-02-16 21:30:05
C语言的数学函数所在函数库为math.h、stdlio.h、string.h、float.h,使用的时候需要引入。下面是函数及其作用。 int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int eptr) 返回value=x 2n中x的值,n存贮在eptr中 double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度

linux c语言 fork() 和 exec 函数的简介和用法

孤者浪人 提交于 2020-02-15 10:06:03
linux c语言 fork() 和 exec 函数的简介和用法 假如我们在编写1个c程序时想调用1个shell脚本或者执行1段 bash shell命令, 应该如何实现呢? 其实在<stdlib.h> 这个头文件中包含了1个调用shell命令或者脚本的函数 system();直接把 shell命令作为参数传入 system函数就可以了, 的确很方便. 关于system 有一段这样的介绍: system 执行时内部会自动启用fork() 新建1个进程, 效率没有直接使用fork() 和 exec函数高. 那么这篇文章其实就是介绍一下fork() 和 exec函数的用法, 以及如何使用它们来替代system函数. 1. fork() 函数 1.1 fork() 函数的作用 一般来讲, 我们编写1个普通的c程序, 运行这个程序直到程序结束, 系统只会分配1个pid给这个程序, 也就就说, 系统里只会有一条关于这个程序的进程. 但是执行了fork() 这个函数就不同了. fork 这个英文单词在英文里是"分叉"意思, fork() 这个函数作用也很符合这个意思. 它的作用是复制当前进程(包括进程在内存里的堆栈数据)为1个新的镜像. 然后这个新的镜像和旧的进程同时执行下去. 相当于本来1个进程, 遇到fork() 函数后就分叉成两个进程同时执行了. 而且这两个进程是互不影响

C语言常用函数

有些话、适合烂在心里 提交于 2020-02-13 12:39:40
一、数学函数 调用数学函数时,要求在源文件中包下以下命令行: #include <math.h> 函数原型说明 功能 返回值 说明 int abs( int x) 求整数x的绝对值 计算结果 double fabs(double x) 求双精度实数x的绝对值 计算结果 double acos(double x) 计算cos -1 (x)的值 计算结果 x在-1~1范围内 double asin(double x) 计算sin -1 (x)的值 计算结果 x在-1~1范围内 double atan(double x) 计算tan -1 (x)的值 计算结果 double atan2(double x) 计算tan -1 (x/y)的值 计算结果 double cos(double x) 计算cos(x)的值 计算结果 x的单位为弧度 double cosh(double x) 计算双曲余弦cosh(x)的值 计算结果 double exp(double x) 求e x 的值 计算结果 double fabs(double x) 求双精度实数x的绝对值 计算结果 double floor(double x) 求不大于双精度实数x的最大整数 double fmod(double x,double y) 求x/y整除后的双精度余数 double frexp(double val,int

C语言寒假大作战03

こ雲淡風輕ζ 提交于 2020-02-12 13:29:49
问题 回答 这个作业属于哪个课程 软件3班 这个作业要求在哪里 作业要求 这个作业的目标 复习Switch语句来完成菜单程序,学习新的函数 作业正文 需要使用新增加的函数,在上次作业中新加一些函数 其他参考文献 随机数rand 3.1设计思路和遇到的问题 思路:根据rand函数来取随机值,以上次作业为模板,在每个年级中增加几个随机数。 问题:三年级的题目要求除号后面不能为0,原本想要用switch函数写,后来不管我如何添加进去都无法输出,后来改成if-else函数直接写出。 3.2程序结果截图 3.3程序代码 3.4Gitee上传截图与链接 来源: https://www.cnblogs.com/zenghaiqi/p/12295021.html

【C语言】函数指针扫盲

限于喜欢 提交于 2020-02-12 11:44:33
首先看看函数指针,函数名,以及它们分别与*和&结合后的值 程序清单 #include<stdio.h> void func(void){puts("成功调用");}; int main() { void(*p_func)(void)=func; puts("func是函数名,p_func是指向该函数的指针,那么有:"); printf("func=%p\n*func=%p\n&func=%p\ \np_func=%p\n*p_func=%p\ \n&p_func=%p",func,*func,&func,p_func,\ *p_func,&p_func); //puts("\n接着我们尝试用上述变量调用函数:"); //func(); //(*func)(); //(&func)(); //(p_func)(); //(*p_func)(); return 0; } 执行结果 func是函数名,p_func是指向该函数的指针,那么有: func=004015C0 *func=004015C0 &func=004015C0 p_func=004015C0 *p_func=004015C0 &p_func=0061FECC 可见==func==,== func==,==&func==,==p_func==,== p_func==代表的值都是func()函数的地址 ( &p

【c语言】清空缓存 的问题

拥有回忆 提交于 2020-02-12 00:27:25
清空stdin中的缓存 int c; while((c = getchar()) != EOF && c != '\n'); 会把缓存清空,但是会遗留下'\n' (10) 读取时,可以使用 scanf("%[^\n]",c);来空过\n。 或 scanf("\n%d",c); 失败的解决方案: 1, while(!feof(stdin)){   getchar(); } 结果:程序会卡在这段,永远出不了while循环。 因为feof(FILE* file )函数必须等下一次读取不到数据使,才会返回非0;如读取空文件时,直接用feof(file)返回的是0,而用一下 fread()函数后,虽然什么都没有读到,但是feof(file)就返回非0了; 所以就会造成虽然到了结尾了,但是feof(stdin)返回的还是0,然后程序就会卡在getchar(),等待输入。 2, fflush(stdin); 使用后无效,查了一下,此函数不是标准函数,VC编译器可以使用,但是其他的编译器如gcc是不支持的(注:fflush(stdout)是标准函数) 3, while((c = getchar()) != EOF && c != '\n');此时缓冲区第一个字符是'\n'。 scanf("%*[\n]%d",c); 此时c读取的是\n,没有读到后面的输入,导致程序错误。 没想明白为什么,%【\n

C语言中函数的基本知识(1)

佐手、 提交于 2020-02-11 22:27:37
老师曾说:“很多人到这块就开始犯糊涂了。”没想到,我太给老师面子了,到后期听课较水,也没怎么看书,果然不懂。借假期温故再康康. 那么什么是函数? 函数是已经封装好的程序,作为c程序 的一大模块,它的应用可以加大程序输写效率,避免重复的代码。 函数的形式 无参函数 不接收来自用户传递的数据,void类型一般形式为: 类型标识符 函数名 。 有参函数 接收来自主函数主参数的数据,一般形式为 类型标识符 函数名(形式参数) 空函数 空函数一般用于项目的初步实现,留出以便后期添加一些附加功能。 那么什么叫做形参和主参? 与宏定义形参主参不同 在预处理章节我已经作出两者区别 说明:1.要求在调用时,主参要有确定的值赋予形参; 2.在调用时,俩者的类型应相同。且传递为主参向形参的单向传递。 3.一次性:调用时,给形参赋予存储单元,调用结束则去除。 形参主参单向传递,那存在一种东东使得形参向主参传递吗? 即函数的返回值 return() 举个栗子:找出两个数中较大的带入主函数输出 # include <stdio.h> int max ( int a , int b ) { int z ; z = a > b ? a : b ; return ( z ) ; } int main ( ) { max ( int a , int b ) ; int a , b , c ; scanf ( "%d

c语言main函数参数问题

╄→гoц情女王★ 提交于 2020-02-11 17:18:38
我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为: main (argc,argv) int argv; char *argv[]; 或写成: main (int argc,char *argv[]) 由于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。   DOS提示符下命令行的一般形式为: C:/>可执行文件名 参数 参数……; 但是应该特别注意的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数)

C语言-指针

泄露秘密 提交于 2020-02-11 06:53:43
无指针,不自由 --1-- 为什么要使用指针 1.1 指针的基本概念 1.2 使用指针的好处 1.3 变量的存储方式 --2-- 指针变量 2.1 指针变量 2.2 定义一个指针变量 2.3 指针变量的初始化方法 2.4 使用 * 获取指针对应存储区域的内容 --3-- 存储细节 3.1 变量及指针变量 --4-- 常见的应用场景 4.1 指针常见的应用场景 --5-- 多级指针介绍 5.1 二级指针 5.2 多级指针介绍 ---------------------------- 【写在开头:】 『 生活中的指针: 没错,就是一个门牌号。 指针是 C 语言中最重要的内容之一。 为什么要使用指针? 如果你想要查找一篇资料,给你一本厚重的百科全书,而你只需要其中第3001页的内容。 那么,3001页,就是指针。如果没有这个指针...好吧,我去旁边哭会儿... 』 --1-- 为什么要使用指针 1.1 指针的基本概念 内存单元的编号也叫做地址,根据内存单元的编号或地址就就可以找到所需的内存单元。 所以通常也把这个地址称为指针 1.2 使用指针的好处 1 )为函数提供修改调用变量的灵活手段 2 )让函数有多个返回值 3 )可以改善程序的效率   在数据传递时,如果数据块较大(比如数据缓冲区或比较大的结构),这时就可以使用指针传递地址而不是实际数据,既提高传输速度,又节省了大量的内存 4

C语言寒假大作战03

我怕爱的太早我们不能终老 提交于 2020-02-10 19:52:00
问题 回答 这个作业属于那个课程 班级链接 这个作业要求在哪里 作业要求 这个作业的目标 使用上次作业的菜单框架,并在其基础上增加各年级题目操作函数 作业正文 使用函数、Switch语句来完成菜单程序并通过git上传文件至远程仓库 其他参考文献 百度,《C语言程序设计》 2.2.2 设计思路和遇到的问题 设计思路: 先在上次作业的代码基础上增加三个函数,然后逐一编写三个函数的内容,最后依次加入到一,二,三年级对应的函数中,主函数内容保持不变 问题: 1.新学的rand()函数刚开始并不会用,百度了很多有关rand()函数的资料才知道了用法,rand()%(a-b+1)+a表示a~b的随机数,开始也不知道使用rand()函数需要加上头文件#include<stdlib.h> 2.一年级和二年级的函数相对比较简单,但三年级的有两个运算符号,需要考虑多种/后面不为0的情况,琢磨了很久最后还是用if-else语法分出了三种情况 2.2.3 程序结果截图 2.2.4 程序代码 2.2.5 Gitee上传截图与链接 链接 来源: https://www.cnblogs.com/wangwenzhi/p/12292220.html