C++ 试题
1. 成绩存入数组
【题目】m 个人的成绩存放在 score 数组中,请编写函数 fun, 它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在 below 所指定的函数中。
【代码】
#include <stdio.h> int fun(double score[], int m, double below[]){int i, k = ;double aver = .;for (i = ; i < m; i++){aver += score[i];}aver /= m;for (i = ; i < m; i++){if (score[i] < aver){below[k++] = score[i];}}return k; } int main(){//main function is used to Test fun functiondouble score[] = {78,65,45,68,9};double below[5];int i = fun(score, 5, below);printf("%d\n", i);return ; }
2. 被 7 或者 11 整除的数
【题目】请编写函数 fun,它的功能是:求出 1 到 1 之内能被 7 或者 11 整除,但不能同时被 7 和 11 整除的所有整数,并将他们放在 a 所指的数组中,通过 n 返回这些数的个数。
【代码】
#include <stdio.h> void fun(int a[], int *n){int i, j = ;for (i = 2; i < 1; i++){if ((i % 7 == || i % 11 == ) && i % 77 != ){a[j++] = i;}}*n = j; } int main(){//main function is used to Test fun functionint n = ;int a[1];fun(a, &n);printf("%d\n",n);return ; }
3. 求出能整除 x 且不是偶数的整数
【题目】请编写函数 void fun(int x, int pp[], int *n), 它的功能是:求出能整除 x 且不是偶数的各整数,并按从小到大的顺序放在 pp 所指的数组中,这些除数的个数通过形参 n 返回。
【代码】
#include <stdio.h> void fun(int x, int pp[], int *n){int i, j = ;for (i = 1; i < x; i++){if (x % i == && i %2 != ){pp[j++] = i;}*n = j;} } int main(){//main function is used to Test fun functionint n = ;int pp[1];fun(6, pp, &n);printf("%d\n",n);return ; }
4. 统计字母出现的次数
【题目】请编写一个函数 void fun(char *tt, int pp[]), 统计在 tt 字符中" a "到" z " 26 各字母各自出现的次数,并依次放在 pp 所指的数组中。
【代码】
#include <stdio.h> #include <string.h> void fun(char *tt, int pp[]){int i, j = ;for (i = ; i < strlen(tt); i++){if (tt[i] >= 'a' && tt[i] <= 'z'){j = tt[i] - 'a' ;pp[j] = pp[j] + 1;}} } int main(){//main function is used to Test fun functionchar tt[] = {'a','b','a'}; int i;int pp[26];//int pp[26] = {};for (i = ; i < 26; i++){pp[i] = ;} fun(&tt, pp);for (i = ; pp[i] != '\'; i++){if (pp[i] > ){char c = i + 'a';printf("%c = %d\n", c, pp[i]);}} return ; }
5. 指定素数输入数组
【题目】请编写一个函数 void fun(int m, int k, int xx[]), 该函数的功能是:将大于整数 m 且紧靠 m 的 k 个素数存入 xx 所指的数组中。
【代码】
#include <stdio.h> #include <math.h> void fun(int m, int k, int xx[]) {int i, j, count = ;for (i = m + 1;count < k ; i++) {for (j = 2; j <= sqrt(i); j++) {if (i % j == ) {break;}}if (j > sqrt(i)) {xx[count++] = i;}} } int main() {int a[1];fun(3,5,a);int i;for (i = ; i < 5; i++) {printf("%d ", a[i]);} }
6. 删除指定下标的字符
【题目】请编写一个函数void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。
【代码】
#include <stdio.h> #include <string.h> void fun(char a[], char b[], int n) {int i, j = ;for (i = ; i < strlen(a); i++) {if (i != n) {b[j++] = a[i];}}b[j] = '\';}int main() {char a[] = "Hello";char b[1];fun(a, b, 2);puts(b);return ;}
7. 元素下标存放k中
【题目】请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的储存单元中。
【代码】
#include <stdio.h> #include <string.h> int fun(int *s, int t, int *k) {int i, max;max = s[];for (i = 1; i < t; i++) {if (s[i] > max) {max = s[i];*k = i;}}return ; } int main() {int a[4];int i;for (i = ; i < 4; i++) {scanf("%d", &a[i]);} int value = ;fun(&a, 4, &value);printf("%d", value);return ; }
8. 计算并输出下列多项式值
【题目】编写函数fun,功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n)
【代码】
#include <stdio.h> double fun(int n) {int i, j, t;double s = .;for (i = 1; i <= n; i++) {t = ;for (j = 1; j <= i; j++) {t += j;}s += 1./t;}return s; } int main() {printf("%lf\n", fun(1));return ; }
9. 求值
【题目】编写一个函数fun,它的功能是:根据以下公式求P的值,结果由函数值带回。m与n为两个正整数,且要求m>n。p=m!/n!(m-n)!
【代码】
#include <stdio.h> double fun(int m, int n) {double p, t = 1.;int i;for (i = 1; i <= m; i++) {t *= i;}p = t;for (t = 1., i = 1; i <= n; i++) {t *= i;}p /= t;for (t = 1., i = 1; i <= m - n; i++) {t *= i;}p /= t;return p; } int main() {printf("%lf",fun(1,9)); return ; }
10. 简单迭代
【题目】编写函数fun,它的功能是:利用以下的简单迭代方法求方程cos(x)-x=的一个实根。
迭代步骤如下:(1)取x1初值为.;(2)x=x1,把x1的值赋各x;
(3)x1=cos(x),求出一个新的x1;
(4)若x-x1的绝对值小于.1,则执行步骤(5),否则执行步骤(2);
(5)所求x1就是方程cos(x)-x=的一个实根,作为函数值返回。
程序将输出Root=.73985。
【代码】
#include <stdio.h> #include <math.h> double fun() {double x, x1 = .;do {x = x1;x1 = cos(x);} while (fabs(x - x1) >= 1e-6);return x1; } int main() {printf("%lf", fun());return ; }
11. 数组左下半三角元素中的值全部置成
【题目】下列程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a),该函数的功能是:使数组左下半三角元素中的值全部置成。
【代码】
#include <stdio.h> #define N 3 int fun(int a[][N]) {int i, j;for (i = ; i < N; i++) {for (j = ; j <= i; j++) {a[i][j] = ;}} } int main() {int a[][3] = {{1,2,3},{2,3,4},{3,4,5}};fun(a);int i, j;for (i = ; i < 3; i++) {for (j = ; j < 3; j++) {printf("%d ", a[i][j]);}printf("\n");}return ; }
12. 数组周边元素的平均值返回给主函数
【题目】下列程序定义了N×N的二维数组,并在主函数中赋值。请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。
【代码】
#include <stdio.h> #define N 3 double fun(int w[][N]) {int i, j;double s = .;for (i = ; i < N; i++) {s += w[][i];} for (i = ; i < N; i++) {s += w[N - 1][i];} for (i = ; i < N; i++) {s += w[i][];} for (i = ; i < N; i++) {s += w[i][N - 1];} s = s - w[][] - w[][N - 1] - w[N - 1][] - w[N - 1][N - 1];return s/(4 * N - 4); } int main() {int a[][3] = {{1,2,3},{2,3,4},{3,4,5}};printf("%lf", fun(a));return ; }
13. 求出二维函数组每列中最小元素
【题目】请编写一个函数void fun(int tt [M] [N] ,int pp[N]),tt指向一个M行N列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。二维数组中的数已在主函数中赋予。
【代码】
#include <stdio.h> #define M 3 #define N 3 void fun(int tt[M][N], int pp[N]) {int i, j, min;for (j = ; j < N; j++) {min = tt[][j];for (i = 1; i < N; i++) {if (tt[i][j] < min) {min = tt[i][j];}}pp[j] = min;} }int main() {int a[][3] = {{1,2,3},{2,3,4},{3,4,5}};int b[3];fun(a, b);int i;for (i = ; i < 3; i++) {printf("%d ", b[i]);}return ; }
14. 二维数组周边元素之和,作为函数值返回
【题目】请别写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
【代码】
#include <stdio.h> #define N 3 int fun(int w[][N]) {int i, j;int s = ;for (i = ; i < N; i++) {s += w[][i];} for (i = ; i < N; i++) {s += w[N - 1][i];} for (i = ; i < N; i++) {s += w[i][];} for (i = ; i < N; i++) {s += w[i][N - 1];} s = s - w[][] - w[][N - 1] - w[N - 1][] - w[N - 1][N - 1];return s; } int main() {int a[][3] = {{1,2,3},{2,3,4},{3,4,5}};printf("%d", fun(a));return ; }
15. w后n-1位的数作为函数值返回
【题目】请编写一个函数unsigned fun(unsigned w),w使一个大于1的无符号整数,若w是n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。
【代码】
#include <stdio.h> unsigned fun(unsigned w) {unsigned t, s = , s1 = 1;t = w; while (t > 1) {s = s + t % 1 * s1;s1 = s1 * 1;t = t / 1;}return s; } int main() {unsigned t = 123;printf("%u", fun(t));return ; }
16. 值保留2位小数
【题目】请编写一个函数float fun(double h),函数的功能使对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值位正数)。
【代码】
#include <stdio.h> float fun(double h) {int t;float s;h = h * 1;t = (h + 5) / 1;s = t / 1.;return s; } int main() {printf("%.2lf\n", 123.4567);printf("%.2lf", fun(123.4567));return ; }
17. 字符串中的内容逆置
【题目】请编写一个函数fun(char *s),该函数的功能使把字符串中的内容逆置。
【代码】
#include <stdio.h> #include <string.h> void fun(char *s) {char ch;int i;for (i = ; i < (strlen(s) - 1) / 2; i++) {ch = s[i];s[i] = s[strlen(s) - 1 - i];s[strlen(s) - 1 - i] = ch;} } int main() {char s[1];gets(s);fun(&s);puts(s);return ; }
18. 矩阵(3行3列)的转置
【题目】编写程序,实现矩阵(3行3列)的转置(即行列互换)。
【代码】
#include <stdio.h> void fun(int array[3][3]) {int i, j, temp;for (i = ; i < 3; i++) {for (j = ; j < i; j++) {temp = array[i][j];array[i][j] = array[j][i];array[j][i] = temp;}} } int main() {int s[3][3];int i, j;for (i = ; i < 3; i++) {for (j = ; j < 3; j++) {scanf("%d", &s[i][j]);}}fun(s);for (i = ; i < 3; i++) {for (j = ; j < 3; j++) {printf("%d ", s[i][j]);}printf("\n");}return ; }
19. 从字符中删除指定的字符
【题目】编写函数fun,该函数的功能是:从字符中删除指定的字符,同一字母的大、小写按不同字符处理。
【代码】
#include <stdio.h> void fun(char s[], char c) {int i = ;char *p;p = s;while (*p) {if ((*p) != c) {s[i++] = *p;} p++;}s[i] = '\'; } int main() {char s[1];gets(s);puts(s);char c = 'a';fun(s, c);puts(s);return ; }
20. 求出小于或等于lim的所有素数并放在aa数组中
【题目】编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在aa数组中,该函数返回所求的素数的个数。
【代码】
#include <stdio.h> #include <math.h> #define Max 1 int fun(int lim, int aa[Max]) {int i, j, k = ;for (i = 2; i <= lim; i++) {for (j = 2; j <= sqrt(i); j++) {if (i % j == ) {break;}}if (j > sqrt(i)) {aa[k++] = i;}}return k; } int main() {int lim = 9;int aa[Max];int k = fun(lim, aa);printf("%d\n", k);int i; for (i = ; i < k; i++) {printf("%d ", aa[i]);}return ; }
21. 字符按ASCII码降序排列
【题目】请编写函数fun,对长度为7个字符的字符串,除首尾字符外,将其余5个字符按ASCII码降序排列。
【代码】
#include <stdio.h> void fun(char *s, int num) {char t;int i, j;for (i = 1; i < num - 2; i++) {for (j = i + 1; j < num - 1; j++) {if (s[i] - s[j] < '') {t = s[i];s[i] = s[j];s[j] = t;}}} } int main() {char s[7] = "HelloCC";fun(&s, 7);int i;for (i = ; i < 7; i++) {printf("%c ", s[i]);}return ; }
22. 带头节点的链表结构求最高分
【题目】N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,它的功能是:找出学生的最高分,由函数值返回。
【代码】
#include <stdio.h> #include <stdlib.h> typedef struct student {struct student *next;double score; } Student; double fun(Student *h) {double max;Student *q = h;max = h->score;do {if (q->score > max) {max = q->score;}q = q->next;} while (q);return max; } Student *Create() {double score;scanf("%lf", &score);Student *student;if (score == -1) {return NULL;} else {student = (Student *)malloc(sizeof(Student));student->score = score;student->next = Create();}return student; } int main() {Student *h;h = Create();double max = fun(&h);printf("%lf", max);return ; }
23. 判断字符串是否为回文
【题目】请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回,主函数中输出NO。回文是指顺读和倒读都是一样的字符串。
【代码】
#include <stdio.h> int fun(char *str) {int i, n = , flag = 1;char *p = str;while (*p) {n++;p++;}for (i = ; i < n / 2; i++) {if (str[i] != str[n - 1 - i]) {flag = ;break;}}return flag; } int main() {char str[1];gets(str);if (fun(&str) == 1) {printf("true"); } else {printf("false");}return ; }
24. 将一个字符串转换为一个整数
【题目】请编写一个函数fun,它的功能是:将一个字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。
【代码】
#include <stdio.h> #include <string.h> long fun(char *p) {long s = , t;int i = , j, n = strlen(p), k, s1;if (p[] == '-') {i++;}for (j = i; j < n; j++) {t = p[j] - '';for (k = j; k < n - 1; k++) {t *= 1;}s += t;}if (p[] == '-') {return -s;}return s; } int main() {char a[1];gets(a);printf("%ld", fun(&a));return ; }
25. 函数返回较长的字符串
【题目】请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。
【代码】
#include <stdio.h> char *fun(char *s, char *t) {char *p, *s1 = s, *t1 = t;int n = , m = ;while (*s1) {n++;s1++;}while (*t1) {m++;t1++;}if (n >= m) {p = s;} else {p = t;}//puts(p);return p; } int main() {char a[1];gets(a);char b[1];gets(b);char *c; c = fun(a, b);puts(c);return ; }
26. 根据公式求值
【题目】请编写一个函数fun,它的功能是:根据以下公式求X的值(要求满足精度.5,即某项小于.5时停止迭代):
X/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+...+1×2×3×...×n/3×5×7×(2n+1)
程序运行后,如果输入精度.5,则程序输出为3.14...。
【代码】
#include <stdio.h> double fun(double eps) {double s = 1., n = 1., x = ;while (fabs(s) >= eps) {x += s;s *= n / (2 * n + 1);n++;}x = x * 2;return x; } int main() {printf("%lf", fun(.5));return ; }
27. 整数放在数组a中,返回数的个数
【题目】请编写一个函数fun,它的功能是:求出1到m之内(含m)能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。
【代码】
#include <stdio.h> void fun(int m, int *a, int *n) {int i, j = ;*n = ;for (i = 1; i <= m; i++) {if (i % 7 == || i % 11 == ) {a[j] = i;j++;}}*n = j; } int main() {int a[1];int m = 12;int n;fun(m, a, &n);printf("%d", n);return ; }
28. 找出一维整型数组元素中最大的值和它所在的下标
【题目】请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
【代码】
#include <stdio.h> void fun(int a[], int n, int *max, int *index) {int i;*max = a[];*index = ;for (i = ; i < n; i++) {if (a[i] > *max) {*max = a[i];*index = i;}} } int main() {int a[] = {1,2,5,4};int max, index;fun(a, 4, &max, &index);printf("a[%d] = %d", index, max);return ; }
29. 字符串换字母
【题目】请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
【代码】
#include <stdio.h> #include <string.h> void fun(char *ss) {int i, n = strlen(ss);for (i = ; i < n; i++) {if (i % 2 != ) {if (ss[i] >= 'a' && ss[i] <= 'z') {ss[i] -= 32;}}} } int main() {char a[1];gets(a);fun(a);puts(a);return ; }
30. 求二维数组中最大元素
【题目】请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。
【代码】
#include <stdio.h> #define M 2 int fun(int a[][M]) {int i, j, max = a[][];for (i = ; i < 2; i++) {for (j = ; j < M; j++) {if (a[i][j] >max) {max = a[i][j];}}}return max; } int main() {int a[2][M];int i, j;for (i = ; i < 2; i++) {for (j = ; j < M; j++) {scanf("%d", &a[i][j]);}}int max = fun(a);printf("%d", max);return ; }
31. 查找字符并删除
【题目】请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。
【代码】
#include <stdio.h> #include <string.h> void fun(char *s, char t[]) {int i, j = , n = strlen(s);for (i = ; i < n; i++) {if (i % 2 == && s[i] % 2 == ) {t[j++] = s[i];}}t[j] = '\'; } //测试 int main() {char s[1];char t[1];gets(s);fun(s, t);puts(t);return ; }
32. 查找字符并删除
【题目】请编写函数fun,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。
【代码】
#include <stdio.h> #include <string.h> void fun(char *s, char t[]) {int i, j = , n = strlen(s);for (i = ; i < n; i++) {if (i % 2 != && s[i] % 2 != ) {t[j++] = s[i];}}t[j] = '\'; } int main() {char s[1];char t[1];gets(s);fun(s, t);puts(t);return ; }
33. 将字符串中的前导 * 号全部删除
【题目】假定输入的字符串中只包含字母和 * 号。请编写函数 fun(),它的功能是:将字符串中的前导 * 号全部删除,中间和后面的 * 号不删除。
【代码】
#include <stdio.h> #include <string.h> void fun(char *a) {char *p=a;while (*p== '*') {p++;}strcpy (a,p); } int main() {char a[1];gets(a);fun(a);puts(a);return ; }
34. 把分数最高的学生数据放在h所指的数组中
【题目】学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能使:把分数最高的学生数据放在h所指的数组中,注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
【代码】
#include <stdio.h> #include <stdlib.h> #define N 3 typedef struct student {int id;double score; } Student; int fun(Student s[], Student t[] ) {double max;int i, j = ;max = s[].score;for (i = 1; i < N; i++) {if (s[i].score > max) {max = s[i].score;}}for (i = ; i < N; i++) {if (s[i].score == max) {t[j].score = s[i].score;t[j].id = s[i].id;j++;}}return j; } int main() {Student s[N];double score;int id;int i;for (i = ; i < N; i++) { scanf("%d %lf", &id, &score);s[i].score = score;s[i].id = id;}Student t[1];printf("%d", fun(s, t));return ; }
35. 删除字符串中的所有空格
【题目】请编写一个函数,用来删除字符串中的所有空格。
【代码】
#include <stdio.h> void fun(char *str) {int i = ;char *p = str;while (*p) {if (*p != ' ') {str[i++] = *p;}p++;}str[i] = '\'; } int main() {char a[1];gets(a);fun(a);puts(a);return ; }
36. 将字符串中的前导 * 号全部移到字符串的尾部。
【题目】假定输入的字符串中只包含字母和 * 号。请编写函数fun,它的功能是:将字符串中的前导 * 号全部移到字符串的尾部。
【代码】
有点重了,就不写了...
37. 求出该学生的平均分放在记录的ave成员中
【题目】某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。
【代码】
思路看 35 题
38. 求出ss所指字符串中指定字符的个数,并返回此值。
【题目】请编写函数fun,它的功能是:求出ss所指字符串中指定字符的个数,并返回此值。
【代码】
#include <stdio.h> int fun(char *a, char c) {int n = ;while (*a) {if (*a == c) {n++;}a++;}return n; } int main() {char a[1];gets(a);int num = fun(a, 'c');printf("%d", num);return ; }
39. 移动一维数组中的内容
【题目】请编写函数fun,该函数的功能是:移动一维数组中的内容,若数组中由n个整数,要求把下标从到p(p小于等于n-1)的数组元素平移到数组的最后。
【代码】
和 4 题差不多
40. 移动字符串中内容
【题目】请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。
【代码】
#include <stdio.h> #include <string.h> #define N 1 void fun(char *w, int m) {char b[N];int n = strlen(w);int i, j = ;for (i = ; i < m; i++) {b[j] = w[i];j++;}for (i = ; i < n - m; i++) {w[i] = w[i + m];}for (j = ; j < m; j++) {w[i++] = b[j];}w[i] = '\'; } int main() {char a[N];gets(a);fun(a, 3);puts(a);return ; }
41. 相邻两个元素之平均值的平方根之和
【题目】请编写函数fun,其功能使:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和
【代码】
#include <stdio.h> #include <math.h> double fun(double a[9]) {int i, j = 1;double s = .;for (i = ; i < 9; i++) {if (j <= 8) {s += sqrt((a[i] + a[i + 1]) / 2);j++;}}return s; } int main() {double a[9] = {1,1,1,1,1,1,1,1,1};printf("%lf\n", fun(a));return ; }
42. 计算并输出下列多项式值
【题目】请编写函数fun,其功能是:计算并输出下列多项式值:s=1+1/(1+2)+1/(1+2+3)+..1/(1+2+3...+5)
【代码】
#include <stdio.h> double fun(int n) {int i, j, t;double s = .;for (i = 1; i <= n; i++) {t = ;for (j = 1; j <= i; j++) {t += j;}s += 1./t;}return s; } int main() {printf("%lf\n", fun(1));return ; }
43. 倒数之和
【题目】请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
【代码】
#include <stdio.h> #include <math.h> double fun(int n) {int i;double s = .;for (i = 1; i <= n; i++) {if (i % 5 == || i % 9 == ) {s += 1. / i;}}return s; } int main() {printf("%lf\n", fun(1));return ; }
44. 素数的平方根之和
【题目】请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。
【代码】
#include <stdio.h> #include <math.h> double fun(int n) {int i, j;double s = .;for (i = 3; i <= n; i++) {for (j = 2; j <= sqrt(i); j++) {if (i % j == ) {break;} }if (j > sqrt(i) ) {s += sqrt(i);}}return s; } int main() {printf("%lf\n", fun(5));return ; }
45. 计算并输出 s
【题目】请编写函数fun,其功能是:计算并输出s=1+(1+2^(.5))+(1+2 ^ (.5)+3 ^ (.5))+...+(1+2 ^ (.5)+3 ^ (.5)+...+n ^ (.5))
【代码】
#include <stdio.h> #include <math.h> double fun(int n) {int i;double s = 1., p = 1.;for (i = 2; i <= n; i++) {p += pow(i, .5);s += p;}return s; } int main() {printf("%lf\n", fun(2));return ; }