程序设计基础实验:函数与变量操作

需积分: 0 0 下载量 4 浏览量 更新于2024-08-03 收藏 205KB DOCX 举报
"实验七函数.docx" 实验七的目的是深入理解和掌握C语言中的函数操作,包括函数的定义、调用、参数传递以及不同类型的变量在函数中的应用。实验内容涉及了多个方面,如数值计算、位操作、数字处理以及数组处理。 1. 题目要求实现一个名为`fun`的函数,该函数根据输入的参数`x`返回一个经过特定计算后的值。题目给出的输出提示表明,当`x`为负数时,返回值为其绝对值乘以100加0.6;当`x`为非负数时,返回值为`x`乘以100。因此,可以这样补充`fun`函数: ```c double fun(double x) { if (x < 0) return abs(x) * 100 + 0.6; else return x * 100; } ``` 2. 第二个题目要求编写一个函数`fun`,该函数接收一个正整数`x`,并将其中的偶数位数字提取出来组成新的整数`y`。在代码中,`d`是`x`的个位数,如果`d`是偶数(`d % 2 == 0`),则将其加入到`y`中。`x`应除以10(`x /= 10`)以移除最低位数字。最后返回`y`。因此,填充空白处的代码如下: ```c int fun(int x) { int y, d, s; s = 1; y = 0; while (x > 0) { d = x % 10; if (d % 2 == 0) { y = s * d + y; s = s * 10; } x /= 10; } return y; } ``` 3. 第三个题目要求找出100到999之间的所有能被8整除且左右对称的三位数。为此,我们可以编写一个`fun`函数来检查一个三位数是否满足条件。这个函数可以检查百位和个位是否相等,十位是否为0,且整个数能被8整除。例如: ```c int fun(int m) { return (m % 8 == 0 && m / 100 == m % 10); } int main() { for (int i = 100; i <= 999; i++) { if (fun(i)) printf("%d ", i); } return 0; } ``` 4. 最后一个题目是处理一个数组`a`,找出其中满足特定条件的元素。由于题目没有明确给出条件,我们假设是寻找数组中所有能被3整除的数。可以编写一个函数`fun`来检查数组元素,并在主函数中遍历数组: ```c int fun(int m) { return m % 3 == 0; } int main() { int a[] = {1, 6, 9, 12, 14, 18, 19, 22, 25, 27, 29, 30, 35, 3}; int n = sizeof(a) / sizeof(a[0]); for (int i = 0; i < n; i++) { if (fun(a[i])) printf("%d ", a[i]); } return 0; } ``` 这些实验有助于加深对函数、参数传递、变量作用域和数组操作的理解,是学习C语言编程的基础实践。