第一题:请补充fun函数,该函数的功能是:用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中.
例如,输入如下整数:876 675 896 101 301 401 980 431 451 777,则输出结果为:6, 980.
请勿改动主函数main和其他函数中的任何内容,仅在fun 函数的横线上填入所编写的若干表达式或语句.
#include
#include
void fun(int s, int t, int ___1__)
{
int i, max;
max = s[0];
for (i=0; i if (__2__) { max = s[i]; *k = __3__; } } main() { int a[10] = {876, 675, 896, 101, 301, 401, 980, 431, 451, 777}, k; fun(a, 10, &k); printf("%d, %d\n", k, a[k]); } 参考答案: 第一题:(1) *k (2) s[i]>max (3) i 第二题:已知一个数列从第0项开始的前三项分别为0、0、1,以后的各项都是其相邻的前三项之和。下列给定程序中,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=10时,程序输出结果应为23.197745。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! #include #include #include /********found********/ fun(int n) { double sum, s0, s1, s2, s; int k; sum = 1.0; if (n <= 2) sum = 0.0; s0 = 0.0; s1 = 0.0; s2 = 1.0; for (k=4; k<=n; k++) { s = s0+s1+s2; sum += sqrt(s); s0 = s1; s1 = s2; s2 = s; } /********found********/ return sum } main() { int n; printf("Input N="); scanf("%d", &n); printf("%lf\n", fun(n)); } 参考答案第二题: 第一处fun(int n)应改为 double fun(int n) 第二处 return sum应改为 return sum;
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |