C语言函数知识详解
C语言函数大全

C语言函数大全C语言作为一种广泛应用的计算机编程语言,其函数是程序设计中不可或缺的部分。
C语言函数大全涵盖了C语言中常用的各种函数,包括数学函数、字符串函数、输入输出函数等,本文将对这些函数进行详细介绍。
一、数学函数。
1. abs函数。
abs函数用于返回一个整数的绝对值,其原型为int abs(int x)。
2. pow函数。
pow函数用于计算一个数的幂,其原型为double pow(double x, double y)。
3. sqrt函数。
sqrt函数用于计算一个数的平方根,其原型为double sqrt(double x)。
4. sin函数。
sin函数用于计算一个角度的正弦值,其原型为double sin(double x)。
5. cos函数。
cos函数用于计算一个角度的余弦值,其原型为double cos(double x)。
6. tan函数。
tan函数用于计算一个角度的正切值,其原型为double tan(double x)。
二、字符串函数。
1. strlen函数。
strlen函数用于返回一个字符串的长度,其原型为size_t strlen(const char s)。
2. strcpy函数。
strcpy函数用于将一个字符串复制到另一个字符串中,其原型为charstrcpy(char dest, const char src)。
3. strcat函数。
strcat函数用于将一个字符串追加到另一个字符串的末尾,其原型为char strcat(char dest, const char src)。
4. strcmp函数。
strcmp函数用于比较两个字符串,其原型为int strcmp(const char s1, const char s2)。
5. strchr函数。
strchr函数用于在一个字符串中查找指定字符的位置,其原型为charstrchr(const char s, int c)。
C语言从入门到精通(吐血分享)

六大表达式一、算术表达式(数学表达式)(1)运算符:数学:{} [] () + - * / + -C:()、+/-、* / %、+/-正负(2)单目、双目运算符单目:一个操作数 +5 -9双目:两个操作数 5+6 7*8(3)%:<1>双目运算符<2>操作数:两个数都是整型资料1%2<3>奇数: x%2!=0偶数: x%2==0整除: %(4)在算术运算中,如果运算符两端的类型都是整型数据,那么结果是整型资料1/2 0 5/3 1 8/9 0 9/8 1在算术运算中,如果运算符两端的类型不一致,向空间大的一方转化. 1/2.0 1.0/2.0 0.5 1.0/5 1.0/5.0 0.22 4(5)优先级:(6)结合性:(7)使用多层括号,一律使用小括号(8)强制性类型转化格式:(类型名)表达式注:1)类型名括号不能省2)不存在四舍五入2.赋值表达式(1)格式变量名=表达式(2)变数的实质:存储单元(3) =:赋值号==:等号优先级:只比逗号高结合性:自右向左(4)表达式:常量、变数、六大表达式(5)在赋值表达式中,赋值号的左端只能为变量名5+8=a b=a(6) int x=2,y=3;x=y:将变量y所代表的单元中的值取出来赋值给变量x所代表的单元中x=x+1:将变量x所代表的单元中的值取出来+1赋值给变量x代表的单元中x=x:左x: 代表x所标识的单元右x:将变量x所代表的单元中的值取出来单元=值(7)变量中的值在不断进行更新x=2x=3x=99(8)复合赋值表达式(算术和赋值) 1)运算符:*= /= %= += -=2)优先级:与”=“同级3)结合性:自右向左4)复合赋值有隐含小括号功能3.关系表达式(1)逻辑值平时 C 5678 -2真非0 1假 0 0(2)运算符> >= < <= == != (3)优先级> >= < <= == != (4)结合性自左向右(5)结果:逻辑值5<6 7>94.逻辑表达式(1)运算符!:(非补集)&&:(与交集)||:(或者并集)(2)!:单目运算&& ||:双目(3)优先级高到低:! && ||(4)结合性!:自右向左&& ||:自左向右(5)使用!0 1 !非0 0非0&&非0 1 1||1 1非0&&0 0 1||0 10&&非0 0 0||1 10&&0 0 0||0 0(6)结果:逻辑值(1,0)(7)数学表示方式|x|<=9 -9<=x<=9 x>=-9&&x<=9|x|>=9 x>=9或x<=-9 x>=9||x<=-9(8)断路问题<1> 在逻辑&&运算中,如果表达式1已经为逻辑假,表达式2不用执行,该表达式值为逻辑假<2>在逻辑||运算中,如果表达式1已经为逻辑真,表达式2不用执行,该表达式值为逻辑真5.条件表达式格式:表达式1?表达式2:表达式3(1)三目运算(2)运算过程:表达式1为真,执行表达式2表达式1为假,执行表达式36.逗号表达式(1)格式:表达式1,表达式2,表达式3,表达式4,……,表达式n (2)优先级:所有运算符中优先级最低(3)结合性:自左向右int a=8;a+=3,a=5,a+3; ?a 表达式的值?附:<1>++ 、--1>功能++:+1 自动赋值--: -1 自动赋值2>单目运算3>操作数可以放在运算符的右边也可以放在运算符的左边 i++ ++i i-- --i4>操作数可以为整型、实型的变量 2++ 2=2+1 错i++ i=i+1 ++i i=i+1i-- i=i-1 --i i=i-15>表达式值和变数值int i;表达式值变数值i=5 i++ 5 6i=5 ++i 6 6i=5 i-- 5 4i=5 --i 4 4只要给出式子的整体(i++,--i)则使用的是表达式的值;如果给出变量名,使用的是变量值int i=5;j=40/i++; j=40/6 66>-i++:-(i++) j=-i++; j=-5 i=6<2>所有运算符的优先级(六个表达式)高=》低() ++/-- !算术表达式关系表达式逻辑表达式条件表达式赋值表达式逗号表达式。
C语言函数详解定义调用和参数传递

