C语言-程序设计基础.ppt_第1页
C语言-程序设计基础.ppt_第2页
C语言-程序设计基础.ppt_第3页
C语言-程序设计基础.ppt_第4页
C语言-程序设计基础.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,程序设计基础,2,C程序的上机步骤,C语言发展历史,C语言的特点,简单的C程序介绍,第一章 C语言概述,3,计算机唯一能识别和处理的语言,由0、1序列构成的指令代码,用10000000表示“+”,用助记符号描述的指令系统 用 ADD A, B 表示“ A+B ”,面向机器的语言,用 sum=a+b;来实现求和,面向过程、面向对象的语言,程序设计语言的发展,C语言出现的历史背景,4,产生过程 时间:19721973 地点:美国贝尔实验室 目的:UNIX操作系统 设计人: Ken.Thompson和D.M.Ritchie,C语言发展过程,5,C标准 标准C: K&R合著The C Programming Language ANSI C: 1983年 87 ANSI C: 1987年(通过ISO认证) C版本 Microsoft C 或称 MS-C Turbo C 或称 TC,C语言发展过程,6,C兼有高级语言和 低级语言的特点,语言简洁、紧凑、灵活 运算符和数据类型丰富 程序设计结构化、模块化 语法限制不太严格 允许直接访问物理地址 生成目标代码质量高 可移植性好,C语言特点,7,32个关键字:(由系统定义,不能重作其它定义) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef unsigned union void volatile while,ANSI C一共只有32个关键字,见365页 附录B,在C语言中关键字都是小写的!,C语言简洁、紧凑,使用方便、灵活,8,34种运算符: 算术运算符:+ - * / % + - 关系运算符: = != 逻辑运算符:! & | 位运算符 : | & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数 :sizeof 强制类型转换:(类型) 分量运算符:. - 下标运算符: 其它 :( ) -,C语言运算符丰富,9,C语言数据结构丰富,10,9种控制语句: if( )else for( ) while( ) dowhile( ) continue break switch goto return,C语言有 9 种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。,11,12,常用的高级语言,BASIC语言 Beginners All-purpose Symbolic Instruction Code FORTRAN语言 FORmula TRANslator Cobol语言 COmmon Business Oriented Language Pascal语言 C语言 Java,13,1.例1.1 第一个程序Hello,World!,/* example1.1 The first C Program*/ main() printf(“Hello,World! n”); ,Hello,World!,输出:,printf语句中的“n”是换行符,简单的C程序介绍,14,例1.2 两数求和运算,main() int a,b,sum; /*定义变量*/ a=123; b=456; sum=a+b; printf(“sum is %d n”,sum); ,sum is 579,输出:,main() int a,b,sum; /*定义变量*/ a=123; b=456; sum=a+b; printf(“sum is %d n”,sum); ,如何计算123456的积?,printf语句中的“ %d ”是表示“十进制整数类型”,15,例1.3 从键盘输入两个整数,输出其中较大的数,main() int a,b,c; scanf(“%d,%d”, ,main() int a,b,c; scanf(“%d,%d”, ,scanf语句中“&a”的含义是“取地址”,16,例: /*This is the main /* of example1.1*/ */,C语言结构特点,函数与主函数 C程序是由函数构成的 一个程序中有且只能有一个主函数main() 程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。 程序语句 C程序书写格式自由,一行可有多个语句 用“;”作为语句终止符 注释 /* */为注释,不能嵌套 不产生编译代码,17,main( ) . . . . ,main( ) int i , sum; sum=0; for(i=1; i100;i+) sum+=i;/*求和*/ printf(“%dn”,sum); ,优秀程序员的素质之一: 使用TAB缩进 对齐 有足够的注释 有合适的空行,习惯用小写字母,大小写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式,格式特点,18,程序代码的录入, 生成源程序 *.c,语法分析查错,翻译 生成目标程序 *.obj,与其它目标程序或库 链接装配,生成可执行 程序 *.exe,软件用户得到的仅仅是可执行程序!,C程序执行步骤,C程序的上机步骤,19,第二章 程序的灵魂算法,(Algorithm),20,Nikiklaus Wirth提出:,教材认为:,程序,=算法+数据结构+程序设计方法+语言工具和环境,灵魂,加工对象,VC或者Java,程序的要素,结构化程序设计,21,算法的概念,算法,为解决一个问题而采取的方法和步骤,在有限步骤内求解某一问题所使用的 一组定义明确的规则,22,【例2.1】求12345。 最原始方法: 步骤1:先求12,得到结果2。 步骤2:将步骤1得到的乘积2乘以3,得到结果6。 步骤3:将6再乘以4,得24。 步骤4:将24再乘以5,得120。 这样的算法虽然正确,但太繁。 改进的算法: S1: 使t=1 S2: 使i=2 S3: 使ti, 乘积仍然放在在变量t中,可表示为tit S4: 使i的值+1,即i+1i S5: 如果i5, 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。,23,24,【例2.3】判定2000 2500年中的每一年是否闰年,将结果输出。 润年的条件: 能被4整除,但不能被100整除的年份; 能被100整除,又能被400整除的年份; 设y为被检测的年份,则算法可表示如下: S1: 2000y S2:若y不能被4整除,则输出y“不是闰年”,然后转到S6 S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6 S4:若y能被100整除,又能被400整除,输出y“是闰年” 否则输出y“不是闰年”,然后转到S6 S5:输出y“不是闰年”。 S6:y+1y S7:当y2500时, 返回S2继续执行,否则,结束。,25,26,27,算法的特征,确定性,有零个或多个输入,有效性,有一个或多个输出,有穷性,28,自然语言表示 流程图表示 N-S流程图表示 伪代码表示 计算机语言表示,顺序结构 选择结构 循环结构,怎样表示一个算法,29,流程图要素,30,结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto) 结构化程序:由三种基本结构反复嵌套构成的程序 优点:结构清晰,易读,提高程序设计质量和效率,程序的三种基本结构,31,顺序结构,32,二分支选择结构,多分支选择结构,选择结构,33,当型循环结构,直到型循环结构,注:A,B,A1.An

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论