C语言,永远滴神!

写在前面

没事逛一逛TIOBE编程社区已经成了最近几年的小习惯。

TIOBE编程社区大家应该都听过,它是一个查看各种编程语言流行程度和趋势的一个社区网站,每个月都有榜单更新,每年也会有年度的榜单和总结出炉。

按照官方的说法,TIOBE榜单编程语言指数的计算和主流搜索引擎上不同编程语言的搜索命中数是有关的,所以某一程度上来说,可以反映出某个编程语言的热门程度(流行程度、受关注程度)。

而通过观察一个时间跨度范围内的TIOBE指数变化,则可以一定程度上看出某个编程语言的发展趋势。这对于学习者来说,可以作为一个参考。

本文 GitHub https://github.com/rd2coding/Road2Coding 已经收录,里面有我整理的6大编程方向(岗位)的自学路线+知识点大梳理面试考点我的简历几本硬核pdf笔记,以及我的程序员人生


C语言,YYDS!

前几天,像往常一样打开TIOBE网站时发现,在其公布的最新一期编程语言榜单上,意外的看到了C语言竟然再次领跑榜单,前三分别为C、Python和Java。

再掐指一算,发现C语言竟然将近50岁了!

C语言于1972年诞生于贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来的。

其实聊到C语言,还有一个和它有着不解渊源的老朋友,那就是UNIX操作系统。

以前的UNIX操作系统都是用汇编语言写的。后来在C语言主体设计完成之后,汤普逊和里奇用它完全重写了UNIX,并且在后来得到了不断的完善和发展。这样一来,也体现了C语言在编写系统软件时的优势,C语言也慢慢成为了写操作系统的主要语言。

为了便于C语言的全面推广和应用,专家学者联合一些厂商组成了C语言标准委员会,并在1989年诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”。后来又慢慢发展到“C99”和“C11”。截至2020年,最新的C语言标准是2018年6月发布的“C18”。


还记得去年2020开年那时候,老将军C语言厉兵秣马,凭借2.4%的年增长率就曾经获得了「年度编程语言」!而且当时也是C语言在继2008年和2017年后,第三次获得年度编程语言的殊荣:

没想到2021年8月,C语言又再次领跑榜单,说明其生命力依然还是很繁荣的。这对于一个诞生将近50年的编程语言来说,着实不易!

就像之前TIOBE网站上所说的那样,这可能主要和当下物联网(IoT)技术的发展繁荣,以及和当今发布的大量小型智能设备有关。毕竟C语言运行于这些对性能有着苛刻要求的小型设备时,C语言依然是最出色的。

所以现在明白了为什么上大学时不管是科班专业还是非科班专业,都要学习C语言了吧,而且往往是第一门编程课。C语言底子扎实,对于后续的学习和理解还是非常有帮助的。


历年年度编程语言榜单

下表给出了自2003年以来这17年,每年「年度编程语言」的排位情况:

  • C语言曾在2008和2017年度斩获年度编程语言殊荣,时隔两年,2019年再次荣获殊荣
  • 公认很牛的C++语言也仅在2003年拿过年度编程语言称号
  • Java也拿过两次年度编程语言,分别为2005年和2015年
  • 还是Python最野!已经拿到四次年度编程语言了(2007、2010、2018、2020)!

我们还可以看下过去几十年间比较流行的编程语言是哪些

所以总的来看,C语言、Java、Python这么多年基本都算是常青树了。

究其原因也好理解。C语言主要在嵌入式、物联网、操作系统、以及各种和底层打交道的场景下有着不可或缺的存在意义;Java则在互联网开发领域有着的繁荣的技术生态以及相当大的市场份额;而Python则在蓬勃发展的数据分析、数据挖掘和人工智能领域的市场占据主导地位。


各种编程语言历年趋势

Java:我是常青树

从图中代表Java趋势的蓝色线可以看出,代表Java的曲线一直处于高位游走。Java的霸主地位很好理解,毕竟Java可以说是构成当下互联网繁荣生态的重要功臣,无数的Web后端、互联网服务、移动端开发都是Java的领地。

C语言:我稳中求进