C语言函数详解定义调用和参数传递C语言函数详解:定义、调用和参数传递函数是C语言中非常重要的概念,它能够将一段特定功能的代码组织在一起,并且可以在程序中被多次调用。
本文将详细介绍函数的定义、调用和参数传递的相关知识。
一、函数的定义在C语言中,函数的定义由函数头和函数体组成。
1. 函数头函数头由以下几个部分组成:返回类型:函数执行完毕后返回的数据类型,可以是void、int、char等。
函数名:函数的标识符,用来在程序中调用函数。
参数列表:函数接收的参数,可以有多个参数,每个参数之间用逗号隔开。
2. 函数体函数体是一段用花括号括起来的代码块,包含了函数的具体实现。
二、函数的调用在程序中调用函数,需要使用函数名和一对小括号。
1. 无返回值的函数调用如果函数定义中的返回类型是void,说明函数没有返回值。
例如,下面是一个无返回值的函数定义和调用的示例:```cvoid printMessage(){printf("Hello, World!");}int main(){printMessage(); // 调用函数return 0;}```2. 有返回值的函数调用如果函数定义中的返回类型不是void,说明函数有返回值。
例如,下面是一个有返回值的函数定义和调用的示例:```cint addNumbers(int a, int b){return a + b;}int main(){int result = addNumbers(5, 3); // 调用函数并接收返回值printf("结果是:%d", result);return 0;}```三、参数传递在函数定义中的参数列表中,可以定义多个参数,并在调用函数时传递相应的参数。
1. 值传递值传递是给函数传递参数的一种方式,就是将实际参数的值复制给形式参数。
例如,下面是一个使用值传递的函数调用示例:```cvoid changeValue(int num){num = num + 10;}int main(){int number = 20;changeValue(number); // 传递number的值printf("值传递后的number值为:%d", number); // 输出结果为20,值未改变return 0;}```2. 引用传递引用传递是给函数传递参数的另一种方式,通过传递参数的地址来修改实际参数的值。
c语言基础知识笔记

c语言基础知识笔记
1、定义
函数是一组一起执行一个任务的语句,每个C程序都至少有一个函数,即主函数main(),所有简单的程序都可以定义其他额外的函数。
函数声明告诉编译器函数的名称、返回类型和参数,函数定义提供了函数的实际主体。
2、函数的一般形式
return_typefunction_name(parameterlist)
{bodyofthefunction}
组成部分:
1.返回类型
返回类型:一个函数可以返回一个值。
return_type是函数返回的值的数据类型,有些函数执行所需的操作而不返回值,在这种情况下,return_type是关键字void。
2.函数名称
函数名称:这是函数的实际名称。
函数名和参数列表一起构成了函数签名。
注意:函数名和参数列表一起构成了函数签名,意味着可以出现参数列表不同但是函数名相同的函数。
voidprint()
{printf("helloworld!");}
voidprint(intnums)
{printf("%d\n",a);}
3.参数
参数:参数就像是占位符,当函数被调用时,您向参数传递一个值,这个值被称为实际参数。
参数列表包括函数参数的类型、顺序、数量,参数是可选的,也就是说,函数可能不包含参数。
4.函数主体
函数主体:函数主体包含一组定义函数执行任务的语句。
c语言常用函数大全及详解

