【试题060】C语言函数调用语句集合例题

1.函数调用语句格式:函数名(参数1,参数2......);

2.功能:函数调用库函数或者自定义函数,对括号中的参数进行指定,运算结果作为函数的返回值

3.本质:函数调用后面跟一个分号

4.在主函数中调用,实参传给形参

5.注意事项:

注:调用之前要进行函数原型的声明 (写在开头的位置)

举栗子:(以下情况为主函数写在开头)


#include <stdio.h>
void fa(float d, float h);//声明fa函数
void fb(float a, float b, float c);//声明fb函数
int main() {
  float d, h, a, b, c;
  printf("请输入d、h、a、b、c的值:");
  scanf_s("%f %f %f %f %f", &d, &h, &a, &b, &c);
  fa(d, h);//函数调用
  fb(a, b, c);
  return 0;//返回值
}
void fa(float d,float h) {
  float s1;
  s1 = d * h / 2;
  printf("直角三角形的面积=%.2f\n", s1);
}
void fb(float a,float b,float c) {
  float s2;
  s2 = (a + b)*c / 2;
  printf("梯形的面积是=%.2f\n", s2);
}


调用时要传递参数,参数要一个一个定义,不能一次定义多个

可以在主函数内部声明,也可以在程序开头声明

6.例题:程序设计题:

-编写函数change 实现两个float类型变量的数值交换

-编写主函数,输入两个实型数据,调用change函数,实现交换

-将交换前后的数值分别输出(保留两位小数)

#include<stdio.h>
void change(float *a, float *b);//函数声明

int main(void) {

  //-编写函数change 实现两个float类型变量的数值交换
  //
  //- 编写主函数,输入两个实型数据,调用change函数,实现交换
  //
  //- 将交换前后的数值分别输出(保留两位小数)
  float x, y;
  scanf_s("%f%f", &x, &y);
  printf("交换前x=%.2f\n", x);
  printf("交换前y=%.2f\n", y);
   change(&x, &y);//调用change函数,将 x 和 y 的地址作为参数传递
  printf("交换后x=%.2f\n", x);
  printf("交换后y=%.2f\n", y);
  return 0;
}
void change(float *a, float *b) {//函数定义
  float c;//中间变量,暂存数值
  c = *a;//将a的值给c
  *a = *b;//将b的值给a
  *b = c;//将a的值给b
//通过指针操作,将 x 的值存储在 c 中,将 y 的值存储在 x 中,将 c 中的值存储在 y 中,实现xy的值交换
  
}

7.程序分析题:阅读下列程序,写出输出的结果

#include <stdio.h>

int fun(int x,int y,int z){

int max; max=x<y?y:x; if (z > max) max=z; return max; } int main(void){ int a=-7,b=3,c=3,d=5,e=-4;

printf("%d\n", fun(fun(a,b,c),d,e));

return 0; }

  • 分析:
#include <stdio.h>
int fun(int x, int y, int z);//函数声明
int fun(int x, int y, int z) { //函数定义

  int max;
  max = x < y ? y : x;
  if (z > max) max = z;
  return max;
}
int main(void) {
  int a = -7, b = 3, c = 3, d =5, e = -4;
  //如果其中有两个值相同,哪一个做max都无所谓
  printf("%d\n", fun(fun(a, b, c), d, e));//函数嵌套调用
  //fun(a, b, c) 第一次调用max=3
  //fun(3,d,e)第二次调用max=5
  //输出结果为5
  return 0;
}

8.综合题:阅读下列程序,写出输出的结果

#include<stdio.h> int od(int n){ if (n= =1) return 1; else return n+od(n-2); } int main(void) {

printf("s=%d\n",od(9));

return 0; }

  • 分析:
#include<stdio.h>
int od(int n);//函数声明
int od(int n) {//函数定义
  if (n == 1) return 1;
  else return n + od(n - 2);
}
int main(void) {

  printf("s=%d\n", od(9)); //括号中的数字代表n,此时n=9
  //根据式子n + od(n - 2),可得od(9)=9 +od(9 - 2)=9+od(7)
  //那么od(7)=7 +od(7 - 2)=7 +od(5)
  //然后od(5)=5 +od(5 - 2)=5+od(3)
  //接下来od(3)=3 +od(3 - 2)=3+od(1)
  //又因为(n == 1) return 1 所以od(1)=1
  //所以 od(9)=9+7+5+3+1=25
  //输出s=25

  return 0;
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值