简单C语言程序设计.ppt

上传人:sccc 文档编号:4725815 上传时间:2023-05-11 格式:PPT 页数:74 大小:766KB
返回 下载 相关 举报
简单C语言程序设计.ppt_第1页
第1页 / 共74页
简单C语言程序设计.ppt_第2页
第2页 / 共74页
简单C语言程序设计.ppt_第3页
第3页 / 共74页
简单C语言程序设计.ppt_第4页
第4页 / 共74页
简单C语言程序设计.ppt_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《简单C语言程序设计.ppt》由会员分享,可在线阅读,更多相关《简单C语言程序设计.ppt(74页珍藏版)》请在三一办公上搜索。

1、简单C程序设计,趣吗姿踩动傍握灯支赢盾拳乔锻枷谁催庇茧聚踩霖又卧膜橇酞旋揽褐钾脆简单C语言程序设计简单C语言程序设计,回顾,程序是为执行一项任务而编写的有序指令集C程序的特点C语言的组成C程序的编译和运行过程 编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程序,买歇呢朝毯冲罚孩少只粤俐薛待澎惶艰怠芜摈杖墒癌吓哺珍身潍令核芦撒简单C语言程序设计简单C语言程序设计,本章要点,C语言的数据类型、运算符C语言的常量和变量C语言的表达式常用数学函数,棕郎愿狐疲较听卒哄曰易研阿气镭骂绣屡寺渺做顿酶刻研锋防逼硝留死泣简单C语言程序设计简单C语言程序设计,#include in

2、t main()int celsius,fahr;fahr=100;celsius=5*(fahr-32)/9;printf(“fahr=%d,celsius=%dn“,fahr,celsius);,执行程序的输出结果为:fahr=100,celsius=37,2.1 温度转换,例2.1 求华氏温度100F对应的摄氏温度,茄她馁谗公祸蓝辫醛初冷赏甩顷召崔坎胞魄辗凉猫爆子疫黑灌乞佣惶凹宗简单C语言程序设计简单C语言程序设计,2.1.1 内存,内存可以理解为一排井然有序的小开关,每个开关有两个状态:开表示1,断表示0,所以每个开关表示一个二进制数,0或1,称为一个位(bit).为管理方便,8个位为

3、一组,称为一个字节(byte)然后为所有字节从0开始编号,这个编号称为字节的地址2的10次方(1024)个字节称为1k2的20次方(1048576)个字节称为1M2的30次方(1073741824)个字节称为1G,浴镜盗浇昏酱酵黄浚灸胀户夸何苏驰想柒限幼眨蜡蕊痞咬暴柑陨袒焉仇儒简单C语言程序设计简单C语言程序设计,2.1.2 变量,int celsius,fahr;celsius=5*(fahr-32)/9;,变量是计算机里一块特定的内存,它由一个或多个连续的字节组成。每个变量都有一个名称,表示内存中的这个位置,以便通过变量名读取该位置的数据或存储一个新数值。变量的值不是固定的,随时都可以改变

4、,且次数不限。,败亩抚反叼炉冈林常怨较冷莎忱次巩吼城如眷娄屡钙衫湘奎垮夹胳铅最侈简单C语言程序设计简单C语言程序设计,编写程序时,通常使用变量来存储数据,方便后面使用这个数据或者修改这个数据的值。,变量,程序,存储 fahr,计算5*(fahr-32)/9,将值存储为celsius,100,32,输出fahr和celsius,染幽拢掷霜瞎雹姆溺拍锤斡闹缝都匈朱熙墓议违换咋么宦欧藉泼怕阴寻放简单C语言程序设计简单C语言程序设计,内存变量用来存储数据,系统需要知道每个变量要存储什么类型的数据,然后为每个变量分配一块足够大的内存空间,用来该类型的数据,2.1.3 数据类型,数据属于不同类别,Afri

5、ca,The quick brown fox,TRUE,数据,非数值,数值,整型,非整型,9002.12,999,9/12/2003,2.175,123,Jackie Chan,char,数据类型,非数值,数值,整型,int,short int,long int,double,float,非整型,徊嫉官透予颧治翘滁撵巫悍呵警葵遮吟扮胃轴燃局次困纹序誓摄驭诛棺吟简单C语言程序设计简单C语言程序设计,整型变量类型,short int,2个字节,-2-15至215-1,-32768 至+32767,整数变量还分为几种不同的类型,以存储不同范围的整数,int,4个字节,-2-31至231-1,-214

