1.使用函数实现数组操作
- 实现函数init() 初始化数组为0~n
- 实现print() 打印数组的每个元素
- 实现reverse() 函数完成数组元素的逆置
#include <stdio.h> void init(int arr[], int len)//不能写成void init(int arr[i]),参数分开写! { for (int i = 0; i < len; i++) arr[i] = i; } void print(int arr[],int len) { for (int i = 0; i < len; i++) { printf("%d ", arr[i]); } printf("\n"); } void reverse(int arr[], int len)//数组逆置 { int tmp = 0; for (int i = 0; i <= len / 2-1; i++) { tmp = arr[i]; arr[i] = arr[len - 1 - i]; arr[len - 1 - i] = tmp; } } /* reverse其他写法 void reverse(int arr[], int len) { int left=0; int right=len-1; int tmp=0; while (left<right) { tmp=arr[left]; arr[left]=arr[right]; arr[right]=tmp; left++; right--; } } */ int main() { int i = 0; int a[11] = { 0 }; int len = sizeof(a) / sizeof(a[0]); init(a, len); print(a, len); reverse(a, len); print(a, len); }
2.判断:函数的实参只能是变量
函数的实参可能是变量,也可能是常量,也可能是宏,也可能是指针等等。说法错误
3.判断:函数中的形式参数是在栈中保存
函数的形参(属于局部变量)一般都是通过参数压栈的方式传递的。说法正确
4.判断:函数设计应该追求高内聚低耦合
高内聚:每个函数负责特定的任务
低耦合:函数与函数之间的关联低(即改变一个函数对其他函数造成的影响很小)
函数体内部实现修改了,尽量不要对外部产生影响,否则:代码不方便维护。说法正确
5.函数调用exec((vl,v2),(v3,v4),v5,v6);中,实参的个数____
(v1, v2)属于第一个实参,逗号表达式,真实的参数时v2; (v3,v4)属于第二个实参,逗号表达式,真实的参数是v4。4个实参
6.判断:形参是在函数调用的时候才实例化,才开辟内存空间
说法正确
7.判断:在函数中return语句必须返回值,不能使用return;
函数中需要提前结束,但是函数的返回类型是void,不需要返回任何值的时候,就使用return;
说法错误
8.判断:return可以返回函数中定义的数组
return返回变量,地址,常量
函数中创建的数组,只能在函数内部使用,函数中返回数组,其实是将数组的地址返回给主调函数,等函数返回后,数组空间还给操作系统了,主调函数得到的地址就是野指针了。说法错误