E20.【C语言】练习:函数

1.使用函数实现数组操作

  1. 实现函数init() 初始化数组为0~n
  2. 实现print()  打印数组的每个元素
  3. 实现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返回变量,地址,常量

函数中创建的数组,只能在函数内部使用,函数中返回数组,其实是将数组的地址返回给主调函数,等函数返回后,数组空间还给操作系统了,主调函数得到的地址就是野指针了。说法错误

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值