"2013年03月C语言二级考试题库:去除偶数位数字并重新组合"

需积分: 3 1 下载量 177 浏览量 更新于2024-01-12 收藏 169KB PDF 举报
在给定的源程序中,函数fun的功能是将形参n所指变量中各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数为739。 下面是给定的源程序代码: ```c #include <stdio.h> void fun(int *n) { int m = 0; int temp = *n; while (temp > 0) { int digit = temp % 10; if (digit % 2 == 0) { temp /= 10; } else { m = m * 10 + digit; temp /= 10; } } *n = 0; while (m > 0) { int digit = m % 10; *n = *n * 10 + digit; m /= 10; } } int main() { int num = 27638496; fun(&num); printf("新的数:%d\n", num); return 0; } ``` 在给定的程序中,首先定义了一个函数fun,该函数的形参是一个指向整型变量的指针n。函数中定义了两个整型变量m和temp,m用于存储去除偶数位后的新数,temp用于临时存储传入参数n的值。 之后使用while循环对temp进行迭代,每次迭代将temp除以10取余得到digit,然后判断digit是否为偶数。如果是偶数,则通过temp除以10去除该位上的数;如果不是偶数,则将digit加入到m中,并通过temp除以10去除该位上的数。循环直到temp为0。 接着,将传入参数n的值重新赋值为0,然后使用while循环对m进行迭代,每次迭代将m除以10取余得到digit,并将digit加入到n中。循环直到m为0。 最后,在main函数中定义了一个整型变量num并赋值为27638496,调用函数fun,并通过传入num的地址来修改num的值。最后,输出新的数的值。 通过以上分析可知,在程序的下划线处应填写的内容是:`*n = 0;`。这样,程序将得出正确的结果。 以2013年03月国家计算机二级C语言考试题库.pdf的题目作为例子,总结如下: 根据题目要求,我们需要编写一个函数,功能是将形参n所指变量中各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。 总结生成的程序如下所示: ```c #include <stdio.h> void fun(int *n) { int m = 0; int temp = *n; // 保存原始数据 while (temp > 0) { int digit = temp % 10; // 取最低位的数字 if (digit % 2 == 0) { temp /= 10; // 去除最低位的数字 } else { m = m * 10 + digit; // 构建新的数 temp /= 10; // 去除最低位的数字 } } *n = 0; while (m > 0) { int digit = m % 10; // 取最低位的数字 *n = *n * 10 + digit; // 构建新的数 m /= 10; // 去除最低位的数字 } } int main() { int num = 27638496; fun(&num); // 调用函数修改值 printf("新的数:%d\n", num); // 输出结果 return 0; } ``` 通过以上程序,我们可以得到新的数739作为函数的输出。这个程序的作用是去除一个整数中各位上为偶数的数,然后将剩余的数字按照原来从高位到低位的顺序重组。