信奥竞赛

系列

剑指信奥 | Hello,C 语言!

为什么选择 C 语言

今天,我们将正式开启信奥之旅,我们将从零开始学习 C 语言...

等等!不是说过了,从 2022 年起,信奥比赛将不再使用 C 语言和 Pascal 语言,而是只能使用 C++ 语言了吗,为什么我们还要学习 C 语言?两年后不就过时了吗...

别急,要说清这件事,我们先来聊一聊 C 语言和 C++ 的关系。

C 是一种通用的程序语言,广泛用于系统软件与应用软件的开发。于 1969 年至 1973 年间,由丹尼斯·里奇与肯·汤普逊在贝尔实验室设计、开发出来。

Wikipedia

肯·汤普逊和丹尼斯·里奇,C语言开发者

C++ 是一种被广泛使用的计算机程序设计语言。它是一种通用程序设计语言,支援多重编程模式, 比雅尼·斯特劳斯特鲁普博士在贝尔实验室工作期间,在 20 世纪 80 年代发明并实现了 C++

Wikipedia

比雅尼·史特劳斯特鲁普,C++ 之父

C++ 语言,读作 C加加,或英文 C plus plus(cpp)含义就是在 C 语言的基础上发明出来的,比 C “多了一点”。

所以 C++ 是 C 的继承者,它保留了 C 语言的所有优点,增加了的主要内容是面向对象的程序设计机制。

C++ 与 C 语言是兼容的,所有用 C 语言写的程序可以不加修改的用于 C++。

具体到我们要参加的信息学奥赛,我们所使用的 C++ 只是在 C 语言的基础上多了一点有限的内容,还远远不是 C++ 的全部。

C++ 本身是一种非常复杂的编程语言,而 C 语言相对而言,简洁明了的多,所以,以参加信奥为目的,我们最好的路径就是先学习 C 语言的语法,再进而学习我们所需要的 C++ 的部分内容。

这就是我们从 C 语言开始的原因。

C 的编写编译运行环境

今天,就像以往我们学习 Scratch 和 c 一样,我们先来从一个最简单的 C 语言程序开始。

首先,我们知道,任何一门计算机语言程序的编写都需要一个特定的“环境”,通常是与程序编写、编译相关的软件。

CCF 组织的信息学奥赛有一套标准化的程序编写编译环境,但配置的过程相对繁琐,我们初学 C 语言,没有必要上来就使用这个环境,将来在适当的时间,我们会对赛场环境的建立做一个专门的讲解。

我们还是和之前学习 c 语言一样,使用一个非常方便的在线编程环境:

cpp.sh

我们推荐使用 cpp.sh 这个网站的在线编译环境,可以编写运行 C 语言和 C++ 语言的程序。

第一个 C 语言程序

好啦,在我们有了 C 语言的环境之后,我们就来编写运行我们的第一份 C 语言程序吧:

#include <stdio.h>
int main(void) {
    printf("Hello, C!");
    return0;
}
                

现在我们把这份代码写在 cpp.sh 中,点击 Run 运行,就会看到在下方的 execution 中出现程序的运行结果 “Hello, C!”,这就是我们的第一份 C 语言程序,是不是很简单?

Hello, C!

从图中,我们可以看到三个步骤:

  1. 程序的编写
  2. 程序的运行
  3. 程序的执行

其实,这里还有一个很重要的步骤不是很明显能看到,它叫做“编译”,我们以后会专门提到它。

那么,我们的一个程序是什么含义呢?这里,我们做一个简要的阐释。

#include <stdio.h>
int main(void) {
    /* 主要的代码写在这里 */
    return 0;
}
                

上面这段代码是一份 C 语言程序的主要结构,我们初学可以先不管它,记住它照着写就可以。

中间 /* */ 符号是一段 C 语言的注释,当前这个注释的位置是我们关注的,我们要实现功能的代码就是写在这里。

那在第一份程序中,我们做了什么呢?

printf("Hello, C!");

对,就是这一行代码,printf 是 C 语言的格式化(format)打印(print)函数(function),看起来很复杂,我们现在理解为计算机使用这个方式向我们说一句话就可以,那么说了什么呢,就是双引号中的 “Hello, C!”。

于是,程序一运行,“Hello, C!” 就出现了~

好了,我们今天的课程就要结束了。

之前我们说过,编程语言的学习离不开英语,两者是相辅相成的,我们会在每一节课的最后总结一下我们学到的单词。

同学们要多做积累,不知不觉中就会学会很多课堂上学不到的单词,它们都是知识海洋中的宝石💎,快快开始收集起来吧!

  • C C语言
  • C plus plus C++ 语言
  • include 包含
  • main 主函数
  • void 空
  • print 打印
  • format 格式化
  • function 函数
  • return 返回
  • run 运行
  • execution 执行