第5章 函数
练习5-1使用函数求1到n之和:输入一个正整数 n,输出1~n之和.要求自定义和调用函数sum(n)求 1~n 之和.若要计算 m~n(m<n)之和,又该如何定义函数 试编写相应程序.
解答:
include <stdio.h>
int sum(int n)
int main(void)
{     
    int n;
    int sum;
    printf("Enter n:")
    scanf("%d", &n);
    printf("sum = %d\n", sum(n));
return 0;
}
int sum(int n)
{
int result, i;
result = 0;
    for(i = 1; i <= n; i++)
        result = result + i;
    return result;
}
若要计算 m~n(m<n)之和,则需要在 main()中定义 2 个变量 m 和 n:
        scanf("%d%d", &m, &n);
        printf("sum = %d\n", sum(m, n));
同时在函数定义时需设置 2 个参:
int sum(int m, int n)
{
int result, i;
result = 0;
    for(i = m; i <= n; i++)
        result = result + i;
    return result;
}
练习5-2使用函数最大值: 输入2个数,输出其中较大(de)数.要求定义和调用函数 max(a, b)出并返回 a、b 中较大(de)数.试编写相应程序.
解答:
include <stdio.h>
double max(double a, double b);
int main(void)
{     
    int a, b;
    printf(Input a and b:);
    scanf("%lf%lf",&a, &b);
    printf("max= %lf\n", max(a, b));
return 0;
}
double max(double a, double b)
{
    if(a > b)
        return a;
    else
        return b;
}
练习5-3数字金字塔:输入一个正整数 n,输出n行数字金字塔.试编写相应程序.
解答:
include <stdio.h>
int main(void)
{     
    int n,i,j;
    printf(Enter n:);
    scanf("%d", &n);
    for(i = 1; i <= n; i++){
        for(j = 1; j <= n - i; j++)
c程序设计pdf下载            printf(" ");
        for(j = 1; j <= i; j++)
            printf("%d ", i);
        putchar('\n');
    }
return 0;
}
练习5-4 思考:若把例 5-9 中静态变量 f 定义成普通局部变量,还能实现计算 n吗 请上机检验.若把 f 换成全局变量又会如何
解答:
若把例 5-9 中静态变量 f 定义成普通局部变量,无法实现计算 n,因为函数返回后 f  单元被系统回收,不再保存原有数据.若把 f 换成全局变量,则能实现计算 n,因为 f (de)作用范围和生命周期一直存在.
习题5
一、选择题
1.在 C 语言程序中,若对函数类型未加显式说明,则函数(de)隐含类型为  D  .
A.void            B.double          C.char              D.int
2.下列程序(de)输出结果是  D  .
fun(int a, int b, int c)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。