C语言常用函数包括:1.printf函数:用于在控制台输出数据。
2.scanf函数:用于从控制台读取用户输入的数据。
3.strlen函数:用于计算字符串的长度。
4.strcmp函数:用于比较两个字符串的大小。
5.strcpy函数:用于将一个字符串复制到另一个字符串中。
6.strcat函数:用于将一个字符串连接到另一个字符串的末尾。
7.strchr函数:用于查找字符串中指定字符的位置。
8.strstr函数:用于查找字符串中指定子串的位置。
9.atoi函数:用于将字符串转换为整数。
10.atof函数:用于将字符串转换为浮点数。
11.malloc函数:用于动态分配内存空间。
12.free函数:用于释放动态分配的内存空间。
13.memcpy函数:用于将一段内存区域的数据复制到另一段内存区域。
14.memset函数:用于将一段内存区域的数据设置为指定的值。
15.abs函数:用于计算整数的绝对值。
16.rand函数:用于生成随机数。
17.srand函数:用于设置随机数生成器的种子。
18.time函数:用于获取当前的系统时间。
19.localtime函数:用于将时间戳转换为本地时间。
20.strtol函数:用于将字符串转换为长整型数。
21.strtod函数:用于将字符串转换为双精度浮点数。
22.fprintf函数:用于将数据格式化输出到文件中。
23.fscanf函数:用于从文件中读取格式化的数据。
24.fgets函数:用于从文件中读取一行数据。
25.fputs函数:用于将数据写入文件中。
26.fopen函数:用于打开文件。
27.fclose函数:用于关闭文件。
28.feof函数:用于判断文件是否已经到达文件末尾。
29.ferror函数:用于判断文件操作是否发生错误。
30.fprintf函数:用于将数据格式化输出到文件中。
c语言常用函数大全及详解

c语言常用函数大全及详解C语言是一种通用的、面向过程的编程语言,被广泛应用于系统软件、嵌入式开发以及科学计算领域。
在C语言中,函数是一种模块化编程的基本方法,通过函数可以将一段代码进行封装和复用,提高了代码的可读性和可维护性。
本文将介绍一些C语言中常用的函数,并详细解释其用法及重要参数。
一、数学函数1. abs()函数函数原型:int abs(int x);函数功能:返回x的绝对值。
参数说明:x为一个整数。
2. pow()函数函数原型:double pow(double x, double y);函数功能:计算x的y次方。
参数说明:x和y为两个double类型的实数。
3. sqrt()函数函数原型:double sqrt(double x);函数功能:计算x的平方根。
参数说明:x为一个double类型的实数。
二、字符串函数1. strcpy()函数函数原型:char* strcpy(char* destination, const char* source);函数功能:将source字符串复制到destination字符串。
参数说明:destination为目标字符串,source为源字符串。
2. strlen()函数函数原型:size_t strlen(const char* str);函数功能:计算str字符串的长度。
参数说明:str为一个以'\0'结尾的字符串。
3. strcat()函数函数原型:char* strcat(char* destination, const char* source);函数功能:将source字符串拼接到destination字符串的末尾。
参数说明:destination为目标字符串,source为源字符串。
三、文件操作函数1. fopen()函数函数原型:FILE* fopen(const char* filename, const char* mode);函数功能:打开一个文件,并返回文件指针。
c语言函数的定义和声明

