C语言中常见的功能函数
c语言库函数表

c语言库函数表
C语言库函数表是一个包含许多C语言标准库函数的列表。
这些函数在C语言程序中非常常见,因为它们提供了很多基本的功能,例如输入/输出、字符串处理、数学计算等等。
在编写C语言程序时,使用这些函数可以简化代码,提高效率。
以下是一些常见的C语言库函数:
- printf():输出函数,可以输出各种数据类型的值。
- scanf():输入函数,可以读取各种数据类型的值。
- strlen():计算字符串长度的函数。
- strcpy():将一个字符串复制到另一个字符串的函数。
- strcat():将一个字符串追加到另一个字符串的函数。
- strcmp():比较两个字符串是否相等的函数。
- atof():将字符串转换为浮点数的函数。
- atoi():将字符串转换为整数的函数。
- rand():生成随机数的函数。
- abs():计算绝对值的函数。
- sin():计算正弦值的函数。
- cos():计算余弦值的函数。
- tan():计算正切值的函数。
- log():计算自然对数的函数。
- exp():计算指数的函数。
这些函数只是C语言库函数的冰山一角,还有很多其他函数可以
使用。
熟悉C语言库函数的使用方法可以让程序员更高效地编写代码,提高程序的可维护性和可读性。
C语言math.h中常用函数

