二级C语言高频考点分析与实战--第7章函数(书上ch8).ppt

上传人:qwe****56 文档编号:80588222 上传时间:2023-03-23 格式:PPT 页数:59 大小:1.02MB
返回 下载 相关 举报
二级C语言高频考点分析与实战--第7章函数(书上ch8).ppt_第1页
第1页 / 共59页
二级C语言高频考点分析与实战--第7章函数(书上ch8).ppt_第2页
第2页 / 共59页
点击查看更多>>
资源描述

《二级C语言高频考点分析与实战--第7章函数(书上ch8).ppt》由会员分享,可在线阅读,更多相关《二级C语言高频考点分析与实战--第7章函数(书上ch8).ppt(59页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Company Logo第第7章函数章函数Top39:函数定义和返回值:函数定义和返回值Top40:有返回值函数的一般调用:有返回值函数的一般调用Top41:无返回值函数的一般调用:无返回值函数的一般调用Top42:函数的嵌套和递归调用:函数的嵌套和递归调用Top44:调用函数和被调用函数之间的数据传递:调用函数和被调用函数之间的数据传递Top43:函数的声明:函数的声明Company LogoC程序结构&C C是是函数式函数式语言语言,C C程序的基本单位是函数程序的基本单位是函数&必须有且只能有一个名为必须有且只能有一个名为mainmain的主函数的主函数&C程序的执行总是程序的执行总是从

2、从mainmain函数开始,在函数开始,在mainmain中结束中结束&函数函数不能嵌套定义不能嵌套定义,可以可以嵌套嵌套调用调用Company Logov函数分类函数分类从用户角度标准函数(库函数):由系统提供用户自定义函数从函数形式从函数形式无参函数无参函数有参函数有参函数使用库函数应注意:1、函数功能2、函数参数的数目和顺序,及各参数意义和类型3、函数返回值意义和类型4、需要使用的包含文件Company Logo库函数(标准函数):系统提供的已经设计好的函数。库函数(标准函数):系统提供的已经设计好的函数。库函数库函数 数学函数数学函数 abs(intabs(int)字符(串)函数字符(

3、串)函数 输入输出函数输入输出函数 动态分配和随机函数动态分配和随机函数 fabs(doublefabs(double)exp(doubleexp(double)pow(double,doublepow(double,double)strcmpstrcmp(*s1,*s2)(*s1,*s2)strcpystrcpy(*s1,*s2)(*s1,*s2)strlenstrlen(*s1)(*s1)calloccalloc()()mallocmalloc()()rand()rand()Company Logo说明:说明:(1)调用库函数时,必须要用命令行)调用库函数时,必须要用命令行#include

4、“头文件名头文件名”(2)标准库函数的调用形式)标准库函数的调用形式函数名(参数表)函数名(参数表)例:例:y=pow(x,2.5)y=x2.5 clrscr();for(i=0;iy?x:y;return(z);例 有参函数(现代风格)int max(int x,y)int z;z=xy?x:y;return(z);例 空函数 dummy()函数体为空例 无参函数 printstar()printf(“*n”);或 printstar(void)printf(“*n”);Company Logo函数类型 函数名(形参表)形参类型说明说明部分语句部分传统风格:例 有参函数(传统风格)int m

5、ax(x,y)int x,y;int z;z=xy?x:y;return(z);Top39函数定义和返回值函数定义和返回值Company Logo函数的返回值函数的返回值2功能:使程序控制从被调用函数返回到调用函数中,功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数同时把返值带给调用函数。返回语句形式:返回语句形式:return(表达式表达式);或或 return 表达式表达式;或或 return;l说明:l函数中可有多个return语句l若无return语句,遇时,自动返回调用函数l若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换-函数调用转换lv

6、oid型函数例 无返回值函数 void swap(int x,int y)int temp;temp=x;x=y;y=temp;Top39函数定义和返回值函数定义和返回值Company Logo printstar()printf(*);main()int a;a=printstar();printf(%d,a);例例 函数带回不确定值函数带回不确定值输出:输出:10void printstar()printf(*);main()int a;a=printstar();printf(%d,a);编译错误!编译错误!Top39函数定义和返回值函数定义和返回值Company Logov考点考点To

7、p39函数定义和返回值函数定义和返回值2.函数的返回值函数的返回值1.C语言函数定义的一般形式语言函数定义的一般形式存储类型说明符存储类型说明符 函数返回值类型函数返回值类型 函数名(类型名函数名(类型名 形参形参1,类型名,类型名 形参形参2,。),。)说明部分说明部分执行部分执行部分说明:说明:存储类型说明符是用来说明该函数是内部函数还是外部存储类型说明符是用来说明该函数是内部函数还是外部函数。函数。函数返回值的类型是用来说明该函数返回值的类型,如函数返回值的类型是用来说明该函数返回值的类型,如果没有返回值,则其类型说明符应该为果没有返回值,则其类型说明符应该为void。函数名和形式参数都

8、是由用户命名的标识符。在同一程函数名和形式参数都是由用户命名的标识符。在同一程序中,函数名必须唯一,形参名只要在同一函数中唯一序中,函数名必须唯一,形参名只要在同一函数中唯一即可,可以与其它函数中的变量重名。即可,可以与其它函数中的变量重名。若省略了函数返回值的类型默认为若省略了函数返回值的类型默认为int型。型。形参可以省略,称为无参函数。在调用时不用参数。形参可以省略,称为无参函数。在调用时不用参数。函数体中,除形参外,用到的其它变量必须在说明部分函数体中,除形参外,用到的其它变量必须在说明部分进行定义,且可以和其它函数中的变量重名。进行定义,且可以和其它函数中的变量重名。函数值通过函数值

9、通过return语句返回语句返回,一般形式为:一般形式为:return(表达式表达式);或或 return 表达式表达式;或或 return;说明:说明:return语句中表达式的值就是所求的函数值,且其类型语句中表达式的值就是所求的函数值,且其类型必须与函数首部所说明的类型一致,若类型不一致,则必须与函数首部所说明的类型一致,若类型不一致,则由系统自动转换为函数值的类型。由系统自动转换为函数值的类型。在程序执行到在程序执行到return语句时,流程就返回到调用该函数语句时,流程就返回到调用该函数处,并带回函数值。在同一个函数体内,可以在多处处,并带回函数值。在同一个函数体内,可以在多处ret

10、urn语句。语句。return语句也可以不含表达式。此时,它只是使流程返语句也可以不含表达式。此时,它只是使流程返回到调用函数,并没有确定的函数值。回到调用函数,并没有确定的函数值。函数体内也可以没有函数体内也可以没有reture语句,程序就一直执行到函语句,程序就一直执行到函数末尾,然后返回到调用函数,此时也没有确定的函数数末尾,然后返回到调用函数,此时也没有确定的函数值带回。值带回。Company Logov真题分析真题分析(2007年4月)在C语言中,函数返回值的类型最终取决于A、函数定义时在函数首部所说明的函数类型B、return语句中表达式值的类型C、调用函数时主调函数所传递的实参类

11、型D、函数定义时形参的类型Top39函数定义和返回值函数定义和返回值returnreturn语句中表达式的值就是所求的函数值,语句中表达式的值就是所求的函数值,且其类型必须与函数首部所说明的类型一致。且其类型必须与函数首部所说明的类型一致。ACompany LogoTop39函数定义和返回值函数定义和返回值v真题分析真题分析(2006年4月)下列isprime 函数的功能是判断形参a 是否为素数,是素数,函数返回1,否则返回0。请填空int isprime(int a)int i;for(i=2;i=a/2;i+)if(a%i=0);return 0return 1Company LogoTo

12、p39函数定义和返回值函数定义和返回值v真题分析真题分析(2006年4月)已经定义以下函数,fun函数的返回值是A、不确定的值B、一个整数C、形参p中存放的值D、形参p的地址int fun(int*p)return*p;)returnreturn语句中表达式的值就是所求的函数值,语句中表达式的值就是所求的函数值,且其类型必须与函数首部所说明的类型一致。且其类型必须与函数首部所说明的类型一致。BCompany LogoTop39函数定义和返回值函数定义和返回值v练习题练习题1、程序中对fun函数有如下说明void*fun()此说明的含义是A、fun函数无返回值。B、fun函数的返回值可以是任意类

13、型的数据类型C、fun函数的返回值是无值型的指针类型D、指针fun指向一个函数,该函数无返回值。CCompany LogoTop40有返回值的函数的一般调用形式有返回值的函数的一般调用形式v考点考点2.函数调用的过程函数调用的过程1.有返回值的函数的调用形式有返回值的函数的调用形式函数名(实际参数列表)函数名(实际参数列表)3.函数调用的语法要求函数调用的语法要求调用的结果是获得一个返回值,该返回值可以参加相应调用的结果是获得一个返回值,该返回值可以参加相应类型的计算。类型的计算。首先为被调用函数的所有形参分配内存,再计算实际参首先为被调用函数的所有形参分配内存,再计算实际参数的值,再一一对应

14、地赋给相应的形参(对于无参函数,数的值,再一一对应地赋给相应的形参(对于无参函数,不做这项工作)。不做这项工作)。然后进行函数体,为函数说明部分定义的变量分配存储然后进行函数体,为函数说明部分定义的变量分配存储空间,再依次执行函数体中的可执行语句。空间,再依次执行函数体中的可执行语句。当执行到当执行到return语句时,计算返回值,收回本函数中定语句时,计算返回值,收回本函数中定义的变量所占用的存储空间,对于义的变量所占用的存储空间,对于static类型的变量,类型的变量,其空间不收回),返回主调函数继续执行。其空间不收回),返回主调函数继续执行。调用函数时,函数名必须与所调用的函数名字完全调

15、用函数时,函数名必须与所调用的函数名字完全一致。一致。实参的个数必须与形参一致。实参的个数必须与形参一致。C语言规定,函数必须先定义后调用。语言规定,函数必须先定义后调用。Company LogoTop40有返回值的函数的一般调用形式有返回值的函数的一般调用形式v真题分析真题分析(2006年9月)有以下程序,程序运行后的输出结果是。A、6B、7C、8D、9fun(int x,int y)return(x+y);main()int a=1,b=2,c=3,sum;sum=fun(a+,b+,a+b),c+);printf(%dn,sum);CCompany LogoTop40有返回值的函数的一般

