资源预览内容
第1页 / 共434页
第2页 / 共434页
第3页 / 共434页
第4页 / 共434页
第5页 / 共434页
第6页 / 共434页
第7页 / 共434页
第8页 / 共434页
第9页 / 共434页
第10页 / 共434页
亲,该文档总共434页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C C语言程序设计语言程序设计Copyer:VigikingCopyer:Vigiking 第一章第一章 计算机语言与计算机语言与C C语言概述语言概述1.1 1.1 计算机语言概念计算机语言概念 计算机语言定义计算机语言定义 计算机能够识别和接受的语言。计算机能够识别和接受的语言。要使计算机按自己的意图工作,必要使计算机按自己的意图工作,必须使用计算机所能接受、理解和执须使用计算机所能接受、理解和执行的指令指挥计算机工作。行的指令指挥计算机工作。计算机语言的种类计算机语言的种类机器语言机器语言低级语言低级语言 汇编语言汇编语言(面向计算机面向计算机)BASIC入门语言入门语言F77科学计算科学计算高级语言高级语言Foxpro数据库管数据库管理理 (面向问题面向问题)C多用途多用途计算机语言 机器语言机器语言 最早问世,用二进制代码构成指令。最早问世,用二进制代码构成指令。如:如:100000 100000 (+)110000 110000(-)用机器语言编程的缺点:用机器语言编程的缺点:繁琐、不直观、不易调试。繁琐、不直观、不易调试。如计算如计算y=2xy=2x2 2+3x-1+3x-1需要七八条指令。需要七八条指令。移植性差。移植性差。依赖于计算机。依赖于计算机。汇编语言汇编语言 用符号构成指令,如:用符号构成指令,如:MOVMOV、ADDADD 用汇编语言编程:用汇编语言编程:相相对对直直观观,但但仍仍繁繁琐琐,仍仍是是面面向向计计算算机的语言。机的语言。汇编语言是计算机间接接受的语言汇编语言是计算机间接接受的语言 高级语言高级语言与低级语言相比,有根本性的区别:是面向问题的语言。高级语言的一条指令(语句):y=2*x*x+3*x-1;对应于:y=2x2+3x-1 y=sin(x);对应于:y=sinx用高级语言编程:用高级语言编程:直观、易懂、移植性好(不依赖于具体计算机)上机运行高级语言程序需经过编译:编译 执行要上机完成一个计算问题,主要的任务就是用高级语言编写出相应的源程序。即至少要学会一种计算机语言。高级语言源程序机器指令目的程序结果编译程序1.2 C1.2 C语言的特点语言的特点集高级语言和低级语言的优点于一身:能实现低级语言的大部分功能(如直接访问内存物理地址、进行位操作等)。图形功能强。运算符和数据结构丰富。语法限制不太严格,程序设计自由度大。生成目标代码质量高,程序执行效率高。1.3 1.3 简单的简单的C C程序介绍程序介绍 例1:main()main()主函数说明 程序框架 printf(“abcdefprintf(“abcdef”);”);函数体 语句 程序的功能是输出字符串:abcdef例2:求两数之和。main()inta,b,c;aa=100;b=50;bc=a+b;cprintf(“nc=%d”,c);程序运行结果:c=150例例3 3:求两数中的最大值。:求两数中的最大值。函数类型函数类型 函数名函数名 形参形参main()intmax(intx,inty)inta,b,c;intz;scanf(“%d,%d”,&a,&b);if(xy)z=x;c=max(a,b);elsez=y;printf(“nmaxis:%d”,c);return(z);axbycz(两个函数组成)353555 总结上例可知:总结上例可知:(1 1)C C程序程序由函数构成由函数构成。(2 2)函数由两部分组成:函数由两部分组成:函函数数说说明明部部分分:函函数数名名、函函数数类类型型、形形参名、形参类型。参名、形参类型。函函数数体体:实实现现函函数数的的具具体体操操作作;由由语语句句构成。构成。(3 3)程序总是程序总是从从mainmain函数函数开始执行。开始执行。(4 4)书写格式自由。书写格式自由。(5 5)语句必须有分号。)语句必须有分号。:第二章第二章 算法算法 2 2.1.1 算法的概念算法的概念 要利用计算机处理问题,光学习语言要利用计算机处理问题,光学习语言的语法规则还不够,最重要的是要学会的语法规则还不够,最重要的是要学会针对各类型的问题,拟定出有效的解题针对各类型的问题,拟定出有效的解题方法和步骤。方法和步骤。解题方法和步骤就是算法解题方法和步骤就是算法。算法算法:为了解决一个问题而采取的有限步骤。为了解决一个问题而采取的有限步骤。计算机算法计算机算法:如何使计算机一步一步地工作的具体过程。如何使计算机一步一步地工作的具体过程。利用计算机处理问题的步骤:1)设计好算法算法设计;2)用计算机语言实现算法程序设计。算法必须是“有效”的。算法设计还要充分考虑算法的好坏。衡量算法好坏的主要标准:程序简练。执行速度快。占空间少。例:考虑 的算法。算法:直接表达。直接用语句 s=1+2+3+4+5+6+7+8+9+10当项数较多时该算法不适用s=i110算法:迭代法(累加求和法)s=1+2+3+4+5+6+7+8+9+10 算法步骤:s i 使s=0 +使i=1 累加器 记数器 s+is i+1i 若i10转,否则转 输出s01123364105该算法通用,是好算法2.2 2.2 算法的表示算法的表示 算法需要有统一的表示方法算法需要有统一的表示方法 常用的表示方法有:常用的表示方法有:自然语言自然语言 流程图流程图 结构化流程图结构化流程图 N-SN-S流程图流程图.1、自然语言自然语言对于计算对于计算 s=1+2+3+4+5+6+7+8+9+10s=1+2+3+4+5+6+7+8+9+10 用自然语言表示为:用自然语言表示为:使使s=0s=0 (s s为累加器)为累加器)使使i=1i=1 (i i为计数器)为计数器)s+iss+is (累加求和公式)累加求和公式)i+1ii+1i (计数器加计数器加1 1)若若i10i10转转,否则转否则转 输出输出s s的值的值 特点:通俗易懂、文字冗长、含义不大严格。2、流程图流程图 用流程图符号表示算法。常用的流程图符号 起止框 输入输出框 处理框 流程线 判断框 对于计算 s=1+2+3+4+5+6+7+8+9+10 用流程图表示为:s+i si+1 iS+i sS+i si10输出s0 s1 i直观形象,易于理解,次序清楚YN3、结构化流程图结构化流程图 传统的流程图有一个弊端:对流程线没有严格的限制,对于较复杂的算法可能会变成乱麻一般(BS型算法)。为克服这一弊端,提出了由三个基本结构组成算法流程图的思想:结构化流程图 三个基本结构:顺序结构按固定顺序(从上到下或从左到右)执行的结构。ABab选择结构 根据条件P选择执行哪一个分支。成立不成立 pABab成立不成立例:计算 y=1/x 当x0时 y=10000 当x=0时 的算法流程图图:选择结构输入xX=0?10000y1/xy输出yYN循环结构 重复执行某些操作的结构。分为两种:当型循环和直到型循环。当型循环 直到型循环 P1AAP2aabbYYNN 可以看出,每个基本结构都只有一个入口和一个出口,因此,用三个基本结构构成的流程图不会象乱麻一般,用三个基本结构构成的流程图就成为结构化流程图,用结构化流程图描述的算法称为结构化算法,相应的程序设计就称为结构化程序设计。观察前例:0 s1 iS+i si+1 ii10输出s顺序结构循环结构yn4N-SN-S流程图流程图N-S流程图的三个基本结构:ABP成立不成立ABAB当P1直到P2顺序结构选择结构循环结构例:计算y=1/x 当x0时 y=10000 当x=0时 的N-S流程图:输入xX=0?是否10000y1/xy输出y例:计算 s=1+2+3+4+5+6+7+8+9+10 的N-S流程图:i10 直到i10 直到型 当型0 s1 i输出s1 i0 ss+i si+1 is+i si+1 i输出s第三章第三章 数据类型数据类型、运算符运算符与与 表达式表达式3.1 C 3.1 C 的数据类型的数据类型基本类型(整型、实型实型、字符型字符型、枚举型)枚举型)构造类型(略)指针类型(略)空类型各类型包含常量常量与与变量变量 3.2 3.2 常量与变量常量与变量 常量与符号常量常量与符号常量 常量常量 在程序运行过程中其值保持不变的量。在程序运行过程中其值保持不变的量。符号常量符号常量 用来代表一个常量的标识符。#define PI 3.1415926#define PI 3.1415926 例:例:#define#define PIPI 3.1415926 3.1415926 main()main()float float r r=2,=2,c c;c c=2*=2*PIPI*r r;printf(“%f”,printf(“%f”,c c););变量变量 其值可以改变的量。其值可以改变的量。变量的三要素变量的三要素:变量名变量名每每个个变变量量有有一一个个名名字字,作作为为识识别别该该变变量量的的标标识符。识符。变量的值变量的值 每每个个变变量量有有一一个个值值,变变量量的的值值是是随随时时可可以改变的。以改变的。变量的存储单元变量的存储单元 每每个个变变量量占占据据一一个个内内存存单单元元,用用于于存存放放变变量量的值的值。变量名a变量值存储单元3 变量的命名规则:变量的命名规则:由字母、数字和下划线组成由字母、数字和下划线组成 以字母或下划线开头以字母或下划线开头 a a、x1x1、y_2y_2、_b1_b1、_1c _1c 合法合法 1x1x、a+2a+2、不合法不合法 变量必须先定义后使用。变量必须先定义后使用。程序中何时使用常量?何时使用变量?程序中何时使用常量?何时使用变量?3.3 3.3 整型数据整型数据 整型常量整型常量 即整常数,即整常数,c c的整常数有三种形式:的整常数有三种形式:十进制整数十进制整数 与数学中的整数一致,如:与数学中的整数一致,如:100100,123123,1515等。等。八进制整数八进制整数 以以0 0开头的整数,如:开头的整数,如:010,07,020010,07,020等。等。十六进制整数十六进制整数 以以0 x0 x开头的整数,如:开头的整数,如:0 x10,0 xff,0 x2a0 x10,0 xff,0 x2a等。等。整型变量整型变量 用于存放整数的变量。用于存放整数的变量。分分4 4种类型:种类型:基本型:基本型:intint a a 16 16位,可表示的数值范围:位,可表示的数值范围:-3276832767-3276832767 短整型:短整型:short short intint b b 16 16位,可表示的数值范围:位,可表示的数值范围:-3276832767-3276832767 长整型:长整型:long long intint c c 32 32位,数值范围:位,数值范围:-21474836482147483647-21474836482147483647 无符号型:加上无符号型:加上 unsignedunsigned 只存放正数。只存放正数。如:如:unsigned unsigned intint x x 变量变量x x为无符号整数,为无符号整数,1616位全表示数码,位全表示数码,数值范围:数值范围:065535065535 在在程程序序设设计计中中,如如果果要要使使用用整整型型变变量量,必必须须首首先先选选择择以以上上类类型型符符来来定定义义变变量量,然后才能使用;然后才能使用;例:例:main()main()定义定义 intint a,b,c;a,b,c;a=100;b=50;a=100;b=50;使用使用 c=a+b;c=a+b;printf(“%d”,cprintf(“%d”,c););一般根据什么原则选择变量的类型?一般根据什么原则选择变量的类型?3.4 3.4 实型数据实型数据 实型常量实型常量 可使用两种形式表示:可使用两种形式表示:小数形式:小数形式:如如 1.23,3.1415926 15.481.23,3.1415926 15.48 指数形式:指数
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号