Chap函数与程序结构实用教案

上传人:汽*** 文档编号:591392729 上传时间:2024-09-17 格式:PPT 页数:66 大小:1.61MB
返回 下载 相关 举报
Chap函数与程序结构实用教案_第1页
第1页 / 共66页
Chap函数与程序结构实用教案_第2页
第2页 / 共66页
Chap函数与程序结构实用教案_第3页
第3页 / 共66页
Chap函数与程序结构实用教案_第4页
第4页 / 共66页
Chap函数与程序结构实用教案_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《Chap函数与程序结构实用教案》由会员分享,可在线阅读,更多相关《Chap函数与程序结构实用教案(66页珍藏版)》请在金锄头文库上搜索。

1、本章(bnzhn)要点怎样把多个函数组织起来?怎样用结构化程序设计的思想(sxing)解决问题?怎样用函数嵌套求解复杂的问题?怎样用函数递归解决问题?如何使用宏?如何使用多文件模块构建较大规模程序第1页/共65页第一页,共66页。使用结构化程序设计(shj)方法解决复杂的问题把大问题分解成若干小问题,小问题再进一步分解成若干更小的问题写程序时,用main()解决整个问题,它调用解决小问题的函数这些函数又进一步调用解决更小问题的函数,从而形成函数的嵌套调用10.1圆形体积(tj)计算器第2页/共65页第二页,共66页。main( )函数函数1函数函数2函数函数m函数函数1_1函数函数1_2函数函

2、数m_1函数函数m_n程序结构第3页/共65页第三页,共66页。例10-1设计一个常用圆形体体积计算器,采用命令方式输入1、2、3,分别选择(xunz)计算球体、圆柱体、圆锥体的体积,并输入计算所需相应参数。分析:输入1、2、3选择(xunz)计算3种体积,其他输入结束计算设计一个控制函数cal(),经它辨别圆形体的类型再调用计算球体、圆柱体、圆锥体体积的函数设计单独的函数计算不同圆形体的体积10.1.1程序解析-计算(jsun)常用圆形体体积第4页/共65页第四页,共66页。3层结构,5个函数降低程序的构思、编写(binxi)、调试的复杂度可读性好程序结构main( )cal ( )vol_

3、ball ( )vol_cylind ( )vol_cone ( )第5页/共65页第五页,共66页。例10-1源程序#definePI3.141592654voidcal(intsel);intmain(void)intsel;while(1)printf(1-计算球体体积n);printf(2-计算圆柱(yunzh)体积n);printf(3-计算圆锥体积n);printf(其他-退出程序运行n);printf(“请输入计算命令:);scanf(%d,&sel);if(sel3)break;/*输入非13,循环结束*/elsecal(sel);/*输入13,调用cal()*/return0

