第1关:定义求x的n次幂的函数,并返回计算结果

任务描述

本关任务:定义求xn次幂的函数,并返回计算结果。

相关知识

为了完成本关任务,你需要掌握如何定义函数。

函数的本质是一段可以重复使用的代码,每一个函数用来实现一个特定的功能,这段代码被提前编写好了,放到了指定的文件中,使用时直接调取即可。

从函数定义角度看,函数可分为库函数用户自定义函数两种。

标准库函数

前面程序用到的数学函数sqrt()pow()等函数是标准库函数,符合ANSI C 标准的 C 语言编译器,都必须提供这些库函数。使用ANSI C的库函数,必须在程序的开头把该函数所在的头文件包含进来。例如,要使用数学函数时,只要在程序开头将头文件math.h包含到程序中即可。 常见的库函数如下:

  1. 输入/输出函数(头文件为 stdio.h):用于完成输入/输出功能;
  2. 字符串函数(头文件为 string.h):用于字符串操作和处理;
  3. 数学函数(头文件为 math.h):用于数学函数计算;
  4. 内存管理函数(头文件为 stdlib.h):用于内存管理;
  5. 日期和时间函数(头文件为 time.h):用于日期、时间的转换操作;
  6. 接口函数(头文件为 dos.h):用于与 DOS、BIOS 和硬件的接口。

用户自定义函数

虽然 C 语言的标准库函数为用户提供了丰富的函数,但还是不能满足用户实际编程的需要。因此,大量的函数还需用户自行定义。

在 C 语言中,所有自定义的函数都必须遵循“先定义,后使用”的原则,并且所有的函数定义都是相互平行和独立的,不容许出现嵌套定义。函数定义的基本格式为:

函数名是函数的唯一标识,用于说明函数的功能,其命名规则与变量的命名规则相同。为便于区分变量名,通常变量名用小写字母开头的单词组合而成,函数名则用大写字母开头的单词组合而成。

函数体必须用一对花括号包围,这里的花括号{ }是函数体的定界符。在函数体内部定义的变量只能在函数体内部访问,函数头部参数表里的变量称为形式参数,也是内部变量,也只能在函数体内部访问。函数体执行语句部分是函数的主体,具体描述该函数所应实现的功能。

形参表是函数的入口。如果说函数名相当于说明运算的规则的话,那么形参表里的形参就相当于运算的操作数,而函数的返回值就是运算的结果。

函数定义中的函数返回值类型是指函数返回值的类型。函数返回值不能是数组,也不能是函数,除此之外任何合法的数据类型都可以是函数返回值的类型,如:char、int、long、float、指针或结构等。

若函数没有函数返回值,则需要用void定义返回值类型。若函数不需要入口参数,则用void代替函数头部中形参表中的内容,或者空着。这就意味着该函数不接收来自调用函数的任何数据。

综上所述,函数定义的第一行称为函数首部,它定义了函数返回值的类型、函数的名字以及调用该函数时需要给出的参数个数及参数的类型。

请看示例:定义求两个整数和的 add( ) 函数,并返回这两个整数的和。

 
  1. int add( int x,int y )
  2. {
  3. int z;
  4. z = x + y;
  5. return (z);
  6. }

对于计算两数之和的函数而言,在函数头部int add(int x,int y)中函数名add之前的int表明函数返回值类型为int类型;(int x,int y)表明形参列表中有两个参数,形参xy的类型均为int类型,在add()函数的定义时不需要考虑形参的输入,认为在已经有两个参数的基础上,将这两个参数相加;然后通过return(z),将z的值作为函数的返回值返回,其中return后面的变量或者表达式的值代表函数要返回的值,它的类型应该与函数定义头部中声明的函数返回值类型一致。add()函数并不是可运行的程序。

请模仿add()函数定义power()函数求两个整数的幂。

编程要求

根据提示,在右侧编辑器 Begin-End 区间补充代码,按原型 int power(int x, int n) 定义函数,实现指定功能。

测试说明

平台会对你编写的代码进行测试:

测试输入:4 9 预期输出:262144

测试输入:5 4 预期输出:625


开始你的任务吧,祝你成功!

/*在下面Begin至End间,按原型 int  power(int x, int n) 定义函数*/
/********** Begin **********/
#include <stdio.h>

int power(int x,int n)
{
    int k=1;
    for(int i=0;i<n;i++)k=x*k;
    return k;
}


/********** End **********/
int main()
{
    int a,b,s;  
    scanf("%d%d",&a,&b); 
    s = power(a,b);      //调用power( )函数,求a与b的和
    printf("%d\n",s); 
    return 0; 
}

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IcarusCPU

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值