16、调用形式有返回值的函数的一般调用形式v真题分析真题分析(2005年9月)有以下程序,若运行时输入:1234,则程序的输出结果是int sub(int n)return(n/10+n%10);main()int x,y;scanf(%d,&x);y=sub(sub(sub(x);printf(%dn,y);10Top40有返回值的函数的一般调用形式有返回值的函数的一般调用形式v真题分析真题分析(2011年9月)有以下程序,程序运行后的输出结果是(选择题24题)A)503 B)401C)500 D)1404Company Logo#include double f(double x);main()

17、double a=0;int i;for(i=0;i30;i+=10)a+=f(double)i);printf(%5.0fn,a);double f(double x)return x*x+1;ACompany LogoTop40有返回值的函数的一般调用形式有返回值的函数的一般调用形式v练习题练习题1、以下程序通过函数、以下程序通过函数SunFun求求 ,f(x)=x2+1由由函数函数F实现。请填空。实现。请填空。main()printf(“The sum=%dn”,SunFun(10);SunFun(int n)int x,s=0;for(x=0;x=n;x+)s+=F(_);return

18、 s;F(int x)return _;xx*x+1Company LogoTop41无返回值的函数的一般调用形式无返回值的函数的一般调用形式v考点考点1、无返回值的调用形式、无返回值的调用形式函数名(实际参数列表)函数名(实际参数列表);这里的分号必不可少这里的分号必不可少2、无返回值的函数的执行过程、无返回值的函数的执行过程与有返回值的调用形式一样,只是最后没有与有返回值的调用形式一样,只是最后没有“return(表达式表达式)”Top41无返回值的函数的一般调用形式无返回值的函数的一般调用形式真题分析(2011年3月)有以下函数void prt(char ch,int n)int i;f

19、or(i=1;iy?x:y;int f2(int x,int y)return xy?y:x;main()int a=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d);g=a+b+c+d-e-f;printf(“%d,%d,%d”,e,f,g);ACompany LogoTop42 函数的递归调用函数的递归调用考点:考点:v递归调用递归调用定义:函数直接或间接的调用自身叫函数的递归调用Company Logof()调f调f2调f1f1()f2()说明C编译系统对递归函数的自调用次数没有限制每调用函数一次,在内存堆栈区分配

20、空间,用于存放函数变量、返回值等信息,所以递归次数过多,可能引起堆栈溢出int f(int x)int y,z;z=f(y);.return(2*z);int f1(int x)int y,z;z=f2(y);.return(2*z);int f2(int t)int a,c;c=f1(a);.return(3+c);Top42 函数的递归调用函数的递归调用Company LogoTop42 函数的递归调用函数的递归调用v真题分析真题分析(2007年4月)以下程序的输出结果是10int fun(int*x,int n)if(n=0)return x0;else return x0+fun(x+

21、1,n-1);main()int a=1,2,3,4,5,6,7;printf(%dn,fun(a,3);f(&a0,3)f(&a1,2)f(&a2,1)f(&a3,0)Top42 函数的递归调用函数的递归调用真题分析真题分析(2011年3月)设有如下函数定义int fun(int k)if(k1)return 0;else if(k=1)return 1;else return fun(k-1)+1;若执行调用语句:n=fun(3);,则函数fun总共被调用的次数是(选择题32题)A)2 B)3 C)4 D)5Company LogoBTop42 函数的递归调用函数的递归调用真题分析真题分析