c语言函数的定义和声明C语言函数的定义和声明在C语言中,函数是一种可重复使用的代码块,用于完成特定的任务。
函数的定义和声明是使用函数的关键步骤,本文将详细介绍这两个概念及其使用方法。
一、函数的定义函数的定义是指为实现特定功能而编写的函数代码。
在函数的定义中,需要包括函数的名称、返回类型、参数列表和函数体。
1. 函数的名称函数的名称是用来唯一标识函数的符号,通常采用驼峰命名法或下划线命名法。
函数的名称应该具有描述性,能够清晰地表达函数的功能。
2. 返回类型返回类型指的是函数执行完毕后的返回值的类型。
C语言中常用的返回类型有整型、浮点型、字符型、指针型等。
在函数定义中,需要使用关键字来指定返回类型,如int、float、char等。
3. 参数列表参数列表指的是函数接收的输入值,也称为函数的形参。
参数列表中需要指定参数的类型和名称。
如果函数不需要接收任何输入值,可以将参数列表留空或使用void关键字表示。
4. 函数体函数体是函数的具体实现代码,包括了一系列的语句和逻辑。
函数体中的代码会在函数被调用时执行。
函数体应该包含必要的变量定义、循环结构、条件判断等,以实现函数的功能。
二、函数的声明函数的声明是指在使用函数之前,需要提前声明函数的存在和函数的原型。
函数的声明主要包括函数的名称、返回类型和参数列表。
函数的声明可以放在函数的定义之前,也可以放在其他函数的内部。
在声明函数时,只需要提供函数的名称、返回类型和参数列表,不需要提供函数体。
函数的声明可以放在头文件中,以便其他源文件可以引用该函数。
在需要使用该函数的源文件中,只需包含头文件即可。
三、函数的定义和声明的关系函数的定义和声明是相辅相成的,函数的声明使得我们可以在不知道函数具体实现的情况下使用函数。
而函数的定义则提供了函数的具体实现,使得函数能够被正确执行。
在使用函数之前,我们需要先进行函数的声明,以便编译器能够知道函数的存在和函数的原型。
然后再在合适的位置进行函数的定义,即提供函数体和具体的实现代码。
C语言中的数学函数

