欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > C语言基本知识复习浓缩版:函数

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

2025/1/13 8:55:47 来源:https://blog.csdn.net/skywalk8163/article/details/145097350  浏览:    关键词:C语言基本知识复习浓缩版:函数

函数

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;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com