《C语言入门》PPT课件.ppt_第1页
《C语言入门》PPT课件.ppt_第2页
《C语言入门》PPT课件.ppt_第3页
《C语言入门》PPT课件.ppt_第4页
《C语言入门》PPT课件.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

C 程 序 设 计 | 第 一 章,1.1 C语言入门,第一章,C 程 序 设 计 | 第 一 章,本讲主要内容,程序与算法 C程序实践 标识符、变量和常量 数据类型 C程序的基本操作 顺序结构程序 C语言规约,C 程 序 设 计 | 第 一 章,程序:完成特定工作的有序步骤。 如举办专题学术报告会: 张贴海报与会者入场介绍报告人作报告会后交流。 要素:动作(张贴 、介绍)、对象(海报、与会者、报告人)、操作顺序。,程序,计算机程序:为完成特定功能而编写的指令集合,这组指令依据既定的逻辑控制计算机的运行。,计算机程序溯源,C 程 序 设 计 | 第 一 章,艾达.拜伦,诗人拜伦的女儿,世界上第一位计算机程序员。 1843年,艾达拟定了一份用巴贝奇差分机求解伯努利方程的设计图,被公认为世界上第一个计算机程序。 艾达预见计算机可以用在纺织机械上,用卡片储存复杂的花样、可以用来绘图、演奏音乐等。这些预言表明了艾达是现代人工智能技术的拓荒者。,C 程 序 设 计 | 第 一 章,叙述框,程序的灵魂算法,解决一个问题而采取的方法和步骤称为算法(Algorithm)。 算法的特性: 1.有穷性 2.确定性 3.输入 4.输出 5.有效性,?读一读 该流程图描述了怎样的程序功能? 流程图的构成要素有什么?,C 程 序 设 计 | 第 一 章,1.2 C程序介绍,第一章,C 程 序 设 计 | 第 一 章,第一章,例1.2 在显示器上输出:hello world 编辑程序 #include “stdio.h” main() /*主函数*/ printf(“hello world”); ,C程序的基本形式为: main() ,C 程 序 设 计 | 第 一 章,简单C程序,程序格式说明: C程序都有且仅有一个主函数main 任何程序都从main开始执行 C程序由函数组成,函数由语句组成 函数体的语句写在 中,语句以分号结尾 不能在变量名、函数名、关键字中插入空格和空行 没有行的概念,可任意书写(但要养成良好的程序书写风格),C 程 序 设 计 | 第 一 章,C程序的实现要经过以下步骤: 编辑:在计算机中录入C程序的源代码,C源程序文件扩展名为.C,C+编译环境中也允许以 .CPP为扩展名。 编译:经过C语言编译器将源程序编译成目标程序(扩展名为.OBJ),并改正编译中出现的语法错误。(别担心,此工作由编译器自动完成) 连接:对目标程序进行连接(装载函数),生成可执行文件(扩展名为.EXE)。 运行: 运行可执行文件得到运行结果。,C程序的实现,演示VC6.0,C 程 序 设 计 | 第 一 章,编写输出两个整数之和的C程序,然后上机调试通过,#include “stdio.h“ main() ,int a,b,sum; a=123; b=456; sum=a+b; printf(“a+b=%dn“,sum);,输出结果是:a+b=579,C程序实现举例,C 程 序 设 计 | 第 一 章,#include “stdio.h” main() int a,b,sum; printf(“请输入两个整数:“); scanf(“%d,%d”,程序运行结果: 请输入两个整数:12,2 sum=24,C程序实现举例,从键盘输入任意两个整数,编写输出两个数之积的C程序,然后上机调试通过,C 程 序 设 计 | 第 一 章,1.2.2 标识符、变量和常量,1标识符 在C语言中有许多需要命名的对象(变量名、符号常量名、函数名、数组名、文件名等) 统称为标识符。 C语言的规定,标识符只能由英文字母、下划线、数字组成,且只能用字母或下划线开头。,标识符不能与C的关键字重名。C语言有32个关键字,这些关键字在C中有特定的含义。,C 程 序 设 计 | 第 一 章,关键字:是指在C语言中已预先定义具有特定含义的标识符,通常也称为保留字,编程者不得再重新命名另作他用。,关键字,C 程 序 设 计 | 第 一 章,1.2.2 标识符、变量和常量,2变量 在C程序中,其值可以改变的量叫变量。变量实质就是用来存储数据的内存空间。 变量必须先定义,后使用。 int x; /*定义了一个整型变量x*/ y=4; int y; /*错误,y=4时,变量y尚未定义*/,C 程 序 设 计 | 第 一 章,变量的地址,定义一个变量后,系统将根据变量的数据类型为其分配一定长度的存储空间。例如: int a=100; float f=12345.67; scanf(“%d”, 变量a和f的地址分别表示为&a和&f(如右图),符号“&”是取地址的运算符,C 程 序 设 计 | 第 一 章,有程序段: int a,b; a=8; b=9; /*a的值为8,b的值为9*/ a=b+1; /*a的值变为10*/ a=b; /*a的值变为9*/ ,存储器的存取特点是:取之不尽,一存就变。即变量中的值可以反复读取,其值不会改变。而把一个新值赋给变量时,变量中原来的值就被新值所替代。,变量的动态特性,C 程 序 设 计 | 第 一 章,1.2.2 标识符、变量和常量,3常量 在C程序中,其值不能改变的量称为常量,数值和字符值本身就是常量,如3、4.5、A等。用标识符代表的常量称为符号常量。,【例1.5】已知圆的半径,求圆的面积。 #include “stdio.h“ #define PI 3.14 /*符号常量PI的定义*/ main() float area1,area2; area1=2*2*PI; /*符号常量PI的使用*/ area2=5*5*PI; printf(“area1=%f,area2=%fn“,area1,area2); ,C 程 序 设 计 | 第 一 章,1.2.3 数据与数据类型,数据是程序操作的对象。C 语言根据数据的不同性质和用途将其分为不同的数据类型。各种数据类型具有不同的存储长度、取值范围及允许的操作。C 数据类型如右图所示:,基本类型 构造类型 指针类型 空类型,本讲只介绍基本类型,C 程 序 设 计 | 第 一 章,整型数据,#include “stdio.h“ main() short x,y,product; x=200; y=300; product=x*y; printf(“%dn“,product); ,改错:取值范围问题,C 程 序 设 计 | 第 一 章,有三种形式的整型常量: 与习惯相同的十进制整数。如:46,-23,0 以数字0开头的八进制整数。如:0456表示八进制数456,即(456)8=4*82+5*81+6*80,等于十进制的302。 以数字0和x开头的十六进制整数。如:0x456表示十六进制整数456,即(456)16=4*162+5*161+6*160, 等于十进制的1110,整型常量,C 程 序 设 计 | 第 一 章,实型数据,#define PRICE 30 main() int num,total; float v ,r,h; num=10; total=num*PRICE; printf(“total=%d“,total); r=2.5; h=3.2; v=3.14159*r*r*h; printf(“v=%fn”,v);,实型常量只有十进制,它有两种表示形式: 小数形式:由数字和小数点组成,如12.3 指数形式:即科学计数法,如123e-3,C 程 序 设 计 | 第 一 章,字符型数据,字符常量:一对单引号括起来的一个字符,大小写有区别,如:a, D,?,$, 。单引号中的字符不能是单引号和反斜杠 字符变量:用来存放字符常量,例: char c1,c2; c1=a; c2=A; 字符数据在内存中以ASCII码存储,占1字节 字符数据的使用方法 字符数据和整型数据之间可以通用,可以按 字符形式输出,也可以按整型输出。 字符数据与整型数据可以互相赋值。,C 程 序 设 计 | 第 一 章,字符串型数据,字符串常量:用一对双引号括起来的一串字符,区分大小写,如“C Program”,“ ”,“3304035”,“YES & NO”。双引号括起的字符串中不能有双引号或反斜杠。 C中没有字符串变量,字符串常量可用字符数组存储 字符数据的存储形式,C 程 序 设 计 | 第 一 章,字符型数据举例,main() char c1,c2; int x; c1=97; c2=b; x=c1+2 printf(”%c %dn”,c1,c2); printf(”%c %d”,x,x); 运行结果为: a 98 c 99,字符数据和整型数据之间可以通用,可以按字符形式输出,也可以按整型输出。 字符数据与整型数据可以互相赋值。,限制:整数在0-127之间才可以通用,C 程 序 设 计 | 第 一 章,转义字符,是C语言中表示字符的一种特殊形式。通常用于表示ASCII码集中不可打印的控制字符和特定功能的字符。,C 程 序 设 计 | 第 一 章,变量赋初值,变量必须先定义后使用。C语言允许在定义变量时对变量进行初始化,即对变量赋初值。 例如: int a=3; float f=3.56,x=1.0; char c=a; int b,c,d=5,a; int x=y=0; b=c=8;,不能重复定义,不能连写,1.3 C程序的基本操作,C 程 序 设 计 | 第 一 章,运算符是表示某种运算的符号, 是对数据的操作 表达式是用运算符和括号将运算对象连接起来的符合C语言语法规则的式子 运算对象可以是常量、变量、函数等 优先级和结合性:优先级是指表达式中各计算的先后次序;结合性是指当一个运算对象两侧的运算符的优先级相同时进行运算的结合方向,1.3.1 运算符及表达式,C 程 序 设 计 | 第 一 章,算术运算符有: 单目运算符:-(负)、+(正),右结合 双目运算符:+、- 、*、/(整数相除结果取整)、%(取余) 优先级: 先乘除(含取余),后加减,括号优先 结合性: 同级从左至右 写出以下面算术表达式的优先级和结合性: a*b/c-1.5+a a/b/c*(3-d),算术运算符,C 程 序 设 计 | 第 一 章,用算术运算符和括号将运算对象连接起来的、符合C语法规则的式子。例如: 25/4 等于 6, 25.0/4.0 等于 6.25 5/10 等于 0, 5.0/10.0 等于 0.5 4%9=4 -15%4=-3(%只能对整型数据操作) 乘号不能省略,且要根据运算顺序书写,如: 数学表达式 a(b2+4ac) (a+b)cd,C表达式 a*(b*b+4*a*c) (a+b)/c/d 或 (a+b)/(c*d),1.3.2 算术运算符及表达式,C 程 序 设 计 | 第 一 章,main() int i=3; float r=2.0; printf(“2*-i:%dn“,2*-i); printf(“r/i:%fn”,r/i); printf(“r/i:%dn“,r/i); i=r/i; printf(“i=r/i:%dn“,i); i=2%3; printf(“2%3:%d“,i); ,程序执行结果: 2*-i:-6 r/i:0.666667 r/i:21845 i=r/i:0 2%3:2,算术运算举例,C 程 序 设 计 | 第 一 章,由赋值运算符“=”将变量和表达式连接起来的式子。其形式是: = 赋值表达式 表达式值 各变量值 a=5 5 a=b=c=5 5 a,b,c均为5 a=5+(c=6) 11 a为11,c为6 a=(b=4)+(c=6) 10 a为10,b为4,c为6 a=(b=10)/(c=2) 5 a为5,b为10,c为2,1.3.3赋值运算符及表达式,C 程 序 设 计 | 第 一 章,1.3.4 复合赋值运算符,C语言中有10种复合赋值运算符: +=、 -=、 *=、 /=、 %=、 =、&=、=、|= (位运算符以后讲) 实例: a/=3 等价于 a=a/3 x*=y+8 等价于 x=x*(y+8) a+=a-=a*a 相当于 a=a+(a=a-a*a) y%=8 等价于 y=y%8,赋值语句的格式:赋值表达式; 赋值表达式可以包含在其它表达式中,而赋值语句不能,如: if(a=b)0) t=a;,C 程 序 设 计 | 第 一 章,例1.10 赋值运算符 main() int x,y; x=3; y=8;x*=y+1; printf(“x=%d,y=%dn“,x,y); x=3;y=8;x=x*y+1; printf(“x=%d,y=%dn“,x,y); ,程序执行结果: x=27,y=8 x=25,y=8,赋值运算举例,C 程 序 设 计 | 第 一 章,+(自增), -(自减): +n, -m 前缀,变量的值+(-)1 n+ , m- 后缀, 变量的值+(-)1 优先级: 高于双目运算 结合性: 同级从右至左 j=3; k=+j; j=j+1;k=j; 即j的为4,k的值为4 k=j+; k=j;j=j+1; 即j的为4,k的值为3 说明:对于j变量,j+和+j都使j的值加1,但k的值就不同了,所以前缀和后缀运算对变量是一样的,对表达式的值就不一样,1.3.5 自增、自减运算,C 程 序 设 计 | 第 一 章,自增、自减举例,main() int a,b,c; a=b=c=0; a=+b+(+c); printf(“%d,%d,%dn”,a,b,c); a=(b+)+c+; printf(“%d,%d,%dn”,a,b,c); a=(+b)+c+; printf(“%d,%d,%dn”,a,b,c); a=(b-)+ (-c); printf(“%d,%d,%dn”,a,b,c); +c; a=2*(+c); printf(“a=%dn”,a,); ,运行结果: 2,1,1 2,2,2 5,3,3 5,2,2 a=8,C 程 序 设 计 | 第 一 章,逗号表达式的格式: 表达式1,表达式2, ,表达式n 逗号表达式的求解顺序及结果: 先求解表达式1,再求解表达式2,,最后求解表达式n;逗号表达式的最终结果为表达式n的值。 实例: a=3*5,a*4 最终结果为60 x=(a=10,b=100,c=50) 最终结果为50 y=(i+, j-, k+2) 最终结果为k+2,1.3.6 逗号运算和表达式,C 程 序 设 计 | 第 一 章,自动转换:当参加算术运算的数据类型不一致时低级向高级转换;赋值运算符两边的数据类型不同时,将右侧表达式的值转换为左侧变量的类型 强制转换:强迫变量或表达式的值转换为某一特定类型。常用在自动类型转换不能达到目的时。转换格式为: (类型说明符)变量 (类型说明符)(表达式) (double)a, (int)(x+y) ,(float)(5%3),1.3.7 数据类型转换,转换不会改变变量定义时所规定的数据类型,C 程 序 设 计 | 第 一 章,“=”两侧类型不一致时,要将“=”右侧表达式的值转换为“=”左侧变量的类型,右侧表达式类型的字节超过变量类型的字节时会出错 整实:截掉小数部分 实整:数值不变,存为浮点 整char:整型低8位char 整型(字节数相同的)unsigned 整型:原样送入。若超过整型表示范围会出错。 unsigned(字节数相同的)非unsigned整型:原样送入,符号位也作为数值,赋值时的类型转换,C 程 序 设 计 | 第 一 章,用于了解一个变量或某种类型的量在内存中所占的字节数。它有以下两种用法: sizeof(表达式) 例如:int x=1; float y=5.0; printf(“%d”,sizeof(x+y); 结果为:8 sizeof(类型名) 例如: printf(“%d”, sizeof(int) 结果为: 2,1.3.8 容量运算符 sizeof,C 程 序 设 计 | 第 一 章,顺序结构:先执行A操作再执行B操作,两者是顺序关系,1.4 顺序结构,执行A操作,执行B操作,C 程 序 设 计 | 第 一 章,例:交换a,b变量的值,main() int a=3,b=5,t; t=a; a=b; b=t; printf(“a=%d,b=%dn”,a,b); ,顺序结构编程,C 程 序 设 计 | 第 一 章,C语言的语句用来向计算机发出操作指令。C语句分为以下四类: 执行语句: a+;、printf(“ok”);等 声明语句:float x,y; 空语句:如:; 复合语句:即用大括号把一些语句括起来,1.4.1 C语句, int x=1 int x=2; int x=3; printf(“%dn”,x); printf(“%dn”,x); printf(“%dn”,x); ,C 程 序 设 计 | 第 一 章,1.4.2 输入/输出函数,C语言本身没有输入/输出语句,所有输入/输出都由函数来实现 C语言的标准库函数 是由编译系统提供的一系列子程序 调用形式: 函数名(参数表) 输入输出函数在使用前须用预编译命令“#include”将“stdio.h”头文件包含到用户的源文件中。即: #include “stdio.h”,C 程 序 设 计 | 第 一 章,格式输出函数: printf(“格式说明”,输出项目表) 功能:按“格式说明” 的输出格式,将输出项目表中的各输出项依次输出到系统指定的缺省输出设备。 输出项目表是用逗号分隔的0n个表达式 “格式说明”由“%”和格式字符组成,格式字符如表中所示,格式输出函数,C 程 序 设 计 | 第 一 章,附加格式字符可加在格式字符d、o、x、u前 m: 一个正整数,表示数据的最小宽度 .n: 一个正整数,表示小数点后面的位数 输出举例: a=123;b=12345; printf(“a=%4d,b=%4d”,a,b); 输出: a= 123,b=12345 j=586;y=3.1415; printf(“%5dn”,j); 输出: 586 printf(“%-5dn”,j); 586 printf(“%7.2fn”,y); 3.14,附加格式字符,C 程 序 设 计 | 第 一 章,格式输入函数: scanf(“格式说明”,地址表列) 功能:从键盘上输入数据,并按照指定的输入格式把数据赋给相应的输入项 “格式说明”由“%”和格式字符组成,如%c,%d 地址表列由变量的地址组成,如:,输入:3 4,输入:3,4,输入:a=3,b=4,格式输入函数,C 程 序 设 计 | 第 一 章,main() char ch; int i; float x; scanf(“%c %d %f”, ,输入:d 23 12.345 输出:ch=d i=23 x=12.345000,输入:d 23.645 12.345 输出:ch=d i=23 x=0.645000,输入数据时说明符间的字符也应该输入 输入的数据类型必须与格式说明的一致 输入数据的个数不能少于格式说明的个数,输入/输出举例,C 程 序 设 计 | 第 一 章,编程:计算从键盘输入的一个数的平方值和立方值,并显示出来。,输入:x=5 输出:输入值=5 平方值=25 立方值=125,main() int x,y,z; printf(“nx=”); scanf(“%d”, ,输入/输出举例,C 程 序 设 计 | 第 一 章,编程:将输入的小写字母转换为大写字母后显示出来。,输入:c=a 输出:输入字符=a 输出字符=A,输入:c=p 输出:输入字符=p 输出字符=P,若要把输入的大写字母转换为小写字母,应如何修改程序?程序有何缺陷?,main() char c; printf(“nc=”); scanf(“%c”,输入/输出举例,C 程 序 设 计 | 第 一 章,例1.18 编一个程序,从键盘输入三角形的三条 边,计算三角形的面积。 求面积的公式:area= s(s-a)(s-b)(s-c) 其中:s=(a+b+c)/2 顺序结构程序常有以下几个步骤:,输入/输出举例,#include “math.h” main() float a,b,c,s,area; printf(“输入三角形的边a,b,c=?”); scanf(“%f,%f,%f”, ,C 程 序 设 计 | 第 一 章,字符输出函数:putchar(参数) 功能:将一个字符从标准输出设备上输出 参数:可以是int型变量、字符型变量、字符码或字符常量 返回值:正常时为写入的代码值,出错时为EOF(即-1),int型 例如:设ch=k,则下列输出结果为: putchar(ch); 输出字符k putchar(n); 输出一个空行 putchar(101); 输出字符A putchar(007); 响铃一次,字符输出函数,C 程 序 设 计 | 第 一 章,字符输入函数,字符输入函数:getchar() 功能:从标准输入设备输入一个字符,并将该字符的ASCII码值作为函数的返回值,且常将此值赋给一个字符变量 无参数 返回值:正常时为读到的代码值,出错时或遇结束(Ctrl+z)为EOF(即-1), int型 执行getchar函数时,程序将等待用户输入一个字符。当用户从键盘上输入一个字符并按下回车键后,程序才继续往下执行。,C 程 序 设 计 | 第 一 章,字符输入/输出举例,#include “stdio.h” main() char c,c1,c2; c=getchar(); c1=c+2; c2=c1-1; putchar(c);putchar(c1); putchar(n);putchar(c2); sleep(2); /*是系统调用,表示睡眠2秒钟*/ putchar(007);putchar(n); putchar(101);,输入:A 输出:AC B A 隔2秒后响铃一次再输出A,C 程 序 设 计 | 第 一 章,1.5 C语言规约,程序设计如同用自然语言来书写论文,编制程序同样要讲求明晰、缜密、流畅。 C语言的规约不是强制性的,是约定俗成的风格。 遵守规约的代码,易被读懂,便于交流、维护、合作。 良好的编程风格将有效地提升其程序的品质。,1.5.1 基本规约 程序结构清晰易懂,单个函数的程序行数建议不得超过100行。 程序要力求简单,避免出现冗余的代码。 尽量使用标准库函数和公共函数,如求解一个数的平方根,可以直接引用math.h函数库中的sqrt()函数。 在表达式中多使用括号以避免二义性。,C 程 序 设 计 | 第 一 章,C 程 序 设 计 | 第 一 章,1.5.2 可读性规约, 理想情况,注释行数(不包括程序头和函数头说明部分)应占总行数的 1/51/3,即100行程序至少有20行注释。 利用缩进来显示程序的逻辑结构,缩进量一致并以【Tab】键(制表符)为单位。 循环、分支层次不要超过5层。 空行和空白字符也是一种特殊注释,即程序在重要的转折与分界处建议添加空行或空白字符以提升视觉的可读性。,C 程 序

温馨提示

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

评论

0/150

提交评论