《C语言程序设计教程课件.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计教程课件.pptx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/4/131本章主要内容程序设计与算法概述C语言概述 C程序的符号系统 第1页/共29页2023/4/1321.1 程序设计与算法概述主要内容:计算机语言与程序设计算法 结构化程序设计 第2页/共29页2023/4/1331.1.1 计算机语言与程序设计 1.1.计算机语言计算机语言是人与计算机进行交流的工具计算机语言分为:机器语言机器语言机器语言机器语言机器指令(由机器指令(由机器指令(由机器指令(由0 0 和和和和 1 1组成),可直接执行组成),可直接执行组成),可直接执行组成),可直接执行 难学、难记难学、难记难学、难记难学、难记依赖机器的类型依赖机器的类型依赖机器的类型依赖机
2、器的类型汇编语言汇编语言汇编语言汇编语言用助记符代替机器指用助记符代替机器指用助记符代替机器指用助记符代替机器指令,用变量代替各类令,用变量代替各类令,用变量代替各类令,用变量代替各类地址。地址。地址。地址。克服记忆的难点克服记忆的难点克服记忆的难点克服记忆的难点其他与机器语言类其他与机器语言类其他与机器语言类其他与机器语言类似似似似高级语言高级语言高级语言高级语言类似数学语言、接近自然语言、具有通用类似数学语言、接近自然语言、具有通用类似数学语言、接近自然语言、具有通用类似数学语言、接近自然语言、具有通用性和可移植性,不依赖具体的计算机类型。性和可移植性,不依赖具体的计算机类型。性和可移植性
3、,不依赖具体的计算机类型。性和可移植性,不依赖具体的计算机类型。第3页/共29页2023/4/134例如:0 0 1 0 0 0 1 11 1 1 0 1 1 0 10 1 1 0 0 0 0 10 1 1 1 0 1 1 0 机器语言程序机器语言程序MOV AX,MOV AX,300H300HADD BX,AXADD BX,AXMOV 2100H,BXMOV 2100H,BX HLTHLT汇编语言源程序汇编语言源程序main()int a,b,c;a=300;b=18;c=a+b;printf(“a+b=%dn”,c);高级语言高级语言源程序源程序(C)源程序需要翻译第4页/共29页2023
4、/4/135汇编源程序的翻译:将汇编源程序翻译为目标程序的过程称为汇编汇编过程:图1.1 汇编过程汇编程序连接程序汇编连接汇编语言源程序机器语言目标程序可执行程序(.ASM)(.OBJ)(.EXE)运行运行结果第5页/共29页2023/4/136高级语言的翻译:编译方法图1.2 编译过程(.C或.PAS等)编译程序连接程序编译连接高级语言源程序机器语言目标程序可执行程序(.OBJ)(.EXE)运行运行结果解释程序高级语言源程序解释执行运行结果图1.3 解释过程(.BAS)l l解释方法解释方法第6页/共29页2023/4/1372 2程序设计 用计算机解决一个实际应用问题时的整个处理过程称为程
5、序设计 提出问题确定数据结构确定数据结构确定算法确定算法编写程序调试和运行程序输入程序翻译(编译或解释)得到得到运行结果运行结果第7页/共29页2023/4/1381.1.2 1.1.2 算法什么是算法为解决某一应用问题而采用的解题步骤算法的描述方式 用自然语言描述算法 用流程图描述算法 用N-S结构图描述算法 例如:输出两个数中的最大数 第8页/共29页2023/4/139用自然语言描述算法用自然语言描述算法第一步:输入x和y的值第二步:比较x和y的值,如果x大于y,则输出x的值,否则输出y的值。易于理解,但易于理解,但冗长,不够精冗长,不够精确,难于描述确,难于描述复杂算法。复杂算法。例如
6、当描述“输出10个数中最大数”的算法时,会冗长、难于理解第9页/共29页2023/4/1310图1.5 用流程图描述算法用流程图描述算法用流程图描述算法NYz=yz=xx y?开始输入x和y结束输出z起止框起止框输入输入/输出框输出框判断框判断框处理框处理框流程线流程线第10页/共29页2023/4/1311用用N-S结构图描述算法结构图描述算法输入x、y的值xy T F z=x z=y输出z的值图1.7 用N-S结构图描述的算法已经证明,任何复杂的问题都可以三种基本算法结构来描述:顺序、选择、循环。因此用计因此用计算机语句描述的算机语句描述的程序也包含三种基本结构。程序也包含三种基本结构。第
7、11页/共29页2023/4/13121.1.3 1.1.3 结构化程序设计程序的三种基本结构顺序结构程序:按照书写顺序依次执行语句选择结构程序:按照条件判断选择执行语句循环结构程序:通过条件控制循环执行语句三种基本结构的共同点:三种基本结构的共同点:三种基本结构的共同点:三种基本结构的共同点:都是只有一个入口和一个出口;都是只有一个入口和一个出口;都是只有一个入口和一个出口;都是只有一个入口和一个出口;结构内的每一个框都有机会被执行;结构内的每一个框都有机会被执行;结构内的每一个框都有机会被执行;结构内的每一个框都有机会被执行;结构内没有死循环。结构内没有死循环。结构内没有死循环。结构内没有
8、死循环。第12页/共29页2023/4/1313结构化程序设计的基本原则:如果一个程序仅包含这三种基本结构(由这些基本结构顺序组成),则称为结构化程序。结构化程序设计的基本原则:采用自顶向下、逐步细化的方法进行设计;采用模块化原则和方法进行设计。即将大型任务从上向下划分为多个功能模块,每个模块又可以划分为若干子模块,然后分别进行模块程序的编写;每个模块都是用结构化程序实现,即都只能由三种基本结构组成,并通过计算机语言的结构化语句实现。第13页/共29页2023/4/13141.2 C语言概述主要内容:C语言的发展C语言的特点C程序的基本结构C程序的执行过程第14页/共29页2023/4/131
9、51.2.1 C语言的发展 发展过程 B B语言语言:Bell实验室,1970年 在PDP机器上用其编写UNIX系统CPLCPL语言语言:剑桥大学,1963年BCPLBCPL语言语言:剑桥大学,1967年C C语言语言:Bell实验室,19721973年用其改写UNIX系统经简化进一步简化保持精练、接近硬件的优点,克服数据类型过少的不足第15页/共29页2023/4/13161.2.2 C语言的特点 语言简洁,表达能力强,易于理解语言简洁,表达能力强,易于理解只有32个关键字,9种控制语句数据构造能力强运算符丰富程序书写格式自由 可直接访问物理地址可直接访问物理地址,实现对硬件和低层系统软件的
10、访问 语言生成的代码质量高语言生成的代码质量高 可移植性好可移植性好增加学习难度增加学习难度第16页/共29页2023/4/13171.2.3 C程序的基本结构【例【例1.11.1】计算并输出一个数】计算并输出一个数a a的平方。的平方。main()main()float a,b;a=5.2;b=a*a;printf(b=%fn,b);mainmain 为为函数名函数名程序从这里开始运行程序从这里开始运行函数体开始函数体开始函数体结束函数体结束函数体内定义函数体内定义 a,b a,b 为为 a a 赋值赋值计算并输出平方值计算并输出平方值 b b执行程序的输出结果为:b=27.039997 第
11、17页/共29页2023/4/13181.2.3 C程序的基本结构【例1.2】输入两个数,输出其中的大数。int max(int x,int y)int max(int x,int y)/*max/*max函数函数*/*/int z;int z;if(xy)z=x;else z=y;if(xy)z=x;else z=y;return(z);return(z);main()main()/*/*主函数主函数*/*/int a,b,c;int a,b,c;scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);c=c=max(a,b)max(a,b);/*/*调用调用maxmax
12、函数,求函数,求a a和和b b中大数中大数*/*/printf(max=%dn,c);printf(max=%dn,c);第18页/共29页2023/4/1319C程序结构 C C程序程序 由由函数构成构成 必须有,且只能有一个必须有,且只能有一个main(主函数)主函数)总是从总是从mainmain函数开始执行函数开始执行 函数函数 由由函数首部和和函数体组成组成 函数首部指定函数首部指定函数名、函数参数、类型 函数体从函数体从 开始,到开始,到 结束结束 函数内有函数内有语句第19页/共29页2023/4/1320C程序结构(续)语句语句 包括包括说明性语句、可执行语句 以以 ;表示语句
13、结束表示语句结束 注释注释 可以出现在程序的任何位置可以出现在程序的任何位置 用用 /*和和 */括起来,必须成对出现括起来,必须成对出现 书写格式书写格式 C C语言没有行的概念,书写格式自由。语言没有行的概念,书写格式自由。习惯小写字母,缩进格式。习惯小写字母,缩进格式。第20页/共29页2023/4/13211.2.4 C程序的执行过程程序的执行过程 1源程序文件的建立和编辑 编写源程序,形成.C文件需用编辑工具:tc.exe、记事本2编译 编译源程序,形成目标程序 .Obj文件需用编译工具:tcc.exe3连接 连接OBJ文件和调用的库函数,形成运行程序.exe 文件需用连接工具:tl
14、ink.exe4运行.exeexe 文件运行运行jc1_2jc1_2Turbo CTurbo C提供提供提供提供集成化开发环境集成化开发环境集成化开发环境集成化开发环境第21页/共29页2023/4/13221.3 C程序的符号系统主要内容:基本字符标识符第22页/共29页2023/4/13231.3.1 基本字符 大写英文字母大写英文字母:A B C X Y Z 小写英文字母小写英文字母:a b c x y z 数字数字:0 1 2 9 空白符空白符:空格符、换行符、制表符 特殊字符特殊字符:+-*/()_ =!#%.,;:“|&?$第23页/共29页2023/4/13241.3.2 标识符
15、 由字母字母、下划线下划线和数字数字组成的字符序列用于程序中的变量、符号常量、数组、函数、数据类型等操作对象的名字名字1 1系统定义标识符具有固定名字和特定含义的标识符分为关键字和预定义标识符 2 2用户定义标识符 用于对用户使用的变量、数组、函数等操作对象进行命名 第24页/共29页2023/4/1325关键字关键字 数据类型:数据类型:intint、charchar、floatfloat、doubledouble、shortshort、longlong、voidvoid、signedsigned、unsignedunsigned、enumenum、structstruct、unionuni
16、on、constconst、typedeftypedef、volatile volatile 存储类别:存储类别:autoauto、staticstatic、registerregister、extern extern 语句命令字:语句命令字:breakbreak、casecase、continuecontinue、defaultdefault、dodo、elseelse、forfor、gotogoto、if if、returnreturn、switchswitch、while while 运算符:运算符:sizeof sizeof 第25页/共29页2023/4/1326预定义标识符预定义标
17、识符系统标准库函数scanf、printf、putchar、getchar、strcpy、strcmp、sqrt等编译预备处理命令include、define等第26页/共29页2023/4/1327对标识符的规定对标识符的规定 用户定义标识符用户定义标识符必须以字母或下划线“_”开头不能含有除字母、数字和下划线“_”外的其他字符标识符中大小写字母含义不同 关键字关键字必须用小写字母。不允许使用关键字为变量、数组、函数等操作对象命名 预定义标识符预定义标识符允许用户对它们重新定义,当重新定义后将改变它们原来的含义第27页/共29页2023/4/1328正确区分标识符正确区分哪些是合法标识符,哪些是不合法标识符。其中合法标识符中哪些是关键字,哪些是预定义标识符,哪些是用户定义标识符。Abc define 2x double studentAbc define 2x double studentm+y a#b-4 _1 Whilem+y a#b-4 _1 Whileint let x%y name doint let x%y name do w w tm Ctrl swicth include tm Ctrl swicth include 第28页/共29页2023/4/1329感谢您的欣赏!第29页/共29页
限制150内