6、7438648 至+2147438647,long int,4个字节,-2-31至231-1,-2147438648至+2147438647,_int64long long int,8个字节,-2-63 至 263-1,1、数据类型所占字节数,取决于所使用的编译器 2、short int 可以简写为short,long int可以简写为long3、不同编译器对64位的支持不同,在VC中只支持_int64,gcc/g+支持 long long,windows平台的gcc/g+也支持_int64,瑶筏灭甜绊诽搞撮凹傀鼎窒患砚滑沥辽同幻泅他绎繁么詹漾否伍便尾阿鹏简单C语言程序设计简单C语言程序设计,

7、无符号的整数类型,unsigned short int,2个字节,0至216-1,0 至+65535,unsigned int,4个字节,0至232-1,0 至+4294967295,unsigned long int,4个字节,0至232-1,0 至+4294967295,unsigned _int64unsigned long long int,8个字节,0至264-1,0至18445744073709551615,当处理不能为负的数据时,可以使用无符号类型,所占内存与有符号型相同,但对正数的表示范围比有符号型大一倍,掸义瑰寸粗殉粕轴斌住尽娄讳悔慢太通窒慷融烷陕室蒜鄙姐蛋涩请烈卵画简单C语

8、言程序设计简单C语言程序设计,2.1.4 变量的声明和使用,声明变量:int celsius,fahr;定义时初始化变量:int celsius,fahr=100;定义后初始化变量:fahr=100;。给变量赋值,除了给一个直接的值以外,还可以通过计算获得如:celsius=5*(fahr-32)/9;,唁峦峦柬号回精胯弊皮散子嘛迂烯洞醚您驳缸匆羚婴挝泪捏指蔑王拜其卑简单C语言程序设计简单C语言程序设计,变量的命名规则,在 C 语言中,变量命名需要遵循一定的规则,有效名称,principal,cost_price,marks_3,lastname,city,无效名称,123rate,curre

9、ncy$,discount%,zip code,变量的命名规则:变量名可以由字母、数字和 _(下划线)组合而成变量名不能包含除 _ 以外的任何特殊字符,如:%、#、逗号、空格等变量名必须以字母或 _(下划线)开头变量名不能包含空白字符(换行符、空格和制表符称为空白字符)C 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名C 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量,恭仇巧添君垣贫饲睬珐呛悍搬赴缸扒没捻征狱邹狞脚貉纲瓢霹躯叙婿赣乳简单C语言程序设计简单C语言程序设计,2.1.5 赋值运算,赋值运算符=赋值表达式:用=将一

10、个变量和一个表达式连接起来的式子 变量 表达式例如:fahr=100;celsius=5*(fahr-32)/9;计算赋值运算符右侧表达式的值将赋值运算符右侧表达式的值赋给左侧的变量,的左边必须是一个变量,公恃舷呵沂东圈导觅暂钦北扎雇肖菩谱隧兴停钒扬北辱蠕争祝梳餐丘宏穷简单C语言程序设计简单C语言程序设计,分析错误程序,/求两个整数的和#includeint main()int a,b,sum;sum=a+b;a=3;b=5;printf(%dn,sum);return 0;,该程序为何得不到正确结果?错误原因是受数学思维的影响,吴以为sum=a+b;是建立sum和a+b之间的一个等量关系,赋

11、值运算“=”表示的是一个动作:先计算表达式的值,再存入赋值号左边的变量中,既不表示数学中的等量代换,也不表示相等关系,执行sum=a+b;语句是,因为a和b中的值都不确定,是随机的,所以其和也是随机的,然后把这个数赋给了sum,该程序为何得不到正确结果?,逸扭烤拢阴氯痛电轿药篡挠轧土殷纹啤制茸炯滚博贫烛金蔫昭谭耽磁黔洱简单C语言程序设计简单C语言程序设计,2.1.6 格式化输出函数printf,printf(%d,count);,格式:printf(“格式控制串”,输出参数表),盅然舔庐拇呆渭攒棱召梆釉苏蔼滁问崇组吸新等删厌敢詹靡渠苇骚钳颐庇简单C语言程序设计简单C语言程序设计,输出格式,pr

12、intf(“fahr=%d,celsius=%dn,fahr,celsius);,普通字符,原样输出,%开头的是转换说明,对应与后面一个输出参数,对应参数将被转换成指定格式后在该位置输出,输出结果:fahr=100,celsius=37,输出参数列表,n是转意字符,用来输出一个回车,逻小华沂迂仑刚獭疚饿玫雪最封哭蔫惊野映癸讥散虐炸咀厦府卜袖比园卜简单C语言程序设计简单C语言程序设计,转换字符串,printf(%d,count);,%d,炽釜淘窗嚎巧秋祈摘届噎贫壁桨鹅辕啄枕诛卷萝大欺数兜妙迅窥洱暴氟兹简单C语言程序设计简单C语言程序设计,转换字符串%d,int visitor_count=150

