




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
/NUMPAGES8 C语言中常见的功能函数(应掌握的编程) 两个变量值的交换 voidexchang(float*x,float*y)/*形参为两个变量的地铁(指针)*/ {floatz; z=*x;*x=*y;*y=z; } voidmain() {floata,b; scanf(“%f%f”,&a,&b); exchang(&a,&b);/*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 判断一个整数的奇偶 intjou(intn)/*如果是奇数返回1,否则返回0*/ { if(n%2==0)return0; return1; } 小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c)是将变量c字母转换成大写字母,如果不是小写字母不转换)。 chartoupper1(charch) {if(ch>=’a’&&ch<=’z’)ch-=32;/*小写字母比对应的大写字母ASCII码值大32*/ returnch; } 判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 intisalpha1(charch)/*判断是否是字母*/ {if(ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’)return1; elsereturn0; } intisdigit1(charch)/*判断是否是数字字符*/ {if(ch>=’0’&&ch<=’9’)return1; elsereturn0; } 根据学生成绩,返回其等级 charfun(floatcj) {charc; switch((int)cj/10) {case10: case9:c=’A’;break; case8:c=’B’;break; case7:c=’C’;break; case6:c=’D’;break; default:c=’E’ } returnc; } 求1+2+….+n (1)用循环 intsum(intn) {inti; for(i=1;i<=n;i++)s+=i; } (2)使用递归 longsum(intn) {if(n==1)return1; elsereturnjiec(n-1)+n; } 根据本题扩展: 求s=1+(1+2)+(1+2+3)+….+(1+2+…+n) voidmain() {longs=0,s1=0;inti,n; scanf(“%d”,&n); for(i=1;i<=n;i++) {s1+=i;/*计算出每一项的值,通过累加得到*/ s+=s1;/*将每一项的值累加到结果中去*/ } printf(“s=%ld”,s); } 求n! (1)用循环 longjiec(intn) {inti;longs=1; for(i=1;i<=n;i++)s*=i; returns; } (2)使用递归 longjiec(intn) {if(n==1)return1; elsereturnjiec(n-1)*n; } 根据本题扩展: 求s=1!+2!+3!+….+n!n的值最好不要太大 voidmain() {longs=0,s1=1;inti,n; scanf(“%d”,&n);/*输入n的值不要太大,否则结果long型存不下,输出时会输出一个负数*/ for(i=1;i<=n;i++) {s1*=i;/*计算出每一项的值,通过累乘得到*/ s+=s1;/*将每一项的值累加到结果中去*/ } printf(“s=%ld”,s); } 求某整数的因子之和 intinz(intn)/*计算数n的因子之和(包括1和n本身),函数返回因子之和*/ {ints=0,i; for(i=1;i<=n;i++)/*通过本循环,将1-n的数一个一个拿来看是否能被n整除,如果是真因子的话,就不包括1和n本身*/ if(n%i==0)s+=i;/*一个数的因子,就是能被其整除的数*/ returns; } 判断一个整数是否是素数 intss(intn)/*如果是素数返回1,否则返回0*/ {inti; for(i=2;i<n/2;i++) if(n%i==0)return0; return1; } 求一个整数的反序数 longfxs(longn)/*函数返回反序数,形参需要原来的数*/ {longfan=0; while(n!=0) {fan=fan*10+n%10; n

17****21
实名认证
内容提供者


最近下载