C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。UNIX 操作系统,C编译器,和几乎所有的 UNIX 应用程序都是用 C 语言编写的。由于各种原因,C 语言现在已经成为一种广泛使用的专业语言。C语言的主要特征是:
- 易于学习。
- 结构化语言。
- 它产生高效率的程序。
- 它可以处理底层的活动。
- 它可以在多种计算机平台上编译。
那么C语言的函数的特征是什么呢?有哪些常用的函数呢?今天我们就来盘点一下,希望对大家学习和练习C语言有所帮助。
C语言函数定义
C 语言中的函数定义的一般形式如下:
return_type function_name( parameter list )
{
body of the function
}
在 C 语言中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:
返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。
函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
函数主体:函数主体包含一组定义函数执行任务的语句。
C语言常用函数
1.I/O函数
(1)scanf函数:
int scanf(const char *format…..);
从标准输入流stdin中按格式format将数据写到参数表中;若操作成功,返回写到参数表中的参数个数,否则返回EOF;
2)在while中加上%*c
While(scanf(“%d%*c”,&n)==1&&n!=0)即可
2.数学函数
(1)求绝对值
double fabs(double );
float fabsf(float);
long double fabsl(long double);
int abs(int);
long int labs(long int);
(2)floor函数:返回不大于参数的整数
float floor(float);
double floor(double);
(3)ceil函数:返回不小于参数的整数
float ceil(float);
double floor(double);
(4)pow:返回X^Y;
double pow(double x,double y);
(5)sqrt:返回x的开方
double sqrt(double x);
(6)log2,log10:返回底数的自然对数值
double log2(double x);
double log10(double x);
3.字符串处理函数
(1)char *strchr(const char *str,int ch);
返回str中第一次出现字符ch的位置指针,否则返回NULL;
(2)char *strstr(const char *str1,const char *str2);
返回str1中第一次出现str2的位置指针,否则返回NULL;
(3)int stricmp(const char *str1,const char *str2);
忽略字符的大小写进行比较
(4)int strncmp(const char *str1,const char *str2,int count);
将str1前n个字符与str2的前n个字符进行比较
(5)char *strncpy(char *str1,const char *str2,int count);
将str2的前n个字符复制到str1中
(6)char *strrev(char *str);
将字符串str逆序,并返回逆置后的结果
4.常用使用函数
(1)double atof(const char *str);
将字符串str表示的数转换成浮点数
(2)int atoi(const char *str);
将字符串str表示的数转换成整数
(3)void qsort(void *buf,int count,int size,cmp);————>count为所需要进行排序的元素个数,size为每个元素所占用的空间
4. 输入输出函数(<stdio.h>)
(1)文件打开和关闭:
FILE *fopen(const char *filename, const char *mode);
int fclose(FILE * stream);
(2)字符输入输出:
int fgetc(FILE *fp);
int fputc(int c, FILE *fp);
getc和putc与这两个函数类似,但通过宏定义实现。通常有下面定义:
#define getchar() getc(stdin)
#define putchar(c) putc(c, stdout)
int ungetc(int c, FILE* stream);//把字符 c 退回流 stream
(3)格式化输入输出:
int scanf(const char *format, ...);
int printf(const char *format, ...);
int fscanf(FILE *stream, const char *format, ...);
int fprintf(FILE *stream, const char *format, ...);
int sscanf(char *s, const char *format, ...);
int sprintf(char *s, const char *format, ...);
(4)行式输入输出:
char *fgets(char *buffer, int n, FILE *stream);
int fputs(const char *buffer, FILE *stream);
char *gets(char *s);
int puts(const char *s);
(5)直接输入输出:
size_t fread(void *pointer, size_t size, size_t num, FILE *stream);
size_t fwrite(const void *pointer, size_t size, size_t num, FILE *stream);
5. 常用函数bsearch和qsort
(1)二分法查找函数bsearch:
void *bsearch(const void *key, const void *base, size_t n, size_t size, int (*cmp)(const void *keyval, const void *datum));
函数指针参数cmp的实参应是一个与字符串比较函数strcmp类似的函数,确定排序的顺序,当第一个参数keyval比第二个参数datum大、相等或小时分别返回正、零或负值。
(2)快速排序函数qsort:
void qsort(void *base, size_t n, size_t size, int (*cmp)(const void *, const void *));
Qsort对于比较函数cmp的要求与bsearch一样。设有数组base[0],...,base[n-1],元素大小为size。用qsort可以把这个数组的元素按cmp确定的上升顺序重新排列
由于专业性和英语学习,计算机专业对于留学生来说也是充满挑战的学科,想要进一步学好CS,可以寻求 online tutoring 等学术资源。
https://www.studygate.com/blog-cn/programming%E7%BC%96%E7%A8%8B%E4%BB%A3%E5%86%99/
https://www.studygate.com/blog-cn/%E4%BB%A3%E7%A0%81coding%E4%BB%A3%E5%86%99/