C语言程序设计(第三版)全套教学课件.pptx





《C语言程序设计(第三版)全套教学课件.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计(第三版)全套教学课件.pptx(211页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.11.21.31.41.51.1 程序设计语言及其发展程序设计语言的发展机器语言汇编语言高级语言CPU指令系统,由0、1序列构成的指令码组成如:10000000加10010000减用助记符号描述的指令系统如ADDA,B分为解释类和编译类1967年MartinRichards开发BCPL1970年KenThompson开发B语言1972年DennisRitchie设计了C语言C标准1980年BjarneStroustrup开发“带类的C语言”,最终成为C+语言。1.2 C语言的历史1978年TheCProgrammingLanguage1989-1990年C89标准1995年C95标准199
2、9年C99标准2011年C11标准(ISO/IEC9899:2011)1.3 C语言的标准例1.1 输出字符串#includemain()printf(“hello,worldn”);运行结果:Hello,world主函数字符串包含头文件1.4 C语言的程序结构库函数缩进格式例1.2/*功能:计算两个数的和,并输出*/#include/*包含头文件stdio.h*/main()inta,b,sum;/*定义变量*/a=10;/*给变量a赋整数值10*/b=20;/*给变量b赋整数值20*/sum=ab;/*求和*/printf(sum=%dn,sum);/*输出sum的值*/运行结果:sum=
3、30注释语句1.4 C语言的程序结构(续)若输出1020=30则程序中的printf语句可改写为:printf(%d%d=%dn,10,20,sum);1.4 C语言的程序结构(续)例1.3 输入两个数,求和并输出#includemain()inta,b,sum;/*定义变量*/scanf(%d,&a);/*输入第一个整数*/scanf(%d,&b);/*输入第二个整数*/sum=ab;/*计算和*/*输出和*/printf(Thesumof%dand%dis%d.n,a,b,sum);scanf获得键盘输入获得键盘输入1.4 C语言的程序结构(续)总结:C程序结构特点函数与主函数v程序由一个
4、或多个函数组成v必须有且只能有一个主函数main()v程序执行从main开始,在main中结束程序语句vC程序由语句组成v用“;”作为语句终止符注释v/*/为注释,不能嵌套采用缩进格式1.5 C语言程序的运行2.1常量2.2变量2.3运算符与表达式2.4运算符的优先级与结合性2.5类型转换2.1常量v定义:程序运行时其值不能改变的量(即常数)v分类:u整型常量十进制常量1245 401 -3210 +569 八进制常量01245 0401 -032100184 想想为什么?十六进制常量 0 x1245 0 x401-0 xabcd0 x2z12.1常量u浮点型常量十进制小数形式0.0083.1
5、25 -123.+3.14159 指数形式表示实型常量1.23e3 12345.6E-2 2.23e1.5 1.23e 想想为什么?u单字符常量普通字符常量用单引号括起来 A a转义字符见书中表2.12.1常量u字符串常量字符串常量是由一对双引号括起来的字符序列。例如,“Hello!”、“CLanguage”hello0XX0例X“X”字符串一般都有一个结束标志0X与“X”是有区别的例2.1 输入一个半径,求圆周长和圆面积#include#definePI3.14159main()floatradius,circumf,area;scanf(“%f”,&radius);circumf2.0*P
6、I*radius;/*计算周长*/areaPI*radius*radius;/*计算面积*/printf(circumference%.2f,area%.2fn,circumf,area);运行结果:1circumference6.28,area3.14符号常量PI符号常量定义格式为:#define2.2变量v概念:其值可以改变的量v变量名与变量值v变量定义的一般格式:数据类型变量1,变量2,变量n;v变量初始化:定义时赋初值例:inta,b,c;floatdata;决定分配字节数和数的表示范围合法标识符例:inta=2,b,c=4;floatdata=3.67;charch=A;intx=1
7、,y=1,z=1;v变量的使用:先定义,后使用v变量定义位置:一般放在函数开头例:intstudent;student=19;main()inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%fn”,data);2.2.1变量名在C语言中,用户自定义的标识符需要符合以下规则(1)必须以字母或下划线(_)开头,C语言区分大小写,ABC,Abc和abc是不相同的。(2)只能由字母、数字或下划线组成,不能有空格,小数点等特殊字符。(3)不能和C中的系统保留的关键字重名。autodoubleintStructbreakelselongSwitchcas
8、eenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifstaticwhile系统保留的关键字2.2.2变量的类型数据长度类型标识符数值范围有符号整数16位shortint327683276732位int2147483648214748364732位longint21474836482147483647无符号整数16位unsignedshortint06553532位unsignedint0429496729532位unsi
9、gnedlongint04294967295n整型变量例如:inti=0;整型数据的长度、类型标识符与数值范围2.2.2变量的类型n浮点型变量float:单精度浮点数double:双精度浮点数longdouble:长精度浮点数浮点数的特征类型数据长度取值范围与有效位数float32位约(3.4E-383.4E+38),6位有效数字double64位约(1.7E-3081.7E+308),16位有效数字2.2.2变量的类型n字符型变量用char进行定义,用单引号引起来的单个字符如字符A、a、0、$等#includemain()charlowercasea;charuppercaselowerca
10、se-32;printf(%c,uppercase);【例2.2】小写字母转换成大写字母大写字母的ASCII值比对应的小写字母小32sizeof运算符运算符sizeof可以测定某种类型的数据所占的字节数。#includemain()printf(int:%dbytesn,sizeof(int);printf(double:%dbytesn,sizeof(double);【例2.3】用sizeof运算符测定所用C系统中int型和double型数据所占内存空间的字节数基本用法是sizeof(类型名)运行结果:int:4bytesdouble:8bytes2.2.3变量的定义及操作intage,re
11、ach;定义age、reach为基本int类型变量。unsignedintheight,weight;定义height、weight为无符号int类型变量n变量的定义n先定义,赋值后使用#includemain()intage;printf(%dn,age);age未进行初始化,所以输出结果是不确定的2.3运算符与表达式C运算符算术运算符:(+-*/%+-)关系运算符:(=!=)逻辑运算符:(!&|)位运算符 :(|&)赋值运算符:(=及其扩展)条件运算符:(?:)逗号运算符:(,)指针运算符:(*&)求字节数 :(sizeof)强制类型转换:(类型)分量运算符:(.-)下标运算符:()其它
12、:(()-)算术运算符和表达式v基本算术运算符:+-*/%l结合方向:从左向右l优先级:-*/%-+-说明:l“-”可为单目运算符时,右结合性l两整数相除,结果为整数l%要求两侧均为整型数据例5/2=-5/2.0=例5%2=-5%2=1%10=5%1=5.5%2例5/2=2-5/2.0=-2.5例5%2=1-5%2=-11%10=15%1=05.5%2()关系运算符和表达式v关系运算符l种类:=!=l结合方向:自左向右l优先级别:=!=优先级高优先级低例 ca+b /c(a+b)ab!=c /(ab)!=c a=bc /a=(bc /a=(bc)l关系表达式的值:是逻辑值“真”或“假”,用1和
13、0表示例inta=3,b=2,c=1,d,f;ab(ab)=cb+cbf=abc/表达式值1/表达式值1/表达式值0/d=1/f=0ab!a!ba&ba|b真假真假假假真真逻辑运算符和表达式v逻辑运算符l种类:!&|l逻辑运算真值表lC语言中,运算量:0表示“假”,非0表示“真”,运算结果:0表示“假”,1表示“真”,真假假假假假真真假假真真真假真真赋值运算符和表达式v简单赋值运算符l符号:=l格式:变量标识符=表达式l作用:将一个数据(常量或表达式)赋给一个变量v复合赋值运算符l种类:+=-=*=/=%=&=|=l含义:exp1 op=exp2 exp1=exp1 op exp2a+=3a=
14、a+3x*=y+8 x=x*(y+8)x%=3 x=x%3例 a=3;d=func();c=d+2;v自增、自减运算符+-l作用:使变量值加1或减1l种类:u前置 +i,-i (先执行i+1或i-1,再使用i值)u后置 i+,i-(先使用i值,再执行i+1或i-1)例 j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;/k=4,j=4/k=3,j=4/4/3/c=20,a=4/c=15,a=4条件运算符与表达式v一般形式:expr1?expr2:expr3v执行
15、过程v功能:相当于条件语句,但不能取代一般if语句例if(ab)printf(“%d”,a);elseprintf(“%d”,b);printf(“%d”,ab?a:b);例求a+|b|printf(“a+|b|=%dn”,b0?a+b:a-b);expr1取expr2值取expr3值非0=0v条件运算符可嵌套如x0?1:(x0?-1:0)逗号运算符和表达式v形式:表达式1,表达式2,表达式nv结合性:从左向右v逗号表达式的值:等于表达式n的值v用途:常用于循环for语句中例如:value(x10,y5,xy);首先将10赋值给x,然后将5赋值给y,最后将15(即105)赋值给value。2.
16、4优先级与结合性优先级用于确定复杂表达式求值时不同运算符的计算顺序。结合性用来决定复杂表达式求值时含有同优先级运算符的计算顺序。n左结合表达式3*8/4%4*5等价于(3*8)/4)%4)*5)n右结合表达式ab*c5等价于(a(b*(c5)2.5类型转换隐式类型转换显示类型转换显示类型转换的一般表示形式为:(类型标识符)表达式inttotalScores500,num6;/*定义总分totalScores和学生人数num*/floataverage;/*定义平均分average*/averagetotalScores/num;/*average83.0000*/average(float)t
17、otalScores/num;/*average83.3333*/隐式类型转换显式类型转换3.1 读入一个字符3.2 输出一个字符3.3 格式化输入3.4 格式化输出3.5 程序举例3.1读入一个字符函数功能v从标准输入设备读取一个字符函数的语法格式vgetchar();【例例3.13.1】从键盘上输入一个字符,然后显示出来。从键盘上输入一个字符,然后显示出来。#includemain()charch;ch=getchar();printf(%c,ch);3.2输出一个字符函数功能v将字符输出到标准输出设备上函数的语法格式vputchar(c);【例例3.23.2】显示显示 A A。#incl
18、udemain()charch;ch=A;putchar(ch);3.3格式化输入格式:scanf(“格式控制串”,地址表地址表)功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中,并按回车键结束返值:正常,返回输入数据个数v地址表:变量的地址,常用取地址运算符&v格式字符:d,i,o,x,u,c,s,f,e例scanf(“%d”,&a);输入:10则a=10例scanf(“%4d%2d%2d”,&yy,&mm,&dd);输入19991015则1999yy,10mm,15dd例scanf(“%3d%*4d%f”,&k,&f);输入12345678765.43则123k,8765.43
19、f例scanf(“%2d%*3d%2d”,&a,&b);输入1234567则12a,67b例scanf(“%3c%2c”,&c1,&c2);输入abcde则ac1,dc2v输入分隔符的指定l一般以空格、TAB或回车键作为分隔符l其它字符做分隔符:格式串中两个格式符间字符例scanf(“%d:%d:%d”,&h,&m,&s);输入12:30:45则12h,30m,45s例scanf(“%d,%d”,&a,&b)输入3,4则3a,4b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入a=12,b=24,c=36l输入数据时,遇以下情况认为该数据结束:遇空格、TAB、或回车遇宽
20、度结束遇非法输入3.4格式化输出格式:printf(“格式控制串”,输出表输出表)功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回EOF(-1)v输出表:要输出的数据(可以没有,多个时以“,”分隔)v格式控制串:包含两种信息l格式说明:%修饰符格式字符,用于指定输出格式l普通字符或转义序列:原样输出v格式字符d,ix,Xoucse,Efg%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a
21、);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%3.5程序举例-例3.4#include#definePI3.1415926main()floatr,h,l,s,sq,v
22、q,vz;/*变量定义*/printf(pleaseinputr,h:n);/*输入提示信息*/scanf(%f,%f,&r,&h);/*从键盘输入圆半径r、圆柱高h*/l=2*PI*r;/*计算圆周长*/s=PI*r*r;/*计算圆面积*/sq=4*PI*r*r;/*计算圆球表面积*/vq=4.0/3.0*PI*r*r*r;/*计算圆球体积*/vz=PI*r*r*h;/*计算圆柱体积*/printf(%6.2fn,l);printf(%6.2fn,s);printf(%6.2fn,sq);printf(%6.2fn,vq);printf(%6.2fn,vz);3.5程序举例-例3.6#inc
23、ludemain()intnum1,num2,temp;scanf(%d,%d,&num1,&num2);printf(交换前:num1=%d,num2=%dn,num1,num2);/*swapnum1andnum2*/temp=num1;num1=num2;num2=temp;printf(交换后:num1=%d,num2=%dn,num1,num2);两个数交换的核心语句4.1 选择结构程序概述4.2 if语句4.3 switch语句选择结构单分支双分支if (表达式)语句多分支if (表达式)语句else 语句if (表达式1)语句else if (表达式)语句else 语句nif 语
24、句的嵌套switch 语句4.1.1简单if语句1.语法格式if(if(条件条件)语句语句2.说明(1)执行过程:当条件为当条件为“真真”时,执行语句;为时,执行语句;为“假假”时,跳过语句,而直接执行整个时,跳过语句,而直接执行整个if if语句后的其它语句。语句后的其它语句。(2)条件中的结果为逻辑值。(3)语句如果有多条语句,要用一对花括号“”将其括起来,成为一个复合语句。例4.1#includemain()floatx,y;printf(请输入数据:n);scanf(%f,&x);y=x;/*初始化y值*/if(x0)y=-x*x;printf(f(%.2f)=%.2f,x,y);例4
25、.2#includemain()floata,b,temp;scanf(%f%f,&a,&b);if(ab)temp=a;/*三条语句,实现a、b变量值交换*/a=b;b=temp;printf(a=%.2fb=%.2fn,a,b);4.1.2if.else语句1.语法格式if(if(条件条件)语句语句11elseelse语句语句2 22.说明(1)执行过程:当条件为“真”时,执行语句1;为“假”时,执行语句2。(2)语句1和语句2都可为复合语句。例4.3#includemain()floatweight,pay;printf(请输入重量n);scanf(%f,&weight);if(weig
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 第三 全套 教学 课件

限制150内