C语⾔math.h中常⽤函数1.绝对值2.取整和取余3.三⾓函数4.反三⾓函数5.双曲三⾓函数6.指数和对数7.标准化浮点数8.多项式9.数学错误计算处理1.绝对值函数原型: int abs(int x);函数功能: 求整数x的绝对值int number=-1234;abs(number);函数原型:double fabs(double x);函数功能:求浮点数x的绝对值.float number=-1234.0;fabs(number);函数原型:double cabs(struct complex znum)函数功能:求复数的绝对值参数说明:zuum为⽤结构struct complex表⽰的复数,定义如下:struct complex{double m;double n;}#include <stdio.h>#include <math.h>int main(){struct complex z;double val;z.x=2.0;z.y=1.0;val=cabs(z);printf("The absolute value of %.2lfi %.2lfj is %.2lf",z.x,z.y,val);return 0;}2.取整和取余函数原型: double ceil(double num)函数功能: 得到不⼩于num的最⼩整数函数返回: ⽤双精度表⽰的最⼩整数函数原型: double floor(double x);函数功能: 求出不⼤于x的最⼤整数.函数返回: 该整数的双精度实数函数原型:double fmod (double x, double y); 返回两参数相除x/y的余数,符号与x相同。
如果y为0,则结果与具体的额实现有关int main(){double number=123.54;double down,up;down=floor(number);up=ceil(number);printf("original number %10.2lf",number);//123.54printf("number rounded down %10.2lf",down); //123printf("number rounded up %10.2lf",up); //124return 0;}函数名称: modf函数原型: double modf(double val,double *iptr);函数功能: 把双精度数val分解为整数部分和⼩数部分,把整数部分存到iptr指向的单元.函数返回: val的⼩数部分参数说明: val 待分解的数所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double fraction,integer;double number=100000.567;fraction=modf(number,&integer);printf("The whole and fractional parts of %lf are %lf and %lf",number,integer,fraction); return 0;}3.三⾓函数函数原型: double sin(double x);函数功能: 计算sinx的值.正弦函数函数原型: double cos(double x);函数功能: 计算cos(x)的值.余弦函数.函数原型: double tan(double x);函数功能: 计算tan(x)的值,即计算⾓度x的正切数值@函数名称: hypot函数原型: double hypot(double x,double y)函数功能: 已知直⾓三⾓形两个直⾓边长度,求斜边长度函数返回: 斜边长度参数说明: x,y-直⾓边长度所属⽂件: <math.h>#include <stdio.h>#include <math.h>int main(){double result;double x=3.0;double y=4.0;result=hypot(x,y);printf("The hypotenuse is: %lf",result);return 0;}4.反三⾓函数函数原型: double asin(double x);函数功能: 计算sin^-1(x)的值.反正弦值函数函数原型: double acos(double x);函数功能: 计算cos^-1(x)的值,反余弦函数函数原型: double atan(double x);函数功能: 计算tan^-1(x)的值.函数原型: double atan2(double x,double y);函数功能: 计算tan^-1/(x/y)的值.求x/y的反正切值.5.双曲三⾓函数函数原型: double sinh(double x);函数功能: 计算x的双曲正弦函数sinh(x)的值.函数原型: double cosh(double x);函数功能: 计算x的双曲余弦cosh(x)的值.函数原型: double tanh(double x);函数功能: 计算x的双曲正切函数tanh(x)的值.#include <stdio.h>#include <math.h>int main(){double result,x=0.5;result=sin(x);printf("The sin() of %lf is %lf",x,result);return 0;}#include <stdio.h>#include <math.h>int main(){double result;double x=0.5;result=cosh(x);printf("The hyperboic cosine of %lf is %lf",x,result);return 0;}6.指数和对数函数原型: double exp(double x);函数功能: 求e的x次幂函数原型: double fmod(double x,double y);函数功能: 求整数x/y的余数函数原型: double frexp(double val,int *eptr);函数功能: 把双精度数val分解为数字部分(尾数)x和以2为底的指数n,即val=x*2^n,n存放在eptr指向的变量中.函数名称: pow函数原型: double pow(double x,double y);函数功能: 计算以x为底数的y次幂,即计算x^y的值.函数返回: 计算结果参数说明: x-底数,y-幂数所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double x=2.0,y=3.0;printf("%lf raised to %lf is %lf",x,y,pow(x,y));return 0;}函数原型: double sqrt(double x);函数功能: 计算x的开平⽅.函数返回: 计算结果参数说明: x>=0所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double x=4.0,result;result=sqrt(x);printf("The square root of %lf is %lf",x,result);return 0;}//log(10) 以 e 为底的 10 的对数;log10(100) 以 10 为底的 100 的对数;如果要算别的对数 log(8) / log(2) 以 2 为底的 8 的对数;如果要计算⾃然常数 e exp(1);//函数原型: double log(double x);函数功能: 求logeX(e指的是以e为底),即计算x的⾃然对数(ln X)函数返回: 计算结果参数说明:所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double result;double x=8.6872;result=log(x);printf("The natural log of %lf is %lf",x,result);return 0;}函数名称: log10函数原型: double log10(double x);函数功能: 求log10x(10指的是以10为底).计算x的常⽤对数函数返回: 计算结果参数说明:所属⽂件: <math.h>使⽤范例:#include <math.h>#include <stdio.h>int main(){double result;double x=800.6872;result=log10(x);printf("The common log of %lf is %lf",x,result);return 0;}#include <stdio.h>#include <math.h>int main(){double result;double x=4.0;result=exp(x);printf("'e' raised to the power of %lf(e^%lf)=%lf",x,x,result);return 0;}#include <math.h>#include <stdio.h>int main(){double mantissa,number;int exponent;number=8.0;mantissa=frexp(number,&exponent);printf("The number %lf is",number);printf("%lf times two to the",mantissa);printf("power of %d",exponent);return 0;}7.标准化浮点数函数原型:double modf (double x, double *ip);函数功能:将参数的整数部分通过指针回传, 返回⼩数部分,整数部分保存在*ip中函数原型: double ldexp(double x,int exponent)函数功能: 计算x*2的exponent次幂,即2*pow(2,exponent)的数值#include <stdio.h>#include <math.h>int main(){double value;double x=2;value=ldexp(x,3);printf("The ldexp value is: %lf",value);return 0;}8.多项式函数名称: poly函数原型: double poly(double x,int degree,double coeffs[])函数功能: 计算多项式函数返回: 多项式的计算结果参数说明: 计算c[n]*x^n+c[n-1]x^n-1+.....+c[1]*x+c[0]所属⽂件: <math.h>#include <stdio.h>#include <math.h>int main(){double array[]={-1.0,5.0,-2.0,1.0};double result;result=poly(2.0,3,array);printf("The polynomial: x**3 - 2.0x**2 + 5x - 1 at 2.0 is %lf",result);return 0;}9.数学错误计算处理@函数名称: matherr函数原型: int matherr(struct exception *e)函数功能: 数学错误计算处理程序函数返回:参数说明: 该函数不能被直接调⽤,⽽是被库函数_matherr()调⽤所属⽂件: <math.h>#include<math.h>int matherr(struct exception *a){return 1;}原⽂:https:///weibo1230123/article/details/81352581。
C语言中的常用函数

函数名: fscanf
功 能: 从一个流中执行格式化输入
用 法: int fscanf(FILE *stream, char *format[,argument...]);
函数名: setbkcolor
功 能: 用调色板设置当前背景颜色
用 法: void far setbkcolor(int color);
函数名: setcolor
功 能: 设置当前画线颜色
用 法: void far setcolor(int color);
sqrt 函数
函数名: sqrt
功 能: 计算平方根
用 法: double sqrt(double x);
strcat 函数
? %-m.ns,n个字符输出在m列范围内的左侧,右补空格。如果n>m,则m自动取n的值。
⑦f格式说明。f格式用来输出带小数点的单、双精度实数。
? %f不指定字段宽度,单精度有效数字位数一般为7位。有6位小数位。
? %m.nf 指定输出的数值共占m位,其中有n位小数。
?%-m.nf与%m.nf基本相同,只是使输出数值向左端靠,右端补空格。
函数名: fopen
功 能: 打开一个流
用 法: FILE *fopen(char *filename, char *type);
函数名: fprintf
功 能: 传送格式化输出到一个流中
用 法: int fprintf(FILE *stream, char *format[, argument,...]);
函数名: strcat
功 能: 字符串拼接函数
用 法: char *strcat(char *destin, char *source);
c语言string函数

c语言string函数
标准 C 语言的string.h头文件中定义了一组有用的函数,被称为字符串处理函数。
字符串就是由字母,数字和符号组成的一行字符序列,通常以字符串结尾显示。
它是一种数据抽象,是用来存储,分析,表示和处理应用程序中的文本数据的一种常见方式。
1.strlen()函数:该函数用来计算字符串的长度,不包括字符串结尾的null字符
'\0'。
该函数所返回的字符数不包括null字符,而只代表字符串中实际的字符数。
2.strcat()函数:该函数的作用是将字符串s2拼接到字符串s1的末尾。
这意味着s1的末尾会出现字符串s2的第一个字符,直到结束符'\0'。
4.strcmp()函数:该函数用于比较两个字符串s1和s2,如果s1>s2,函数会返回正值;如果s1=s2,函数会返回0;如果s1
5.strchr()函数:该函数用于在字符串s1中查找给定字符c。
如果成功,函数会返回指向找到字符的指针;否则,函数会返回NULL。
7.strtok()函数:该函数用于将字符串分割成一系列子字符串,每个子字符串以一个或多个指定的分隔符分隔。
以上就是标准C语言的string.h头文件中的一些常用的字符串处理函数,这些函数主要用于对字符串的操作,如切割,拼接,比较等。
由于 C 语言的数据结构比较简单,因此这个头文件函数的功能也是非常强大的,可以满足各种字符串处理的需求。
C语言中的数学库函数及其应用

C语言中的数学库函数及其应用C语言是一种通用性极强的编程语言,被广泛应用于科学计算、图形处理、嵌入式系统等领域。
而数学库函数则是C语言中重要的组成部分,它提供了一系列数学相关的函数,为程序员提供了方便与便利。
本文将探讨C语言中的数学库函数及其应用,带您深入了解C语言中的数学计算能力。
一、数学库函数的分类在C语言中,数学库函数主要分为以下几类:1. 基础数学函数:包括常见的四则运算、幂函数、开方函数等。
2. 三角函数:包括正弦、余弦、正切等三角函数。
3. 指数与对数函数:包括指数函数、对数函数等。
4. 双曲函数:包括双曲正弦、双曲余弦等。
5. 随机数函数:用于生成随机数的函数。
6. 其他特殊函数:包括阶乘函数、绝对值函数等。
二、数学库函数的应用1. 常见数学计算数学库函数可以用于执行常见的数学计算,如利用基础数学函数进行加减乘除运算,利用幂函数进行指数运算。
例如,可以使用pow函数计算2的平方、立方、四次方等。
另外,还可以使用sqrt函数计算一个数的平方根,使用fabs函数计算一个数的绝对值。
2. 三角函数的应用三角函数在科学计算中广泛应用。
通过使用sin、cos、tan等三角函数,可以实现角度与弧度之间的转换,以及各种三角函数值的计算。
在图形处理、信号处理等领域,三角函数的应用尤为重要。
例如,在图像旋转中,可以利用sin和cos函数计算旋转角度的正弦值和余弦值,从而实现图像的旋转变换。
3. 指数与对数函数的应用指数与对数函数在科学计算与数据处理中具有重要作用。
指数函数可以用于模拟自然增长过程,对于金融领域的复利计算、生态系统的模拟等都起到了关键作用。
对数函数则可以用于解决各类指数增长的问题,如寻找恒定增长率和解决指数方程等。
4. 随机数函数的应用随机数函数在模拟、游戏设计、密码学等领域有着广泛的应用。
C语言提供了一系列随机数生成函数,如rand和srand。
通过使用这些函数,我们可以生成满足特定要求的随机数序列,以实现模拟实验、游戏随机性、密码加密等功能。
C语言中常见功能函数

C语言中常见功能函数在C语言中,有很多常见的功能函数,它们是为了方便程序员在开发过程中进行一些常见操作而设计的。
下面是其中一些常见的功能函数:1.字符串操作函数:- strlen:用于获取字符串的长度。
- strcpy:用于复制字符串。
- strcat:用于拼接两个字符串。
- strcmp:用于比较两个字符串。
- strchr:用于在字符串中查找指定字符。
- strstr:用于在字符串中查找指定子字符串。
2.内存操作函数:- malloc:用于动态分配内存。
- free:用于释放动态分配的内存。
- memcpy:用于内存拷贝。
- memset:用于内存初始化。
3.文件操作函数:- fopen:用于打开文件。
- fclose:用于关闭文件。
- fgets:用于从文件中读取一行数据。
- fputs:用于向文件中写入一行数据。
- feof:用于判断是否到达文件末尾。
4.数学函数:- abs:用于计算绝对值。
- sin、cos、tan:用于计算三角函数值。
- sqrt:用于计算平方根。
- pow:用于计算幂运算。
5.随机数函数:- srand:用于设置随机数种子。
- rand:用于生成随机数。
6.时间函数:7.输入输出函数:- printf:用于向标准输出设备打印输出。
- scanf:用于从标准输入设备读取输入。
8.排序和查找函数:- qsort:用于对数组进行快速排序。
- bsearch:用于在有序数组中进行二分查找。
9.环境变量函数:- getenv:用于获取环境变量的值。
- setenv:用于设置环境变量的值。
10.字符处理函数:- isdigit:用于判断字符是否是数字。
- isalpha:用于判断字符是否是字母。
- isspace:用于判断字符是否是空白字符。
以上只是C语言中常见的一些功能函数,实际上C语言库中还有很多其他功能函数,可以根据需求选择合适的函数来完成相应的操作。
无论是字符串操作、内存操作、文件操作、数学运算,还是随机数生成、时间处理、输入输出以及排序和查找等,C语言提供了丰富的函数库来支持这些常见的功能需求。
c语言标准函数
c语言标准函数C语言标准函数C语言是一门强大的编程语言,在程序设计中,通常需要使用各种函数来完成不同的功能。
C语言标准函数提供了一组功能完备的库函数,方便了程序员在开发过程中使用各种函数。
本文将会介绍C语言标准函数的一些基本知识。
一、C语言标准函数的概述C语言标准函数又叫标准库、C库函数、C标准库等,是由C语言标准定义的一组库函数,包含在标准头文件中。
这些函数提供了基本的计算、输入输出、内存管理、字符串处理等常用功能,是C语言的重要组成部分。
二、C语言标准函数的使用在使用C语言标准函数时,需要引入相应的头文件。
常见的头文件包括stdio.h、stdlib.h、math.h、string.h等。
比如,要使用printf 函数输出文本,需要引入stdio.h头文件:#include <stdio.h>int main(){printf("hello world!\n");return 0;}可以看到,C语言标准函数使用起来非常简单,只需知道函数名和头文件名称即可。
三、C语言标准函数的分类1. I/O函数I/O函数是C语言标准函数中最常用的之一,用于输入输出操作。
常见的输入函数有scanf、gets、getchar等;常见的输出函数有printf、puts、putchar等。
2. 数学函数数学函数包括各种数学运算和科学计算函数,如ceil、floor、sqrt、pow、log、sin、cos等。
3. 字符串函数字符串函数主要用于字符串操作,包括字符串拼接、字符串复制、字符串查找、字符串截取等,比如strcpy、strcat、strlen、strstr等。
4. 内存函数内存函数包括内存分配、内存释放等操作,比如malloc、calloc、realloc、free等。
5. 时间函数时间函数用于获取当前时间、时间转化等,比较常用的有time、clock、localtime等。
C语言函数大全
C语言函数大全C语言是一种通用的高级语言,它广泛应用于系统软件、应用软件、驱动程序、网络通信、嵌入式系统等领域。
在C语言中,函数是非常重要的一部分,它可以帮助我们组织代码,提高代码的重用性和可维护性。
本文将介绍C语言中常用的函数,帮助大家更好地理解和应用C语言。
一、基本概念。
在C语言中,函数是一段完成特定任务的程序代码,它可以接受参数并返回值。
函数的基本结构包括函数名、参数列表、返回类型、函数体和返回语句。
函数的定义通常包括函数头和函数体两部分,函数头用于声明函数的名称、参数列表和返回类型,函数体包括具体的代码实现。
二、函数的声明与定义。
在C语言中,函数的声明和定义是分开的。
函数的声明用于告诉编译器函数的存在,函数的定义则包括函数的具体实现。
函数的声明通常包括函数名、参数列表和返回类型,函数的定义则包括函数名、参数列表、返回类型和函数体。
函数的声明和定义可以分开写在不同的文件中,通过头文件的方式进行引用。
三、函数的参数传递。
在C语言中,函数的参数传递可以通过值传递和引用传递两种方式。
值传递是指将实际参数的值复制一份传递给形式参数,函数内部对形式参数的修改不会影响实际参数。
引用传递是指将实际参数的地址传递给形式参数,函数内部对形式参数的修改会影响实际参数。
C语言中默认采用值传递的方式,如果需要使用引用传递,可以通过指针或引用的方式实现。
四、函数的返回值。
在C语言中,函数可以有返回值,也可以没有返回值。
有返回值的函数在定义时需要指定返回类型,函数体中需要使用return语句返回值。
没有返回值的函数通常使用void作为返回类型,函数体中可以省略return语句。
在调用函数时,可以通过赋值或者直接使用返回值的方式获取函数的返回结果。
五、常用的标准库函数。
C语言标准库提供了丰富的函数库,包括数学函数、字符串函数、输入输出函数等。
常用的标准库函数有printf、scanf、malloc、free、strcpy、strcat、strlen、sin、cos等。
C语言常见的函数调用
C语⾔常见的函数调⽤C语⾔常见的函数调⽤isatty,函数名,主要功能是检查设备类型,判断⽂件描述词是否为终端机。
函数名: isatty⽤法: int isatty(int desc);返回值:如果参数desc所代表的⽂件描述词为⼀终端机则返回1,否则返回0。
程序例:#include <stdio.h>#include <io.h>int main(void){int handle;handle = fileno(stdout);if (isatty(handle))printf("Handle %d is a device type\n", handle);elseprintf("Handle %d isn't a device type\n", handle);re函数名称:fileno(在VC++6.0下为_fileno)函数原型:int _fileno( FILE *stream );函数功能:fileno()⽤来取得参数stream指定的⽂件流所使⽤的返回值:某个数据流的⽂件描述符头⽂件:相关函数:open,fopen,fclosevoid *memset(void *s, int ch, n);函数解释:将s中当前位置后⾯的n个字节(typedef unsigned int size_t )⽤ ch 替换并返回 s 。
memset:作⽤是在⼀段内存块中填充某个给定的值,它是对较⼤的或进⾏清零操作的⼀种最快⽅法函数原型char *fgets(char *buf, int bufsize, FILE *stream);参数*buf: 字符型指针,指向⽤来存储所得数据的地址。
bufsize: 整型数据,指明存储数据的⼤⼩。
*stream: ⽂件结构体指针,将要读取的⽂件流。
返回值1. 成功,则返回第⼀个参数buf;2. 在读字符时遇到end-of-file,则eof指⽰器被设置,如果还没读⼊任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;3. 如果发⽣读⼊错误,error指⽰器被设置,返回NULL,buf的值可能被改变。
c语言中字符串操作函数及功能
c语言中字符串操作函数及功能C语言中字符串操作函数及功能在C语言中,字符串是一组由字符组成的数据,用于存储和操作文本信息。
C语言提供了许多字符串操作函数,以便开发者能够方便地处理字符串。
本文将介绍一些常用的字符串操作函数及其功能。
1. strlen函数:用于获取字符串的长度。
它接受一个字符串作为参数,并返回该字符串的长度,即字符的个数。
例如,strlen("hello")将返回5。
2. strcpy函数:用于将一个字符串复制到另一个字符串中。
它接受两个参数,第一个参数是目标字符串,第二个参数是源字符串。
例如,strcpy(dest, src)将源字符串src复制到目标字符串dest中。
3. strcat函数:用于将一个字符串连接到另一个字符串的末尾。
它接受两个参数,第一个参数是目标字符串,第二个参数是要追加的字符串。
例如,strcat(dest, src)将字符串src追加到字符串dest的末尾。
4. strcmp函数:用于比较两个字符串。
它接受两个参数,分别是要比较的两个字符串。
如果两个字符串相等,返回0;如果第一个字符串小于第二个字符串,返回负数;如果第一个字符串大于第二个字符串,返回正数。
例如,strcmp("hello", "world")将返回负数。
5. strchr函数:用于在字符串中查找指定字符的第一次出现的位置。
它接受两个参数,第一个参数是要查找的字符串,第二个参数是要查找的字符。
如果找到了指定字符,返回该字符在字符串中的位置;如果未找到,返回NULL。
6. strstr函数:用于在字符串中查找指定子串的第一次出现的位置。
它接受两个参数,第一个参数是要查找的字符串,第二个参数是要查找的子串。
如果找到了指定子串,返回该子串在字符串中的位置;如果未找到,返回NULL。
7. strtok函数:用于将字符串分割为多个子串。
它接受两个参数,第一个参数是要分割的字符串,第二个参数是分割的分隔符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言中常见的功能函数(应掌握的编程)1、两个变量值的交换void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z;z=*x; *x=*y; *y=z;}void main(){float a,b;scanf(“%f%f”,&a,&b);exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/printf(“a=%f,b=%f”,a,b);}2、判断一个整数的奇偶int jou(int n) /*如果是奇数返回1,否则返回0*/{if(n%2==0) return 0;return 1;}3、小写字符转换成大写字符根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。
本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。
char toupper1(char ch){if(ch>=’a’&&ch<=’z’) ch-=32; /*小写字母比对应的大写字母ASCII 码值大32*/return ch;}4、判断一个字符是否是字母(或数字)根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。
此函数是根据库函数isalpha()(或isdigit())来编写的。
int isalpha1(char ch) /*判断是否是字母*/{if(ch>=’A’&&ch<=’Z’||ch>=’a’&&ch<=’z’) return 1;else return 0;}int isdigit1(char ch) /*判断是否是数字字符*/{if(ch>=’0’&&ch<=’9’) return 1;else return 0;}5、根据学生成绩,返回其等级char fun(float cj){char c;switch((int)cj/10){case 10:case 9:c=’A’; break;case 8:c=’B’; break;case 7:c=’C’; break;case 6:c=’D’; break;default: c=’E’}return c;}6、求1+2+….+n(1)用循环int sum(int n){int i;for(i=1;i<=n;i++) s+=i;}(2)使用递归long sum(int n){if(n==1) return 1;else return sum(n-1)+n;}根据本题扩展:求s=1+(1+2)+ (1+2+3)+….+(1+2+…+n)void main(){long s=0,s1=0; int i,n;scanf(“%d”,&n);for(i=1;i<=n;i++){s1+=i; /*计算出每一项的值,通过累加得到*/ s+=s1; /*将每一项的值累加到结果中去*/ }printf(“s=%ld”,s);}7、求n!(1)用循环long jiec(int n){int i; long s=1;for(i=1; i<=n; i++) s*=i;return s;}(2)使用递归long jiec(int n){if(n==1) return 1;else return jiec(n-1)*n;}根据本题扩展:求s=1!+2!+ 3!+….+n! n的值最好不要太大void main(){long s=0,s1=1; int i,n;scanf(“%d”,&n); /*输入n的值不要太大,否则结果long型存不下,输出时会输出一个负数*/for(i=1;i<=n;i++){s1*=i; /*计算出每一项的值,通过累乘得到*/s+=s1; /*将每一项的值累加到结果中去*/}printf(“s=%ld”,s);}8、求某整数的因子之和int inz(int n) /*计算数n的因子之和(包括1和n本身),函数返回因子之和*/{int s=0,i;for(i=1;i<=n; i++) /* 通过本循环,将1-n的数一个一个拿来看是否能被n 整除,如果是真因子的话,就不包括1和n本身*/if(n%i==0) s+=i; /*一个数的因子,就是能被其整除的数*/return s;}9、判断一个整数是否是素数int ss(int n) /*如果是素数返回1,否则返回0*/{int i;for(i=2; i<n/2; i++)if(n%i==0) return 0;return 1;}10、求一个整数的反序数long fxs(long n) /*函数返回反序数,形参需要原来的数*/ {long fan=0;while(n!=0){fan=fan*10+n%10;n/=10;}return fan;}11、判断一个数是否是回文数long hw(long n) /*如果是回文数函数返回1,否则返回0*/ {long fan=0,m=n;while(n!=0){fan=fan*10+n%10;n/=10;}if(fan==m) return 1;else return 0;}12、判断一个数是否是水仙花数int sxh(long n) /*判断任意位数的整数是否是水仙花数,是水仙花数返回1,不是返回0*/{long g,i,s=0,m=n;while(n!=0) /*通过本循环语句,将数n从个位数字开始一个个位数的数字的立方累加到变量s中*/{g=n%10;s=g*g*g;n/=10;}if(s==m) return 1;else return 0;}13、计算x的y次方本函数用于计算x的y次方(x,y为整型,函数返回值为long型)。
仿照库函数pow()(pow(x,y)是用于计算x的y次方的库函数,不过该函数的形参x,y和返回值均为double类型)编写。
long pow1(int x,int y){long s=1; int i;for(i=1;i<=y;i++) /*将变量x的值累乘y次*/s*=x; /*每次将上次累乘的结果再乘以x*/return s;}14、计算n个n(n为一位十进制数)本函数用于计算n个n的值,比如:333(3个3),4444(4个4)。
long mm(int n) /*n为一个十进制数字*/{int i; long s=0;for(i=1;i<=n;i++){s=s*10+n;}return s;}本函数可以应用于这样的题目:求s=1-1/22+1/333-1/4444+1/55555-1/666666 主函数可以写成:void main(){double s=0; int i,sign=1; /*sign用来处理每项的符号(正或负)*/for(i=1; i<=6; i++){s+=sign*mm(i); /*因为mm()函数返回的值是长整型,所以必须用,而不能用1,因为整型除以整型,结果是整型*/sign=-sign; /*每次变换一下sign的符号(正或负)*/}这样的题目包括:求s=a+aa+aaa+aaaa+…aa..aa(n个a),a和n都在1-9之间。
long fun(int a,int n){long s=0,t=0; int i;for(i=1;i<=n;i++){ t=t*10+a;s+=t;}return s; /*或者return(s); */}15、求两个整数的最大公约数(1)辗转相除法int fun(int m,int n){int t,r;if(m<n) {t=m;m=n;n=t;} /*保证m>n,如果m<n,则交换两个变量的值*/r=m%n;while(r!=0){m=n; n=r;r=m%n;}return n; /*n为最大公约数*/(2)穷举法(按数学定义)int fun(int m,int n) /*此方法可以求多个数的最大公约数*/{int i,min,gys;if(m<n) min=m; /*找出两个数中的最小数*/else min=n;for(i=1; i<min; i++){if(m%i==0&&n%i==0) gys=i;}return gys;}16、计算Fibonacci数列的第n项本函数完成的功能:计算出该数列的第n项的值,并返回。
递归方法long fbnc(long n){if(n==1||n==2) return 1;else return fbnc(n-1)+fbnc(n-2); /*从第三项开始,后一项是前面两项之和*/}17、数组的输入一维数值型数组的输入:void intput1(float a[], int n) /*n为数组a中元素的个数,此函数以float型数组为例*/{int i;for(i=0;i<n; i++) scanf(“%f”,&a[i]);}二维数值型数组的输入:void intput2(float a[][3], int n) /*n为数组a中元素的行数,此函数以float 型数组为例,形参定义时,如果是二维数组,则第二维(列)的数字不能少,比如本例中的3*/{int i,j;for(i=0;i<n; i++) /*表示行的外循环*/for(j=0;j<3;j++) /*表示列的内循环*/scanf(“%f”,&a[i][j]);}18、数组的输出一维数值型数组元素的输出:void output1(float a[], int n) /*n为数组a中元素的个数,此函数以float 型数组为例*/{int i;for(i=0;i<n; i++) printf(“%”,a[i]);}二维数值型数组元素的输出:void output2(float a[][3], int n) /*n为数组a中元素的行数,此函数以float型数组为例,形参定义时,如果是二维数组,则第二维(列)的数字不能少,比如本例中的3*/{int i,j;for(i=0;i<n; i++) /*表示行的外循环*/{ for(j=0;j<3;j++)printf(“%”,a[i][j]);printf(“\n”); /*按行输出,所以每一行输出后,输出一个换行符*/ }}19、二分查找/*在有序数组a中查找值为x的,找到返回找到的数下标,没找到返回-1*/int find(float a[],float x,int n) /*有序数组a中的数是从小到大,n为数组中数的个数*/{int low,high,mid;low=0; high=n-1;while(high>=low){mid=(low+high)/2;if(a[mid]==x) {return mid; }else if(a[mid]>x) high=mid-1;else low=mid+1;}return -1;}20、冒泡排序(或者对从地址a开始的n个数进行排序),/*对存放在数组a中的n个数进行排序,排序是从小到大)*/void sort1(int a[],int n){int i,j,t;for(i=0;i<n-1;i++) /*排序趟数*/{for(j=0;j<n-1-i; j++)if(a[j]>a[j+1]) /*从小到大排序,如果是从大到小排序,则将大于号改成小于号*/{t=a[j]; a[j]=a[j+1]; a[j+1]=t; } /*不符合小到大的进行交换*/ }}21、直接选择排序void sort1(int a[],int n) /*对以地址(指针)a开始的n个数,按从小到大进行排序*/{int i,j,k,t;for(i=0;i<n-1;i++) /*排序趟数*/{k=i;for(j=i+1;j<n-1-i; j++)if(a[j]<a[k]) k=j; /*从小到大排序,如果是从大到小排序,则将大于号改成小于号*/if(k!=i){t=a[i]; a[i]=a[k]; a[k]=t; } /*如果找的极值不在下标为i,则进行交换*/}}22、求字符串长度本函数是仿照库函数strlen()的功能编写的。