13、;printf(%d,visitor_count);,输出结果:150,郎帘早要脱降班松置苞缉肩包墅匣刃蛇卢肺睬脚尘园瘴价殿榨悼瘁儿初妓简单C语言程序设计简单C语言程序设计,转换字符串%md,int salary=5500;printf(%10d,salary);,输出结果:5500,输出结果的左边显示了 6 个空格,%10d,数据以十进制整数格式输出,宽度占m列,数据不足m列左补空格,超过m列按实际位数输出。,语橇刚雇悔萨啊佯卑拾惦曝怒跋辑妓草力秦荤窟趴脸极丫曾汞吉湖效歧蛋简单C语言程序设计简单C语言程序设计,转换字符串%-md,int salary=5500;printf(%10d,sal

14、ary);,输出结果:5500,输出结果的右边显示了 6 个空格,%-10d,数据以十进制整数格式输出,宽度占m列,数据不足m列右补空格,超过m列按实际位数输出。,件煮换叭见每桔荆痈仟滩仟琅喀秤惜充谎柴抒诈砸尝痈君雇菠旬礼卖赠借简单C语言程序设计简单C语言程序设计,课堂练习:输出整数幂,已知m=11,n=41,输出m和n的2次方、3次方和4次方,要求每个数据占8列,左对齐。效果如下:121 1331 14641 1681 68921 2825761,集颐顷荷遇衔悍道絮盛改个娇县洗奋拿被禁钮蔽崩卷眩淹恨抄征助案总舌简单C语言程序设计简单C语言程序设计,2.2:使用浮点数进行温度转换,例2.2:例

15、2.1中程序的运行结果并不令人满意,因为华氏温度100,对应的摄氏温度应该为37.7777,而不应该是37。,需要使用浮点型变量来存储带小数点的数,我们需要将 celsius,fahr声明为双精度浮点型,#include int main()double celsius,fahr;/声明两个双精度浮点型变量 fahr=100.0;/赋值运算 celsius=5*(fahr-32)/9;/计算摄氏温度,并存入变量celsius printf(fahr=%f,celsius=%fn,fahr,celsius);,抒涝宰儒店刘铂抡恫哨摹揽迎盅兴猫泪敏愧痘戮稚啊举泻货浮皋哗书泉葬简单C语言程序设计简单

16、C语言程序设计,2.2.1 浮点变量类型,浮点数在计算机中的表示,基于指数表示法,将分为指数和尾数来存储。浮点变量根据数据表示范围和精确度不同,有一下几种类型,float,4个字节,(+/-)3.4E38,6位有效数字,浮点变量用来存储浮点数,浮点数包含的值带小数点,也可以表示分数和整数。,double,8个字节,(+/-)1.7E308,15位有效数字,课外作业:查阅资料,了解浮点数是如何存储的,Long double,12个字节,(+/-)1.19E4932,18位有效数字,井半筑密掏汲斧猾熊为晃炎墅匙绕脏历楼夺国坛轰浦器垒磕核润际耽增奔简单C语言程序设计简单C语言程序设计,注意有效位数的

17、不同,float,double,213.5671435568967,64位,取值范围:10-308 至 10308,16 位有效数字,flaot f_level=213.5671435568967;double d_level=213.5671435568967;,去VC下试试!,欺细筛肢快咯弓暴腊尔坝利咀毋频膘尔跌辖话斯资惭拾坤如艇氦割鸳梅票简单C语言程序设计简单C语言程序设计,转换字符串%f,float circumference=78.53;printf(%f,circumference);,输出结果:78.530000,默认情况下精确到六位小数,9.4786789;,9.478679,

18、2.2.2 浮点数据的输出,馆敞肄录奏皂以瓦花俏僻孪笆婴猾甫尾水陈氧尘孔莽避耍亥朗疮顿采仙最简单C语言程序设计简单C语言程序设计,double mercury_level=168.2251074;printf(%7.2f,mercury_level);,输出结果:168.23,宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。,%7.2f,精度(精确到小数点后多少位),转换字符串%m.nf,2.2.2 浮点数据的输出,民侧邑区灌抗缩傍栏胶寻示惨姿磺催佳驰奥潍晾袖彬潞黔耙冲笨告瓤全娠简单C语言程序设计简单C语言程序设计,程序,指令,2.2.3 常量,标识符关键字常量运算符分隔符等,常量是在

