C语言程序开发过程
C语言是一种面向过程的程序设计语言,具有使用简洁、灵活、方便、运算符丰富、表达能力强、数据类型丰富、可移植性好、生成目标代码质量高等特点。
程序开发过程
C语言程序是由一个或多个具有独立功能模块组成,这些模块成为函数,也是组成程序的基本单位,在这些函数中,必须有一个名为main的函数,该函数成为主函数,也是一个程序的入口。
- 编辑:C语言源程序需要先经过编写,然后通过计算机存储到磁盘文件中,这一过程称为编辑。编辑包括以下内容:
1.编写C语言源程序。
2.将源程序逐个字符输入到计算机。
3.修改源程序。
4.将修改好的源程序保存到磁盘文件中,此时文件扩展名为cpp。
-** 编译**:就是将已编辑好的源程序翻译成二进制的目标代码,编译过程如下:
1. 对源程序进行语法检查,若有错,指出错误所在,此时应进入编辑状态进行修改,再重新编译。
2. 若无错,生成扩展名为.obj的目标文件。 - 连接:经编译后得到的二进制代码还不能直接执行,还需要把编译好的各个模块的目标代码与系统的标准模块(C语言标准函数库)进行连接,得到具有绝对地址的可执行文件(此处体现了C语言具有允许直接访问物理地址,即直接对硬件操作的特点),其扩展名为.exe。
- 执行:执行一个经编译和连接后得到的可执行文件。
C语言开发步骤
- 需求分析:是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应该输出什么。
- 算法设计:是指对要解决的问题设计出解决问题的方法和具体步骤。
- 编写程序:是把算法设计的结果变成一行行代码,输入到程序编辑器中,然后将此源程序以文件的形式保存到自己的指定文件夹中。
- 编译程序:需要利用编译器把送入的源程序翻译成机器语言。
- 连接程序:经过编译得到的目标文件不能供计算机直接执行。前面已经介绍此处就不多做解释。
- 运行程序:运行可执行文件,得到运行结果。能得到运行结果并不能说明程序是正确的,要对运行结果进行分析,分析其是否合理。检查是最好多设计几组数据检查。如果出现某一组数据有问题,说明程序存在逻辑错误,此时应该去修改源程序,直到没有错误为止。
- 编写程序文档:如同正式产品都有产品说明书一样,正式提供给用户使用的程序,也必须向用户提供程序说明书。程序说明书也被称为用户文档,应该包含程序名称、程序功能、运行环境、程序的装入和启动、需要输入的数据,以及使用注意事项等内容。
函数及其结构
- 语句(是组成函数的基本单位):C语言规定每个语句都必须由“ ;”结束。语句分为以下两种:
1.说明语句:说明语句用来完成对数据的描述,程序中用到的每一个变量都要先通过说明语句来定义,定义后才能使用。
2.可执行语句:可执行语句用来完成对数据的操作,是程序中用到的常量和用说明语句定义的变量进行加工处理。
(1)表达式语句:一个C语言表达式后跟一个分号构成的语句。格式为:表达式;
(2)函数调用语句:是把函数调用作为一条语句(在写代码过程中会用到很多)。
(3)空语句:只有一个分号构成的语句。程序在执行是不产生任何操作。
(4)复合语句:是一对花括号括起来的一组语句。格式为:{语句1 语句2 语句3…语句}
(5)流程控制语句:用于控制程序流向,它们由系统特定关键字组成。可分为以下三类: - 条件判断语句:if语句、switch语句。
- 循环语句:do while语句、while语句、for语句。
- 转向语句:break语句、continue语句、return语句、goto语句
标识符
是用来标识某个实体的符号,标识符分为以下三类:
- 系统标识符:是C语言的关键字包括数据类型标识符、储存类别标识符、流程控制标识符和存储长度运算符等。
- 预定义标识符:是C语言中预先定义使用的标识符。图系统常量(NULL等)、库函数名(printf、scanf、sqrt、fabs)等。
- 用户自定义标识符:使用户在程序中所使用的标识符,标识符的命名规则:以字母或下划线开头,由字母、数字、下划线组成。注意用户标识符不能与系统关键字同名、标识符区分大小写、标识符一个做到“见名知意”(总不能你自己整了个标识符结果自己还不知道啥意思吧)、预定义标识符不是C语言的关键字。
函数定义
函数定义的格式为:
返回值类型 函数名(参数类型1 形式参数名1,…,参数类型N 形式参数N)
{
数据定义
数据操作
}
说明:
- 返回值类型是由系统提供的类型标识符,用以说明该函数返回值的类型,如果没有定义函数返回值类型,系统默认返回值类型为int。
- 函数名、形式参数名必须是C语言的合法标识符,由用户对其进行命名,命名时必须遵循标识符命名规则。
- 形式参数简称形参,参数类型是系统提供的类型标识符,用以说明相应形参类型。
- 一对花括号是函数必不可少的组成部分。其内的部分称为函数体,通常由数据定义和数据操作两部分组成。数据定义部分用以定义函数中将要用到的数据;数据操作由若干条可执行语句组成,由他们给出对数据的所做操作。
- 如果函数有返回值,通常在函数体内必须有return语句,用来返回函数执行的结果。
- == return语句的作用:使程序流程从被调函数返回到主调函数的函数调用处,并将被调函数的返回值带回到函数调用处==。
函数调用及函数声明
1.函数调用
如果在一个程序中除了主函数外,还有其他函数,要完成其他函数的功能,必须由主函数或另一个函数来调用,把调用其他函数的称为主调函数,相应的其他函数称为被调函数。
函数调用的一般格式:
【变量=】被调函数名(实际参数)
说明:
- 实际参数简称实参,实参可以是常量,也可以是变量,还可以是表达式,但变量和表达式都必须有确定的值。
- 实参和形参一一对应 ,即实参要与形参的顺序、个数、类型保持一致,两个实参直接用逗号分隔。
- 方括号的内容是可选的,当被调函数有返回值时,应该将函数调用的结果赋值给一个变量。
2.函数声明
在一个函数调用另一个函数之前,必须对被调函数进行声明。
函数声明格式:
类型标识符 函数名 (形参表)
-函数声明是一个说明语句,必须在结尾加上分号。
主函数的结构
在C语言程序中,必须有一个主函数。
主函数书写格式:
int main
{
数据定义
数据输入
函数调用
数据输出
return 0;
}
-return 0;用于通知操作系统程序正常结束。
注释
- 以 /开头 ,以/结束,中间写注释内容。用于多行注释。(此处反斜杠有星号,我不知道为啥显示不出来,将就着看一下吧,后面代码部分会展示)
- 以//开头,在后面写注释内容。用于单行注释。
代码展示
输出你好
#include <stido.h>//预处理命令后面会讲到
int main()/*这是主函数*/
{
printf("你好\n");//在屏幕上打印显示你好,'\n'为转义字符后面会讲到
return 0;//这是int main必不可少的,这是在告诉系统,程序到此处运行结束
}
输入两个整数并求出两个整数的和(必须使用函数调用)
首先我们分析题目
1.题上告诉我们要输入两个量和得出结果,所以我们需要定义3个变量
2.有了变量后我们要知道求和公式:输入的nmu1+输入的num2=和
3.此处我们会用到函数调用,所以我们还需要声明自定义函数
#include <stdio.h>//预处理命令
int SUM(int x,int y);//声明自定义函数
int main()//主函数,也是程序的入口
{//以下是主函数的函数体
int num1,num2,sum;//定义三个变量为整型,每两个变量之间用逗号隔开
printf("请输入两个整数:");//printf是输出库函数,在这里起到的作用是提示用户输入
scanf("%d%d",&num1,&num2);//实现输入功能的scanf库函数,'&'这是地址符,scanf的小伙伴,没有它scanf就不想工作了哦
sum=SUM(num1,num2);//调用自定义函数SUM
printf("两个整数的和是:%d\n",sum);//输出结果
return 0;//程序结束
}
int SUM(int x,inty)//有声明必有定义,所以这里是SUM函数的函数定义
{
int z;//跟主函数里面的sum一样用来装结果的一个变量
z=x+y;//将x+y的值赋给z
return z;//程序读到此处z已经有值了,return就开始发挥作用了,带着z的值回到调用处
}
欢迎大佬指正