1. 【程序设计】

把 20 个随机数存入一个数组,然后输出该数组中的最小值。其中确定最小值下标的操作在 fun 函数中实现,请给出该函数的定义。

/*********Begin**********/
int i, min = 0;
for (i = 1; i < size; i++)
    if (list[min] > list[i])
        min = i;
return min;
/**********  End  **********/

2. 【程序设计】

产生 20 个 $[30,120]$ 上的随机数组放入二维数组 $a[5][4]$ 中,求其中的最小值。

/*********Begin**********/
int i, j, s;
s = a[0][0];
for (i = 0; i < 5; i++)
    for (j = 0; j < 4; j++)
        if (s > a[i][j]) s = a[i][j];
return (s);
/**********  End  **********/

3. 【程序设计】

编写函数求表达式的和(n 的值由主函数输入)。

表达式:$1-\frac{1}{2}+\frac{1}{3} - \frac{1}{4} + …… + \frac{1}{m}$

例如:当 n=20 时,表达式的值为 0.668771。

/*********Begin**********/
float s = 0;
int i, k = 1;
for (i = 1; i <= n; i++)
{
    s = s + k * 1.0 / i;
    k = -k;
}
return (s);
/**********  End  **********/

4. 【程序设计】

功能:根据整型参数 n,计算如下公式的值。

公式:$a_{1}=1$,$a_{2}=\frac{1}{1+a_{1}}$,$a_{3}=\frac{1}{1+a_{2}}$,……,$a_{n}=\frac{1}{1+a_{n-1}}$

/*********Begin**********/
float a = 1;
int i;
for (i = 1; i < n; i++)
    a = 1.0 / (1 + a);
return a;
/**********  End  **********/

5. 【程序设计】

求给定正整数 n 以内的素数之积。(n<28)

/*********Begin**********/
int i;
long s = 1, k;
for (i = 2; i <= n; i++)
{
    for (k = 2; k < i; k++)
        if (i % k == 0) break;
    if (k == i) s = s * i;
}
return s;
/**********  End  **********/

6. 【程序设计】

功能:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用 ‘.’ 结束输入。

#include "stdio.h"
#include "string.h"

int fun(char *c, int status)
{
    /*********Begin**********/
    if (*c == ' ') return 1;
    else
    {
        if (status && *c <= 'z' && *c >= 'a')
            *c += 'A' - 'a';
        return 0;
    }
    /**********  End  **********/
}

7. 【程序设计】

功能:调用函数 fun 判断一个三位数是否 “水仙花数”。在 main 函数中从键盘输入一个三位数,并输出判断结果。请编写 fun 函数。

说明:所谓 “水仙花数” 是指一个 3 位数,其各位数字立方和等于该数本身。每一位上的数分别标记为:百位 bw,十位 sw,个位 gw。

例如:153 是一个水仙花数,因为 153=1³+5³+3³=1+125+27。

/*********Begin**********/
int bw, sw, gw;
bw = n / 100;
sw = (n - bw * 100) / 10;
gw = n % 10;
if (n == bw * bw * bw + sw * sw * sw + gw * gw * gw) return 1;
else return 0;
/**********  End  **********/

8. 【程序设计】

功能:用辗转相除法求两个整数的最大公约数。

#include "stdio.h"

int gcd(int n, int m)
{
    /*********Begin**********/
    int r, t;
    if (n < m) { t = n; n = m; m = t; }
    r = n % m;
    while (r != 0)
    {
        n = m;
        m = r;
        r = n % m;
    }
    return (m);
    /**********  End  **********/
}

10. 【程序设计】

功能:不用递归方式,编写函数 fun,求任一整数 m 的 n 次方。

/*********Begin**********/
long int x = 1;
int i;
for (i = 1; i <= n; i++)
    x = x * m;
return x;
/**********  End  **********/

11. 【程序设计】

功能:根据整型形参 m,计算如下公式的值:

y = 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + 1/10 + … + 1/(m+5)

例如:若 m=9,则应输出:1.168229

#include "stdio.h"

double fun(int m)
{
    /*********Begin**********/
    double y = 0;
    int i;
    for (i = 0; i <= m; i++)
        y += 1.0 / (i + 5);
    return (y);
    /**********  End  **********/
}