C语言(详细介绍)

1.程序与程序设计语言

        程序是为实现特定目标或解决待定问题而用计算机语言(程序设计语言)编写的一系列语句和指令,计算机能严格执行。一方面:程序设计语言提供了一种数据表达数据处理的功能;另一方面:编程人员必须按照程序设计语言的语法要求进行编程。编程具有以下特点①:完成某一特定任务;②:使用某种程序设计语言描述如何完成该任务;③:存储在计算机中,并且被运行后才能起作用。

1.1程序设计语言的功能

1.)数据表达(定义变量)

        数据是计算机处理的对象,数据类型Data Type)就是对某些具有相同性质的数据集的总称。数据类型有两个含义:该数据类型能表示些什么样的数据(即取值范围)?能对这些数据进行何种操作(即运算类型)?

        在许多程序设计语言中,基本的数据类型可以用于构造复杂的数据类型,来表达实际问题中存在的复杂的数据结构。

2.)流程控制

        程序设计语言除了具备良好的数据表达能力之外,还必须提供对不同类型的数据进行处理的手段。对数据的处理是通过语言的一系列流程控制语句实现的。

        任何程序的基本结构都可以通过3种基本的控制结构进行组合来实现。

(1)顺序控制结构

        一条语句执行完后,按自然顺序执行下一条语句。C语言中的赋值语句,输入输出等都构成了顺序结构。

(2)分支控制结构

        又称选择结构。计算机在执行程序时,常常需要根据不同的条件选择执行不同的语句。例如:C语言中的ifswitch语句都可以构成选择结构。

(3)循环控制结构

        许多时候,计算机需要重复执行相同的语句,重复执行一般是有条件的,条件满足时重复执行;条件不满足时则不会重复执行。C语言中的forwhiledo——while语句都可以构成循环结构。

这三种结构的共同特点是:

1.只有单一的入口和出口;

2.结构中的每个部分都有被执行的可能;

3.结构内不应出现永不终止的死循环。

1.2程序的算法表示

“软件的主体是程序,程序的核心是算法”

        通俗来讲,算法就是解决问题的方法与步骤。针对不同问题设计的算法千变万化,简繁各异,但是作为算法,都应具备以下几个特点:

(1)确定性。算法的每条指令必须有明确的含义,不能有二义性。对于相同的输入必须得出相同的执行结果。

(2)有穷性。一个算法应包含有限个操作步骤。

(3)可行性。算法中指定的操作都可以通过已经实现的基本运算执行有限次后实现。

(4)有零个或多个输入。算法是用来处理数据对象的,在大多数情况下,这些数据对象需要通过输入来得到。

(5)有一个或多个输出。算法的目的是为了求“解”,“解”只有通过输出才能得到。

2.C语言程序设计的特点

2.1C语言的特点

1).C语言语句简洁紧凑,使用方便灵活。ANSI C中只有32个关键字和9种控制语句。

2).运算符丰富,表达能力强。C语言提供了34种运算符,运算类型极其丰富。

3).C语言程序可移植性好。C语言程序中,没有直接依赖于硬件的语句。

4).生成的目标代码质量高 ,运行效率高。与其他高级程序语言相比,C语言程序经编译后生成的目标代码运行效率高。目前C的主要用途之一是编写“嵌入式系统程序”。

5).语言处理能力强。由于C语言中引入了指针,地址,结构,位运算等功能,与汇编语言十分接近,大大提高了语言的处理功能。

6).C语言是一种结构化语言。

注:1983年,美国国家标准协会(American National Standards Institute,ANSI)制定了一套C语言标准,称为ANSI C,目前使用的如Microsoft C,Turbo C等版本均以ANSI C为标准。

2.2C语言的约定

        一般将程序设计语言的规范称为语法(Grammar)。程序员用某种程序设计语言编写的未经编译的程序为源程序

1).C语言中的约定

(1)标识符:用来标识(表示)数据类型,变量,函数,语句的符号称为标识符(Identifier),不同的程序设计语言都有关于标识符的定义规范。C语言的标识符由字母数字下划线组成,其中第一个字符必须是字母或下划线。标志符的有效长度为1-255个字符。

(2)关键字:关键字(又称保留字)是C语言规定的,赋予特定含义和有专门用途的标识符。C语言中共有32个关键字。

C语言关键字
类别关键字
数据类型关键字(12个)char,double,enum,float,int,long,short,signed,struct,union,unsigned,void
控制语句关键字(12个)break,continue,case,do,default,else,for,goto,if,return,switch,while
存储类型关键字(4个)auto.extern,register,static
其他关键字(4个)const,sizeof,typedef,volatile

注意:C语言的关键字小写字母书写,不能用大写字母书写。如关键字int不能写成INT。

(3)用户自定义标识符。用户自定义标识符包括程序中定义的变量名,数据类型名,函数名和符号常量名。一般来说,通常使用有意义的英文单词作为用户自定义标识符,这样可以增加程序的可读性。例如,include,int,a,b,c,max等都是标识符。