22、(2011年3月)#include stdio.hint fun(int x,int y)if(x!=y)return(x+y)/2);else return(x);main()int a=4,b=5,c=6;printf(%dn,fun(2*a,fun(b,c);程序运行后的输出结果是(选择题33题)A)3 B)6 C)8 D)12Company LogoBTop42 函数的递归调用函数的递归调用真题分析真题分析(2011年9月)以下程序运行后输出结果是(填空题第10题)。#include void fun(int x)if(x/50)fun(x/5);printf(%dn,x);main(

23、)fun(11);printf(n);Company Logo2 11Company LogoTop42 函数的递归调用函数的递归调用v真题分析真题分析有以下程序,程序运行后的结果是A、7B、3C、2D、0fun(int x)int p;if(x=0|x=1)return 3;p=x-fun(x-2);return p;main()printf(“%dn”,fun(7);CCompany LogoTop42 函数的递归调用函数的递归调用v练习题练习题1、有以下程序,程序执行的结果是A、函数调用出错B、8C、9D、7char fun(char x,char y)if(xy)return x;re

24、turn y;main()int a=9,b=8,c=7;printf(“%cn”,fun(fun(a,b),fun(b,c)DCompany LogoTop43 函数的声明函数的声明 v考点考点1、除主函数外,对于用户定义的函数要、除主函数外,对于用户定义的函数要“先定义,后使用先定义,后使用”。函数说明的一般形式:函数说明的一般形式:类型名类型名 函数名(参数类型函数名(参数类型1,参数类型,参数类型2。)。)例:例:double add(double,double)也可以与普通变量一起出现在定义语句中也可以与普通变量一起出现在定义语句中例:例:double x,y,add(double

25、a,double b);2、函数说明的位置、函数说明的位置(1)可在所有函数的外部,被调用之前说明函数可在所有函数的外部,被调用之前说明函数(2)在调用函数内部说明,只能在该函数内部才能被识别)在调用函数内部说明,只能在该函数内部才能被识别Company LogoTop43 函数的声明函数的声明v真题分析真题分析(2006年9月)若有以下函数首部int fun(double x10,int*n)则下列针对此函数的函数声明语句中正确的是A、int fun(double x,int*n);B、int fun(double,int);C、int fun(double*x,int n);D、int f

26、un(double*,int*);DTop43 函数的声明函数的声明真题分析真题分析(2011年年3月)有以下程序,请在月)有以下程序,请在 处填写正确语句,使程序可正处填写正确语句,使程序可正常编译运行。(填空题常编译运行。(填空题12题)题)#include“stdio.h”_;main()double x,y,(*p)();scanf(%lf%lf,&x,&y);p=avg;printf(%fn,(*p)(x,y);double avg(double a,double b)return(a+b)/2);Company Logodouble avg(double,double);Top43

27、 函数的声明函数的声明真题分析真题分析(2011年年9月)以下程序的主函数中调用了在其前面定义的月)以下程序的主函数中调用了在其前面定义的fun函数函数#include main()double a15,k;k=fun(a);则以下选项中错误的则以下选项中错误的fun函数的首部是函数的首部是_(选择题选择题31题题)。A)double fun(double a15)B)double fun(double*a)C)double fun(double a)D)double fun(double a)Company LogoDCompany LogoTop43 函数的声明函数的声明v真题分析真题分析

