地震旅行时公式用c语言_科技热点 || C语言小课堂开课啦!

本文介绍了C语言的基础知识,包括函数的调用、声明、定义及递归调用,并探讨了指针的优势和用法,如返回指针值的函数和指针变量的概念。同时,提出了两个编程挑战,涉及使用递归计算勒让德多项式和解决报数游戏问题。
摘要由CSDN通过智能技术生成
67fdb2ee8d4bf3e4eec499121083bec9.png

C语言小课堂开课啦!!!

cb8e9bde0d9bd686bb0afa4a89dc1634.png

C语言作为咱们院的必修课,它是非常非常重要滴。首先,什么是C语言呢?

c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐。

5761956a109f482b4ce4f54e4553f6bf.png

今天小编就带大家走进

函数和指针的世界

eda28c39597031c116c663d3afe66bc9.png 67fdb2ee8d4bf3e4eec499121083bec9.png

函数

cb8e9bde0d9bd686bb0afa4a89dc1634.png

函数是C语言的重要组成部分。函数相当于把你的程序分成好几部分。当你的程序越来越复杂时,函数的应用就会使你的程序看起来有条理,别人看你的程序的时候也会轻松很多。

ebe1f1d6309004f266b73341aac1f99b.png

一、函数的调用和其原型

1、 在一个函数中调用另一个函数需要具备以下条件:

(1)首先被调用的函数必须是已经定义的函数,且必须是先定义后使用,必须在主函数中做声明。

(2)如果使用库函数,应该在本文件开头用#include指令将调用有关库函数时所需用到的信息“包含”到本文件夹中来。就像如果想用一些数学函数,就要加上#include。

2、 函数的声明和函数的定义中的第一行基本上是相同的,只差一个分号。

3、函数声明的一般形式

(1)函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2,...,参数类型n 参数名n);

(2)函数类型 函数名(参数类型,参数类型2,...,参数类型n);

4、函数的定义是指对函数功能的确立,包括指定函数名、函数值类型、形参及其类型以及函数体等,它是一个完整的、独立的函数单位。

二、函数的嵌套和递归调用

1、函数的定义是互相平行、独立的,也就是说,在定义函数时,不能嵌套定义,但可以嵌套调用函数。

2、在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。

例:

int f(int x)

{

int y,z;

z=f(y);

return(2*z);

}

考验1:用递归方法求 n 阶勒让德多项式的值,递归公式为

91e37b0cceded11702ce22951a1c7306.png 67fdb2ee8d4bf3e4eec499121083bec9.png

指针

cb8e9bde0d9bd686bb0afa4a89dc1634.png

指针被称为C语言精华,它最大的特点就是直接操作内存,这个特点直接导致了它不仅可以提高编程效率, 还可以写复杂度更高的数据结构,还能使编写出的程序更加简洁、紧凑。

首先说一下使用指针的优点:

(1)提供程序的效率。

(2)在调用函数时当指针指向的变量的值改变时,这些值能够为主调函数使用,即可以从函数调用得到多个可改变的值。

(3)可以实现动态存储分配。

e18fe4b1f570476a8faef4a814d1d524.png

一、返回指针值的函数

1、一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址。

2、一般形式

类型名 *函数名(参数列表);

二、指针核心

1、 首先要准确的弄清楚指针的含义,指针就是地址,凡是出现“指针”的地方,都可以用“地址”代替,变量的指针就是变量的地址,指针变量就是地址变量。

2、 要区别指针和指针变量,指针变量的值是一个地址。

3、地址就意味着指向,因为通过地址能找到具有该地址的对象。

4、指针变量可以用空值,即该指针变量不指向任何变量,可以这样表示:p=NULL;其中NULL是一个符号常量,代表整数0。

考验2:n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的哪位。(要求用指针)

今天的C语言小课堂到这里就结束了!

最后附上考验的答案:

1.#includedouble legendre(int n, int x) {       if (n == 0) {              return 1;       }       if (n == 1){              return x;       }       return ((2 * n - 1)*x - legendre(n - 1, x) - (n - 1)*legendre(n - 2, x)) / n;}int main(){       int n;       int x;       printf("请输入n的值和x的值\n");       scanf("%d %d", &n, &x);       printf("P%d(%d) = %f\n", n, x, legendre(n, x));}2.#includeint main(){  int i,k,n,m,num[50],*p;  printf("输入n=");  scanf("%d",&n);  p=num;  for(i=0;i  {         *(p+i)=i+1;  }  i=0;  k=0;  m=0;  while(m  {         if(*(p+i)!=0)         {                k++;         }         if(k==3)         {                *(p+i)=0;                k=0;                m++;         }         i++;         if(i==n)         {                i=0;         }  }  while(*p==0)  {         p++;  }  printf("最后一个数是:%d\n",*p);  return 0;}

6591fe7379b2f3ff51d324e81a667e1e.png

作为程序员,我们要走的路还很长,打好基础很重要。别忘了还有C++,C#,JAVA,Python等等编程语言在等你呦!

少年,加油!

b94d6051b8c6ec0f0be6459b6109fc42.png

编辑/ 师莹莹

图文/ 光电科技协会

责任编辑/ 王明旭

审核/ 孙超

终审/ 郭金玲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值