从图中代表C语言趋势的黑线可以看出,C语言也是唯一一个能总是跟Java争夺第一霸主的编程语言。自诞生之日起,C语言就凭借其易用性细粒度高性能等特性获得了无可替代的位置,就像上文说的,随着如今的万物互联的物联网(IoT)时代的兴起,C语言地位依然很稳!

C++:我有点疲惫了

C++的确是个强大的语言,但语言本身的包袱也的确是太大了,加油吧老大哥。

Python:我就要逆流而上

从图中代表Python趋势的绿线可以看出,尤其近两年,Python强势上扬,这主要和这几年的数据分析和挖掘人工智能机器学习科学领域的繁荣有关系。

PHP:我现在有点慌

PHP:我不管,我才是全世界最好的语言,不接受反驳!


以上。

另外最近花了大把力气,把自用的编程学习资源做了个大整理。

都是纯肝货,目录如下。

该内容 GitHub https://github.com/rd2coding/Road2Coding 已经收录,里面还有我整理的6大编程方向的自学路线+知识点大梳理我的简历面试考点几本硬核pdf笔记,以及我的程序员人生,欢迎star。

整理不易,欢迎支持,下期见!

### 回答1: c语言代码如下: ``` #include <stdio.h> int main() { int i, j; int sum = 0; for (i = 1; i <= 5; i++) { int fact = 1; for (j = 1; j <= i; j++) { fact *= j; } sum += fact; } printf("%d", sum); return 0; } ``` 运行结果为 153。 ### 回答2: 在C语言中,可以通过循环结构来计算1、2!、3!、4!、5!的和。首先定义一个变量sum,表示累加的和,然后使用循环结构计算每个数字的阶乘,并将其加到sum中,最后输出sum即可。 具体步骤如下: 1. 定义一个变量sum,用于存储1、2!、3!、4!、5!的和,初始化为0。 2. 使用for循环结构,从1循环到5。 3. 在每次循环中,使用另外一个for循环结构来计算当前数字的阶乘。 4. 将阶乘值累加到sum中。 5. 循环结束后,输出sum的值。 下面是相应的C语言代码: ``` #include <stdio.h> int main() { int sum = 0; //定义sum变量,初始化为0 for(int i = 1; i <= 5; i++) //循环1到5 { int factorial = 1; //定义factorial变量,用于计算阶乘 for(int j = 1; j <= i; j++) //循环计算阶乘 { factorial *= j; } sum += factorial; //累加阶乘值到sum中 } printf("1! + 2! + 3! + 4! + 5! = %d\n", sum); //输出sum的值 return 0; } ``` 运行代码,输出为“1! + 2! + 3! + 4! + 5! = 153”。因此,1、2!、3!、4!、5!的和为153。 ### 回答3: 首先,我们需要了解什么是阶乘。一个正整数的阶乘(factorial)是所有小于等于该数的正整数的积。例如,4的阶乘是1 x 2 x 3 x 4 = 24。 要求1!、2!、3!、4!、5!的和,我们可以使用for循环和一个累加器变量来实现。 具体的方法是,先定义一个变量sum来保存阶乘的和,然后使用for循环从1到5,每次取出当前的数i,先用一个变量factorial来保存i的阶乘,然后将factorial加到sum中。循环结束后,sum中就保存了1!、2!、3!、4!、5!的和。 具体的代码如下: ```c #include <stdio.h> int main() { int i, factorial, sum = 0; for (i = 1; i <= 5; i++) { factorial = 1; for (int j = 1; j <= i; j++) { factorial *= j; } sum += factorial; } printf("1! + 2! + 3! + 4! + 5! = %d\n", sum); return 0; } ``` 代码中的第一个for循环用来遍历1到5,而第二个for循环用来计算每一个i的阶乘。内层的for循环中,我们使用了一个factorial变量来保存当前阶乘的值,并用j从1到i进行乘法运算。 最后,我们将这个计算结果加到sum中,然后继续下一次循环,直到累加全部完成。最后输出sum的值即为所有阶乘的和。 使用这种方式,我们可以很轻松地计算任意个数的阶乘的和。同时,我们也可以利用这个方法,学会递归函数,实现较小的阶乘计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 220
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值