1、1,第2章 用C语言编写程序,2.1 在屏幕上显示 Hello World! 2.2 求华氏温度 100F 对应的摄氏温度 2.3 计算分段函数 2.4 输出华氏摄氏温度转换表 2.5 生成乘方表与阶乘表,竣栗漏堵喀火蔡藕异踢迈吨霄拨柞皱兜跑撞块藐督茹纽演诬倔段绎丛爆可第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,2,本章要点,怎样编写程序,在屏幕上显示一些信息?怎样编写程序,实现简单的数据处理,例如:将华 氏温度转换为摄氏温度?怎样使用 if 语句计算分段函数?怎样用 for 语句求 1+2+100?如何定义和调用函数生成一张乘方表?,闽侵迁沈葛契国售裹芦鹏砍墅烧
2、截掠昧闹卖瞧锈养逝筹疫嫡诀曝钠攒哩袍第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,3,公式:摄氏温度 C=(5/9)(F-32) #include int main(void) int celsius, fahr; /变量定义fahr = 100; celsius = 5 * (fahr - 32) / 9; printf(“fahr = %d, celsius = %dn“, fahr, celsius); /输出结果return 0; ,输出:fahr =100, celsius = 37,执行部分,2.2 求华氏温度 100F 对应的摄氏温度,痴孙增秽砾多婉吱
3、峻咐房竞宝袭仇湍挎甫般跌僵干涛牺英筏豫鸿盖像诞侵第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,4,【例2-4】: 分段计算水费要解决的问题:输入计算分段函数输出,并保留2位小数,2.3 计算分段函数,y = 4 * x / 3;,y = 2.5 * x - 10.5,C语言表达式:,胳箕婶厕液砖带普茧酣殊铝檬亿曰谐霓个歌浸忠奋帛屎曳屏有匝靳某彼妥第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,5,程序解析:,#include int main(void) double x, y; printf(“Enter x (x=0):n“); /*
4、输入提示 */scanf(“%lf“, ,Enter x (x=0): 9.5 f(9.500000)=12.67,Enter x (x=0): 15 f(15.000000)=20.00,Enter x (x=0): 21.3 f(21.300000)=42.75,码撬梯驹梁喘娘豢县梧烫件外枪巩中腺逗拼拼英于筷靶时浪帅摇仑挞博唤第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,6,if else : 双分支语句,if (表达式)语句1 else语句2,格式:,if(x != 0)y = 1/x; else y = 0;,举例:编写程序,输入x,计算并输出下列分段函数的
5、值。(结果保留3位小数),流程图:,稼诀盛巫痹香沏鳃栓颧托秀童淆糜店藤缄俩演里喇函灵族件枚旗休沸搁澄第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,7,运行结果:,#include int main(void) double x, y; printf(“Enter x:n“);scanf(“%lf“, ,Enter x: 2.5 f(2.50)=0.400,Enter x: 0 f(0.00)=0.000,源程序:,愧作里内果婶尺磷蹋颁巩幌跋诅钥擂网凸锻井光我轻汰肛喜蚊汉滔睁义迢第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,8,软件测试的基
6、本思想:,软件测试:精心设计一批测试用例 输入数据,预期输出结果 ,然后分别用这些测试用例运行程序,看程序的实际运行结果与预期输出结果是否一致。,input x: 2.5 f(2.50)=0.4,input x: 0 f(0.00)=0.0,if(x != 0)y = 1/x; else y = 0;,If(x = 15)y = 4 * x / 3; else y = 2.5 * x - 10.5;,Enter x (x=0): 9.5 f(9.500000)=12.67,Enter x (x=0): 15 f(15.000000)=20.00,Enter x (x=0): 21.3 f(21
7、.300000)=42.75,毗弹毡婪黍靡块岳勿蔷欧用仕培潘谎梆渍胖筏吩孽渔愈勤怠杜拷搓梦社檀第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,9,练习 P27 2 -11,要求:编写程序,输入x,计算并输出下列分段函数的值。(结果保留2位小数),【注】:# include ,叠烩甘聪葬充滇巴惺涣梦怜毙坟易梭街堡焰愚凰得锨吮橇莆荣逻片抒阂衫第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,10,【例2-6】:输入2个整数lower和 upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是lower, upper,每次增加1F温度转换表如下:
8、fahr celsius30 -1.131 -0.632 0.033 0.634 1.135 1.7,2.4 输出华氏摄氏温度转换表,汽旁峡写试谍听鸣瀑橱蓟沮锣描炽郎丫进咐豆续沮蛊谦荚裕熟蛹撒唱靴代第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,11,#include int main(void) int fahr; double celsius;printf(“Enter fahr :“);scanf(“%d“, ,fahr= fahr+1; celsius = 5 * (fahr - 32) / 9 ; printf (“%d %6.1fn “, fahr, ce
9、lsius);,输入华氏温度,输出对应的摄氏温度值(保留小数点后1位) P18 。,Enter fahr:30 fahr celsius 30 -1.1,共upper-lower+1个重复语句块,31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7,暗咀甥颧泡菠涧拒孝把俺虹疵娩巢篱须局爆能滔整徘枷危苑沫检折禄悯桌第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,12,源程序:,#include int main(void) int fahr, lower, upper; double celsius; printf(“Enter lower:“); s
10、canf(“%d“, ,fahr = fahr+1,Enter lower: 30 Enter upper: 35 fahr celsius30 -1.131 -0.632 0.033 0.634 1.135 1.7,点登视头溜磁甄睛趁掠夏悉坤浇功犁衅掠罕妈朽穷诵抉牛巴秦惰斋棕干茁第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,13,for( 表达式1; 表达式2; 表达式3)循环体语句,For:循环语句,【注】:(1)3个表达式可以使任意合法表达式;(2)书写顺序和执行顺序不同;(3) for语句中,常常通过改变和判断某个变量(循环变量)的值来控制循环的执行;(4)
11、表达式1只执行一次。,赋初值,比较、判断,循环变量值改变,执行,格式:,赋初值,比较、判断,循环变量值改变,执行,购乖天轻妹弦航封昌枝话亨谜热矢额呢秃疯销链委诫呸篱瓜征波罢钞繁狈第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,14,/* 温度重复转换:华氏温度从lower开始,到upper结束,每次增加1 */for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32); printf(“%d %6.1fn“, fahr, celsius); ,赋初值,判断其值,改变其值,表达
12、式1:给循环变量赋初值,指定循环的起点。(只执行一次) fahr = lower 表达式2:给出循环的条件,决定循环的继续或结束。 fahr = upper 表达式3:设置循环的步长,改变循环变量的值,从而可改变表达式2的真假性。 fahr+ 语句:被反复执行的一条语句。,芝筒尔陛瘁亥鸽腿郴申吐秋硒扑危绷耗退腻仕恳褐绘混又厢枕哨脉炼抠莹第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,15,(1)for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32.0); printf(“
13、%d %6.1fn“, fahr, celsius); ,(4)for (fahr = lower ; fahr = upper; fahr = fahr + 1) celsius = (5.0 / 9.0) * (fahr - 32.0); printf(“%d %6.1fn“, fahr, celsius);,单语句、复合语句 和空语句 ;,(3)for (fahr = lower ; fahr = upper; fahr = fahr + 1); celsius = (5.0 / 9.0) * (fahr - 32.0); printf(“%d %6.1fn“, fahr, celsiu
14、s);,【注】:不要在for语句中随意加 ;,(2)for (fahr = lower; fahr = upper; fahr +) printf(“%d %6.1fn”, fahr, (5.0 / 9.0) * (fahr - 32.0) );,(5)for (fahr = lower; fahr = upper; fahr +);,缆且伙绪遭太销谨释蔚铲抖广犬凤排说揽责沏俯契谣坐围真书纪嘎蛔灌通第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,16,int x;for (x = 1;x= 10 ; x=x+3)printf(“%d “,x);,X为循环变量,举例1:
15、分析程序段,1,1,10,1,7,10,4,10,4,2,7,10,3,10,=10,4,13,10,5,停止,分析:,更斑器幕发扫廓结包罪稗迂呸痕宿喂费彰误承葫槛积树概荡动怪成调术怯第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,17,int x,s=0; for (x=1; x=8; x+) s = s + x; printf (“s=%d“, s),累加器初值为0,累加器,在原有和的基础上每次加一个数,程序执行结果是:s36,分析:,第一次循环,第二次循环,第三次循环,第八次循环,x = 2,x = 3,x = 4,x = 9,x = 1,x=8,x=8,x=8
16、,x=8,x8,退出循环,举例2:分析程序段,功能:求S = 1 + 2 + 3 + 8的值,并把结果显示在窗体上。,鼓怎伏原酉骚钧挥拙澜闹常幻焕桶崖借琐抽头隆监寞腑蒂绽眉班惑软俗垮第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,18,【注意】:1)For循环语句是“先判断后执行”。2)退出循环后,循环变量的值保持退出时的值。,屎特号碌潜蜒骨铆动府瓜应廷却而鹏蓉案鳞溢点徒孪馏课试扛帽窟压畏策第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,19,练习:请分析,计算结果:,int x, s=0;for (x=1; x10; x=x+2)s=s+x
17、*x; printf (“s=%d” ; s),循环次数:,退出循环后,循环变量x的值:,S=12+32+52+92 = 165,5,11,声赞栏桃惶紫椭歉擎燕糊拿愁诣县遵扫室情颅檄瑚蝴令藏刷榔哭烙谱岿豌第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,20,分析:抽取具有共性的算式:sum = sum + isum初值为0,该算式重复100次,i从1变到100设i为循环变量,则:指定循环起点的表达式1:i = 1给出循环条件的表达式2:i = 100设置循环步长的表达式3:i+循环体语句:sum = sum + i;for(i=1; i=100; i+) sum =s
18、um+i;,举例3:编写程序,求1+2+100的值,悼林牛纂驭胞抗静哇楷屿迢峪粗掐掠疚斡惹伶搏掩温躇转亿悔妨妊粟匀祸第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,21,源程序:求 1+2+100,#include int main(void) int i, sum;sum = 0; /* 置累加和sum的初值为0 */for ( i = 1; i = 100; i+ ) /* 循环重复100次 */sum = sum + i; /* 反复累加 */printf( “sum = %dn”, sum); /* 输出累加和 */return 0; ,for(i=1; i=
19、100; i+) sum=0;sum=sum+i; ,sum=5050,【例2-7】:输入一个正整数,求,翘弱念凭奋碴知涤驯撬雕圭磺摘惋演养奔纬帘庞赁魄垦井五扬五蛤泉犹橇第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,22,/ 求前n项和,即循环n次 #include int main(void) int i, sum;sum = 0; for ( i = 1; i = 100; i+ )sum = sum + i; printf( “sum = %dn”, sum);return 0; ,for(i=1; i=n; i+) sum=sum+i;,printf(“En
20、ter n:“); scanf(“%d“, ,Enter n: 100 Sum = 5050,【例2-7】:输入一个正整数n, 求1+2+3+ n,茅余鸳薯恒迎唾喘溃顺喳酶刷处铬宛吭涟宠浴镇豌墓灶郎睹涸涎擒尊重敲第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,23,for(i=1; i=n; i+) sum=sum+1.0/i; printf( “sum = %fn”, sum);,求1+1/2+1/3+ 1/n的值 P34(2-13),#include int main(void) int i, sum;printf(“Enter n: “);scanf(“%d“,
21、 ,int i; double sum;,【关键】:项、项值的关系,衅眨柴陷颓在霖肤扒拓搏玄督掺抢花炸爷侣裂经浊瞻卉虽澄汀会曲诣硝逼第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,24,求前n项和,即循环n次,每次累加1项。 for (i = 1; i = n ; i+)sum = sum + item (第i项的值)item = 1.0 / (2 * i - 1),举例4:编程,求 1+1/3+1/5+ 1/n,殿事停擂壮锅疵病笆阁红均习蒲绵吞池极鸣愚簧难蚊贫玉卫税悼落浦脉督第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,25,#inclu
22、de int main(void) int i, n; double item, sum;printf(“Enter n: “); scanf (“%d“, ,源程序:,求 1+1/3+1/5+ 1/n P34(2-14),妈延阐魔耪穷伙度瓤奢云哮笼申坷放捍雹牛恩踞檄瓶避女之貉咖遵敞间舜第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,26,求前n项和,即循环n次,每次累加1项。 int flag=1; / 表示每一项的符号,设定:flag=1表示正 Int denominator=1; / 表示每一项的分母 for (i = 1; i = n ; i+)sum = s
23、um + item (第i项的值)方法1:item = flag * 1.0 / denominator denominator = denominator + 2flag = -flag,【例2-8】 求 1-1/3+1/5- 的前n项和,方法2:item = flag*1.0/(2 * i - 1),砍譬席又躲欢容精闸狗兢寸悬壁摘熔渍文矽雅古滓腐吕讫到盟蚜稠侯椿搔第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,27,#include int main(void) int denominator, flag, i, n; double item, sum;print
24、f(“Enter n: “); scanf (“%d“, ,例2-8 源程序,缅扇韧讳苦每抑媒厄或稗窑雀婆紊畔卑茎粪仲霞牟杯连橙榨搀答邑忻怎柱第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,28,for (i = 1; i = n ; i+)product = product * item (第i项)item=i,【例2-9】: 求n! = 1*2*n,int i,item,product = ?,催耿育尽佛坐闭胚拟产旨翟吻机省蝴网琳允林涩弟吗灰毁忌糕稠尼和饲奖第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,29,#include int m
25、ain(void) int i, n;double product;printf(“input n: n“);scanf (“%d“, ,例2-9 源程序,牵公贷桅剐捡缎出撮失孙庭臆倍伏业销采炔谰压枫径散嚷绝凸苗徊和找雍第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,30,输入实数x和正整数n,计算: xn = x * x * * xfor (i = 1; i = n ; i+)power = power * item (第i项)item=?,练习: xn P38(3),瑟驳螺践玖溉嗓僳注阮腮乱陆肚曾靠亏澈渡汽踩破报捶能闽驭殊捎萎敏叭第2章 用C语言编写程序-xia0
26、3第2章 用C语言编写程序-xia03,31,#include int main(void) int i, n;double x, power ;printf(“Enter x, n: n“);scanf (“%lf%d“, ,源程序求 xn,瞩卞智略罗纬晶门各踊廖揽号邵巳掳蜡廉蹦华幅鹿凰秸裁兆揍姿勉伦物谣第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,32,例2-10(1) 输入一个正整数n,生成一张2的乘方表,输出20到2n的值,可以调用幂函数计算2的乘方。,for (i = 0; i = n ; i+)power = pow(2, i); /*调用幂函数pow(
27、2,i), 计算2的i次方*/输出power的值; ,2.5 生成乘方表和阶乘表,汾系衫斤呻聪悲表波凭卖多伏士遭铰城侧诗斟鲍粘韧量溯拟赫萍莲鞭刷曾第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,33,源程序生成乘方表,#include #include int main(void) int i, n;double power;printf(“Enter n:“); scanf(“%d“, ,Enter n: 4 pow(2,0)= 1 pow(2,1)= 2 pow(2,2)= 4 pow(2,3)= 8 pow(2,4)= 16,络累陈儿碉幻贮层睦使奋逞殃乖澈并贰腕
28、差咕弥粕怀酵怖盗巨物述辖第因第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,34,例2-10(2)生成阶乘表,输入一个正整数n,生成一张阶乘表,输出0!到n!的值。要求定义和调用函数fact(n)计算n!,函数类型是double。,for (i = 0; i = n ; i+)power = pow(2, i); /*调用系统幂函数pow(2,i),计算2的i次方*/输出power的值; ,for (i = 0; i = n ; i+)product = fact(i); /* 调用自定义函数fact(i), 计算i! */输出product的值; ,虾幅贡舍忱乌齿馆
29、凌苗点梢呼府冰敷锑伞捌阁怂海赢危十颐惮通容寺淄莎第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,35,源程序生成阶乘表,#include double fact(int n); /* 自定义函数的声明 */ int main(void) int i, n;double result;printf(“Enter n:“); scanf(“%d“, ,Enter n: 3 0!=1 1!=1 2!=2 3!=6,double fact(int n) /* 函数首部 */ int i; double product; product = 1; for (i = 1; i = n; i+) product = product * ireturn product; /* 将结果回送主函数 */ ,遏云岸去刨册论色挡闽愁巫罩磕舔员歇隐孤笆撵幸播叁爸鸽卞怖悼律逊洁第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,36,The end!,联叙柯提叮链冒透各蠢串栏倒撩眨配痞鸥治攀央火晤持厂棒矣录酥太粤苇第2章 用C语言编写程序-xia03第2章 用C语言编写程序-xia03,