【自用】C语言初级入门7(上)

常见的库函数有以下几种类型:

  1. 输入输出函数(头文件为stdio.h):用于完成输入输出功能。
  2. 字符串函数(头文件为string.h):用于字符串操作和处理。
  3. 数学函数(头文件为math.h):用于数学函数计算。
  4. 内存管理函数(头文件为stdlib.h):用于内存管理。
  5. 日期和时间函数(头文件为time.h):用于日期、时间的转换操作。
  6. 接口函数(头文件为dos.h):用于与DOS、BIOS和硬件的接口。

无参函数没有形式函数,其定义的一般形式如下:

类型说明符  函数名 (void)

{

    定义与声明部分

    语句部分

}

其中,void表示函数没有参数。void也可以省略不写,而只在函数名后面跟一对空括号,这对空括号不能省略。

写一个简单的例子。

#include <stdio.h>

int p() {
	printf("你好!");
	return 0;
}

int main() {
	p();
	return 0;
}

输出结果。

 

有参函数有形式参数(简称形参),形参用于接收调用函数传递过来的数据,其定义的一般形式如下:

类型说明符  函数名 (形式参数表)

{

    定义与声明部分

    语句部分

}

写一个简单的例子。

#include <stdio.h>
/*编写一个计算矩形面积的函数*/
float calculate(float chang, float kuan) {
	float square;
	square = chang * kuan;
	return square;
}

int main() {
	float a, x, area;
	printf("请输入矩形的长:");
	scanf("%f", &a);
	printf("请输入矩形的宽:");
	scanf("%f", &x);
	area = calculate(a, x);
	printf("矩形的面积是%.3f", area);
	return 0;
}

其中,用户自定义函数可以改写:

float calculate(float chang, float kuan) {
	return (chang * kuan);
}

输入与输出结果不变。


函数的声明又称函数原型声明或函数原型,其一般形式如下:

返回值类型  函数名(形参类型1 形参名, 形参类型2 形参名, ···);      //第一种形式

返回值类型  函数名(形参类型1, 形参类型2, ···);      //第二种形式

主调函数和被调函数出现的前后位置可以任意,如果被调函数在主调函数之前,可以不对被调函数进行声明(例如对矩形面积计算的例子),反之必须对被调函数进行声明。

改写对矩形面积计算的例子。

#include <stdio.h>
float calculate(float, float);   //函数声明也可以改写成“float calculate(float chang, float kuan);”

int main() {
	float a, x, area;
	printf("请输入矩形的长:");
	scanf("%f", &a);
	printf("请输入矩形的宽:");
	scanf("%f", &x);
	area = calculate(a, x);
	printf("矩形的面积是%.3f", area);
	return 0;
}

float calculate(float chang, float kuan) {
	return (chang * kuan);
}

或是

#include <stdio.h>

int main() {
	float a, x, area;
	printf("请输入矩形的长:");
	scanf("%f", &a);
	printf("请输入矩形的宽:");
	scanf("%f", &x);
	float calculate(float, float);   //函数声明也可以改写成“float calculate(float chang, float kuan);”
	area = calculate(a, x);
	printf("矩形的面积是%.3f", area);
	return 0;
}

float calculate(float chang, float kuan) {
	return (chang * kuan);
}

总的来说,对函数的声明一定要在使用函数的语句前。


关于数组,写一个简单的例子。

#include <stdio.h>
float calculate(float b[], int n); //函数声明,可改写“ float calculate(float [], int); ”,其中,"[]"不能省略

int main() {
	int i = 0, n;
	printf("请输入元素总数(超过3个):");
	scanf("%d", &n);
	float a[n], total, last3;
	for (i = 0; i < n; i++) {
		printf("请输入第%d个数字:", i + 1);
		scanf("%f", &a[i]);
	}
	total = calculate(a, n); //计算数组总和
	last3 = calculate(&a[n - 3], 3); //计算数组最后3个元素的总和
	printf("总和:%.2f\n", total);
	printf("最后3个元素总和:%.2f", last3);
	return 0;
}

float calculate(float x[], int n) {
	float sum = 0;
	int i;
	/*计算传入数组总和*/
	for (i = 0; i < n; i++)
		sum += x[i];
	return sum;
}

输入和输出的结果。

 


二维数组名做函数的参数:二维数组名做形参时,第一维的长度说明允许省略,第二维的长度不能省略。

写一个简单的例子。

#include <stdio.h>
float plus(float [][3], int);

int main() {
	float x[2][3] = {{11.2, 1.2, 3}, {1.1, 2.2, 3.3}}, total, t2;
	total = plus(x, 2); //计算数组x的总和
	printf("总和是%f\n", total);
	t2 = plus(&x[1], 3); //计算数组x[1]行的总和
	printf("第二行总和是%f", t2);
	return 0;
}

float plus(float a[][3], int n) { //传入参数n作为形参数组a的行下标,即a[n][3]
	int i, j;
	float sum = 0;
	for (i = 0; i < n; i++) {
		for (j = 0; j < 3; j++)
			sum += a[i][j];
	}
	return sum;
}

输出结果。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值