C语言程序设计教程(电子教案).ppt
《C语言程序设计教程(电子教案).ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教程(电子教案).ppt(317页珍藏版)》请在三一办公上搜索。
1、C 语言程序设计教程,目 录,第1章 C语言概述第2章 数据类型、运算符和表达式第3章 C程序中的输入、输出第4章 C程序的控制结构第5章 数 组第6章 函数第7章 编译预处理命令第8章 指 针第9章 结 构 体第10章 文 件,第 1 章 C语言概述,学习目标,对C语言有一个概括的了解,能够编写包含键盘输入、计算和显示输出等操作的简单C程序。,主要内容,C语言的产生与特点 简单C程序的组成C语言应用程序开发的基本步骤,1.1 C语言的产生及特点,C语言是为了编写系统程序而在1968年开始研发的计算机高级语言C语言表达能力强,使用灵活,程序结构清晰,紧凑,可移植性好C语言是进一步学习面向对象的
2、程序设计语言 C+和VC 的基础,主函数名,最简单的C程序的组成,对程序的注释,1.2 C语言程序的结构及书写格式,一.C程序的结构,main()int x,y,z,sum;scanf(%d,%d,%d,printf(sum=%dn,sum),定义变量x,y,z和sum,从键盘输入三个整数赋给变量x,y和z,显示变量sum的值,计算x+y+z,并将结果赋给变量sum,程序说明,一般C程序的组成,【例1-2】采用模块结构,改写例1-1的程序。add(int x,int y,int z)return(x+y+z);main()int x,y,z;printf(Please Input Three
3、Integers:n);scanf(%d,%d,%d,注意:每个C程序必定有一个、而且只能有一个主函数main()。,主函数可以调用其它子函数,而子函数不可以调用主函数,子函数彼此之间也可以相互调用。,C程序的组成,二.C程序的书写格式,1.C程序允许一行写一个或多个语句,当一个语句分几行书写时,在换行前应加上“”符,然后从下一行的开头继续。2.习惯上,书写C程序时均使用小写英文字母。3.C程序一般都采用缩进格式的书写方法,不同结构层次的语句,从不同的起始位置开始,同一结构层次中的语句,缩进同样个数的字符位置。4.应当在程序中适当地添加一些注释行。,1.3 C程序的编辑、调试和运行,编辑源程序
4、 生成目标程序 经编译 经连 接库 修改源程序 函数 生成exe文件 运行 运行时出错,第1章 结束,第 2 章 数据类型、运算符和表达式,学习目标,1.掌握基本数据类型的概念和常量表示方法,掌握变量的定义方法,能够根据实际情况选用适当的数据类型2.熟练掌握数值表达式的构造方法,能够利用表达式完成数值计算,主要内容,C数据类型概述常量和变量算术运算表达式赋值表达式自增、自减表达式,2.1 概 述,C语言支持的数据类型,基本数据类型说明符,整型:int long字符型:char实型:float double long double,2.2 常 量,常量在程序运行过程中,其值不能被改 变的量。,一
5、.不同数制整型常量的表示例如:12:十进制数 12 012:八进制数 12(等于十进制数10,用前导符0表示八进制数常量)0 x12:十六进制数 12(等于十进制数 18,用前导符0X或0 x表示十六进制数常量),二.字符常量的表示用括起来的可显示字符,如 A、$、3 等(转义字符除外)2.用八进制数表示其ASC代码的字符,如101表示西文字符 A、63表示数字字符 3。3.用十六进制数表示其ASC代码的字符,如:x41表示西文字符A、x2A表示字符*。4.用 表示字符,”表示字符”,表示字符。5.用双引号括起来的字符序列表示字符串常量,其中最后一个字符是字符串结束符0,不显式地表示出来。如:
6、“English”。,【例2-1】常量的例子 main()float r;printf(Please Input Radius:n);scanf(%f,定义浮点型变量r,人机对话,通知用户输入半径的值,从键盘输入半径的值,并将值赋给变量r,显示结果,常量2,常量3.1415926,三.符号常量,可以用#define命令定义符号常量,在程序的执行过程中不允许改变符号常量的值。,【例2-2】说明符号常量的例子,#define PRICE 30 main()int num,total;num=10;total=num*PRICE;printf(total=%d,total);,通过#include定
7、义符号常量PRICE为30,定义二个整型变量num和total,使变量num的值为10,执行运算1030并把运算的结果赋予变量total,显示结果,2.3 变量的定义和初始化,变量:在程序运行时,其值可变的量被称为变量,分为整型变量、实型变量和字符型变量,一.C语言中的标识符,C语言把用户给常量、变量、函数、标号和其它对象所起的名字统称为标识符。用户定义的标识符须遵循如下规则:标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,标识符的长度不超过32个字符。同时,C语言的关键字和库函数名不能作为标识符。,例如,下面的字符序列均为合法的C语言标识符:a,b,word,_f
8、ile,file2,F_name,f_name注意:C编译程序字母区分大小写,所以上述F_name和 f_name是二个不同的标识符。下面的字符序列为不合法的C语言标识符:2L 违反了标识符第一个字符必须为字母 或下划线的规定。a*违反了标识符只能由字母、数字和下 划线三种字符组成的规定。int 违反了C语言的关键字和库函数名不 能作为标识符的规定。,二.变量分类 1.整型变量分类,整型变量的值域,2.浮点型变量的分类及其值域,Long double,取值(绝对值)范围 占字节数,3.字符型变量及其值域,在设计程序时,应当根据数据本身的特点和变化范围正确选择变量类型。,三.变量的定义和初始化,
9、变量的定义格式:类型说明符 变量名表;,int、unsigned、long、float、double、char等,变量名只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。,例如,语句:int a1,a2,age;float x,y,z;char ch;分别定义了整型变量a1,a2,age,浮点型变量x,y,z和字符型变量ch。,变量的初始化:在定义变量的同时对变量预 先设置初值。例如,执行语句:int num=20;float pi=3.14;char c1,c2=M;变量num、pi、c2的初值分别为20、3.14和 字符M。,四.各类数值型数据间的混合运算,高 doub
10、le float long unsigned 低 int char,当各种不同类型的数据混合运算时,其运算结果的类型由上图所示的类型转换原则确定。,【例2-3】设程序中定义变量:int i;float f;double d;,执行运算:i+(f*d)-(f+i)(这里的*表示乘法)下图给出了在运算过程中所发生的数据类型的转换 i+(f*d)-(f+i)double double double double double double double double double,2.4 算术运算符和算术运算表达式,一.算术运算符算术运算符包括:+(加)-(减)*(乘)/(除)%(求余),操作符%只
11、作用于整数x%y 的值就是 x除以 y 的余数。,操作符/的两种含义:整数除法(整除)当被除数和除数都是整型数据时,“”运算的结果为整型。例如:5/2的值为2(而不是2.5)实数除法 当被除数和除数中至少有一个是实数型数据时,“”运算的结果为实数型。例如:5.0/2的值为2.5,二.算术运算表达式,用算术运算符和括号将运算对象连接起来、并符合C语言语法规则的式子,称为算术运算表达式或算术表达式。例如:设r、x、y是已经定义的数值型变量,则:3.14*r*r、x+2*y-3/z、(x-y)*(x-y/2)均是合法的算术运算表达式,单独的r、x、y也是合法的算术运算表达式。实际上,单独的常量或变量
12、是最简单的算术运算表达式。,注意:算术运算表达式中的分数线须用/表示 例如:2+3i kj 表示为C语言表达式就是:(2+3*i)/(k*j)或(2+3*i)/k/j,C程序中,称表达式的运算结果为表达式的值。C语言规定,在表达式求值时,须按运算符优先级的高低次序执行。对算术运算而言,必须遵循先括号内后括号外,先乘、除及求余运算,后加减的运算优先级规则。,C语言规定了运算符二种不同的结合方向:左结合:当参于运算的数据两侧的运算符优先级 相同时,运算顺序为自左至右。C语言规定算术运算符遵循左结合的规则。例如,计算算术运算表达式 a+b-c 时,运算符“+”和“”具有相同的优先级,所以先执行 a+
13、b,其结果再和c相减。,右结合:当参于运算的数据两侧的运算符优先级 相同时,运算顺序为自右向左。C语言提供的运算符中有少量运算符遵循右结合的规则。教材的附录部分列出了C语言中所有运算符以及它 们的优先级和结合性。,2.5 赋值运算符与赋值运算表达式,一.赋值运算符 赋值符号“=”就是赋值运算符,它的作用是将一个数据赋给一个变量。例如:执行程序段 int a;a=3;a=a-5;当执行语句“a=3;”就完成一次赋值运算,把赋 值运算符右边的值3赋给赋值运算符左边的变量a,赋值后,a的值为3。再执行语句“a=a-5;”,赋值 运算符右边的表达式a-5的运算结果为-2,将-2赋 给a。最后,变量a的
14、值变为-2。,复合的赋值运算符复合的赋值运算符的格式:算术运算符=所以,+=、-=、*=、/=、%=都是复合的赋值运算符。,二.赋值运算表达式 将一个变量通过赋值运算符或复合的赋值运算符与一个表达式连接而成的式子称为赋值运算表达式。赋值运算表达式的格式为:变量名=表达式 或 变量名 复合的赋值运算符 表达式,例如:x=1.414,m1=E,s=3.14159*r*r 或 a+=5,x/=a+1 上述各例都是合法的赋值运算表达式。,赋值运算表达式的作用是把赋值运算符右边表达式的值赋给赋值运算符左边的变量。当算术运算符和赋值运算符同时出现在一个表达式中时,算术运算符的优先级高于赋值运算符。,C语言
15、允许赋值运算表达式中的表达式部分还是一个赋值表达式,这样就构成了多重赋值。多重赋值表达式中,赋值运算符遵循右结合的法则,即:自右向左的运算顺序。例如:多重赋值语句 a=b=c=x+8;在执行时等价于依次执行三个语句:c=x+8;b=c;a=b;,将一个变量通过复合的赋值运算符与一个表达式连接而成的式子同样称为赋值运算表达式。例如:a+=5,x/=a+1 下面的例子说明了复合的赋值运算符的运算规则。表达式 a+=5 等价于 a=a+5表达式 a*=4-b 等价于 a=a*(4-b)表达式 a%=b-1 等价于 a=a%(b-1)注意:复合的赋值运算符右边的表达式是作为一个整体参与其左边算术运算符
16、所规定的运算的。,【例2-4】赋值运算表达式举例1)y=3*(x-1);/*将3*(x-1)的结果 赋值给变量y。*/2)a=(b=4)+(c=6);/*这里的赋值运算表 达式(b=4)、(c=6)参于算术运算,C 言规定,将赋值运算符右边表达式的值 作为赋值运算表达式的值。所以,赋 值运算表达式(b=4)的值为4,(c=6)的值为6,最后将它们的和赋值给变量a,由于算术运算符的优先级高于赋值运 算符,所以表达式中的括号是必须的。*/,3)a+=a*=a+2;/*这里的语句等价于:a=a*(a+2);a=a+a;*/,三.字符型与整型的关系字符型数据的值在内存表现为它们的ASC代码值(0-25
17、5之间的一个整数)2.字符常量以其ASC代码值参与整数运算。如:A+2 的值为 67,字符A的ASC码值为65,【例2-5】字符型变量参与算术运算 main()int a;char i;a=B-1;i=a+10;printf(a:%d,a:%cn,a,a);printf(i:%d,i:%cn,i,i);,以字符格式输出变量a的值结果为字符A,以整型格式输出变量a的值结果为67,【例2-6】大小写字母的转换,main()char c1=a,c2=B;c1=c1-32;c2=c2+32;printf(c1:%c,c2%c,c1,c2);,大小写英文字母的ASC码值相差32,2.6 自增、自减运算符
18、+、-,功能:(设i为整型变量)+i:在使用i之前,先执行i+=1,使i的值加1。-i:在使用i之前,先执行i-=1,使i的值减1。i+:在使用i之后,执行i+=1,使i的值加1。i-:在使用i之后,执行i-=1,使i的值减1。上述“使用”指的是i加1或减1前后的其他操作,如赋值、运算、显示等。若不存在其它操作,则i+与+i一样,执行i+=1,使i的值加1;i-与-i一样,执行i-=1,使i的值减1。,【例2-7】自加、自减运算符的应用。main()int i=10,j;float pi=3.14,pa;j=i+;pa=+pi;printf(j=%d,pa=%fn,j,pa);printf(i
19、=%d,pi=%fn,i+,-pi);,先将i的值赋给变量j再执行i+=1;,先执行pi+=1;再将pi的值赋给变量pa,先将i的值输出再执行i+=1;,先执行pi-=1;再将pi的值输出,2.7 位运算符,位运算以字节(byte)中的每一个二进位(bit)为运算对象,最终的运算结果是整型数据。位运算分为按位逻辑运算和移位运算。一.按位逻辑运算符 按位逻辑运算符包括:按位逻辑与运算符:“&”按位逻辑或运算符:“|”按位逻辑非运算符:“”按位逻辑异或运算符:“”运算法则设用x、y表示字节中的二进位,取值为0或1。按位逻辑运算符的运算法则为:,按位逻辑与运算:x&y的结果为1,当且仅当x、y均为1
20、,否则x&y的结果为0。按位逻辑或运算:x|y的结果为0,当且仅当x、y均为0,否则x|y的结果为1。按位逻辑异或运算:xy的结果为1,当且仅当x、y的值不相同,否则xy的结果为0。按位逻辑非运算:当x=1时,x=0,而当x=0时,x=1。,位运算表达式的格式:整型变量名 运算符(&、|、)整型变量名或 整型变量名,【例2-8】位运算符的应用设有:int a=55,b=36;计算:a&b、a|b、ab及a的结果。假定每个整型变量占二个字节(16bit),则在内存中的二进 制数a、b为:a:00000000 00110111 b:00000000 00100100 按上述按位运算的法则,列出下述
21、算式:a&b:a|b:00000000 00110111 00000000 00110111&00000000 00100100|00000000 00100100 00000000 00100100 00000000 00110111 ab:00000000 00110111 00000000 00100100 a:00000000 00110111 00000000 00100100 a:11111111 11001000 00000000 00010011,结果:a&b=24,a|b=37 ab=13,a=ffc8(用十六进制表示),二.移位运算符,C语言提供的移位运算实现将整数数据按二
22、进位右移或左移的功能。向右移位运算符:“”,向左移位运算符:“”。移位运算表达式的格式:整型变量名 移位运算符 整型常量其中,整型常量指出右移或左移的位数。,【例2-9】移位运算符的应用设定义 int a=55,b=36;计算(a+b)2、(a-b)3的结果。a+b和a-b的结果91和19在内存中的二进制数分别为:a+b:00000000 01011011 和 a-b:00000000 00010011,2.8 其他运算符和表达式,一.强制类型转换运算符 C语言提供的强制类型转换运算符可以将一个表达式转换成指定的数据类型。格式:(类型说明符)(表达式)例如:(double)(x+y)/*将表达
23、式x+y的结果转换 成双精度型*/(int)a/*将变量a的值转换成int类型*/,【例2-10】强制类型转换运算符的使用 main()float x=3.6,y=6.6;printf(x+y=%fn,x+y);printf(x+y=%fn,(int)x+(int)y);,将x的值强制转换成整型值3,将y的值强制转换成整型值6,二.逗号运算符和逗号表达式 C语言通过逗号运算符“,”将两个以上的表达式连接起来,组成逗号表达式。逗号表达式的一般格式:表达式1,表达式2,表达式k,逗号表达式的运算:依次求表达式1、表达式2、表达式k 的值,并以最后一个表达式k的值作为整个 逗号表达式的值。,例如,语
24、句:x=(a=3,6*3);等价于:a=3;x=6*3;x=6*3;,将表达式6*3的结果作为整个逗号表达式的值,第2章 结束,第 3 章C程序中的输入、输出,学习目标,对C语言的输入、输出有一个初步的了解,学会使用scanf()、printf()函数实现整型、浮点型和字符型数据的输入、输出。,主要内容,C语言的输入、输出 printf()函数 scanf()函数 getchar()函数和putchar()函数,3.1 概述,C语言中没有输入、输出语句,通过调用库函数中的输入、输出函数 printf()、scanf()、getchar()和putchar()实现输入、输出。在使用输入、输出函数
25、时,应当在源程序的开始处使用#include 命令将输入、输出函数的头文件包含进来,以便在编译时实现连接。,一.格式输出函数 printf()函数,功能从指定的输出设备输出数据,默认的输出设备为显示器。,使用格式 printf(格式控制,输出表列),由格式控制符%和格式字符实现,表达式,3.2 格式输入、输出函数scanf()和printf(),格式控制的内容,这部分是用双引号括起来的字符串,其中包含两种信息:格式说明:由%和格式字符组成。如%d、%f、%f等,它们的作用是将待输出的 数据按指定的格式输出。普通字符:即需要按原样输出的字符。例如,语句:printf(Total Number i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 电子 教案
链接地址:https://www.31ppt.com/p-5426426.html