1.C语言程序的基本结构
.c后缀 c程序
.cpp后缀 C++程序
c源程序经过编译道道二进制代码文件.obj
通过与函数库 连接 得到可执行程序.exe
1.1 C语言程序的一般形式
#include 语句
全局变量说明
void main() /*主函数main() */
{ /*()内是函数
局部变量 /*main 定义的变量,在main中有效*/
程序段 /*完成特定功能的一系列语句 */
}
fun1() /*用户自行定义的名为fun1的函数*/
{ /*fun1 函数体开始处*/
局部变量 /*fun1定义的变量,在fun1中有效*/
程序段 /*完成fun1特定功能的一系列语句 */
}
fun2(){ /*用户可以根据需要定义多个函数*/
.......
}
说明:
(1)C语言程序的开头一般都使用一个或多个include 语句,用来引入某些标准库文件。这类标准库文件通常称为头文件,
头文件的扩展名为.h;
(2)程序的前部有时候可以定义一些全局变量,这些变量被后面的各个函数共享,但主要对全局变量的使用不能相互干扰。
在某个函数体内定义的变量,称为局部变量,它只在这个函数体内有效。
(3)C语言程序都是由若干个函数为单位组成(如main(),fun1(),fun2()),每个函数又由若干个C语言基本语句组成,每个
语句必须以分号(;)结束。
(4)C语言程序中必须有一个main函数(又称为主函数),作为程序执行的起点,但是main()位置不限,main()表示
是一个函数,其中main是函数的名称,()内列出来函数执行需要的n个参数,{}内为完成特定功能的一系列的语句。
(5)为了实现程序设计的模型化,如果需要,用户可以定义若干个自定义的函数,如fun1(),fun2()...... 自定义函数的
作用是使程序结构清晰,便于实现某个功能的重复使用。
(6)每个函数中的程序段可以由一系列语句组成,如完成输入数据,计算,输出数据和显示数据等功能。
2.简单的C语言程序
例如:编写一个C语言程序,其功能是在显示屏上输出Programming is fun!
#include<stdio.h> /*头文件stdio.h 是标准输入输出头文件,指定输入 */
/*为键盘,输出为显示屏 */
void main () /*主函数 */
{ /*花括号{}内为main函数的内容 */
printf("Programming is fun!\n"); /*使用stdio.h中已经定义的printf函数,其中"\n"是输出结果后光标转到下一行。
/*输出显示内容
}
运行结果是:Programming is fun !
例二:从键盘上输入两个实数,计算并显示这两个实数平方之和的平方根。
#include <stdio.h>
#include <math.h> /*引入math.h头文件,一遍使用开平方函数sqrt()*/
void main()
{float x,y,s; /*用float 定义表示实数的局部变量,x和y存放输入 */
/*的数据,s存放计算结果*/
scanf("% f,% f",&x,&y); /*从键盘上输入两个实数,&x,&y表示输入数据要放到在x和y所在的内存单元中去,&是取地址符号,
&x表示的是x在内存中的地址 */
s =sqrt(x*x+y*y); /*计算 */
printf("s = % f\n",s); /*显示结果,常用的控制符号,"%d"是按十进制整数格式输出;"%c"是按单个字符输出,"%s"是按字符串格式输出*/
}
输入数据:
1,2
程序运行结果:
s=2.236068
例3:由main()函数和1个求和函数sum()构成C语言程序示例。
#include<stdio.h>
int sum(int x,int y) /*计算两数之和 */
{ /*sum函数体开始*/
int z; /*声明部分,定义变量 */
z= x+y;
return(z); /*将z值返回,通过sum带回调用处*/
}
void main()
{
int a,b,c;
printf("Input the first number:");
scanf("%d",&a);
printf("Input the second number:");
scanf("%d",&b);
c = sum(a,b); /*调用max,将调用结果赋值给c */
printf("sum=%d\n",c);
}
程序运行结果:
Input the first number:3
Input the second number:5
sum = 8
3.C语言程序的编写要求
(1)C程序是由函数构成的,一个C源程序至少要有一个main函数。
(2)一个C程序总是从main函数开始执行的,不论main函数在整个程序中的位置如何。
(3)C程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。不要把一个关键词,标识符,常量,
运算和字符串拆分为两行。最好每个语句占用一个书写行,每个函数都按语句的层次关系形成缩进形式。
(4)使用 /*..........*/进行注释。
4.C语言程序的执行过程
输入与编译源程序——>编译源程序,产生目标程序——>连接各个目标代码,库函数,产生可执行程序——>运行程序。
源程序:程序可以用高级语言或汇编语言编写,用高级语言或汇编语言编写的程序称为源程序。C程序源程序的扩展名".c"。
事实上编写的程序,不管采用什么计算机语言,都是源程序,因为不会有人用机器语言去编程。源程序不能直接在计算机上执行,
需要用"编译程序"将源程序翻译为二进制形式的代码。
目标程序:源程序经过"编译程序"翻译所得到的二进制代码称为目标程序。目标程序的扩展名为".obj"。目标代码尽管已经是机器
指令,但是还是不能运行,因为目标程序还没有解决函数调用问题,需要将各个目标程序与库函数连接,才能形成完整的可执行的程序。
可执行程序:目标程序与库函数连接,形成的完整的可在操作系统下独立执行的程序称为可执行程序。可执行程序的可扩展名为".exe"
(在DOS/Windows环境下)
5.C语言程序的开放环境
目前常用的C语言集成化开放环境有Turbo C 2.0(DOS 平台上的C编译器),GCC(GNC C Compile,UNIX以及Linux平台上C/C++标准编辑器)
,Visual C++和Turbo C 2.0 程序开放环境。
现在常用的是Visual C++ 6.0版本,虽然公司已经推出汉化版本,但只是把菜单进行了汉化。
Visual C++ 6.0使用实例:
(1).执行"File——>New"命令,打开"Files"选项卡如下图,先在"File"栏中输入test.c (把C源程序文件命名为test.c),在"Location"框中选择
已经建立的文件夹,如:D:\Program Code\C,然后选中"C++ Sourse Files",单击"确定"按钮,就新建一个文件test.c。
(2).编辑和保存:在编辑窗口如图中输入源程序,然后执行"File"——>"Save"或"File"——>"Save As"命令,保存源文件。
(3).编译:执行"Bulid"——>"编译/Compile"命令或按Ctrl +F7组合键如图,在"产生工作区"对话框中如图选择"是(Y)"命令,开始编译
并在信息窗口显示编译信息。信息窗口中出现的"test.obj - 0 error(s),0 warning(s)",表示编译正确,没有发现(语法)错误和警告,并生产了目标
文件test.obj,如果显示有错误error(s),指程序中存在致命的错误,必须要改正;如果显示有警告warning(s),虽然不影响生产目标文件,但通常
也应该改正如图
(4).连接:执行"Build"——>"构件/Build"命令或按F7键,也可用"重建全部/Rebuild All"命令,开始连接,并在信息窗口中显示连接信息如图:
信息窗口中出现的"test.exe-0 error(s),0 warning(s)"表示连接成功,产生了可执行文件test.exe。
(5).运行:执行"Build"——>"执行/Execute"命令或按Ctrl+F5组合组合键如图,自动弹出运行窗口如图,显示运行结果"Hello World!",其中"Press any key
to continue"提示读者按任何键退出DOS窗口,返回到VC++编辑窗口。
(6).关闭程序工作区:执行"File"——>"关闭工作区/Close Wokespace"命令如图,在出现对话框如图选择中选择"是(Y)"命令,关闭工作区。
6.Turbo C 2.0介绍
Turbo C 2.0是borland公司1987年推出的C语言编译器,具有编译速度快,代码优化效率高等优点。Turbo C 2.0提供了两种编译环境:一种是
类似与UNIX环境的命令行,包含一个TCC编译器和一个MAKE实用程序;一种是集成开放环境,由编辑器,编译器,MAKE实用程序,RUN实用程序和一个调试器组成。