C语言编程入门教程PPT文件格式下载.ppt
《C语言编程入门教程PPT文件格式下载.ppt》由会员分享,可在线阅读,更多相关《C语言编程入门教程PPT文件格式下载.ppt(434页珍藏版)》请在冰豆网上搜索。
直观、易懂、移植性好(不依赖于具体计算机),上机运行高级语言程序需经过编译:
编译执行要上机完成一个计算问题,主要的任务就是用高级语言编写出相应的源程序。
即至少要学会一种计算机语言。
高级语言源程序,机器指令目的程序,结果,编译程序,1.2C语言的特点集高级语言和低级语言的优点于一身:
能实现低级语言的大部分功能(如直接访问内存物理地址、进行位操作等)。
图形功能强。
运算符和数据结构丰富。
语法限制不太严格,程序设计自由度大。
生成目标代码质量高,程序执行效率高。
1.3简单的C程序介绍例1:
main()主函数说明程序框架printf(“abcdef”);
函数体语句程序的功能是输出字符串:
abcdef,例2:
求两数之和。
main()inta,b,c;
aa=100;
b=50;
bc=a+b;
cprintf(“nc=%d”,c);
程序运行结果:
c=150,例3:
求两数中的最大值。
函数类型函数名形参main()intmax(intx,inty)inta,b,c;
intz;
scanf(“%d,%d”,axbycz(两个函数组成),3,5,3,5,5,5,总结上例可知:
(1)C程序由函数构成。
(2)函数由两部分组成:
函数说明部分:
函数名、函数类型、形参名、形参类型。
函数体:
实现函数的具体操作;
由语句构成。
(3)程序总是从main函数开始执行。
(4)书写格式自由。
(5)语句必须有分号。
:
第二章算法2.1算法的概念要利用计算机处理问题,光学习语言的语法规则还不够,最重要的是要学会针对各类型的问题,拟定出有效的解题方法和步骤。
解题方法和步骤就是算法。
算法:
为了解决一个问题而采取的有限步骤。
计算机算法:
如何使计算机一步一步地工作的具体过程。
利用计算机处理问题的步骤:
1)设计好算法算法设计;
2)用计算机语言实现算法程序设计。
算法必须是“有效”的。
算法设计还要充分考虑算法的好坏。
衡量算法好坏的主要标准:
程序简练。
执行速度快。
占空间少。
例:
考虑的算法。
算法:
直接表达。
直接用语句s=1+2+3+4+5+6+7+8+9+10,当项数较多时该算法不适用,s=i,1,10,算法:
迭代法(累加求和法)s=1+2+3+4+5+6+7+8+9+10算法步骤:
si使s=0+使i=1累加器记数器s+isi+1i若i10转,否则转输出s,0,1,1,2,3,3,6,4,10,5,该算法通用,是好算法,2.2算法的表示算法需要有统一的表示方法常用的表示方法有:
自然语言流程图结构化流程图N-S流程图.,1、自然语言对于计算s=1+2+3+4+5+6+7+8+9+10用自然语言表示为:
使s=0(s为累加器)使i=1(i为计数器)s+is(累加求和公式)i+1i(计数器加1)若i10转,否则转输出s的值特点:
通俗易懂、文字冗长、含义不大严格。
2、流程图用流程图符号表示算法。
常用的流程图符号起止框输入输出框处理框流程线判断框,对于计算s=1+2+3+4+5+6+7+8+9+10用流程图表示为:
s+is,i+1i,S+is,S+is,i10,输出s,0s,1i,直观形象,易于理解,次序清楚,Y,N,3、结构化流程图传统的流程图有一个弊端:
对流程线没有严格的限制,对于较复杂的算法可能会变成乱麻一般(BS型算法)。
为克服这一弊端,提出了由三个基本结构组成算法流程图的思想:
结构化流程图,三个基本结构:
顺序结构按固定顺序(从上到下或从左到右)执行的结构。
A,B,a,b,选择结构根据条件P选择执行哪一个分支。
成立不成立,p,A,B,a,b,成立,不成立,例:
计算y=1/x当x0时y=10000当x=0时的算法流程图图:
选择结构,输入x,X=0?
10000y,1/xy,输出y,Y,N,循环结构重复执行某些操作的结构。
分为两种:
当型循环和直到型循环。
当型循环直到型循环,P1,A,A,P2,a,a,b,b,Y,Y,N,N,可以看出,每个基本结构都只有一个入口和一个出口,因此,用三个基本结构构成的流程图不会象乱麻一般,用三个基本结构构成的流程图就成为结构化流程图,用结构化流程图描述的算法称为结构化算法,相应的程序设计就称为结构化程序设计。
观察前例:
0s,1i,S+is,i+1i,i10,输出s,顺序结构,循环结构,y,n,4N-S流程图N-S流程图的三个基本结构:
A,B,P,成立,不成立,A,B,A,B,当P1,直到P2,顺序结构,选择结构,循环结构,例:
计算y=1/x当x0时y=10000当x=0时的N-S流程图:
输入x,X=0?
是,否,10000y1/xy,输出y,例:
计算s=1+2+3+4+5+6+7+8+9+10的N-S流程图:
i10直到i10直到型当型,0s,1i,输出s,1i,0s,s+is,i+1i,s+is,i+1i,输出s,第三章数据类型、运算符与表达式3.1C的数据类型基本类型(整型、实型、字符型、枚举型)构造类型(略)指针类型(略)空类型各类型包含常量与变量,3.2常量与变量常量与符号常量常量在程序运行过程中其值保持不变的量。
符号常量用来代表一个常量的标识符。
#definePI3.1415926,例:
#definePI3.1415926main()floatr=2,c;
c=2*PI*r;
printf(“%f”,c);
变量其值可以改变的量。
变量的三要素:
变量名每个变量有一个名字,作为识别该变量的标识符。
变量的值每个变量有一个值,变量的值是随时可以改变的。
变量的存储单元每个变量占据一个内存单元,用于存放变量的值。
变量名a变量值存储单元,3,变量的命名规则:
由字母、数字和下划线组成以字母或下划线开头a、x1、y_2、_b1、_1c合法1x、a+2、不合法变量必须先定义后使用。
程序中何时使用常量?
何时使用变量?
3.3整型数据整型常量即整常数,c的整常数有三种形式:
十进制整数与数学中的整数一致,如:
100,123,15等。
八进制整数以0开头的整数,如:
010,07,020等。
十六进制整数以0x开头的整数,如:
0x10,0xff,0x2a等。
整型变量用于存放整数的变量。
分4种类型:
基本型:
inta16位,可表示的数值范围:
-3276832767短整型:
shortintb16位,可表示的数值范围:
-3276832767长整型:
longintc32位,数值范围:
-21474836482147483647,无符号型:
加上unsigned只存放正数。
unsignedintx变量x为无符号整数,16位全表示数码,数值范围:
065535在程序设计中,如果要使用整型变量,必须首先选择以上类型符来定义变量,然后才能使用;
main()定义inta,b,c;
a=100;
使用c=a+b;
printf(“%d”,c);
一般根据什么原则选择变量的类型?
3.4实型数据实型常量可使用两种形式表示:
小数形式:
如1.23,3.141592615.48指数形式:
如1e-201.23e5,实型变量用于存放实数的变量分单精度和双精度两种:
floata,b定义a和b为单精度型变量32位,7位有效数字,10-381038doublex,y定义x和y为双精度型变量64位,15位有效数字,10-30810308,例:
main()floatr,c;
doubler,c;
r=5;
c=2*3.1415926*r;
3.5字符型数据字符常量用单引号括起来的一个字符。
a,x,*,1等除此外,以开头的字符如n,t等称为转义字符,祥见书表3.3,字符型变量用于存放字符的变量。
charc1,c2定义c1和c2为字符型变量c1=a;
c2=b;
字符赋值字符型变量存放一个字符,占据一个字节,字符型数据的存储形式存放ASCII码不是而是如字符a在内存中存放97,b存放98。
与整数的存储形式一致,它们之间可以通用一个字符数据既可以作字符用,也可以作整数用(取其ASCII代码)。
32+a相当于32+97若intx;
charc;
则x=a;
c=97;
x=97;
c=a;
都允许,a,97,字符串常量用双引号括起来的字符序列。
”abcde”,”china”a”也属字符串。
注意”a”与a的区别。
对于:
c=”a”;
用法错误,字符串中每个字符各占一个字节,并且在字符串结尾加上一个结束标记0如:
”china”在内存中占6个字节。
china0C语言中专门的字符串变量,可用字符数组存放(以后介绍)。
3.6变量赋初值在定义变量的同时给相应的变量赋初值。
inta=3;
afloatb=5.2;
charc=a;
intx=y=z=6;
效果:
在给变量分配内存单元的同时在相应的单元中存放初值。
3,3.7各数值型数据间的混合运算整型、实型、字符型数据间可以进行混合运算,如:
10-a*1.5运算时,参加运算的两个数据如果类型不同,则首先将其类型转换成一致再运算,转换规则是:
将优先级低的类型转换到优先级高的类型,数据类型的优先级:
高doublefloatlongunsignde低intchar,3.8算术运算符与算术表达式基本的算术运算符+-*/%算术表达式用算术运算符将运算对象连接起来的式子用于表达数学公式的式子如:
2*x+y-1/a表达式经过运算最终得到一个值:
算术表达式的值,运算符的优先级与结合性优先级:
在对表达式求值时,如果存在多个运算符,则运算的先后次序按运算符的优先级别从高到底进行。
运算符的优先级关系为:
高:
*/%低:
+-如:
a-2*x先算*2*(a+2)有括号的情况?
结合性:
如果在一个运算对象两边的运算符的优先级相同,则按规定的“结合方向”处理。
a-b+cb与-结合是从左到右,称“左结合性”。
b与+结合是从右到左,称“右结合性”。
每个运算符都有相应的优先级和结合性。
基本算术运算符都是左结合性。
计算表达式例:
2+A-1/2.01+3/2-1构造表达式例2x2+3x-1,a+ba-b,a+ba-bx+yx-y,a+b/a-b?
(a+b)/(a-b),2*x*x+3*x-1(*不能省),(a+b)/(a-b)/(x+y)/(x-y),(a+b)/(a-b)/(x+y)/(x-y),(a+b)/(a-b)/(x+y)*(x-y),强制类型转换可以用强制类型转换运算符将一个表达式的值转换成所需类型:
(int)(x+y)(float)(7%3),应用举例:
inta=200,b=3