第一章 程序设计与C语言
1.1计算机与编程语言
思考题:计算机里的CPU可以直接运行人类编写的程序吗?为什么说编程语言不是和计算机交谈的语言?
计算机CPU不可以直接运行人类编写的程序。人类编写的程序语言属于高级语言,而计算机能识别的是机器语言。人类所理解和编写的语言需要通过编译器将高级语言转化为机器语言才能被计算机识别。
思考:有的编程语言,源代码经过编译后形成目标代码,但是这样的目标代码不能直接在CPU上执行,而是需要由一个仿真器程序来解释执行。这样的执行方式是编译的还是解释的?
解释定义是:会将代码一句一句直接执行,在执行期,动态将代码逐句解释为机器代码
编译定义是:以编译器,先将代码编译为机器代码,再加以执行。
仿真器可以使使一台计算机系统在行为上类似于另一台计算机系统,问题中仿真器进行解释执行,即将代码一句句执行,并非编译为机器代码再执行,所以这种执行方式应该为解释执行。
1.2 C语言
为什么是C?
其他语言?
C语言的历史
C的发展
C语言应用在哪?
C是一种工业语言
初学者推荐什么编程软件?
(访问这个链接下载:https://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/DevCpp%205.10%20TDM-GCC%204.8.1%20Setup.exe/download)
其他选择
1.3 第一个C程序
#include <stdio.h>
int main()
{
printf("HELLO WORLD!\n");
return 0;
}
做点计算
#include <stdio.h>
int main()
{
printf("23+43=%d\n", 23+43);
return 0;
}
思考题:
常听到有人说他学的是Visual C,有人学的是Turbo C,不是我们学的什么Dev C,是他们的比我们的高级吗?还有GCC到底是什么?
-
Visual C、Turbo C和DEV-C++都是C语言的IDE,即集成开发环境,没什么实质上的区别,只是开发商不一样,UI界面不一样。
-
GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)
为什么看到有的书上的main()是void main(),而我们课件上是int main()?还有main()里面那句return 0;是必须的吗?
void main 和 int main的区别就是有无返回值。在int main 可以出现非 int 类型的东西。在写代码时,一个函数要么有返回值,要么没有返回值没有返回值就用void来表示。main函数同样的,在没有返回值时加个void 。有的编译器必须main要有返回值 int , 那就写成int main 。void代表不需要返回值,也就是不需要使用return