(4)预定义标识符。C语言中提供了大量头文件和库函数,这些头文件和库函数中定义的一些标识符(例如scanf,printf等)统称为预定义标识符。C语言允许用户定义的标识符与预定义标识符同名,但是此时预定义标识符就失去了原有的作用。例如abs是求绝对值的函数名,但若将abs定义为一个变量名,程序中就不能再使用abs()求绝对值了,因此避免这样做。

(5)分隔符。C语言中的分隔符有逗号和空格两种。逗号主要用于类型说明和函数参数表中,分隔各个变量。空格多用于各单词之间作间隔符。在关键字、标识符之间必须要有一个以上的空格分隔,否则将会出现语法错误。

        利用关键字、分隔符、变量、运算符以及标识符,就可以组成程序设计语言的语法单位。

2).C语言的语法成分

(1)常量。常量是有数据类型的,如整型常量2、实型常量2.0、字符型常量’2‘、字符串常量“C Programming”等。

(2)变量。每个变量都有数据类型,在定义变量时要说明变量的数据类型。编译系统会根据变量的类型,为其分配存储空间。不同类型的变量在内存中占用的存储空间有所不同。变量定义的一般形式:类型名  变量名。

(3)运算符。运算符用于对各种类型的数据对象进行运算。C语言的运算符相当丰富,有34中之多。例如:

        算术运算符:+(加)、-(减)、*(乘)、/(除)、%(求余);

        关系运算符:>(大于)、>=(大于等于)、==(等于)、<(小于)、<=(小于等于)

参与运算时只要求有一个数据对象的称为单目运算符,参与运算时要求有两个数据对象的称为双目运算符,参与运算时要求有三个数据对象的称为三目运算符。

(4) 表达式。有运算符将常量、变量、函数组合而成的有意义的式子称为表达式。表达式中可以包含多种数据类型的运算符,运算符有优先级,算术运算优先于关系运算。

(5) 语句。在C语言中,语句是程序最基本的执行单位,以分号结尾。

(6) 函数定义与调用。函数是完成特定功能的小模块,是C语言中唯一的一种子程序,常常在一个C程序中包含若干个函数,复杂的任务通过调用这些函数来完成。

(7) 输入与输出。C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供的有关函数(如scanf()和prinft())来实现的。

3.C语言的编辑、编译、链接和运行

3.1程序设计的任务

1).分析问题

        解决问题之前,充分理解问题,明确原始数据、解题要求、需要输出的数据及形式等。

2).设计算法

        算法是对问题求解过程和步骤的描述。首先集中于算法的总体规划,然后逐层减低问题的抽象性,逐步充实细节,直到把抽象的问题具体化成可用数学公式表达的形式,形成问题的算法。

3).程序设计

        程序设计即采用某种计算机语言对问题所设计的算法进行实现的过程。

4).运行并调试程序

        程序设计完成并输入计算机以后,可以开始运行并调试程序。运行程序通常包括编译和链接等操作。编译程序对源程序进行语法检查,若编译顺利通过,编译程序将源程序转换为目标程序,大多数程序设计语言往往还要使用链接程序把目标程序与系统提供的库文件进行链接以得到最终的可执行文件;若编译过程中出错则给出错误提示信息,此时要进行程序调试,查找并改正源程序的错误后再重新编译,直到没有语法错误为止.

5).分析程序运行结果

        对于经过成功编译和链接并最终顺利运行结束的程序,编译者还要对程序运行的结果进行分析,只有得到正确结果的程序才是正确的程序。

6).编写程序文档

        程序文档通常指的是程序使用说明书,内容包括:程序名称、程序功能、运行环境、程序运行方式、运行所需数据及使用注意事项等。

3.2运行C程序的步骤与方法

        编辑源程序、对源程序进行编译、与库函数链接、运行目标程序

1).编辑源程序

        首先将编写的C语言源程序输入到计算机中以文件的形式保存起来,C语言源程序的扩展名为.c,C语言源程序为文本文件,可以用文本编辑器(如记事本)编辑,也可以用C编译系统提供的集成开发系统进行编辑。

2).编译

        C语言源程序编辑好后,可以开始编译。编译程序所要做的工作就是通过词法分析和语法分析,再确认所有的指令都符合语法规则之后,将其翻译成二进制目标文件。

3).链接

        编译生成目标程序后,还要进行链接。将目标程序与系统提供的库函数或是其他目标程序进行链接,得到最终的二进制可执行文件。链接成功后生成可执行文件,文件扩展名为.exe。

4).运行

        可执行文件运行后,结果会显示在屏幕上。可执行文件运行后,要验证程序的运行结果,如果发现运行结果与设计目的不相符(通常成为逻辑错误),说明程序在设计思路或算法上出现了问题。此时需要重新检查源程序,找出问题并进行修改,然后重复上面步骤。

  • 21
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值