28、(2004年4月)若程序中定义了以下函数,double myadd(double a,double b)return(a+b);则在调用之前对函数进行说明,以下选项中错误的是A、double myadd(double a,b);B、double myadd(double,double);C、double myadd(double b,double a);D、double myadd(double x,double y);ACompany LogoTop43 函数的声明函数的声明v练习题练习题1、请在以下程序第一行的下划线处,填写适当内容,使程序能够正确运行。(double,double);ma

29、in()double x,y;scanf(“%lf%lf”,&x,&y);printf(“%lfn”,max(x,y);double max(double a,double b)return(ab?a:b);double maxCompany LogoTop44调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递考点:考点:在在C语言中,调用函数和被调用函数之间的数据传递可以通过三种方式:语言中,调用函数和被调用函数之间的数据传递可以通过三种方式:(1)实参和形参实参和形参之间的数据传递之间的数据传递值传递值传递方式方式方式:函数调用时方式:函数调用时,为形参分配单元为形参分配

30、单元,并将实参的值复制到并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值维持原值特点:特点:形参与实参占用不同的内存单元形参与实参占用不同的内存单元单向传递,即用户不可能在函数中改变对应实参的值单向传递,即用户不可能在函数中改变对应实参的值(2)通过)通过return语句把函数值返回调用函数语句把函数值返回调用函数(3)通过全局变量。(不提倡)通过全局变量。(不提倡)Company Logo形参与实参形式参数:定义函数时函数名后面括号中的变量名实际参数:调用函数时函数名后面括号中的表达式c=max(a,b);(mai

31、n 函数)(max 函数)max(int x,int y)int z;z=xy?x:y;return(z);例 比较两个数并输出大者main()int a,b,c;scanf(%d,%d,&a,&b);c=max(a,b);printf(Max is%d,c);max(int x,int y)int z;z=xy?x:y;return(z);形参实参Top44调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递Company Logo说明:实参必须有确定的值形参必须指定类型形参与实参类型一致,个数相同类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换函数调用转换函数调

