关于C语言,算法,用流程图解

Python034

关于C语言,算法,用流程图解,第1张

问题1:

算法:

拿一新瓶子a,将醋倒入a中;

将酱油倒入醋瓶中;

将瓶a中的醋倒入酱油瓶中。

问题2:

算法:

1、输入两个正整数m和n(m>n)

2、求m除以n的余数,记为r

3、判断r是否为0,若r!=0转步骤4,否则r=0,则n为最大公约数,结束,转步骤6

4、n赋给m,r赋给n

5、转到步骤2,循环

6、输出n,n即为所求最大公约数

编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。

1、预处理阶段:

主要工作是将头文件插入到所写的代码中,生成扩展名为“.i”的文件替换原来的扩展名为“.c”的文件,但是原来的文件仍然保留,只是执行过程中的实际文件发生了改变。(这里所说的替换并不是指原来的文件被删除)

2、汇编阶段:

插入汇编语言程序,将代码翻译成汇编语言。编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言,同时将扩展名为“.i”的文件翻译成扩展名为“.s”的文件。

3、编译阶段:

将汇编语言翻译成机器语言指令,并将指令打包封存成可重定位目标程序的格式,将扩展名为“.s”的文件翻译成扩展名为“.o”的二进制文件。

4、链接阶段:

在示例代码中,改代码文件调用了标准库中printf函数。而printf函数的实际存储位置是一个单独编译的目标文件(编译的结果也是扩展名为“.o”的文件),所以此时主函数调用的时候,需要将该文件(即printf函数所在的编译文件)与hello world文件整合到一起,此时链接器就可以大显神通了,将两个文件合并后生成一个可执行目标文件。