《盘算机C措辞—第五章(附上机题目汇总)》由会员分享,可在线阅读,更多相关《盘算机C措辞—第五章(附上机题目汇总)(62页珍藏版)》请在金锄头文库上搜索。
1、答疑时间每周三下午2:30-5:30信息中心810自愿棕浙倍氧咒状蜀妊蛀淖排恭古幸衍撒饲镇汤央寻窑吉淬悼胰愤奄框萝两部计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)第5章,选择结构程序设计选择结构是三种基本结构之一,特点是:根据给定条件,:成立时执行一组操作,不成立时执行另一组操作。C中选择结构利用if语句实现。5.1,关系运算符和关系表达式,关系运算是比较运算,结果为逻辑值“真”或“假”。(前已讨论算术、赋值、逗号。现讨论关系、逻辑表达式、条件,前两者的值域为真或假,即1或0)。5.1.1,关系运算符及其优先级,关系运算符有6种:,、,=,:优先级为6级,=,=,、
2、!=,:优先级为7级,结合性为从左到右哎练抖神辕溜业滑蹋佩童痈侣塘淋孙烦黎荐挞层染柑驳捷鸭尚拆侗戊幕篮计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)关系运算符和其它运算符优先级的比较:,高,逻辑运算符:!,(2),算术运算符:*,、/、%(3),+、-,(4),关系运算符:,、,=(6),=,、!=(7),逻辑运算符:&,(11),|,(12),低,赋值运算符:=、,+=、,-=、,*=、,/=、,%=(14)由于存在优先级,因此下面表达式是等价的:,a(a+b) aa+b(ab) !=c ab != ca=(bc) a= =bc) a=bc关系表达式关系表达式赋值表
3、达式,赋值表达式,思考,和一般思考,和一般习惯有何不同习惯有何不同践窄兰载咸英俗醚堵穴窗戈酥镐切玛三地炼雷勤截狞月委吗选寒彤榴渤凹计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)关系表达式:用关系运算符将两个表达式(算术、关系、逻辑、赋值、字符)连接起来的式子。,如:a,b,、,a+b,b+,c,、,(a=3),(b=5),a,b),(c,b,真,a,b,=,=,c,真,b,+,c,b,d的为1,f,=,a,b,c,f,值为0思考:能否用一般意义的2x,b)&(xy)可写成ab,&,xy,(a=b),|(x=y),可写成a=b,|,x=y,(!a),|,(ab)可写成,
4、!a,|,ab! a & b | xy & c癌冷瘤躇指眯眼轰沈质辟召獭一显呐趣巧拼择惨淤蔫极渝复拐浩鹅浊彪肚计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)5.2.2,逻辑表达式,在逻辑表达式中参加运算的数据可以是常量、变量、表达式。main(,)int,a=,-5,i,j,k,l,m;,float,b=0.01;,i=,!a;j=a,&,b;,k=,a,|,|,b;,l=(5,3,&,2,|,|,84-,!0);,m=,a,9,;,printf,(“i=%d,j=%d,k=%d,,l=%d,,m=%dn”,i,j,k,l,m);运行结果:i=0,j=1,k=1,l=
5、1,m=0参加运算的数据参加运算的数据非非0值值 真真 0 假假逻辑运算的结果逻辑运算的结果真真 值为值为1假假 值为值为0拣款滨协抖嘘魄庄钓讼袋括且哦硒挪鳃享碱悍囚拖碌座潮辖诵铱辆赶矩径计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)在逻辑表达式求解过程中,所有逻辑运算符并不一定都被执行。只有在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。1.逻辑与运算符:,&如有逻辑表达式:a,&,b,&,c执行过程是:当a为0时,b和c不用再判断了,逻辑与运算符将不再执行,结果为0,否则还要继续后边的运算。abc 0(假)假)非非0(真)真)0(假假)非非0(真)
6、真)1(真)(真)0(假假)0(假假)改剧使刘舞哉眯梢凑冕弗陷砰怎照励窑堤动她茂准互狰脏不惰税清阁接殖计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)2.逻辑或运算符:|,|如有逻辑表达式:a,|,|,b,|,|,c执行过程是:当a为非0时,b和c不用再判断了,逻辑或运算符将不再执行,其结果为1,否则继续执行后面的运算。abc0非非0(真)真)非非0(真真)非非0(真真)0(假)(假)1(真真)0誊囤炔芽墒源滚饶庞蒂刀矛乘尽乳誉叛巷裁觉教矢寝秤损诸凌惩丹虐酗舔计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)main(,)int,a,b=0,c=0
7、,d=0;scanf(“%d”,&a);d=a,&,(b=5),&,(c=3);printf,(“a=%d,b=%d,c=%d,d=%dn”,a,b,c,d); 1 a=1,b=5,c=3,d=1 0 a=0,b=0,c=0,d=0 输入:输入:输出:输出:器虽搓急陡横品湃攫艰笑盆辆刷汛诚挽肃峙丽拈食闷怎墨宣柠毕诀混辰禁计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)main(,)int,a,b=0,c=0,d=0;,scanf(“,%d”,&a);,d=a,|,|,(b=5),|,|,(c=3),;,printf,(“a=%d,b=%d,c=%d,d=%d,n”,a,
8、b,c,d);, 1 a=1,b=0,c=0,d=1 0 a=0,b=5,c=0,d=5 输入:输入:输出:输出:瞳与憋凳肢拘塘雏嚏昆浇单喜昏竿谢就仪倚拨情含疯隧踏图揩彩竹榜婆雇计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)在C中,巧妙地使用逻辑表达式,可以表示一个复杂的问题如:关于闰年问题:符合下列条件之一,均为闰年。(1)能被4整除并且不能被100整除(2)能被4整除并且能被400整除其逻辑表达式为:(year,%,4,=,=0,&,year,%,100,!=,0),|,|,(year,%,400,=0,&,year,%,4,=,=,0)由于能被400,整除的年份
9、一定能被4,整除,所以可省去了后一部分,即:(year,%,4,=,=0,&,year,%,100,!=,0),|,|,(year,%,400,=0,)若判断非闰年,只在闰年表达式前加,!即:,!(year,%,4,=,=,0,&,year,%,100,!=,0),|,|,(,year,%,400,=,=,0),堕臻硼咙燎攻懒海离腻楷祖纬鸡弛训菱变颅具曙奴威尝晒炕馅疲席袄牌翼计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)5.3,if,语句选择结构中使用的一种语句。根据给定的条件判别是否满足,以决定执行哪种操作。5.3.1,if,语句的三种形式if,(表达式),语句,表
10、达式一般为逻辑或关系,先对其求值,根据结果决定下一步该如何执行,但也可以是常量、变量、,各种表达式。其类型可以是整、实、字符型。语句可以是一句或复合语句,.。表达式表达式语句语句假假(0)真真(非非0)恰茹颊苹琉仓球茶椿鲤赣另耽跃储春咒配磕泰双漾掐流掣垢祝扦请腔煞度计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)main(,)int,x=0;,float,y=-5.6;if(x),printf,(“x=%dn”,x);if(y),printf,(“y=%fn”,y);if(0),printf(“,0=%dn”,0);if(xy),printf,(“x-y=%fn”,x-
11、y);if(y,-100),x+;y+;,printf(“x=%d,y=%fn”,x,y);,运行结果:,0=48缉捣冕吵肆轮雹遥猛北托庸廊痢玫某抨歇仁激沼趣上岿座鲸溅碗敷学供烫计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)2.,第二种形式的条件语句if(表达式),语句1,else,语句2main(,),int,x,y;,printf,(“please,input,x,yn”);scanf,(“%d,%d”,&x,&y);if(xy),printf,(“x=%dn”,x);else,printf,(“y=%dn”,y);运行结果:please,input,x,y,2,
12、_,5,输出:y=5,34,_,28,x=34,表达式表达式语句语句1语句语句2真真假假屉锐嚼垮瓶惮宋寒掐蛤向圾滴地猩撂丈硅控氰酉宿油姜派梯凹神泥婉逢窄计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)3.,第三种形式的条件语句,if(表达式1),语句1,else,if(表达式2),语句2,else,if(表达式3),语句3,else,if(表达式m),语句m,else,语句,n右图为:m=4n=5表达式表达式1假假真真表达式表达式2表达式表达式3表达式表达式4语句语句5语句语句4语句语句3语句语句2语句语句1真真真真真真假假假假假假俞豆剐妄捞谆粉鞭丹裁天赁夏轰义譬普洗缉
13、遥随拐祭鼠扫摊驼困寡买氦滇计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)例:,商店售货按购物的款数分别给予不同的优惠折扣。,设变量:n:购物金额,,c:优惠折扣百分比,,a:优惠后的实际款数main(,)float,n,c,a;,scanf,(“%f”,&n);if(n500),c=0.15;else,if(n300),c=0.10;else,if(n100),c=0.075;else,if(n50),c=0.05;else,c=0;a=n*,(1-c);printf,(“a=%fn”,a);输入:,输出:吁哇扬睛筏她求咎堂酬扒尽点蛛三无仍是去彪娃轴由妹丁扼樟氏佩铆诱
14、链计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)说明:1.执行if语句时,先判断表达式的值,为真时(非0),执行其后语句,为假(0)时不执行其后的语句,表达式可以是常量、变量、各种表达式。2.if的各内嵌语句用“,;,”号结束,但仍然是一个语句而非2个。3.if和else后面的内嵌语句若有多句,用,括起构成复合语句。例T5-1.c,输入两个实数,按代数值由小到大输出。main(,)float,a,b,t;,scanf(“%f,%f”,&a,&b);if(ab),t=a;,a=b;,b=t;,(/*这里不用;*/)printf,(“%5.2f,%5.2fn”,a,b);
15、,输入:,输出:海兢跟疫郊猜拎点关邵恤坦颖芋砌园归琉菜荡迪呸唤拆顷约枕棵姜顶颤成计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)例T5-2.c输入三个数,按从小到大的顺序输出(请同学们自己思考)main(,),float,a,b,c,t;,scanf(“%f,%f,%f”,&a,&b,&c);if(ab),t=a;,a=b;,b=t;if(ac),t=a;,a=c;,c=t;if(bc),t=b;,b=c;,c=t;printf,(“%5.2f,%5.2f,%5.2fn”,a,b,c);,t,a,b,c,7,5,3,5,7,3,3,7,57,3,5,7输入:,输出:眶颠
16、够砷寥每渐肿矗浑佰骨喀柠华蛋垃磺杜染淡蜒溅被底栅司凌输怀梧昧计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)5.3.2,if,语句的嵌套嵌套:在if语句中,又包含1到多个if,语句一般形式:,if(,),if(,),语句1,else,语句2,else,if(,),语句3,else,语句4 条件成立时的内嵌语句条件成立时的内嵌语句条件不成立时的内嵌语句条件不成立时的内嵌语句总体上是哪种形式?,痪缘握厘咙沈襄忱倍秀丢漏艘嗡辞铺上梗淀淖烦蠕收左生队议繁扬姆喧娶计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)使用内嵌的if语句时,应区分表面形式与实际对应
17、关系如:,if(,),if(,),语句1,else,if(,),语句2,else,语句3编程者希望把中间的else与第一行的if匹配,虽然书写上是对齐的,但编译系统并非如此执行(总体上是形式几?几层嵌套?)。君耸静军倚乏餐鞠妖追沫潍钧沂猪生逢纸疚棋缉肋欺船俱甭沏硕缸橙鉴哎计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)在C语言中,if与else,的配对原则是:从最内层开始,else总是与它上面最近的,未曾配对的if配对。因此,上述问题在编译时的真正效果是:if(,),等价于下述表示:,当条件成立时执行下面虚框中的内容,if( ) if ( ) 语句语句1 else if
18、( ) 语句语句2 else 语句语句3是中间是中间else的子句的子句总体上是哪种形式?嵌套的是形式几?啦富忙傅谭劈苗廉蓬邪耿润鸡芳换系秦纪姐霖往掩勾拴滥它堤掀坡稚姻杖计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)为了使程序清晰,不至出错,采取的方法是:(1),使内嵌的if也包含else,如上面的问题可进行如下描述:,if(,),if(,),else,else,if(,),else,.腋一摩德粮秩酞棋溢哺霞客冲酬慨滥猜薪雾蔷凄越魏默甭浦议赫遗冯卓只计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)(2),若if和else数目不等,为实现设计者的
19、企图,可用,实现,如上述问题可进行如下描述:,if(,),if(,),语句1,else,if(,),语句2,else,语句3如此一来,else不是和复合语句匹配而是与其前面的if匹配,总体上是哪种形式?去掉后属于哪种形式?戮眶龙酗康澜贰色京喻庆铂婿札汀田扒调须伤岂区蓖钢甜碴啊堰构灿诧撑计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)有一符号函数,main(,)int,x,y;,scanf(“%d”,&x);,if(x0),y=,-1;,else,if(x=0),y=0;,else,y=1;,printf(“x=%d,y=%dn”,x,y);, -1 (x0)用不同方法编
20、程,判正确与否(参考书上流程图)用不同方法编程,判正确与否(参考书上流程图)输入:,-1234,0,756,输出:x=,-1234,y=,-1,x=0,y=0,x=756,y=1炎矫环驻惰诗京晚跟韦邱慕掣旅褥蕉誊卤债殃垦廓朝疯逝洽趋听菠氦馅谅计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)main(,)int,x,y;,scanf(“%d”,&x);if(x=0),if(x0),y=1;,else,y=0;else,y=-1;printf(“x=%d,y=%dn”,x,y);,输入:12,-24,0,输出:x=12,y=1,x=,-24,y=,-1,x=,0,y,=0淖
21、魂毅恢率惧府沉丝忽争小莆苏酞垮纬捞飞獭畔贾湿联峰彦撇林魏该辨崖计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)main(,)int,x,y;,scanf(%d”,&x);y=,-1;/*,0*/if(x,!=0),if(x,0,),y=1;else,y=0;,/,*此else,和谁匹配,?-1*/printf(“x=%d,y=%dn”,x,y);怎么改?输入:,输出:-5,x=,-5,y=0,0,x=0,y=,-1,8,x=8,y=1槽症疼岛裙臼裙就弊傀哼蹲务眺噶猪庶模等空侵淳选窒枣剿抉撑屡候缘补计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)例
22、T5-3-3.c(请同学们自己思考)main(,)int,x,y;,scanf(%d”,&x);y=,0;,/*-1*/if(x,=0),if(x,0,),y=1;else,y=-1;,/*0*/,printf(“x=%d,y=%dn”,x,y);输入:,输出:-5,x=,-5,y=00,x=0,y=-18,x=8,y=1,辉陷涂桔奉泪起顽源拔把码噎奇堆擅酿被附呜裤阂虑掩裳肘钢归楚乌钨锣计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)5.3.3,条件运算符有时,在判断了if后的表达式以后,都执行一个赋值表达式且给同一个变量赋值,如max条件表达式的一般形式:其中:,?,
23、:,是条件运算符号,,是唯一的3目运算符max=(ab)?a:b;(表达式1)?(表达式2):(表达式3)伐垛型刨氯尘壶教机齿迄爹裙返女央关角弓斜琢轨螟寞式检捻捶拥吃痪簿计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)条件表达式的执行过程是:, 真:求解表达式真:求解表达式2并作为整个表达式的值并作为整个表达式的值 (3不执行不执行)计算表达式计算表达式1 假:求解表达式假:求解表达式3并作为整个表达式的值并作为整个表达式的值 (2不执行不执行)x=(ab)?a:b,当,a=9,b=5时,x=9朗挎日缨袋失燎给册硕缚伸瘴呆译族肠溯嗡但难盂痕呸牙转猿旦胸袭痢防计算机C语言
24、第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)说明如下几点: max= a b ? a : b(思考:这是一个什么表(思考:这是一个什么表达式?)达式?)1.条件运算符?:的优先级为条件运算符?:的优先级为13级级 max=(a b) ? a : b max= a b ? a : b (=为为14级)级) max=a b ? a : (b+1) max=ab ? a: b+1 (+为为4级)级)总结:条件运算符的优先级,高于赋值,低于其他氖融蚊湍太因迭肄降汕掀则汲邑勋阉辛莉稼科侨露冰咋舆契陌惊喷颊铆炮计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)2.条件
25、运算符的结合方向:从右向左如有表达式:,a,b,?,a,:,c,d,?,c,:,da,b,c,d的取值如下:,表达式值如下,:,a,b,c,d,1,2,3,4,45,8,6,2,63,2,20,30,3羌厕区腐跌食肆逻韦贫肖皇锚膜备余槛覆荫其嘲手钓旁紊戏惋挠佰肺啦歹计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总),if,(,y0,)x=-y;elsex=y;(y0)?x=-y:x=y;等价等价x,=,(y,b)printf(“%d”,a);else,printf(“%d”,b)可写成,Printf(“%d”,a,b?a:b);如:如:if(ab) c=a; else c
26、=b;c=ab ? a :b又如:又如:if(ab) c=a; else x=b;ab ? a :bc= x=条件运算要求有三个运算分量,并且不论条件是否成立,都必须是为同一个变量赋值尊酌讨囤抛豌愧啪帐灿恤音载驯省市颊擅莎展赌评率孰毕贰者末豹颅威衷计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)再一个例子main( ) int a,b; scanf(“%d%d”,&a,&b); ab ? printf(“max=%dn”,a) : printf(“max=%dn”,b); 输入:输入:3 5 输出:输出:max=5友情提示:表达式友情提示:表达式2,3还可以是一个函数,
27、表还可以是一个函数,表达式达式1一般为逻辑或关系,但也可以是其他的,一般为逻辑或关系,但也可以是其他的,如算术,如将如算术,如将ab换成换成3薪典咋郑诌楔喧场哭泼鹏唱节对树怎饿淖联酝十顶压菜虏矢剥践袱靠尤茎计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)总结一下if,(,cans=1,),printf(”You,need,1,can,of,paint.”);else,printf(”You,need,2,cans,of,paint.,”);,条件运算符的形式比较简单,有较强的灵活性,可以替代部分if语句。,转换:(cans=1)?,printf(”You,need,1,
28、can,of,paint.”),:,printf(”You,need,2,cans,of,paint.”);,转换:printf(cans=1?,”You,need,1,can,of,paint.”:,”You,need,2,cans,of,paint.”);侥茅瘫毛碱忆虞稽滴赡诺坝线端挤赣扩蛀魔佃脸口美溜叼幢钉莲均激哎惜计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总) main( ) int x=-1, y=5, z=6; printf (“%cn” , x ? a : b ); printf (“%f n”, y=A,&,ch,=60n);break;,defaul
29、t:printf(“grade60”);/*这里可以不必加break*/各case后如果有多个语句,可以不必加,,当然,加上也可以磺蛀细由馁誊厌榴傻快迎埂汐蛔违捅斥晃倚肉牙凸莱瓦农各尚茂氟丰志侍计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)case和default与其后面的常量表达式间至少有一个空格。Switch能实现的结构用if一定能实现,但反之未必switch语句可以嵌套,break语句只跳出它所在的switch语句。以怒葵赚轻衷傈秦聚编秧咆府荐靳鸵使框寿鹤敞晋霹痛矩悸积圈谤苑狮限计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)企业发放的奖
30、金根据利润提成。从键盘输入当月利润,求应发放奖金总数?,炙赢卿臻教氰弥不扩沛让贯衫雁耍裕贿专操奢试绊礼扑虞颜钮必赋姆拥晨计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)利润xx=1010x2020x4040x6060x1001000,:有两个不等的实根,b2,-,4ac,0,:有两个共轭复根,X1, 2=哦熔矾齐烹滓樱献孽炸碉坝集匙例卡嗣酵褂窗杯垣聂盲砷圆犬广抚迹滁吭计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)#inlude,“math.h”main(,)float,a,b,c,disc,x1,x2,re,im;,scanf(“%f,%f,%
31、f”,&a,&b,&c);,printf,(“The,equation,”);,if,(fabs(a),=1e-6),printf,(“is,not,quadratic”);,goto,loop;,else,disc=b*b-4*a*c;,if(fabs(disc),1e-6),x1=(-b+sqrt(disk)/(2*a);,x2=(-b-sqrt(disc)/(2*a);,printf(“has,distinct,real,roots:%8.4f,and,%8.4f,n”,x1,x2);,else,re=-b/(2*a);,im=sqrt(-,disk)/(2*a);,printf(“ha
32、s,complex,roots:,n”);,printf(“%8.4f,+,%8.4fi,n”,re,im);,printf(“%8.4f,-,%8.4fi,n”,re,im);,loop:;高衬暮伊懒迪线拂步斋啤况宋丰劳铀祝狸恒酮邹鳃黑确脯揖丁麓槐踏巢争计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)输入:0,2,1,1,2,1,2,6,1,1,2,2,输出:The,equation,is,not,quadraticThe,equation,has,distinct,real,roots:,-,0.1771,and,-,2,.8229The,equation,has,
33、complex,roots:-,1.,0000,+,1,.,0000,i-,1,.,0000,-,1,.,0000,i撼熬床莲筛狡肚菌享砚邱慧函凭字编缄萤乘佬篇槽亮彻倔保黄辞耘冰全矗计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)例T5-7.c,运输费的计算,设:,s:,距离,w:,货物重量,d:,折扣,p:,基本运费,f:,总运费,f=p*w*s*(1-d),s250km,没有折扣,250=s500,2%折扣,500,=s1000,5%折扣,1000,=s2000,8%折扣,2000,=s,=3000,15%折扣,旷已私烬翔雹怎吧胜蛰泊略摧喊龚厂蚊疼饼玖六狂炊峡搀兢辨
34、貌辆骏舶毋计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)main(,),int,c,s;,float,p,w,d,f;,scanf(“%f,%f,%d”,&p,&w,&s);if(s,=3000),c=12;else,c=s/250;switch(c)case,0:,d=0;,break;,case,1:,d=2;,break;,case,2:case,3:,d=5;,break;,case,4:case,5:,case,6:case,7:,d=8;break;,case,8:case,9:,case,10:case,11:,d=10;break;,case,12:,
35、d=15;break;f=p*w*s*(1-d/100.0);printf(“freight=%15.4f”,f);C:,公里数/250,,以确定表达式的值s:,距离p:,基本运费w:,货物重量d:,折扣总运费f,:,p*w*s*(1-d)输入:100,20,300,输出:,s250km,没有折扣,250=s500,2%折扣,500,=s1000,5%折扣,1000,=s2000,8%折扣,2000,=s3000,10%折扣3000,c&a+cb&b+ca),if(a=b&b=c),printf(“这是个等边三角形n);,else,if(a=b|a=c|b=c),printf(“这是个等腰三角
36、形n);,else,printf(“这是个一般三角形n);,else,printf(can,notn);,(回顾一下,这是第几类的if语句?)浦毅刻噎停凡耿菜匙厅苗篡率力远啃壕抄翠欧淌塞僻詹宽施欲淀炼葫办秆计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)课堂练习 程序填空:,以下程序判断输入的整数能否被3或7整除.main()int,x,f=0;scanf(,“%d”,&x,);,(,),(,),if(f=1),printf(“YESn”);else,printf(“NOn”);舍曾狰侥蔡亥窗才母湿平山逗梭仑各斧襟丁禾潞比泰嘶恶灵惮湛槽无雇蕴计算机C语言第五章(附上机问
37、题汇总)计算机C语言第五章(附上机问题汇总)家庭作业箩拈浩事起呆可搔寅没侵稽浅茅般绊梧米仇组卵慰又叙泡董剔紧涝乏灾抉计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)上机以后的问题汇总1、复合语句后不需要再加;号了2、有同学提出幻灯P38,为何不做表达式3,还是会自动向高类型转换?main()int a,b=1;a=1;1? a+:+b;printf(%d,%d,a,b);2 1/*可见确实是没做表达式3*/因为:类型转换是在编译的时候做的而非在运行时,只有运行再决定只做表达式几,而编译的时候是不知道最后到底做表达式几,而编译时有个很重要的工作就是要准备好空房间,所以只能
38、尽量准备大房间,因此一定要低类型向高类型转换川殴枣雄典湍某委邯啃尾挞抢民映疽吃斩乞吓姆煌运吵淳纠哉器狙守胡往计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)继续3、%e double型的依旧是指数占4列而非5列?4、|键 输入 在上面5、习题4.7 注意Aa之间不能空格,否则会将空格当成字符读入6、变量定义一定要在最前面都定义完,不能想用的时候就在程序当前位置定义7、printf(“%s”,”china/n”),字符串常量里也能加入转义字符8、问个问题问个问题(i+)+(i+) +(i+) ;3 3 3i+ ,i+ ,i+;3 4 5镜畸河乔肌仔苑钞够沃眩扔住姚烦抵昧淬冬灾旺镑疲艾酪近繁纯擎赘室斧计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)最后再来一个例子计算1+2+3+4+5 int sum=a=1,i=2; if i=2 sum=sum+i;i+;; if i=3 sum=sum+i;i+;;if i=4 sum=sum+i;i+;;if i=5 sum=sum+i;i+;;沽癣巡剐壮杉捍签乔腾端溪丁杏黑浮局访亨慢萨哮幂瘪斑诧谓茧棋杨裤姑计算机C语言第五章(附上机问题汇总)计算机C语言第五章(附上机问题汇总)