32、用转换形参在函数被调用前不占内存;函数调用时为形参函数调用时为形参分配内存;调用结束,内存释放分配内存;调用结束,内存释放形参与实参形式参数形式参数:定义函数时函数名后面括号中的变量名实际参数实际参数:调用函数时函数名后面括号中的表达式Top44调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递Company Logo#include long sum(int a,int b);long factorial(int n);main()int n1,n2;long a;scanf(%d,%d,&n1,&n2);a=sum(n1,n2);printf(a=%1d,a);long

33、sum(int a,int b)long c1,c2;c1=factorial(a);c2=factorial(b);return(c1+c2);long factorial(int n)long rtn=1;int i;for(i=1;i=n;i+)rtn*=i;return(rtn);long sum(int a,int b);long factorial(int n);文件包含编译预处理命令函数类型说明函数定义函数调用函数调用函数返回值形参实参Company Logo例 计算x的立方#include float cube(float x)return(x*x*x);main()float

34、 a,product;printf(Please input value of a:);scanf(%f,&a);product=cube(a);printf(”Cube of%.4f is%.4fn,a,product);xaproduct1.21.21.728Top44调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递Company Logo711x:y:调用前:调用结束:711x:y:#include main()int x=7,y=11;printf(x=%d,ty=%dn,x,y);printf(swapped:n);swap(x,y);printf(x=%d,ty

35、=%dn,x,y);swap(int a,int b)int temp;temp=a;a=b;b=temp;调用:711a:b:711x:y:swap:711x:y:117a:b:temp例交换两个数例交换两个数Top44调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递Company Logo地址传递地址传递方式:函数调用时,将数据的存储地址存储地址作为参数传递给形参特点:形参与实参占用同样同样的存储单元“双向双向”传递实参和形参必须是地址地址常量或变量Top44调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递Company Logo例例 交换两个数交换