4、;第6页/共65页第六页,共66页。/*常用圆形体体积(tj)计算器的主控函数*/voidcal(intsel)doublevol_ball(void);doublevol_cylind(void);doublevol_cone(void);switch(sel)case1:printf(球体积(tj)为:%.2fn,vol_ball();break;case2:printf(圆柱体积(tj)为:%.2fn,vol_cylind();break;case3:printf(圆锥体积(tj)为:%.2fn,vol_cone();break;/* 计算球体体积计算球体体积 V=4/3*PI*r*r*

5、r */double vol_ball( ) double r ; printf(请请输输入入(shr)球球的的半半径径:); scanf(%lf,&r); return(4.0/3.0*PI*r*r*r);/* 计算圆柱计算圆柱(yunzh)体积体积 V=PI*r*r*h */double vol_cylind( ) double r , h ; printf(请请输输入入圆圆柱柱(yunzh)的的底底圆圆半半径径和和高:高:); scanf(%lf%lf,&r,&h); return(PI*r*r*h);/* 计算圆锥体积计算圆锥体积 V=h/3*PI*r*r */double vol_c

6、one( ) double r , h ; printf(请输入圆锥的底圆半径和高:请输入圆锥的底圆半径和高:); scanf(%lf%lf,&r,&h); return(PI*r*r*h/3.0);第7页/共65页第七页,共66页。10.1.2函数(hnsh)的嵌套调用顺序调用intmain(void)y=fact(3);z=mypow(3.5,2);doublefact(intn)doublemypow(doublex,inn)mainfactmypowmainfactmypow第8页/共65页第八页,共66页。嵌套调用(dioyng)intmain(void)cal(sel);voidc

7、al(intsel)vol_ball()doublevol_ball()maincalvol_ballmaincalvol_ball10.1.2 函数(hnsh)的嵌套调用第9页/共65页第九页,共66页。例10-1分析(fnx)intmain(void)cal(sel);voidcal(intsel) vol_ball();vol_cylind();vol_cone();doublevol_ball()doublevol_cylind()doublevol_cone()main( )cal ( )vol_ball ( )vol_cylind ( )vol_cone ( )第10页/共65页第

8、十页,共66页。在一个函数中再调用其它函数的情况称为函数的嵌套调用。如果(rgu)函数A调用函数B,函数B再调用函数C,一个调用一个地嵌套下去,构成了函数的嵌套调用。具有嵌套调用函数的程序,需要分别定义多个不同的函数体,每个函数体完成不同的功能,它们合起来解决复杂的问题。10.1.2 函数(hnsh)的嵌套调用第11页/共65页第十一页,共66页。结构化程序设计(shj)方法自顶向下,逐步求精,函数实现自顶向下:程序设计时,应先考虑总体步骤,后考虑步骤的细节;先考虑全局目标(mbio),后考虑局部目标(mbio)。先从最上层总目标(mbio)开始设计,逐步使问题具体化。不要一开始就追求众多的细

9、节。逐步求精:对于复杂的问题,其中大的操作步骤应该再将其分解为一些子步骤的序列,逐步明晰实现过程。函数实现:通过逐步求精,把程序要解决的全局目标(mbio)分解为局部目标(mbio),再进一步分解为具体的小目标(mbio),把最终的小目标(mbio)用函数来实现。问题的逐步分解关系,构成了函数间的调用关系。第12页/共65页第十二页,共66页。限制函数的长度。一个函数语句数不宜过多,既便于阅读、理解,也方便程序调试。若函数太长,可以考虑把函数进一步分解实现。避免(bmin)函数功能间的重复。对于在多处使用的同一个计算或操作过程,应当将其封装成一个独立的函数,以达到一处定义、多处使用的目的,以避

10、免(bmin)功能模块间的重复。减少全局变量的使用。应采用定义局部变量作为函数的临时工作单元,使用参数和返回值作为函数与外部进行数据交换的方式。只有当确实需要多个函数共享的数据时,才定义其为全局变量。函数(hnsh)设计时应注意的问题第13页/共65页第十三页,共66页。10.2汉诺塔问题(wnt)10.2.1程序解析( jix)10.2.2递归函数基本概念10.2.3递归程序设计第14页/共65页第十四页,共66页。10.2.1汉诺(Hanoi)塔问题(wnt)解析将64个盘从座A搬到座B(1)一次只能搬一个(y)盘子(2)盘子只能插在A、B、C三个杆中(3)大盘不能压在小盘上 A B C第

11、15页/共65页第十五页,共66页。分析(fnx) A B C第16页/共65页第十六页,共66页。分析(fnx) A B C A B Cnn-1n-1第17页/共65页第十七页,共66页。分析(fnx) A B C A B Cn第18页/共65页第十八页,共66页。10.2.1汉诺(Hanoi)塔问题(wnt)解析递归方法的两个要点(yodin)(1)递归出口:一个盘子的解决方法;(2)递归式子:如何把搬动64个盘子的问题简化成搬动63个盘子的问题。把汉诺塔的递归解法归纳成三个步骤:n-1个盘子从座A搬到座C第n号盘子从座A搬到座Bn-1个盘子从座C搬到座B第19页/共65页第十九页,共66

12、页。算法(sunf):hanio(n个盘,AB,C为过渡)if(n=1)直接(zhji)把盘子ABelsehanio(n-1个盘,AC,B为过渡)把第n号盘ABhanio(n-1个盘,CB,A为过渡) A B Cn-1第20页/共65页第二十页,共66页。10.2.2递归函数基本概念例10-2用递归函数实现求n!递推法在学习(xux)循环时,计算n!采用的就是递推法:n!=123n用循环语句实现:result=1;for(i=1;i=n;i+)result=result*i;递归法n!=n(n-1)!当n1递归式子=1当n=1或n=0递归出口即求n!可以在(n-1)!的基础上再乘上n。如果把求

13、n!写成函数fact(n),则fact(n)的实现依赖于fact(n-1)。第21页/共65页第二十一页,共66页。10.2.2递归函数基本概念例10-2用递归函数(hnsh)求n!。#includedoublefact(intn);intmain(void)intn;scanf(%d,&n);printf(%f,fact(n);return0;doublefact(intn)/*函数(hnsh)定义*/doubleresult;if(n=1|n=0)/*递归出口*/result=1;elseresult=n*fact(n-1);returnresult;第22页/共65页第二十二页,共66页

14、。10.2.2递归函数基本概念第23页/共65页第二十三页,共66页。递归式递归出口(ch ku)例10-2分析(fnx)求n!递归定义(dngy)n!=n*(n-1)!(n1)n!=1(n=0,1)#include double fact(int n);int main(void) int n; scanf (%d, &n); printf (%f, fact (n) ); return 0;double fact(int n) double result; if (n=1 | n = 0) result = 1; else result = n * fact(n-1); return re

15、sult;fact(n)=n*fact(n-1);第24页/共65页第二十四页,共66页。main() fact(3) fact(2) fact(1) . . . . printf(fact(3) f=3*fact(2) f=2*fact(1) f=1 return(f) return(f) return(f) 递归函数fact(n)的实现(shxin)过程fact(3)=3*fact(2)2*fact(1)fact(1)12*1=23*2=6同时同时(tngsh)有有4个函数在运行,且都个函数在运行,且都未完成未完成第25页/共65页第二十五页,共66页。10.2.3递归程序设计(chnxs

16、hj)用递归实现的问题,满足两个条件:问题可以逐步简化成自身较简单的形式(递归式)n!=n*(n-1)!nn-1i=n+ii=1i=1递归最终能结束(递归出口)两个条件缺一不可(quybk)解决递归问题的两个着眼点第26页/共65页第二十六页,共66页。10.2.3递归程序设计(chnxshj)例10-3编写递归函数reverse(intn)实现将整数n逆序输出。分析:将整数n逆序输出可以用循环实现,且循环次数(csh)与n的位数有关。递归实现整数逆序输出也需要用位数作为控制点。归纳递归实现的两个关键点如下:递归出口:直接输出n,如果n=9,即n为1位数递归式子:输出个位数n%10,再递归调用

17、reverse(n/10)输出前n-1位,如果n为多位数第27页/共65页第二十七页,共66页。10.2.3递归程序设计(chnxshj)由于结果是在屏幕上输出,因此函数(hnsh)返回类型为voidvoidreverse(intnum)if(num%cn,a,b);elsehanio(n-1,a,c,b);printf(%c-%cn,a,b);hanio(n-1,c,b,a);intmain(void)intn;printf(inputthenumberofdisk:);scanf(%d,&n);printf(thestepsfor%ddiskare:n,n);hanio(n,a,b,c);

18、return0;input the number of disk: 3the steps for 3 disk are:a-ba-cb-ca-bc-ac-ba-b第30页/共65页第三十页,共66页。 A B Cinput the number of disk: 3the steps for 3 disk are:a-ba-cb-ca-bc-ac-ba-b第31页/共65页第三十一页,共66页。课堂练习:利用(lyng)递归函数计算x的n次幂intmi(intx,intn)if(n=1)returnx;elsereturnx*mi(x,n-1);第32页/共65页第三十二页,共66页。10.3

19、长度单位(dnwi)转换10.3.1程序解析10.3.2宏基本定义10.3.3带参数的宏定义10.3.4文件包含(bohn)10.3.5编译预处理第33页/共65页第三十三页,共66页。10.3.1程序(chngx)解析例10-5欧美国家长度使用英制单位,1英里=1609米,1英尺(yngch)=30.48厘米,1英寸=2.54厘米。请编写程序转换。#include#defineMile_to_meter1609/*1英里=1609米*/#defineFoot_to_centimeter30.48/*1英尺(yngch)=30.48厘米*/#defineInch_to_centimeter2.

20、54/*1英寸=2.54厘米*/intmain(void)floatfoot,inch,mile;/*定义英里,英尺(yngch),英寸变量*/printf(Inputmile,footandinch:);scanf(%f%f%f,&mile,&foot,&inch);printf(%fmiles=%fmetersn,mile,mile*Mile_to_meter);/*计算英里的米数*/printf(%ffeet=%fcentimetersn,foot,foot*Foot_to_centimeter);/*计算英尺(yngch)的厘米数*/printf(%finches=%fcentimet

21、ersn,inch,inch*Inch_to_centimeter);/*计算英寸的厘米数*/return0;Input mile,foot and inch:1.2 3 5.11.200000 miles=1930.800077 meters3.000000 feet=91.440000 centimeters5.100000 inches=12.954000 centimeters第34页/共65页第三十四页,共66页。10.3.2宏基本(jbn)定义#define宏名标识符宏定义字符串编译时,把程序中所有与宏名相同的字符串,用宏定义字符串替代#definePI3.14#definearr

22、_size4说明:宏名一般用大写字母,以与变量名区别宏定义不是语句,后面不得(bude)跟分号宏定义可以嵌套使用#definePI3.14#defineS2*PI*PI多用于符号多用于符号(fho)常量常量第35页/共65页第三十五页,共66页。宏定义可以写在程序中任何位置,它的作用范围(fnwi)从定义书写处到文件尾。可以通过“#undef”强制指定宏的结束范围(fnwi)。10.3.2 宏基本(jbn)定义第36页/共65页第三十六页,共66页。#defineA“Thisisthefirstmacro”voidf1()printf(“An”);#defineB“Thisisthesecon

23、dmacro”A 的 有 效(yuxio)范围voidf2()printf(B);B的有效(yuxio)范围#undefBintmain(void)f1();f2();return0;宏的作用(zuyng)范围第37页/共65页第三十七页,共66页。10.3.3带参数(cnsh)的宏定义例10-6简单的带参数的宏定义(dngy)。#include#defineMAX(a,b)ab?a:b#defineSQR(x)x*xintmain(void)intx,y;scanf(“%d%d”,&x,&y);x=MAX(x,y);/*引用宏定义(dngy)*/y=SQR(x);/*引用宏定义(dngy)*

24、/printf(“%d%dn”,x,y);return0;第38页/共65页第三十八页,共66页。10.3.3带参数(cnsh)的宏定义例:#definef(a)a*a*aint main(void)/*水仙花数*/inti,x,y,z;for(i=1;i=a)&(c)=0)&(c)=9)?c-0:-1)第41页/共65页第四十一页,共66页。#defineF(x)x-2#defineD(x)x*F(x)intmain()printf(%d,%d,D(3),D(D(3);return0;练习带宏定义(dngy)的程序输出第42页/共65页第四十二页,共66页。阅读(yud)带宏定义的程序,先全

25、部替换好,最后再统一计算不可一边替换一边计算,更不可以人为添加括号D(3)=x*F(x)先用x替换展开=x*x-2进一步对F(x)展开,这里不能加括号=3*3-2=7最后把x=3代进去计算D(D(3)=D(x*x-2)先对D(3)用x替换展开,=x*x-2*F(x*x-2)拿展开后的参数对D进一步进行宏替换=x*x-2*x*x-2-2拿展开后的参数对F进一步进行宏替换=3*3-2*3*3-2-2=-13 最后把x=3代进去计算运行结果:7-13结果(jigu)分析第43页/共65页第四十三页,共66页。10.3.4文件(wnjin)包含系统文件以stdio.h、math.h等形式供编程者调用实

26、用系统往往有自己诸多的宏定义(dngy),也以.h的形式组织、调用问题:如何把若干.h头文件连接成一个完整的可执行程序?文件包含include第44页/共65页第四十四页,共66页。格式#include#include“需包含的文件名”作用把指定的文件模块内容插入到#include所在的位置,当程序(chngx)编译连接时,系统会把所有#include指定的文件拼接生成可执行代码。注意编译预处理命令,以#开头。在程序(chngx)编译时起作用,不是真正的C语句,行尾没有分号。文件(wnjin)包含系统(xtng)文件夹当前文件夹+系统文件夹第45页/共65页第四十五页,共66页。例10-7将例

27、10-5中长度转换的宏,定义成头文件length.h,并写出主函数文件。头文件length.h源程序#defineMile_to_meter1609/*1英里=1609米*/#defineFoot_to_centimeter30.48/*1英尺(yngch)=30.48厘米*/#defineInch_to_centimeter2.54/*1英寸=2.54厘米*/主函数文件prog.c源程序#include#include“length.h”/*包含自定义头文件*/intmain(void)floatfoot,inch,mile;/*定义英里,英尺(yngch),英寸变量*/printf(Inp

28、utmile,footandinch:);scanf(%f%f%f,&mile,&foot,&inch);printf(%fmiles=%fmetersn,mile,mile*Mile_to_meter);printf(%ffeet=%fcentimetersn,foot,foot*Foot_to_centimeter);printf(%finches=%fcentimetersn,inch,inch*Inch_to_centimeter);return0;第46页/共65页第四十六页,共66页。将例10-1的5个函数分别(fnbi)存储在2个.C文件上,要求通过文件包含把它们联结起来。头文件

29、头文件length.hlength.h#define Mile_to_meter 1609#define Mile_to_meter 1609#define Foot_to_centimeter 30.48#define Foot_to_centimeter 30.48#define Inch_to_centimeter 2.54 #define Inch_to_centimeter 2.54 主函数文件主函数文件prog.cprog.c#include #include #include #include “length.hlength.h”int main(void) int main(v

30、oid) float mile,foot,inch; float mile,foot,inch; return 0; return 0; 编译连接后生成的程序 stdio.h stdio.h的内容的内容#define Mile_to_meter 1609#define Foot_to_centimeter 30.48#define Inch_to_ centimeter 2.54 int main(void) float mile,foot,inch; return 0;第47页/共65页第四十七页,共66页。ctype.h字符处理(chl)math.h与数学处理(chl)函数有关的说明与定义

31、stdio.h输入输出函数中使用的有关说明和定义string.h字符串函数的有关说明和定义stddef.h定义某些常用内容stdlib.h杂项说明time.h支持系统时间函数常用常用(chn yn)(chn yn)标准头文件标准头文件第48页/共65页第四十八页,共66页。编译预处理是语言编译程序的组成部分,它用于解释处理语言源程序中的各种预处理指令。文件包含(#include)和宏定义(#define)都是编译预处理指令在形式上都以“#”开头,不属于C语言中真正的语句增强了C语言的编程功能,改进语言程序设计(chnxshj)环境,提高编程效率10.3.5编译(biny)预处理第49页/共65

32、页第四十九页,共66页。C程序的编译处理,目的是把每一条C语句用若干条机器指令来实现,生成目标程序。由于#define等编译预处理指令不是(bshi)C语句,不能被编译程序翻译,需要在真正编译之前作一个预处理,解释完成编译预处理指令,从而把预处理指令转换成相应的C程序段,最终成为由纯粹C语句构成的程序,经编译最后得到目标代码。编译(biny)预处理第50页/共65页第五十页,共66页。编译预处理的主要功能(gngnng):文件包含(#include)宏定义(#define)条件编译编译(biny)预处理功能第51页/共65页第五十一页,共66页。条件(tiojin)编译#defineFLAG1

33、#ifFLAG程序段1#else程序段2#endif编译(biny)预处理功能第52页/共65页第五十二页,共66页。10.4大程序构成多文件模块的学生(xusheng)信息库系统10.4.1分模块设计学生信息库系统10.4.2C程序(chngx)文件模块10.4.3文件模块间的通信第53页/共65页第五十三页,共66页。10.4.1分模块设计学生(xusheng)信息库系统例10-8 请综合例9-1、例9-2、例9-3和例9-4,分模块设计一个学生信息库系统。该系统包含学生基本信息的建立(jinl)和输出、计算学生平均成绩、按照学生的平均成绩排序以及查询、修改学生的成绩等功能。 函数建立(j

34、inl)为: 第54页/共65页第五十四页,共66页。10.4.1分模块(mkui)设计学生信息库系统n由于整个程序规模较大,按照功能图,分成三个程序文件模块,并把结构体定义等写成一个头文件。 n头文件student.h n输入输出程序文件input_void new_student (struct student students )nvoid output_student(struct student students )n计算平均成绩(chngj)与平均成绩(chngj)排序程序文件aver_void average(struct student students )nvoid sort

35、(struct student students )n查询修改程序文件void modify(struct student students )nvoid search_student(struct student students , int num)第55页/共65页第五十五页,共66页。10.4.1分模块(mkui)设计学生信息库系统n一共定义(dngy)了三个.c程序文件和一个.h头文件,它们各自独立,再通过主函数main()调用。主函数放在student_system.c文件中,各文件存放在同一个文件夹下,相互间的连接采用文件包含的形式。 n主函数程序文件student_#inclu

36、de “student.h”n#include “input _output.c”n#include “aver_sort.c”n#include “modify.c”nint Count = 0; /* 全局变量,记录当前学生总数 */nint main(void)n . /* 主函数调用各函数 */第56页/共65页第五十六页,共66页。10.4.2C程序(chngx)文件模块结构化程序设计是编写出具有良好结构程序的有效方法一个(y)大程序最好由一组小函数构成如果程序规模很大,需要几个人合作完成的话,每个人所编写的程序会保存在自己的.c文件中为了避免一个(y)文件过长,也会把程序分别保存为

37、几个文件。一个(y)大程序会由几个文件组成,每一个(y)文件又可能包含若干个函数。我们(w men)把保存有一部分程序的文件称为程序文件模块 第57页/共65页第五十七页,共66页。10.4.2C程序(chngx)文件模块一个大程序可由几个程序文件模块组成,每一个程序文件模块又可能包含若干个函数。程序文件模块只是函数书写的载体。当大程序分成若干文件模块后,可以对各文件模块分别编译,然后通过连接,把编译好的文件模块再合起来,连接生成可执行程序。问题:如何把若干程序文件模块连接成一个完整的可执行程序?文件包含工程文件(由具体(jt)语言系统提供)第58页/共65页第五十八页,共66页。10.4.2

38、C程序文件(wnjin)模块程序文件函数关系(gunx)小程序:主函数+若干函数一个文件大程序:若干程序文件模块(多个文件)每个程序文件模块可包含若干个函数各程序文件模块分别编译,再连接整个程序只允许有一个main()函数第59页/共65页第五十九页,共66页。10.4.3文件模块(mkui)间的通信文件模块与变量(binling)外部变量(binling)静态全局变量(binling)文件模块与函数外部函数静态的函数第60页/共65页第六十页,共66页。10.4.3文件(wnjin)模块间的通信外部变量全局变量只能在某个模块中定义一次,如果其他模块要使用该全局变量,需要通过外部变量的声明外部

39、变量声明格式为:extern变量名表;如果在每一个文件模块中都定义一次全局变量,模块单独编译时不会发生错误,一旦把各模块连接在一起时,就会产生对同一个全局变量名多次定义的错误反之,不经声明而直接使用全局变量,程序编译时会(shhu)出现“变量未定义”的错误。第61页/共65页第六十一页,共66页。10.4.3文件(wnjin)模块间的通信静态( jngti)全局变量当一个大的程序由多人合作完成时,每个程序员可能都会定义一些自己使用的全局变量为避免自己定义的全局变量影响其他人编写的模块,即所谓的全局变量副作用,静态( jngti)全局变量可以把变量的作用范围仅局限于当前的文件模块中即使其他文件模

40、块使用外部变量声明,也不能使用该变量。第62页/共65页第六十二页,共66页。10.4.3文件(wnjin)模块间的通信文件模块与函数外部函数如果要实现在一个模块中调用另一模块中的函数时,就需要对函数进行外部声明。声明格式为:extern函数类型函数名(参数表说明);静态的函数把函数的使用范围限制在文件模块内,不使某程序员编写的自用函数影响其他程序员的程序,即使其他文件模块有同名(tngmng)的函数定义,相互间也没有任何关联,增加模块的独立性。第63页/共65页第六十三页,共66页。本章(bnzhn)小结多函数程序的组织结构函数调用的层次结构多文件模块实现:文件包含合理运用变量(binlin

41、g)在多文件模块、多函数间的关联程序文件模块:变量(binling)与文件模块、函数与文件模块的关系递归函数构成要素:递归式子(重点)与递归出口运用递归函数解决特殊问题(如汉诺塔)编译预处理文件包含宏实质:编译预处理的替代带参的宏不是函数第64页/共65页第六十四页,共66页。感谢您的观看(gunkn)!第65页/共65页第六十五页,共66页。内容(nirng)总结本章要点。将64 个盘从座A搬到座B。= 123。的基础上再乘上n。定义宏CTOD将数字字符(09)转换为相应的。练习带宏定义的程序输出。当前文件夹+系统(xtng)文件夹。计算平均成绩与平均成绩排序程序文件aver_sort.c。合理运用变量在多文件模块、多函数间的关联。带参的宏不是函数。感谢您的观看第六十六页,共66页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号