《C语言程序设计》一 1.2 简单的C语言程序

简介: 本节书摘来自华章出版社《C语言程序设计》一 书中的第1章,第1.2节,作者:赵宏 陈旭东 马迪芳,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 简单的C语言程序

从下一节开始将详细讨论C语言的各种结构,以及程序设计各方面的问题。本节先通过两个简单的例子,让读者了解C语言程序的概貌。

1.2.1 两个简单的C程序例子

【例1-1】 输出一行文本。

1    /*程序名:prg1-1.c*/
2    /*功能:在屏幕上输出一行文本*/
3    #include<stdio.h>
4      
5    int main()                                           /*主函数*/
6    {
7       printf("This is my first program in C/C++.\n");    /*在屏幕上输出一行信息*/
8     
9       return 0;
10    }

程序的运行结果为:

This is my first program in C/C++.

下面对该程序进行分析(为方便讲解,在每行前增加了行号):
第1、2行中/……/符号里的内容为注释语句,用来对程序进行说明。程序员插入注释语句可以提高程序的可读性,帮助人们阅读和理解该程序。实际运行程序时编译系统会忽略这些注释,即对注释不进行编译。在每个程序前加上注释是一种良好的程序设计习惯。
第3行是一条预处理指令,通知预处理器把标准输入/输出头文件stdio.h中的内容包含进程序中。头文件stdio.h包含了编译器在编译标准输入/输出函数时要用到的信息,每个使用标准输入/输出函数的程序中都要加上该命令。
第5~9行是每个程序都必须有的主函数,主函数以main()来标识。C语言程序可以有一个或多个函数,其中一个必须是main()函数,每个程序都从main()函数开始执行,也结束于main()的最后一个花括号。main()前面的int表示整型,说明主函数返回值为一个整数值。接下来的一对花括号是main()函数的函数体,函数体中定义了要执行的一系列操作。其中第7行调用了C的标准输出函数printf(),把双引号之间的字符串原样输出到屏幕上,其中“n”是一个转义字符,它使输出屏幕上的光标定位到下一行开始位置,是一个不可见字符,输出时屏幕上看不到。
【例1-2】 计算两个整数的和。

1   /*程序名:prg1-2.c */
2   /*功能:计算两个整数的和并输出结果*/
3   #include<stdio.h>
4
5   int main()                                          /*主函数*/
6   {
7       int  i1, i2, sum;                              /*变量定义*/
8
9       i1 = 3;                                      /*输入数据*/
10      i2 = 5;
11      sum = i1 + i2;                                 /*计算i1、i2的和*/
12
13      printf("sum=%d\n", sum);                     /*输出sum的值*/
14  
15      return 0;
16   }

程序运行结果为:

sum = 8

程序中第7行为变量定义语句,定义了三个整型(int)变量i1、i2和sum,分别存放一个整数。第9、10行分别给变量i1、i2赋值。第11行计算两个变量的和并送入变量sum中。第13行负责打印出字符串“sum=”,以十进制整数格式(%d)输出变量sum的值。

1.2.2 C程序概貌

从上一小节中的两个简单例子,大致可以了解C程序的框架:

/*注释:说明程序功能、目的、编写者、编写时间等信息*/
#include<stdio.h>                                /*编译预处理命令*/
int main()                                       /*主函数*/
{
      ……                                        /*程序内容*/
      printf("…");                               /*输出结果*/
}

在该框架下,可以根据不同的问题填写不同的内容。C程序的基本概貌如下:
1)在C的结构化程序框架中,函数是程序的基本组成单元。程序的主体通常由若干函数构成。函数是程序中完成一定功能的模块,其中有且仅有一个主函数,即main()函数。main()函数告诉计算机开始执行程序的地方。正是因为main()函数通过调用其他函数来执行相应的功能,所以main()函数有时也称为驱动函数。不管main()函数放在程序的什么位置,程序总是从main()函数开始运行。
2)所有程序的内容都必须用一对花括号{}括起来,称为函数体。左侧花括号可以放在下一行的行首,也可以放在行尾。例如,上面的main()函数还可以写成:

int main(){
      ……
      printf("…");
}

3)程序中可以有注释,放在“/”和“/”之间,主要是对程序进行简要的说明,包括程序的名称、完成的功能、编写人及最后修改时间等内容,系统不对该部分进行编译和运行,但它却是非常重要的部分,可以增强程序的可读性。
4)以“#”开头的为预处理命令。要调用系统函数,就应该把描述函数所在的头文件包含进来,如使用输入/输出函数,要加上#include,使用数学函数,应该加上#include等。预处理命令一般写在程序头部。
5)函数体由若干语句组成,包括声明部分和执行部分。声明部分如变量定义int i1, i2, sum,所有用到的变量都要先定义类型然后才能使用。执行部分包括函数的调用(如printf)和一般的运算等(如sum = i1+i2)。C语言的每条语句都必须以分号结束。
6)C程序书写格式自由,一行可以写几条语句,一条语句也可以分在几行上。但是这样写程序一是不方便对语句进行注释,二是如果程序稍长一点,或是程序中出现了选择结构和循环结构等控制结构,程序就很难阅读和理解了。因此在编写较长的程序时,为了便于阅读程序,突出程序的功能结构,函数体应采用缩进和对齐格式书写,使程序结构清晰、易于阅读。

1.2.3 C程序的处理和执行

C语言属于高级语言,用C语言写出的程序通常称为源程序(文件扩展名为.c),人们对其非常容易编写和阅读,但计算机不能直接执行。要保证C语言程序能被任何计算机执行,需要有一个编译器,把C语言程序翻译成能被计算机理解的二进制形式。不同的计算机系统有不同的编译器,由它们来完成这个翻译过程。由编译器对源程序文件进行分析和处理,生成相应的机器语言目标模块,保存到目标文件里(文件扩展名为.obj)。目标文件还不能执行,还需要连接器把编译得到的目标模块与其他必要部分(如函数库模块等)连接起来,生成可执行程序(文件扩展名为.exe)。运行该程序就会看到程序执行的效果。
如上所述,开发一个高级语言程序需要经过用编辑器生成源程序、用编译器生成目标程序、用连接器生成可执行文件以及运行已经生成的可执行文件四个步骤。为使程序的开发更加方便,四个步骤中需要的编辑器、编译器、连接器等软件功能通常被集成到一个程序中,形成集成开发环境(Integrated Development Environment,IDE)。集成开发环境是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。C/C++的集成开发环境有很多,主要包括微软的Visual Studio系列、Borland的C++ Builder等。

相关文章
|
4天前
|
前端开发 C语言 C++
C语言03----第一个程序HelloWorld(vs版)
C语言03----第一个程序HelloWorld(vs版)
|
14天前
|
机器学习/深度学习 移动开发 人工智能
C语言程序设计例题
C语言程序设计50例
|
14天前
|
C语言 图形学 C++
|
10天前
|
算法 搜索推荐 程序员
C语言程序设计考试掌握这些题妥妥拿绩点(写给即将C语言考试的小猿猴们)
C语言程序设计考试掌握这些题妥妥拿绩点(写给即将C语言考试的小猿猴们)
7 0
|
11天前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
|
11天前
|
自然语言处理 C语言 C++
程序与技术分享:C++写一个简单的解析器(分析C语言)
程序与技术分享:C++写一个简单的解析器(分析C语言)
|
11天前
|
程序员 编译器 C语言
详解C语言入门程序:HelloWorld.c
详解C语言入门程序:HelloWorld.c
9 0
|
11天前
|
机器学习/深度学习 C语言 Windows
程序与技术分享:C语言学生宿舍管理系统代码(可运行)
程序与技术分享:C语言学生宿舍管理系统代码(可运行)
11 0
|
12天前
|
C语言
C语言刷题(循环结构程序设计)
C语言刷题(循环结构程序设计)
|
13天前
|
程序员 C语言 C++
【C语言】:柔性数组和C/C++中程序内存区域划分
【C语言】:柔性数组和C/C++中程序内存区域划分
11 0