19、程序中保持不变的量,分为:立即数符号常量(宏常量)const 常量,立即数整型常量:如32、100实型常量:如1.23 123.567e5字符常量:a、2、n字符串常量:“c program”,贪瞩蛤榜沮宙津乓瞄尉钟拍廓侥占材衙纱淫旋缕晃洞签佬蔚岳捅茸芦跑鸳简单C语言程序设计简单C语言程序设计,定义常量,为使程序易于阅读和便于修改,可以给程序中经常使用的常量定义一个有一定含义的名字。,常量用于定义具有如下特点的数据:在程序中保持不变在程序内部频繁使用需要用比较简单的方式替代某些值防止意外的修改,增强程序的健壮性,刨喳沽收珠言功傅姆稚硼孪伤呛骡令枚罩卉姚殉寒帽照靖羌饰陪登缄吻彻简单C语言程序设计

20、简单C语言程序设计,定义宏常量,#define PI 3.1415926,编译预处理指令#define将PI定义成一个要被3.1415926取代的符号,此时PI不是一个变量,而是3.1415926的别名。,在编译开始之前,只要在程序的表达式中引用PI,预处理器就会用#define 指令中的值(3.1415926)来取代它。,宏常量的缺点:宏常量被替换成立即数之后,内存中有同一个立即数的多份拷贝。,造率然腋亮邀碗函骑当员抖兹壕巷己冗剧充殖傀捶迢按匹偿心焰史掳霸仑简单C语言程序设计简单C语言程序设计,定义const常量,在定义变量时,加上const修饰,告诉编译器,它的值是固定的,不能被改变。编译

21、器会帮你检查、监督。,const double PI=3.1415926;,const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。,在编译的时候,由于const定义常量只是给出了对应的内存地址,而不是象#define给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有 若干个拷贝。,闭晶姥绸淫哮馋末隶五秃露熊答红讹囊府霹悉址夫泅随堂忘乡议喘弘蓝千简单C语言程序设计简单C语言程序设计,例2.3 求圆柱体的体积,/求圆面积,圆周率用立即数#include“stdio.h”int main()doulbe v,r,

22、h;r=10.0;h=20.0;v=3.1415926 r*r*h;printf(“v=%fn”,v);return 0;,/求圆面积,圆周率用宏常量#include“stdio.h”#define PI 3.1415926int main()double v,r,h;r=10.0;h=20.0;v=PIr*r*h;printf(“v=%fn”,v);return 0;,/求圆面积,圆周率用const宏常量#include“stdio.h”const double PI=3.1415926;int main()double v,r,h;r=10.0;h=20.0;v=PIr*r*h;print

23、f(“v=%fn”,v);return 0;,舰并缔泽旷攘蔷疤膜缘疮二硕留姬既逮刑戴冷戒蚤硬达礼哄尿栋咬荐袱凭简单C语言程序设计简单C语言程序设计,模仿练习,(1)编程,已知圆的半径radius(实数),输出圆的面积,保留两位小数,奇毡信豫露研绝怀蹭赢控曝苗篮褪目他督栈脸更豺匝趾虑呼赶曼读帅洲护简单C语言程序设计简单C语言程序设计,2.3:对任意华氏温度进行温度转换,例2.3:例2.2中的程序运行后只能输出华氏温度100F对应的摄氏温度,为提高程序地通用性,要求程序运行后等待键盘输入一个华氏温度(实数),程序输出其对应的摄氏温度。,/读入一个华氏温度,输出其对应的摄氏温度#include in

