1、The C Programming The C Programming LanguageLanguage授课教师授课教师:余勤余勤工作单位:自动化系工作单位:自动化系 2022-10-19课程形式课程形式主课,习题课,作业考试:笔试考试:笔试(期末考试)学习要求:学习要求:按时上课,认真听讲、阅读参考书思考,讨论,提问成绩评定成绩评定作业,考勤,期末考试比例:作业:1015%考勤:5%10%期末考试:80%2022-10-19Chapter 1A Tutorial Introduction第一章C语言概述1 1学时学时2022-10-192022-10-19001000010100000000
2、0000000001000101100000000000000000000100001010000000001110110110110000011101102022-10-19START:LD HL,BLK1 LD DE,BLK2 LD BC,COUNT LDIR HALT注:注:LD 装入装入 LDIR 传送数据传送数据 HALT 停机停机2022-10-19 for(i=0;i10;i+)block1(i)=block2(i);2022-10-192022-10-192022-10-192022-10-191.3基本的程序结构基本的程序结构n例例1.1一个最简单的程序一个最简单的程序#in
3、clude void main()printf(C How to Program.n);2022-10-19例例1.2一个较为复杂的例子一个较为复杂的例子1)1)将将123123和和456456送入内存;送入内存;2)2)计算计算123123456456并将结果送入内存保存;并将结果送入内存保存;3)3)在显示屏上输出结果;在显示屏上输出结果;2022-10-19例例1.2一个较为复杂的例子一个较为复杂的例子main()#includeint a,b,sum;a=123,b=456;sum=a+b;printf(“sum=%dn”,sum);预编译命令预编译命令头文件头文件变量声明语句变量声明
4、语句赋值语句赋值语句算术运算语句算术运算语句函数调用语句函数调用语句主函数体主函数体2022-10-19变量变量声明声明C C程序中用到的所有变量在使用前均须进行声明。能用程序中用到的所有变量在使用前均须进行声明。能用于变量声明的常用关键字有:于变量声明的常用关键字有:例例 变量声明语句如下:变量声明语句如下:int a,b,sum;/a,b,sum 为变量名为变量名short,int,long分别用于定义变量为短整型,整型,长整型分别用于定义变量为短整型,整型,长整型float,double分别用于定义变量为单精度实型,双精度实型分别用于定义变量为单精度实型,双精度实型用于定义变量为字符型用
5、于定义变量为字符型 char2022-10-19算数运算表达式算数运算表达式用算数运算符用算数运算符+,-,+,-,*,/,%,/,%连接的式子叫算数表达式。例连接的式子叫算数表达式。例函数调用语句函数调用语句函数调用语句的函数调用语句的格式:格式:函数名(函数名(实际参数实际参数););例:例:printf(“sum=%dn”,sum);这是对库函数这是对库函数printf()printf()的调用。库函数是由的调用。库函数是由C C系统提供的。系统提供的。在调用库函数之前应该用预处理命令在调用库函数之前应该用预处理命令#include#include将含有此库函数声将含有此库函数声明的头文
6、件包含在此源文件中。如上面的明的头文件包含在此源文件中。如上面的#include#include%d%d是输出变量是输出变量sumsum的格式说明符。输出变量和格式说明符是一的格式说明符。输出变量和格式说明符是一一对应的。一对应的。ba =叫赋值运算符。用赋值运算符叫赋值运算符。用赋值运算符=连接的式子叫赋值表达式。连接的式子叫赋值表达式。例:例:a=123,b=456 等等2022-10-19#includemain()int a,b,a_b_max;scanf(“%d,%d”,&a,&b);a_b_max=max(a,b);printf(“max=%dn”,a_b_max);int max
7、(int,int);例例1.4一个更加复杂的例子一个更加复杂的例子 int max(int x,int y)int m;if(x y)m=x;else m=y;return m;ifelse条件选择语句条件选择语句max函函数开始数开始max函函数结束数结束函数返回语句,返回函数返回语句,返回m的值给主调函数的值给主调函数max函函数体数体max函数返函数返回值的类型回值的类型max函数的形参类型函数的形参类型max函数的形参函数的形参调用库函数调用库函数scanf语语句。功能:从键盘句。功能:从键盘输入输入2个整数分别给个整数分别给a,b调用函数调用函数max语句。语句。功能:执行功能:执行
8、max函数,函数,并将执行结果赋给并将执行结果赋给变量变量a_b_max函数调用时函数调用时使用的实际使用的实际参数参数函数声明函数声明语句语句 2022-10-19该程序由两个函数组成,一个是该程序由两个函数组成,一个是int int max(int x,int y),max(int x,int y),说明函数的返回值类说明函数的返回值类型 是 整 型,函 数 的 参 数 为 整 型 数,型 是 整 型,函 数 的 参 数 为 整 型 数,return(m)return(m)将结果返回给主函数,实现求将结果返回给主函数,实现求两个整数中的最大数值;两个整数中的最大数值;另一个是另一个是mai
9、n()main()主函数,虽然,主函数,虽然,maxmax函数函数在在main()main()函数之前,但程序的执行从函数之前,但程序的执行从main()main()函数开始,在函数开始,在main()main()函数中,从函数中,从键盘输入两个整数到键盘输入两个整数到a,ba,b所在的单元,由所在的单元,由于于maxmax函数在函数在mainmain函数之前定义,所以,函数之前定义,所以,可以直接调用可以直接调用maxmax求最大数,把控制权给求最大数,把控制权给maxmax函数,执行完这个函数,执行完这个return(m)return(m)语句之语句之后,控制权又回到后,控制权又回到mai
10、nmain函数,输出最大函数,输出最大值,当主函数结束时,整个程序就结束值,当主函数结束时,整个程序就结束了(如图了(如图1.3.11.3.1所示)。所示)。程序说明程序说明2022-10-19函数定义体必须在函数定义体必须在所有函数体外,即所有函数体外,即函数定义是平行的函数定义是平行的2022-10-19maxmax函数原函数原型声明型声明函数声明语句可在函数声明语句可在主调函数体内,也主调函数体内,也可在函数体外。可在函数体外。原原型声明中,形参可型声明中,形参可以不写名字,只写以不写名字,只写类型类型2022-10-192022-10-192022-10-19int main()202
11、2-10-19三个例子中都有的三个例子中都有的函数是函数是?语句的标志是语句的标志是?让我想一想让我想一想2022-10-19C C程序的一般特征程序的一般特征C C语言是函数式的语言,整个程序由函数组成,每个函语言是函数式的语言,整个程序由函数组成,每个函数完成相对独立的功能。组成程序的函数即可以是库函数完成相对独立的功能。组成程序的函数即可以是库函数,又可以是自定义函数数,又可以是自定义函数。C C程序的开头可以加入一些预处理命令指定编译系程序的开头可以加入一些预处理命令指定编译系统先执行预处理程序。预处理命令以统先执行预处理程序。预处理命令以#号开头,如号开头,如上面的上面的#inclu
12、de#include 主函数主函数main()main()是一个是一个C C程序的核心组成部分,程序的核心组成部分,是必需要的。一个是必需要的。一个C C程序总是从主函数程序总是从主函数main()main()开开始执行始执行组成组成C C程序的语句以程序的语句以 ;号结束;号结束在在WindowsWindows操作系统下,用操作系统下,用C C语言编写的源程语言编写的源程序文件以序文件以.c.c结尾,如:结尾,如:hello.chello.c。源程序文件源程序文件hello.c hello.c 经编译无误后产生二进制目标文件经编译无误后产生二进制目标文件hello.obj,hello.obj
13、,二进制目标文件二进制目标文件hello.objhello.obj和系统标和系统标准模块连接后产生可执行文件准模块连接后产生可执行文件hello.exehello.exe。2022-10-19C C除具有严格的语法规则外,还规定了基本的除具有严格的语法规则外,还规定了基本的语法单位。如:语法单位。如:字符、标识符、关键字、运算符、分隔符、字符、标识符、关键字、运算符、分隔符、常量和变量等。常量和变量等。字符集字符集字符是程序中的最小单位,是构成其他语法单字符是程序中的最小单位,是构成其他语法单位的基础。位的基础。C C规定的合法字符集是规定的合法字符集是ASCII ASCII 码字符集。码字符
14、集。1.4 C1.4 C语言基本语法单位语言基本语法单位2022-10-191.1.关键字关键字预先定义的具有特定含义的标识符预先定义的具有特定含义的标识符 。也称。也称为保留字,不能另作他用。如:为保留字,不能另作他用。如:2022-10-192.2.标识符标识符 标识符是编程者给使用的常量、变量、函数、语句标标识符是编程者给使用的常量、变量、函数、语句标号、类型定义等命名的字符串。号、类型定义等命名的字符串。合法:合法:str2 name _line two_and_three pistr2 name _line two_and_three pi 非法:非法:5class m5class
15、m*n student name int n student name int 注意注意“见名知意见名知意“,如:,如:sum volume resultsum volume result 注意注意“”,如:,如:name Name name Name 2022-10-193.3.运算符和分隔符运算符和分隔符表示某种运算的特殊符号,多数由一个表示某种运算的特殊符号,多数由一个字符或二个字符组成。如:字符或二个字符组成。如:+-+-*/%+-/%+-=!=!=&|&|*=/=&=,2022-10-195.5.常量和变量常量和变量程序设计时,使用不同的符号表示所需要的各种程序设计时,使用不同的符号
16、表示所需要的各种数据,这些符号就构成了程序的常量和变量。数据,这些符号就构成了程序的常量和变量。常量是指在程序执行中其值不会改变的量。常量是指在程序执行中其值不会改变的量。数值常量:数值常量:586586,-15-15,3.1415 3.1415 字符常量字符常量:a,B,”china”:a,B,”china”变量是指在程序执行中其值可改变的量变量是指在程序执行中其值可改变的量.如如:a,b,sum,volume,studentclass:a,b,sum,volume,studentclass2022-10-19所谓程序就是一组计算机能识别和执行的指令。所谓程序就是一组计算机能识别和执行的指令
17、。每一条指令使计算机执行特定的操作。每一条指令使计算机执行特定的操作。编写程序(编写程序(编辑编辑)就必须使用某种计算机语)就必须使用某种计算机语言。言。C C就是其中的一种。就是其中的一种。这样得到的程序我们称之为这样得到的程序我们称之为“源程序源程序”。源程序:源程序:source program source program计算机不能直接识别和执行计算机不能直接识别和执行“源程序源程序”,因,因此必须使用一种称之为此必须使用一种称之为“编译程序编译程序”的程序的程序,把,把“源程序源程序”翻译成二进制形式的翻译成二进制形式的“目标目标程序程序”。“目标程序目标程序”再经过与已有的系统函数
18、库二再经过与已有的系统函数库二进制代码或其它的进制代码或其它的“目标程序目标程序”的的链接链接,就,就形成了形成了可执行可执行的程序。的程序。2022-10-192022-10-19 执行执行C C程序执行过程程序执行过程编辑编辑(hello.c)hello.c)编译编译(hello.obj)(hello.obj)连接连接(hello.exe)(hello.exe)2022-10-192022-10-192022-10-191.1.算法是解决某一问题所采取的一系列步骤,它具有算法是解决某一问题所采取的一系列步骤,它具有如下特点:如下特点:P16P16(1)(1)有输入:算法可以有零个或多个输入
19、。输入是用来有输入:算法可以有零个或多个输入。输入是用来在一个算法的执行过程中,向它提供处理对象在一个算法的执行过程中,向它提供处理对象(数据数据)或或控制算法执行过程的信息。控制算法执行过程的信息。(2)(2)有输出:算法必须具有一个或多个输出。它是算法有输出:算法必须具有一个或多个输出。它是算法执行结果的输出。没有输出的算法是一个无效的算法。执行结果的输出。没有输出的算法是一个无效的算法。2022-10-19(3)(3)有穷性:任何算法都应该在执行有穷步骤之后有穷性:任何算法都应该在执行有穷步骤之后结束。结束。(4)(4)确定性:算法不能具有二义性。也就是说,算确定性:算法不能具有二义性。
20、也就是说,算法中每一步的语义都应该是清晰明了的,明确指出法中每一步的语义都应该是清晰明了的,明确指出应该执行什么操作,如何执行操作。应该执行什么操作,如何执行操作。(5)(5)高效性:根据算法编写出来的程序应具有较高高效性:根据算法编写出来的程序应具有较高的执行效率。其主要含义有:一是执行时间短,二的执行效率。其主要含义有:一是执行时间短,二是不占用过多内存。是不占用过多内存。2022-10-192 2 算法的表示算法的表示P16P16自然语言表示:易理解和交流,容易产生二义性。自然语言表示:易理解和交流,容易产生二义性。伪码表示:用形式化语言描述算法的逻辑过程。伪码表示:用形式化语言描述算法的逻辑过程。程序流程图:用图形符号文字说明来表示数据处程序流程图:用图形符号文字说明来表示数据处理过程和步骤。理过程和步骤。N-SN-S流程图:也称方框图。流程图:也称方框图。2022-10-192.2.算法的表示示例:从键算法的表示示例:从键盘读入盘读入1010个正数并输出它们个正数并输出它们的和。的和。程序程序描述的算法描述的算法。2022-10-19作业:n1.1题2022-10-19