最新C语言程序设计(共173张PPT课件).pptx
《最新C语言程序设计(共173张PPT课件).pptx》由会员分享,可在线阅读,更多相关《最新C语言程序设计(共173张PPT课件).pptx(173页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计语言程序设计(chn x sh j)知识点汇总(huzng)第一页,共一百七十三页。什么(shn me)是程序 q程序一词来自生活,通常指完成(wn chng)某些事务的一种既定方式和过程q在日常生活中,可以将程序看成对一系列动作的执行过程的描述 2第二页,共一百七十三页。qVC+环境下开发应用程序的步骤建立项目-新建源文件-编码-编译-连接-运行q项目和源程序文件的关系一个项目对应一个程序(即生成一个可执行文件),它可以包含(bohn)多个源文件或头文件等,但只能有一个main()函数。 注:当前我们暂时只会用到一个项目只包含一个源程序文件开发环境(hunjng)的使用3第三页
2、,共一百七十三页。程序编制要求(yoqi)初步q从主函数入手,要求先用注释的形式将算法的思路写出,再分别对算法的每一步(y b)用代码实现;q编码风格:特别注意代码行的缩进和空行。4第四页,共一百七十三页。变量(binling)q为什么要使用变量?编写程序时,常常需要将数据存储在内存中,需要在程序中访问内存单元,但内存地址是不便于记忆并且(bngqi)让程序员直接管理内存非常复杂。因此让内存地址有一个直观易记的名字且便于访问,而引入了变量。q通常使用变量来存储数据。使用变量可以引用存储在内存中的数据,并随时根据需要显示数据或执行数据操纵。q变量具有三要素:名字、类型、值。5第五页,共一百七十三
3、页。声明和使用(shyng)变量q声明(shngmng)变量:Datatype variablename;如:如:int num;q定义时初始化变量:Datatype variablename = value;如:如:int num=0;q定义后初始化变量:variablename = value;如:如:int num; num=0;给变量赋值,除了给一个直接的值以外(ywi),还可以通过计算获得。6第六页,共一百七十三页。变量(binling)命名在 C 语言中,变量命名(mng mng)需要遵循一定的规则有效有效(yuxio)名称名称principalcost_pricemarks_3l
4、astnamecity无效名称无效名称123ratecurrency$discount%zip codeq 变量的命名规则:q 变量名可以由字母、数字和 _(下划线)组合而成q 变量名不能包含除 _ 以外的任何特殊字符,如:%、# 、逗号、空格等q 变量名必须以字母或 _(下划线)开头q 变量名不能包含空白字符(换行符、空格和制表符称为空白字符)q C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名q C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量7第七页,共一百七十三页。变量的正确(zhngqu)使用q变量基本类型的
5、确定(根据问题分析确定)q变量定义的位置一般放置于函数所有语句之前,规范化要求:不允许在函数的其它(qt)位置定义变量。q变量命名如无特别含义,建议对变量在程序中代表的含义进行注释8第八页,共一百七十三页。基本输入输出语句(yj)的使用qPrintf(“”,)和scanf(“”,)基本格式q格式字符和输出值列表以及地址列表的关系(一一对应原则)q输入提示语句的使用错误(cuw)用法: printf(“please input a:%d”,w); scanf(“%d”,&w);9第九页,共一百七十三页。printf 函数(hnsh)int visitor_count = 150;printf (
6、 %d , visitor_count);printf将一些信息按照指定(zhdng)的格式送到标准输出(显示器) %d visitor_count将按指定(zhdng)的格式显示该变量的值转换字符串转换字符串说说 明明%d将参数按整数形式转换输出,对应参数应是int 类型%ld将参数按长整数形式转换输出,对应参数应是long 类型%c输出一个字符,对应参数应该是一个字符%s输出一个字符串,对应参数应该是一个字符串%f将参数按带小数点数形式输出,对应参数应是double 类型,默认情况下精确到 6 位小数10第十页,共一百七十三页。转义序列转义序列转义序列名称名称描述描述a 警告产生一则警告。
7、b 退格将光标回退一格。f 换页将光标移到下一页的第一格。n 换行将光标移到下一行的第一格。r 回车将光标移到当前行的第一格。t 水平制表 将光标移到下一个水平制表位置。v 垂直制表将光标移到下一个垂直制表位置。 单引号产生一个单引号。 双引号产生一个双引号。? 问号产生一个问号。反斜线产生一条反斜线。0 空产生一个空字符。11第十一页,共一百七十三页。基本(jbn)运算符的使用q“/”运算符的特殊情况(qngkung)(两个操作数均为整型为作整除运算)q“%”运算符的要求(两个操作必须为整型)q“+”和“-”运算符一般用于计数器,尽量减少在比较复杂的表达式或语句中使用12第十二页,共一百七十
8、三页。类型转换q自动类型转换(隐式转换)q原则:把表示范围小的类型的值转换到表示范围大的类型的值q short int long float double如果需从范围较大(jio d)的类型值转换为范围较小的类型值,则用下面的强制类型转换。q强制类型转换(显式转换)q语法:(类型名) 变量或数值 q例如:int a = 5, b = 3;float qu = (float)a / b; 13第十三页,共一百七十三页。字符输入输出函数(hnsh)的使用qgetchar()和putchar()函数的格式(g shi)q输入缓冲区的正确理解 要求:在字符型数据输入前建议使用缓冲区清空函数fflush
9、(stdin)14第十四页,共一百七十三页。getchar()和putchar()q getchar()是从标准输入设备读入一个字符;putchar()是将字符输出到标准输出设备上。q getchar()函数没有参数;putchar()有一个参数。q getchar()执行时,虽然是读入一个字符,但并不是直接从键盘上输入一个字符就读入一个字符,而是等到输入完一行(yxng)按回车后该行字符被送到输入缓冲区后,再从缓冲区取出一个字符,因此为了避免错误的发生,有时需在用此函数前,先清空缓冲区fflush(stdin);q ch=getchar();相当于scanf(“%c”,&ch);q putc
10、har(ch);相当于printf(“%c”,ch);15第十五页,共一百七十三页。字符(z f)型和整型的关系q字符型数据在内存中的表示形式(ASCII码)qASCII码是整数的子集,因此(ync)也可以作整数的一般运算q在一般情况下,可以理解为字符型和整型为等价类型,区别在于各自所占的内存单元数存在差异16第十六页,共一百七十三页。q “=“判等运算符与“=”赋值运算符的区别 if(operator = -) / 将条件换成operator = -表达式结果如何? result = num1 - num2; printf(n结果为 %d。n, result); else if(operat
11、or = +) result = num1 + num2; printf(n结果为 %d。n, result); else printf(运算符错误,无法(wf)计算!n);(教材P197第二题)“=”的正确(zhngqu)使用17第十七页,共一百七十三页。逻辑(lu j)运算符 运算运算运算符运算符表达式表达式逻辑“与”&operand1 & operand2逻辑“或”|operand1 | operand2逻辑“非”!operand1 q逻辑运算符用于连接(linji)一个或多个条件,判断这些条件是否成立q逻辑运算符的类型为:18第十八页,共一百七十三页。逻辑(lu j)运算符的正确使用i
12、f(a=b) & (a=c)/能否(nn fu)写成(a=b=c|a=c=b)?printf(n %d 为位于最大的数n,a);if(b=a) & (b=c)printf(n %d 为位于最大的数n,b);if(c=b) & (c=a)printf(n %d 为位于最大的数n,c);19第十九页,共一百七十三页。条件(tiojin)结构 2-1 q条件结构就是需要根据不同条件进行判断,然后执行不同的操作q简单 if 语句(yj)的一般形式为:if () 如果条件为真,if 语句执行一个语句或一组语句; 如果条件为假,则执行 if 语句后面的语句(如果有)。20第二十页,共一百七十三页。条件(t
13、iojin)结构 2-2 q if-else 语句语句(yj)的一般形式为:的一般形式为: if () else 如果条件为真,执行 if 后面的一个语句或一组语句; 如果条件为假,则执行 else 后面的语句。21第二十一页,共一百七十三页。IF结构(jigu)语法注意事项if (xy)/能否(nn fu)在此语句后加分号“;”/*交换x,y的值*/t=x;x=y;y=t; /括号能否省略?if(xz)/*交换x,z的值*/t=z;z=x;x=t;if(yz)/*交换z,y的值*/t=y;y=z;z=t;22第二十二页,共一百七十三页。IF语句的执行(zhxng)流程 total_cost
14、= cost1 + cost2 + cost3; discount = 0; /此语句能否省略?作用是什么(shn me)? if(ch=y) | (total_cost=100) discount=total_cost*0.1; if(ch=y) & (total_cost = 100) discount = total_cost * 0.2; pay = total_cost - discount; printf(n 购物总额 = %1.2f 元n , total_cost); printf(n 折扣金额 = %1.2f 元n , discount); printf(n 应付总额 = %1
15、.2f 元n , pay);23第二十三页,共一百七十三页。 int item; float tot_amt,discount, pay_amt; printf(n 请输入购买(gumi)商品的件数:); scanf(%d,&item); printf(n 请输入购物总金额:); scanf(%f,&tot_amt);if(item = 10 & tot_amt = 10000) discount =(float) (tot_amt * 0.10); pay_amt = tot_amt - discount;? printf(n 可得到折扣额 = %1.2f $.n , discount);
16、printf(n 折扣后应付金额 = %1.2f $.n , pay_amt);24第二十四页,共一百七十三页。sizeof 运算符 sizeof(int);float num;sizeof(num);24char1int2short int2long4float4double8sizeof 运算符返回的大小q使用 sizeof 运算符可以获得(hud)数据类型占用内存空间的大小。其一般形式为: sizeof(type_name)qsizeof 运算符的结果以字节为单位显示注意:在32位计算机中,int类型的变量占4字节的内存大小(dxio),和long类型的大小(dxio)一样,所以现在基本
17、上可以直接使用int类型,而不需要使用long类型。 25第二十五页,共一百七十三页。运算符优先级运算符运算符描述描述结合性结合性()圆括号自左向右!, +, -, sizeof逻辑非,递增, 递减,求数据类型的大小自右向左*, /, %乘法,除法,取余自左向右+, -加法,减法自左向右, , =小于,小于等于,大于,大于等于自左向右= =, !=等于,不等于自左向右&逻辑与自左向右|逻辑或自左向右=,+=, *=, /=, %= ,-=赋值运算符,复合赋值运算符自右向左26第二十六页,共一百七十三页。运算符优先级小结(xioji)q一般情况下,算术运算符关系(gun x)运算符逻辑运算符q算
18、术运算符中,自增自减运算符乘除余运算加减运算q关系运算符中,等于和不等于运算最低q逻辑运算符中,取反运算符与运算符或运算符q一切运算,()运算符优先级最高q一切运算,赋值运算符优先级最低27第二十七页,共一百七十三页。多重ifq要处理多重条件判断的情况(qngkung),需要使用多重条件结构多重条件(tiojin)结构嵌套 ifswitch结构(jigu)多重条件结构多重条件结构28第二十八页,共一百七十三页。if(num5)dcount=0; else if(num=5)&(num=10)&(num=20)&(num5)dcount=0; else if(num=5)&(num=10)&(n
19、um 0) if (y 1) z = 1;else /*这个 else 部分属于(shy)哪个 if?*/ z = 2; 嵌套 if 结构(jigu)C语言(yyn)规定,每个 else 部分总属于前面最近的那个缺少对应的 else 部分的 if 语句。提倡使用大括号括起来以避免看起来有二义性。32第三十二页,共一百七十三页。计算(j sun)表达式的值如果(rgu)等于常量1 如果等于(dngy)常量2 如果没有找到匹配的值 switch (表达式) case 常量 1:语句;break; case 常量 2:语句;break;default:语句;33第三十三页,共一百七十三页。switc
20、h 结构(jigu) 3-3q在使用switch结构时应注意以下几点:q在case后的各常量(chngling)表达式的值不能相同,否则会出现错误;q在case后,允许有多个语句,可以不用括起来;q每个case语句后都必须有一个break语句,否则会出现错误;q各case和default子句的先后顺序可以变动,而不会影响程序执行结果;qdefault子句可以省略;34第三十四页,共一百七十三页。Switch语句的正确(zhngqu)使用int a;printf(请输入今天星期几(1-7):);scanf(%d,&a);switch (a) case 1: printf(星期一:青菜n); br
21、eak; case 2: 常量表达式和值的类型应匹配,如果(rgu)将a改为字符型,此题应作怎样的修改?35第三十五页,共一百七十三页。 scanf(%d,&a);switch (a);/此处能否使用(shyng)分号? case 1: printf(星期一:青菜n); break; case 2: 36第三十六页,共一百七十三页。 printf(n 请输入员工级别(jbi):); scanf(%c,&grade); if (grade = A) amt = salary + (salary * 0.45); printf(n 级别 %c 的薪水是 %6.2fn, grade, amt); e
22、lse if (grade = B) amt = salary + (salary * 0.40); printf(n 级别 %c 的薪水是 %6.2fn, grade, amt); else printf(n无效的等级n);红色代码可否放在IF结构外执行?原因?37第三十七页,共一百七十三页。补充:字母大小写转换(zhunhun)函数tolower()和toupper()如grade=A|grade=a等价于 tolower(grade)=a或toupper(grade)=A38第三十八页,共一百七十三页。 switch(month)/*先计算某月以前(yqin)月份的总天数*/case 1
23、:sum=0;break;default:sum=-1;break;红色代码在此段程序中的作用?(标志用以区分月份的正确与否)if (sum!=-1) sum=sum+day;/*再加上某天的天数*/elseprintf(data errorn);39第三十九页,共一百七十三页。if(year%400=0|(year%4=0&year%100!=0)&month2)/*判断是不是闰年*/ /此处应注意条件的写法(xif),尤其是括号的正确使用/*如果是闰年且月份大于2,总天数应该加一天*/sum+;printf(这天是当年的第 %d 天。n,sum);/这两条语句能否用一条语句实现?elsep
24、rintf(这天是当年的第 %d 天。n,sum);40第四十页,共一百七十三页。循环(xnhun)的必要性q为避免繁琐的代码重复,需提供(tgng)一种机制来解决这种需要重复执行执令的情况,即循环。q循环允许将一组指令重复执行特定次数或直到某个条件为止,应避免死循环。q循环三要素:循环体(即重复执行的指令)、循环条件(即循环结束条件取反)、循环初始化(循环执行前的准备)41第四十一页,共一百七十三页。while 循环(xnhun)1 while (表达式) 循环体语句(yj);while 循环(xnhun)的一般语法:while (index 100) . . . . . . index+;
25、 计算表达式的值,当值为真(非0)时,执行循环体语句,一旦条件为假,就停止执行循环体。如果条件在开始时就为假,那么不执行循环体语句直接退出循环。 工作原理示例42第四十二页,共一百七十三页。while 循环(xnhun) 2循环循环(xnhun)条件条件每次循环每次循环(xnhun)执行的语句(即循环执行的语句(即循环(xnhun)体)体)循环前的语句(包括循环初始化)循环前的语句(包括循环初始化)假假真真返返回回循循环环条条件件判判定定循环之外的语句循环之外的语句43第四十三页,共一百七十三页。while 循环(xnhun) 3 while(循环(xnhun)条件) 循环条件中使用的变量需要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 语言程序设计 173 PPT 课件
限制150内