C语言基本知识复习浓缩版:函数

发布于:2025-02-10 ⋅ 阅读:(23) ⋅ 点赞:(0)

函数

1、函数的基本概念

  • 函数是一种用来完成特定任务的代码块,可以被多次调用
  • 函数的作用:提高代码复用性,简化复杂程序,增强可读性

函数的语法结构:

返回值 函数名(参数列表)
{
//函数体
}

2、函数的声明和定义


函数的声明:在使用函数前,需要声明它的返回类型和参数列表。
返回值 函数名(参数列表) ;


函数定义:完整的函数实现,包括函数体

3、函数的参数和返回值

#include <stdio.h>
int main()
{
        int a=10;
        int b=20;
        int sum=add(a,b);
        printf("%d", sum);
        return 0;
}

int add(int a, int b)
{
        int c=a+b;
        return c;
}

main函数里调用add(a, b)
其中的a,b就是实参 ,add是调用函数

函数声明里面int add(int a, int b)的int a ,int b 叫做形参

4、传值调用与传址调用


传值调用:将参数的值传递给函数,函数内部对参数的修改不会影响外部变量。

# include <stdio.h>
void modify(int x)
{
        x=20;
}
int main()
{
        int num=10;
        printf("modify前, num=%d\n", num);
        modify(num);
        printf("modify后,num=%d\n", num);
        return 0;
}


 

传址调用:将参数的地址传递给函数,函数内部可以修改实际的变量值(通过指针)。

#include <stdio.h>
void modify(int* x)
{
        *x=20;
}
int main()
{
        int num=10;
        printf("modify前, num=%d\n", num);
        modify(&num);
        printf("modify后,num=%d\n", num);
        return 0;
}

5、数组与函数


数组作为函数参数时,传递的是数组的首地址,因此数组作为参数时,函数内的修改会影响源数组。

#include <stdio.h>
void Modify(int arr[5])
{
        for (int i=0; i<5; i++)
        {
                arr[i] = arr[i] * 10;
        }
}

int main()
{
        int arr[5]={1, 2, 3, 4, 5};
        for (int i=0; i<5; i++)
        {
                printf("%d ", arr[i]);
        }
        printf("\n");
        Modify(arr);
        for (int i = 0; i<5; i++)
        {
                printf("%d ", arr[i]);
        }
        return 0;
}

真题


在c程序中,main()函数的位置


A、必须作为第一个函数
B、必须作为第二个函数
C、可以任意
D、必须放在它所调用的函数之后
选C

当调用函数时,实参是一个数组名,则向函数传送的是


A、数组的长度        B、数组的首地址
C、数组的每一个元素的地址    D、数组的每个元素中的值
答案是:B

代码题:判断一个整数是否为素数


编写程序,其中自定义一个函数,用来判断一个整数是否为素数,主函数输入一个数

#include<stdio.h>

//如果是素数,返回1,不是素数,返回0
int IsPrimeNumber(int number)
{
        if (number <=1)
        {
                return 0;
        }

        for (int i=2; i<number; i++)
        {
                if (number %i ==0)
                {
                        return 0;
                }
        }
        return 1;
}

int main()
{
        int number ;
        printf("请输入一个整数:\n");
        scanf("%d", &number);
        int ret = IsPrimeNumber(number);
        if (ret==0)
        {
                printf("%d 不是一个素数.", number);
        }
        else
        {
                printf("%d 是一个素数.", number);
        }
        return 0;
}


网站公告

今日签到

点亮在社区的每一天
去签到