函数练习题

1、编写一个函数 my power,用循环的方法实现返回一个 foat 类型数的某个整数次幂(保留6位小数)。例如:
调用 my power(3.14,-2)返回 0.101424

float my_power(float x, int n){
   
    if(n == 0)
        return 1;
    if (n<0)
    {
        x = 1/x;
        n = -n;
    }
    float result = x;
    for(int i=1; i<n; i++){
        result*= x;
    }
    return result;
}

2、编写一个程序,将两个字符串连接起来,不要用strcat或 strncat 函数

#include <stdio.h>
#include <stdlib.h>//分配内存空间
#include <string.h>//字符串操作函数

char*  merge(char *str1, char *str2){
    int len1=strlen(str1);
    int len2=strlen(str2);
    char* result = (char*)malloc(len1+len2+1);//定义字符串result,并且分配内存空间
    for(int i=0; i<len1; i++){//把字符串str1复制到result中
        result[i]=str1[i];
    }
    for(int i=0; i<len2; i++){//把字符串str2复制到result中
        result[len1+i]=str2[i];
    }
    result[len1+len2]='\0';//字符串结束符
    return  result;
}
int main(int argc, char const *argv[])
{
    char str1[]="hello";
    char str2[]="world";
    char *result=merge(str1, str2);
    printf("%s\n", result);
    return 0;
}

3、编写一个函数 Fibonacci(),要求程序输出第n项斐波那契数,n 由用户输入。
     斐波那契数列:1,1,2,3,5,8,13,21,….. …

int Fibonacci(int n){
    if(n == 1 || n == 2)
        return 1;
    else if(n > 2)
        return Fibonacci(n-1) + Fibonacci(n-2);
}

编写一个函数,求两个整数的最大公约数,用主函数调用这个函数并输出结果,两个整数由键盘输入。(提示:用辗转相除法求最大公约数)

#include <stdio.h>

int gcd(int a,int b){//辗转相除法
    int temp;
    while(b!=0){
        temp=b;
        b=a%b;
        a=temp;
    }
    return a;
}
int main(int argc, char const *argv[])
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d\n",gcd(a,b));
    return 0;
}

编写一个程序,清除用户输入字符串中的空格符并将之输出。(例如用户输入”ab”,输出”ab”)

#include <stdio.h>
#include<string.h>
int main(int argc, char const *argv[])
{
    char ch;
    char str[100];
    int j=0;//这里我用排队算法,用一个变量j来记录当前的位置,从0开始。
    while((ch=getchar())!='\n'){
        if(ch!=' '){
            str[j++]=ch;//如果不是空格,就把字符存到str数组中。遇见空格跳过
        }
    }
    str[j]='\0';//字符串末尾加上结束符
    printf("%s\n",str);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值