36、两个数a59b调前:a59b调swap:p1&a&bp2a95b交换:p1&a&bp2a95b返回:swap(p1,p2)int*p1,*p2;int p;p=*p1;*p1=*p2;*p2=p;main()int a,b;scanf(%d,%d,&a,&b);printf(“a=%d,b=%dn”,a,b);printf(“swapped:n”);swap(&a,&b);printf(”a=%d,b=%dn,a,b);Company Logov真题分析真题分析(2006年9月)、下列程序中,fun()函数的功能是计算x2-2x+6,主函数中将调用fun()函数计算:y1=(x+8)2-2(x

37、+8)+6y2=sin2(x)-2sin(x)+6,请填空。Top44调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递#include math.hdouble fun(double x)return(x*x-2*x+6);main()double x,y1,y2;printf(Enter x:);scanf(%lf,&x);y1=fun();y2=fun();printf(y1=%lf,y2=%lfn,y1,y2);x+8sin(x)Company LogoTop44调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递v真题分析真题分析(2005年4月)下

38、列程序运行后的输出结果是void swap(int x,int y)int t;t=x;x=y;y=t;printf(%d%d,x,y);main()int a=3,b=4;swap(a,b);printf(%d%dn,a,b);4 3 3 4Company LogoTop44调用函数和被调用函数之间的数据传递调用函数和被调用函数之间的数据传递v练习题练习题1、以下程序运行后的输出结果是void fun(int x,int y)x=x+y;y=y-x;x=x-y;printf(%d%d,x,y);main()int x=2,y=3;fun(x,y);printf(%d%dn,x,y);3 2

39、2 3Company Logo程序举例程序举例例7-1 在键盘上输入三个整数,求其最大数。int max(int x,int y)int z;z=xy?x:y;return(z);abcxxyz47547477775main()int a,b,c,x;int max(int,int);printf(“a,b,c=?);scanf(“%d,%d,%d”,&a,&b,&c);x=max(a,b);x=max(x,c);printf(“max=%dn”,x);Company Logo例例7-2编写函数编写函数isprime(int a)用来判断自变量用来判断自变量a是否为素数。是否为素数。若是素数,

40、函数返回整数若是素数,函数返回整数1,否则返回,否则返回0。#include stdio.hint isprime(int);/*函数的说明语句函数的说明语句*/main()int x;printf(Enter a integer number:);scanf(%d,&x);if(isprime(x)printf(%d is a prime.n,x);elseprintf(%d is not a prime.n,x);Company Logoint isprime(int a)int i;for(i=2;i=a/2;i+)if(a%i=0)return 0;return 1;Company L

41、ogo例例7-3验证任意偶数为两素数之和。验证任意偶数为两素数之和。#include stdio.hint isprime(int);void even(int);main()int a;printf(Enter a even number);scanf(%d,&a);if(a%2=0)even(a);else printf(nthe number isnt even number.n);Company Logovoid even(int x)int i;for(i=2;i=a&ch=z)ch=ch-32;return ch;main()char c;while(c=getchar()!=)c

42、=myupper(c);putchar(c);Company Logo例例7-6编写函数统计输入字符的个数,用编写函数统计输入字符的个数,用结束输入。在主函数中结束输入。在主函数中调用此函数,输出统计结果。调用此函数,输出统计结果。#include stdio.hlong countch();main()long int n;n=countch();printf(n=%ld,n);long countch()long cn;for(cn=0;(getchar()!=;cn+);return cn;Company Logo例例7-7编写函数统计输入文本中单词的个数,单词之间用空格符、编写函数统计

43、输入文本中单词的个数,单词之间用空格符、换行符、跳格符隔开,用作为结束标志。换行符、跳格符隔开,用作为结束标志。#include stdio.h#define IN 1#define OUT 0int countword();main()int n;n=countword();printf(n=%dn,n);Company Logoint countword()int c,nw,state;state=OUT;/*在单词的外部在单词的外部*/nw=0;while(c=getchar()!=)if(c=|c=n|c=t)state=OUT;/*读入的字符是分隔符读入的字符是分隔符*/else if(state=OUT)/*遇到的是单词的第一个字母遇到的是单词的第一个字母*/state=IN;nw+;return nw;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 财经金融

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com