C语言中的数学函数数学函数在计算机编程中起着重要的作用,尤其是在C语言中。
C语言提供了丰富的数学函数库,方便开发者进行各种数学计算和操作。
本文将介绍C语言中常用的数学函数,包括数值运算、三角函数、指数函数等。
一、数值运算函数1.1 绝对值函数(fabs)绝对值函数fabs(x)返回x的绝对值。
例如,fabs(-5)的返回值是5。
1.2 向上取整函数(ceil)向上取整函数ceil(x)返回大于或等于x的最小整数。
例如,ceil(4.2)的返回值是5。
1.3 向下取整函数(floor)向下取整函数floor(x)返回小于或等于x的最大整数。
例如,floor(4.8)的返回值是4。
1.4 平方根函数(sqrt)平方根函数sqrt(x)返回x的平方根。
例如,sqrt(16)的返回值是4。
1.5 幂运算函数(pow)幂运算函数pow(x, y)返回x的y次方。
例如,pow(2, 3)的返回值是8。
二、三角函数2.1 正弦函数(sin)正弦函数sin(x)返回以弧度为单位的角x的正弦值。
例如,sin(0)的返回值是0。
2.2 余弦函数(cos)余弦函数cos(x)返回以弧度为单位的角x的余弦值。
例如,cos(3.14)的返回值是-1。
2.3 正切函数(tan)正切函数tan(x)返回以弧度为单位的角x的正切值。
例如,tan(0.8)的返回值是0.999.2.4 反正弦函数(asin)反正弦函数asin(x)返回x的反正弦值,以弧度为单位。
例如,asin(1)的返回值是1.57.2.5 反余弦函数(acos)反余弦函数acos(x)返回x的反余弦值,以弧度为单位。
例如,acos(0)的返回值是1.57.三、指数函数3.1 自然指数函数(exp)自然指数函数exp(x)返回e的x次方。
其中e的值约为2.71828。
例如,exp(1)的返回值是2.71828.3.2 对数函数(log)对数函数log(x)返回以e为底,x的对数值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
函数<一>第一节函数的定义和返回值一、库函数1、一个C语言源程序无论包含了多少函数,C程序总是从main开始执行。
2、调用C语言标准库函数时要求的include命令。
1)用户在源程序include命令中应该包含头文件:#include<stdio.h>include命令必须用#开头,系统提供的头文件以.h作为文件的后缀,文件名用””或<>括起来,2)include命令不是C语句,因此不能在最后加分号。
3、标准库函数的调用:1)一般调用形式为:函数名(参数表)scanf(“%d”,&a);printf(“%d”,a);putchar(ch);ch=getchar();2)库函数的调用可以两种形式出现:1出现在表达式中:例:y=pow(x,2,5)+1.32作为独立语句完成某程操作:例:printf(“********\n”);常用函数:数学函数:调用数学函数时,要求在源文件中包含以下命令行:#include“math.h”例:int abs(int x)double cos(double x)字符函数和字符串函数调用字符函数时,要求在源文件中包含头文件”ctype.h”;调用字符串函数时,要求在源文件中包含头文件”string.h”如调用:int isalpha(int ch)检查ch是否为字母。
输入输出函数:调用输入输出函数时,要求在源文件中包含头文件”stdio.h”例:调用:putchar getchar gets puts二、函数的定义和返回值1、函数定义的语法函数首部(main())函数1C语定义说明部分言程函数体序执行语句部分函数22、C语言函数定义的一般形式如下1)函数返回值的类型名函数名(类型名形式参数1,类型名形式参数2………..)/*函数首部*/{说明部分/*函数体*/语句部分}例:int abs(int x)2)在老的C语言版本中,函数的首部用以下的形式:函数返回值的类型名函数名(形式参数1,形式参数2………..)形式参数类型说明;例:int abs(x)int;3)函数名和形式参数都是由用户命名的标识符。
在同一程序中,函数名必须唯一;形式参数名只要同一函数中唯一即可,可以与其它函数中的变量同名。
4)C语言规定,不能在同一个函数的内部再定义函数。
5)若在函数的首部省略了函数返回值的类型名,函数首部写成:函数名(类型名形式参数1,类型名形式参数2……..) C语言默认返回值类型为int型。
例:编写求两个双精度之和的函数。
double add(double a,double b){double s;s=a+b;return s;}6)函数体中,除形参外,用到的其它变量必须在说明部分进行定义,这些变量(包括形参),只在函数被调用时才临时开辟存储单元,当退出函数时,这些临时开辟的存储单元全被释放掉,因此,这种变量只在函数体内部起作用,与其它函数中的变量互不相关,它们可以和其它函数中的变量同名。
3、函数的返回值1)函数的值通过return语句返回,return语句的形式如下:return表达式;或return(表达式);或return2)说明①return语句中的表达式的值就是所求的函数值。
此表达式值的类型必须与函数首部所说明的类型一致。
若类型不一致,则以函数值的类型为准,由系统自动进行转换。
②当程序执行到return语句时,程序的流程式就返回到调用该函数的地方,并带回函数值。
在同一函数内,可以根据需要在多处出现return语句。
③return语句也可以不含表达式,这时它的作用只是使流程返回到调用函数,并没有确定的函数值。
④函数体内可没有return语句,程序的流程就一直执行到函数末尾的”}”,然后返回调用函数,这时也没有确定的函数值带回。
函数的调用和说明一、函数的两种调用方式:1、函数的一般调用形式为:函数名(实在参数表)实在参数(简称实参)的个数多于一个时,各实在参数之间用逗隔开。
若函数无形参,调用形式为:函数名()例:ch=getchar();函数名后的一对括号不可少。
例:fun(int x){int j,sum=0;for(j=1;j<=x;j++)sum+=j;return sum;}main(){int s,n;scanf(“%d”,&n);s=fum(int n);printf(“%d”,s);}可用两种方式调用函数1)作为表达式出现例:y=add(3.0,4.0)2)作为独立语句出现例:printf(“********”);二、函数调用时的语法要求1、调用函数时,函数名必须与所调用的函数名字完全一致。
2、实参的个数必须与形式参数的个数一致。
实参可以是表达式,在类型上应按位置与形参一一对应匹配。
如果类型不匹配,C编译程序按赋值兼容进行转换,若实参和形参的类型不赋值兼容,通常不给出出错信息,且程序仍然执行,只是不会得到正确的结果。
因此,应该特别注意实参和形参的类型匹配。
3、C语言规定:函数必须先定义,后调用(函数的返回值类型为int 或char时除外)。
第三节调用函数和被调用函数之间数据的传递fun(int x)//被调用函数{……….}main(){int s,n;scanf(“%d”,&n);s=fun(n);Printf(“%d”,s);}C语言中,调用函数被调用函数之间数据可以通过三种方式进行传递1.实在参数和形式参数之间进行数据传递2.通过return语句把函数值返回调用函数3.通过全局变量。
二、在C语言中,数据只能从实参单向按值传递。
也就是说,当简单变量作为实参时,用户不可能在函数中改变对应实参值。
三、例题:例1:以下程序例示了函数参数之间的单向传递,请观察程序的执行结果。
main(){int x=2,y=3,z=0;printf(“(1)x=%d y=%d)z=%d\n”,x,y,z);try(x,y,z);printf(“(4)x=%d y=%d z=%d\n”,x,y,z); }try(int x,int y,int z){printf(“(2)x=%d y=%d z=%d\n”,x,y,z); z=x+y;/*5=2+3x=x*x;/*4=2*2y=y*y;/*9=3*3printf(“(3)x=%d y=%d z=%d\n”,x,y,z); }两个数交换int a,b;main(){int a,b,t;scanf(“%d%d”,&a,&b);printf(“a=%d,b=%d”,a,b);t=a;a=b;b=t;printf(“a=%d,b=%d”,a,b);}例2:用函数方法main(){int a,b;scanf(“%d%d”,&a,&b);printf(“a=%d,b=%d”,a,b);twr(a,b);printf(“a=%d,b=%d”,a,b);}twr(int a,int b){int t;printf(“a=%d,b=%d”,a,b);t=a;a=b;b=t;printf(“a=%d,b=%d”,a,b);}函数程序举例例1:编写函数isprime(int a)用来判断自变量a是否为素数,若是素数,函数返回1,否则返回0。
素数:只能被1和本身整除的数。
main(){int x,i;scanf(“%d”,&x);for(i=2;i<x;i++)if(x%i==0)break;//x能被当前的数整除,就跳出循环。
因为它肯定就不是素数,没有必要往要继续判断。
if(i>=x)printf(“YES”);//始终没有跳出循环,说明它是素数。
else printf(“NO”);}函数方法:main(){int a;scanf(“%d”,&a);if(isprme(a))printf(“YES”);else printf(“NO”);}isprime(int a){int i;for(i=2;i<a;i++)if(a%i==0)return0;return1;}例2:编写函数,验证任意偶数为两个素数之和并输出这两个素数。
分析:任意输入一个数:如1212的因子:234567891011 2+10=12(2,10不是素数)3+9=12(3,9不是素数)4+8=12(4,8不是素数)5+7=126+6=12(6不是素数)超过一半就不用判断了,因为重复。
int isprime(int a){int i;for(i=2;i<a;i++)if(a%i==0)retrurn0;return1;}void even(int x){int i;for(i=2;i<=x/2;i++)if(isprime(i))if(isprime(x-i))printf(“%d=%d+%d”,x,i,x-i); }main(){int x;/*当前要判断的偶数*/scanf(“%d”,&x);if(x%2==0)/*如果为偶数*/even(x);/*函数为独立语句调用,没有返回值*/else printf(“NO”);}例3:编写函数myupper(ch),把ch中的小写字母转换成大写字母作为函数值返回,其它字符不变。
用字符@结束输入。
分析;dsdDSFDF@#include“ctype.h”#include“stdio.h”char myupper(char ch){if(islower(ch))ch=ch-32;else;return ch;}main(){char ch;while((ch=getchar())!=’@’){ch=myupper(ch);putchar(ch);}}例4:编写函数统计输入字符的个数分析:如输入dkjfkd5456遇到非法字符结束。
如ctrl+z#include“stdio.h”int fun(){char ch;int x=0;while((ch=getchar())!=EOF)x++;return x;}main(){int n=0;/*n用来统计输入的个数*/n=fun();printf(“%d”,n);}例5:编写函数统计输入文本中单词的个数,单词之间用空格符、换行符、跳格符隔开。
分析:my name is jinwen以name为例:name前一个字符必须是间隔符,当前字符必须为字母,说明n是首字母。
int countword(){int x=0,state=0;/*state为标志位。
char ch;while((ch=getchar())!=EOF){if(isspace(ch))state=0;/*0位于单词的外部,1位于单词的内部else if(state==0){x++;state=1;}}return x;}main(){int n;n=countword();printf(“%d”,n);}例6:编写函数用以求表达式x2-5x+4,x作为参数传递给函数。