C语言程序填空题.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【3.1】 这个程序的目的是实现两个整数 a 和 b 的对调,但不使用额外的变量。填空如下: ```c #include <stdio.h> main(){ int a, b; scanf("%d%d", &a, &b); printf("a=%d,b=%d\n", a, b); a = a + b; // ① b = a - b; // ② a = a - b; // ③ printf("a=%d,b=%d\n", a, b); } ``` 这里运用了算术运算来达到对调的效果,首先 a=a+b 得到两数之和,然后 b=a-b 使得 b 存储了 a 的原值,最后 a=a-b 使 a 存储了原 b 的值。 【3.2】 此程序通过累加 1/n^2 的方式求 π 的近似值。填空如下: ```c #include <math.h> double pi(long n){ double s = 0.0; long i; for(i = 1; i <= n; i++) s = s + 1.0 / (i * i); // ① return 6.0 * s; // ② } ``` 根据 π/2 ≈ 1/12 + 1/2^2 + 1/3^2 + ... + 1/n^2,累加后乘以 6 得到 π 的近似值。 【3.3】 该程序用于找出一维数组中的最小元素,并返回其下标。填空如下: ```c findmin(int *s, int t, int *k){ int p; for(p = 0, *k = p; p < t; p++) if(s[p] < s[*k]) *k = p; // ① } main(){ int a[10], i, *k = &i; for(i = 0; i < 10; i++) scanf("%d", &a[i]); findmin(a, 10, k); printf("%d,%d\n", *k, a[*k]); } ``` 当找到更小的元素时,更新最小值的下标 *k。 【3.4】 该程序计算奇数项的交错序列之和。填空如下: ```c main(){ int i, t = 1, s = 0; for(i = 1; i <= 101; i += 2){ t = -t; // ① s = s + t; i++; // ② } printf("%d\n", s); } ``` 这里 t 的取值在每次循环中都要切换正负,因此在每次累加前先改变 t 的符号。 【3.5】 这段程序计算 1/(1*2) + 1/(2*3) + ... + 1/(n*(n+1))。填空如下: ```c s = 0.0; d = 1.0; // ① k = 0; do{ s = s + d; k++; d = 1.0 / (k * (k + 1)); }while(k < n); // ③ printf("%f\n", s); ``` 初始值 d 应设置为 1.0,循环条件应检查 k 是否小于 n。 【3.6】 这个程序统计并输出最高分和最低分,输入负数结束。填空如下: ```c main(){ float x, amax, amin; scanf("%f", &x); amax = x; amin = x; while(x >= 0) { // ① if(x > amax) amax = x; if(x < amin) // ② amin = x; scanf("%f", &x); } printf("\nmax=%f\nmin=%f\n", amax, amin); } ``` 当输入的分数 x 不再为负数时结束循环。 【3.7】 该函数将十进制数 x 转换为二进制数组。填空如下: ```c fun(int x, int b[]){ int k = 0, r; do{ r = x % 10; // ① b[k++] = r; x /= 10; // ② }while(x); } ``` 求余数得到最低位的二进制数,然后除以 10 得到下一位。 【3.8】 程序找出各位数字乘积大于各位数字之和的数。填空如下: ```c main(){ int n, k = 1, s = 0, m; for(n = 1; n <= 100; n++){ k = 1; s = 0; m = n; // ① while(m != 0) { // ② k *= m % 10; s += m % 10; m /= 10; } if(k > s) printf("%d", n); } } ``` 用 m 存储当前的 n,然后判断 m 是否为 0。 【3.9】 统计不同数字组成的三位数个数。填空如下: ```c main(){ int i, j, k, count = 0; for(i = 1; i <= 9; i++) for(j = 0; j <= 9; j++) if(i == j || j == k) // ① continue; else for(k = 0; k <= 9; k++) if(i != j && j != k && i != k) // ② count++; printf("%d", count); } ``` 条件判断确保三个数字互不相同。 【3.10】 程序输出 10 到 999 之间符合特定条件的数。由于没有提供完整题目,这部分无法填写,但通常会有一个条件需要满足。 这些程序涵盖了 C 语言的基础知识,包括变量、运算符、流程控制、数组、函数等,以及数值计算和逻辑判断。通过解决这些填空题,读者可以加深对 C 语言的理解和编程技能的提升。
剩余18页未读,继续阅读
- 粉丝: 9
- 资源: 20万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助