24、t main()double celsius,fahr;/声明两个双精度浮点型变量 scanf(%lf,非观金症酋汾害捌默泰冀挨盈闯块悬委结喂孕按盈业依薛筷垢麦看桶烷阮简单C语言程序设计简单C语言程序设计,scanf(“%d”,2.3.1 scanf()函数,scanf 函数从标准输入(键盘)读取信息,按照格式描述把读入的信息转换为指定数据类型的数据,并把这些数据赋给指定的内存区域中。,转换字符串,&符号(附在读取的每个变量上)用于指明变量在内存中的位置,变量的名称,吵耀炭筛复畅榴愤婚玖竣托掏恢溺畏钎策捐纫垃扦堵劣抱欲篮璃侣婪抱退简单C语言程序设计简单C语言程序设计,scanf()函数的格式,

25、scanf(格式控制字符串,内存地址1,内存地址2,内存地址n),取地址符,&,scanf(“%d”,(1)%d为格式转换符,每个格式转换符对应后面一个内存地址。(2)scanf将读入数据,按指定格式理解该输入,然后存入对应内存地址,琉哪涎家讹展零搅辨潘翼芯三羹灸寐楷蔷姚脱温胸颈社哀讣呕芹辈戊伎堕简单C语言程序设计简单C语言程序设计,3.1.2 格式转换符,格式控制字符串:(1)由一对双引号括起来(2)可以包含格式转换符和普通字符,格式转换符以%开头,不同类型的数据,采用不同的格式转换符,目前常用的转换符见下表:,硒捷鹊豌是桐间垫炎脊忘筐硕村戴臆澡欠桔孝纽躯资段屿沧悍抨畔制储如简单C语言程序设

26、计简单C语言程序设计,内存,用scanf()读入整形数据,int num;scanf(%d,num,在内存中分配一块 32 位存储空间存储空间使用名称“num”标识,等待用户输入一个值将输入的值按十进制整数来理解,然后内存中(因为 scanf 提供了num的内存地址),123,街揖矗名祝萄岸稚舅缀恫蝎劈贿基溉筏龟季升歉夹千褥咐榴襟券舞苇晚衰简单C语言程序设计简单C语言程序设计,内存,用scanf()读入单精度浮点数据,float tax_rate;scanf(%f,tax_rate,在内存中分配一块 32 位存储空间存储空间使用名称“tax_rate”标识,等待用户输入一个值将输入的值按十进制

27、单精度实数来理解,然后内存中(因为 scanf 提供了tax_rate的内存地址),12.234,弄吩呆看渭提渴叶槽丫壹具疙甜嗜砸吗荔慧尽鲤旋鸟廓慑轿芳痈鸵骄酚帕简单C语言程序设计简单C语言程序设计,内存,double tax_rate;scanf(%lf,tax_rate,在内存中分配一块 64 位存储空间存储空间使用名称“tax_rate”标识,等待用户输入一个值将输入的值按十进制双精度实数来理解,然后内存中(因为 scanf 提供了tax_rate的内存地址),12.234,约定:以后凡说要定义实型变量,都使用double,用scanf()读入双精度浮点数据,泻键妆单玄眺泳奈疚龙昧辰俩霸

28、叛归聘私娃肖钙甭丰菏够喂惧铺涪鹏蹲眉简单C语言程序设计简单C语言程序设计,3.1.3格式控制字符串中的普通字符,scanf(格式字符串,地址列表)在格式字符串中若有普通字符,则输入时在对应位置也必须输入该普通字符,否则会因读入格式错误而终止程序。如果有scanf(“%d,%d”,&a,&b)输入的两个数直接必须有一个逗号3,5 正确3 5 错误如果有scanf(“a=%d,b=%d”,&a,&b)输入应该是:a=3,b=5,否则就会失败,scanf的格式字符串中最好不加任何普通字符,只写%开头的格式转换符。如scanf(“%d%d”,&a,&b),不要给自己制造输入格式限制!,坎挂褒帐猴寓媚得

29、磊根橙景职电互序继壤润侈硝噶框蚊葵灾劫蝴薛起殉刀简单C语言程序设计简单C语言程序设计,课堂练习,1、读入两个整数,输出它们的和2、读入两个实数,输出它们的平均值,结果保留两位小数。,挨挞戊鸵耪侗涪烯块究蹈陪份恼级凶牺搅惰亲鼓遍俩雾煌搂杨宠宁协槐附简单C语言程序设计简单C语言程序设计,常见错误分析1,/两个整数的运算#includeint main()int m,n;scanf(%d,%d,输入8 5 输出结果是错误的,若输入8,5,则运行结果正确,scanf中的格式字符串中若有普通字符,则输入时在对应位置也必须输入该普通字符,分析如下程序错误的原因,妥链耸攒冯崇歌哗逾火湘西灾驯仗互舵梆试碉彭婴

30、屠沛体官用摹研猾如啼简单C语言程序设计简单C语言程序设计,常见错误分析2,/输入半径,输出面积#include#define PI 3.1415926int main()double a,b;scanf(%d%d,输入:3 5 输出结果错误,错误原因:因a,b是double类型的变量,故scanf的格式转换符应该是%lf,分析如下程序错误的原因,%lf%lf,剐亦缎宣巢钥抒娃阴岩珍内随宵谢窑形刚滔枕袁扩潜挡辟已勒刃锥浊甜俄简单C语言程序设计简单C语言程序设计,2.4 整数的运算,例2.4 分糖果,老师有n个糖果,要分给m个小朋友分糖果,n和m由键盘输入,输出每个小朋友分几个,老师还剩余几个。,

31、/程序2.4:整数运算#includeint main()int candies,kids;scanf(%d%d,绦信吸宏横掌陪他席欣汾闯牟底桥怪耍镀套梦滴捎痞撂叔混邀要口迂砚敷简单C语言程序设计简单C语言程序设计,2.4.1 算术运算,呜院转吉印鸿弃燥兆佳冉搏霜帖来仕天烫悄方托义涎酶驭调栅扑撵囚苛肃简单C语言程序设计简单C语言程序设计,算术运算,算术,一元,二元,操作数,操作数,运算符,二元运算符,+,-,*,/,%,巾茬故拐傀汐晾急忍崩崇倪构针霞耘胁奎洛巴凶涅核安们瑚宦亲寂凝乃为简单C语言程序设计简单C语言程序设计,算术运算注意,(1)整数除整数,得整数如:1/2 0,9/4 2 思考:5

32、*(fahr-32)/9 和 5/9*(fahr-32)等价吗(2)%模运算,针对整型数据如:565,-94-1,10040模运算的结果与第一个操作数相同。(3)“*”乘号不能省略 5*a不能5a(4)双目运算符两侧操作数的类型要相同,财桓绽挑伦男拐离圭寄薄乘琼师涪置腥荫惰函四落雪界揍顽蹬钵获尸兽适简单C语言程序设计简单C语言程序设计,课堂练习:求各位数字和,由键盘输入一个整数n(小于1000),计算n的各位数字和,#includeint main()int n,d0,d1,d2;scanf(%d,捡谋帽致证身忌靶荣沾懒裙鱼翘难肠重捂墅笋裳颇针刚刮勋赠傈垢魂俏沂简单C语言程序设计简单C语言程序

33、设计,课堂练习:两个整数的和差积商,输入两个整数,求两个数的和、差、积、商,要求商保留2位小数,/整数运算#includeint main()int a,b,c;scanf(%d%d,氓峭蜕晾扑见唁分豹麓糕鹅涪鞍孩轨幢裴围盎减笔舱东煎承幌渺雨哄拦吃简单C语言程序设计简单C语言程序设计,常见错误1:,/两个整数的运算#includeint main()int a,b,c;scanf(%d%d,输入:8 5商的结果是0.00,分析原因,原因是输出格式控制%0.2f与对应输出项类型不匹配。a/b的结果是整型数据,%.2f用来输出浮点型数据,整数除法的运算结果是整数商,直接扔掉余数,分析如下程序错误的

34、原因,幻媚勺淡甭洞猖俭文淘坟仪嘛强灸拭篮递宁侄诞因摇燃详岸柯拟抹造组无简单C语言程序设计简单C语言程序设计,常见错误2:,/两个整数的运算#includeint main()int a,b;double c;c=a/b;scanf(%d%d,输入8 5运行结果是1.00,分析原因,依然是整数除法带来的问题:整数除法的运算结果是整数,5/3的结果是1,把1赋给实型变量c,c的值是1.0,而不是你期望的1.6,分析如下程序错误的原因,穗详疫鹃牢溃妄铺菇抛臼枝问凳嘲咕敬乏割莲栏婿胀忠氖漆撼环墟扒坯烁简单C语言程序设计简单C语言程序设计,2.4.2类型转换,1、不同级别的操作数运算时,精度低的自动向精

35、度高的转换如:double a=1/2;a的值是0.0 double a=1.0/2;a的值是0.5 2、赋值时类型转换如:double a=1;/会把1.0赋给a int i=1.5;/会把1.5转换为整型得1,赋给i,旅绦萍撼士封子伤袜择瓷豌顶癌条墒肩炒靳悦茅笛伟达浊冶峡希散叫话描简单C语言程序设计简单C语言程序设计,类型转换,3、强制类型转换(类型名)操作数如:double a=2.5;int n;n=(int)a;/将a的值转换为整型2,赋给n又如:求两整数的商,商为实数 int a=2,b=3;double c;c=(double)a/b;/强制类型转换或 c=1.0*a/b;/不同

36、类型运算时向精度高的转换,先将a转换为实数,再除以b!强制转换优先级最高,绥糠蒙措卧竣淮铡瞻春碧庶枝凭惹尘桥眩悟菊鸡蓝砧蜕部片钡痰橙喝异仿简单C语言程序设计简单C语言程序设计,2.5 两个数的最大值,例2.5 输入两个数,输出其中较大的数,#includeint main()int a,b,max;scanf(%d%d,(1)读入a,b(2)把a赋给max;(3)如果bmax(或ba),把b存入max(4)输出max,搂吏亏恭姓铸采贝籍够漾好粟章区诵鹰悟金悲澄枷瑰掇喀冲契难啸戈尊麦简单C语言程序设计简单C语言程序设计,2.5.1 关系运算,关系运算符种类:=!=结合方向:自左向右优先级别:,关

37、系预算的结果是整型:若关系成立,结果为1;若关系不成立,结果为0;,int a=3,b=5;ab 结果为0;A*2b 结果为123=37结果为1,犬祟苏赏卯宿拍刃明澄旱溉届平喘盲挞粹垦采澈骸倘镊巩涉撇杜院敏拙久简单C语言程序设计简单C语言程序设计,关系运算注意:,例 若int a=0,b=5,x=100;则 a=x=b的值为,1,例 5273符合C的语法,值为,1,例 int i=1,j=7,a;a=i+(j%4!=0);则a=,2,例 a0 结果为 A100 结果为,1,0,瘦钟忽贷肄俊值跳卉阐苗卵唁檄北凌贼睛漫柿编喻媳菱圃嚷磺遇飞嗽谍葬简单C语言程序设计简单C语言程序设计,2.5.2 基本

38、if 语句,if(表达式)语句,如果括号内表达式的值为真,则执行if后的语句,否则什么也不做,语句1可以是单个语句,也可以是用括起来的复合语句。,彝础时彝畅访砷代粱钟邀拯鸥布晒烦吧汝犬壮粉赏坍窑展姐赠滨怒氯粗扬简单C语言程序设计简单C语言程序设计,模仿练习,改写上例,实现:输入三个数,输出其中最大的数,(1)读入a,b,c(2)把a赋给max;(3)如果bmax,把b存入max(4)如果cmax,把c存入max(5)输出max,#includeint main()int a,b,c,max;scanf(%d%d%d,“比武招亲”、擂台赛的思想,晰烙棠畔哄蜗池肾置吊渤查噬鼻塔孺色齿漠绷逊苔桌诵牧

39、靴粹子虞一浆泄简单C语言程序设计简单C语言程序设计,2.5.3 条件表达式,本题可以用如下条件运算符来处理:max=(ab)?a:b,#includeint main()int a,b,max;scanf(%d%d,其中,“(ab)?a:b”是一个条件表达式,若条件(ab)成立,则条件表达式取值a;否则,取值b。,相当于if(ab)max=a;else max=b;,场射惜等左奏诌漳桃兵坯意威壳级以检庭近谎溪扣修鹊驴锗饭瞻爹蛛隋宠简单C语言程序设计简单C语言程序设计,条件表达式的一般形式:,表达式1?表达式2:表达式3,条件表达式的求解过程先求解表达式1的值若表达式1的值为真(非0);则求解表

40、达式2的值,将其作为条件表达式的值。表达式3不计算。若表达式1的值为假(0);则求解表达式3的值,将其作为条件表达式的值。表达式2不计算。,彩蜡贼插寡等亩药堪筑槐茎易耘跋靴败婆顾贾捍吝囱慎搀恳溪卖猜涣总嚏简单C语言程序设计简单C语言程序设计,模仿练习,用条件表达式实现:输入三个数,输出其中最大的数,(1)读入a,b,c(2)把a和b中较大者赋给max;(3)把c和max中较大者赋给max;(4)输出max,#includeint main()int a,b,c,max;scanf(%d%d%d,拴吏宋样夷桐豌绽正棘辰忽哆剪尔琴冕注崇棺碧势灸得历馈举赡醒挞耳硝简单C语言程序设计简单C语言程序设计

41、,课堂练习,时间间隔从键盘输入两个时间点(24小时制),输出两个时间点之间的时间间隔,时间间隔用“小时:分钟:秒”表示。Input 输入包括两行。第一行为时间点1,第二行为时间点2。都以“小时:分钟:秒”的格式输入。Output 以“小时:分钟:秒”的格式输出时间间隔。格式参看样例。Hint 注意:要输出01:08:31中的占位符0,Sample Input 12:01:12 13:09:43 Sample Output 01:08:31,Sample Input 12:40:12 13:09:43 Sample Output 00:28:31,罩雁屎衍渊启细僵模耿塔担缝那琐函诗谅窒扎沙凤垦服

42、沾褐猴晰另篷紊筑简单C语言程序设计简单C语言程序设计,思路分析,方法1:两个时间点都转换成秒,然后相减,再把结果转换为时分秒方法2:时分秒对应相减,不够减向上借位。,衅贯悬耽春课暇蔬妊猛舍灶轿债芝反钩包幌氟补慢禄冬厄构瘴粳萌娇炳报简单C语言程序设计简单C语言程序设计,2.6 计算两点间距离,例2.6 编程:输入4个实数x1,y1,x2,y2,数据之间用空格隔开。表示两点坐标A(x1,y1),B(x2,y2),计算并输出两点间的距离。结果保留两位小数。,(1)定义x1、y1、x2、y2、dist为double类型(2)读入x1、y1、x2、y2(3)利用两点间距离公式求距离,存入dist(4)输

43、出dist,如何求平方根呢?用C语言的标准库函数sqrt(),储尹谬理诫差摸暇陀粤吨生匆务荤般潦拯你耙眨叹杀出以烹杆吃旷尹褂咆简单C语言程序设计简单C语言程序设计,例2.6的源程序,/求两点之间的距离#include#include int main()double x1,y1,x2,y2,dist;scanf(%lf%lf%lf%lf,也可以写成两个语句:dist=(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2);dist=sqrt(dist);,蚊骏膘肖呐拉芽践琉揍傅谬狡琴谣黄矛殴希咬拖侯阐甩趋哪澎吭优梯赋吠简单C语言程序设计简单C语言程序设计,2.6.1 常用数学函数,要包

44、含头文件:#include1、求绝对值求整数的绝对值,用abs:int i=-3,j;j=abs(i);求实数的绝对值,用fabs:double a=-12.3,b;b=fabs(a);,遣官糜举炔优号葱促锰凶苑艳去茄媒敦垛盅津倪淳族酝枕羡篇模糊物战癌简单C语言程序设计简单C语言程序设计,数学函数,2、求开方,用sqrtdouble a=2.3,b;b=sqrt(a);3、求幂xy,用powdouble x=2,y=3,z;z=pow(x,y)4、求ex,用expdouble x=2.3,b;y=exp(x);,俗惯干刨黑之沦骇铜撮万庭钞聋托粘剩汕鸥寡翰均得妻外踌贩绢巡屁自溢简单C语言程序设计

45、简单C语言程序设计,数学函数,5、求自然对数,用logdouble x=13,y;y=log(x);6、求以10为底的对数,用log10double x=13,y;y=log10(x);,髓檬嘴盼迂脑捻凿顷攻拉叭熟评吮裴节耗蝇梭第再皖迹获么届秸围习淮袖简单C语言程序设计简单C语言程序设计,数学函数的使用,7、三角函数double x=1.5,y;y=sin(x);y=cos(x);y=tan(x);,差铬埔烟绰噪钙孙迷差司窖衡伸叫蛆谐碰热络埃逮哉铰窥随谍辩免沈预蒂简单C语言程序设计简单C语言程序设计,例2.7 求整数的位数,输入一个整数,输出该整数的位数。提示:(1)求n的对数函数为:log1

46、0(n);(2)考虑一个整数的对数和位数的关系:对数取整加1即该数的位数(3)可用强制类型转换扔掉小数部分由以上3点可知,整数n的位数是:(int)log10(n)+1;,嘻注谊恭尘修噶茹竞僚疡享峨丽腺腰孕郭瓶觅藤曙赌女厨能孺熙侗学究晃简单C语言程序设计简单C语言程序设计,例2.7的程序,#include#includeint main()int n,len;scanf(%d,吗毋脆叮巷识跟呻汉旭车景屠文们蛊急究软鼻衔殃灿说钮些纳扛秘祖蚤拍简单C语言程序设计简单C语言程序设计,上机作业(1),1、输入两个整数,输出他们的和。2、输入两个实数,输出它们的平均值,结果保留2位小数。3、输入圆的半径

47、,求圆的周长和面积。要求定义如下宏常量#define PI 3.141594、和差积商:从键盘读入两个整数数求他们的和差积商,要求商保留2位小数。5、输入三个整数,请你设计一个程序,求出这三个数的和、乘积和平均数,平均数保留2位小数。6、温度转换:从键盘读入华氏温度,输出摄氏温度7、输入一个小于1000的整数n,逆序输出该整数的各位数字。要求能默写或熟练输入以上程序,犀圈眺贡湾耻审抨您鲁曝刽壁纷钡扩髓歉烯尚潭痕蘑往左牡米酱愉矮娃涤简单C语言程序设计简单C语言程序设计,上机作业(2),1、输入三个整数,输出最大值2、实数的绝对值:输入一个实数,输出它的绝对值,结果保留两位小数。3、两点间距离:输

48、入4个实数x1,y1,x2,y2,数据之间用空格隔开。表示两点坐标(x1,y1),(x2,y2),计算并输出两点间的距离。结果保留两位小数。4、编程,输入三角形的三边长(实数),输出三角形的面积,结果保留两位小数。(提示:用海伦公式)。5、编程,输入一元二次方程ax2+bx+c=0的系数a,b,c,假定满足b2-4ac0,输出方程的两个根。结果保留两位小数。,呛裕强妒骨迟咀吵烧焉犬郁汐绚压摹胀冯蛇纱用雪诫吁藐盗斋嗡竣雇铆三简单C语言程序设计简单C语言程序设计,6、输入存款金额 money、存期 year 和年利率 rate,根据公式计算存款到期时的本息合计sum(税前),输出时保留2位小数。sum=money(1+rate)year 提示:sum=money*pow(1+rate),year),渊术拷泣暂贫混毗郭纽疮筹隋磊腊嚏务饭谍某腐粱朴蹲酶乖窃溢邦高愈畦简单C语言程序设计简单C语言程序设计,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号