2012年9月国家计算机二级C语言上机考试题库及解题思路

4星 · 超过85%的资源 需积分: 4 4 下载量 169 浏览量 更新于2024-07-26 收藏 1.11MB DOC 举报
2012年9月的国家计算机二级C语言上机考试题库包含了两道编程题目。第一道题目要求考生完善一个名为`fun`的函数,该函数的目标是处理一个无符号长整型变量`n`,移除其中所有偶数位,保留奇数位并重新组合成一个新的数。函数的输入参数为指向`n`的指针,输出也是通过这个指针传递。解题的关键在于理解如何通过取模运算获取每一位数字并判断其奇偶性。正确代码如下: ```c void fun(unsigned long *n) { unsigned long x = 0, i = 1; int t; i = 1; while (*n) { t = *n % 10; // 第一处:获取个位数字 if (t % 2 != 0) // 第二处:判断奇数 { x = x + t * i; i = i * 10; } *n = *n / 10; // 移除个位 } *n = x; // 第三处:通过形参n返回新数 } ``` 第二道题目是关于计算阶乘的函数`fun`,函数接收一个整数`n`作为参数,返回`n!`(n的阶乘)的结果。题目要求修复代码中的错误。错误包括条件语句的格式和缺少分号。修正后的代码如下: ```c double fun(int n) { double result = 1.0; if (n == 0) // 第一处:修改条件语句 return 1.0; while (n > 1) // 去掉不必要的范围限制,保持原意即可 result *= n--; return result; } ``` 考生需要根据这两道题目提供的描述和部分代码,熟悉C语言的基本语法、控制结构以及对函数的调用和指针操作的理解,以完成实际的上机考试。同时,注意不要改变程序的原有结构和格式,仅针对指定位置进行必要的修改。通过这样的题目,可以检验考生对C语言基础和算法设计能力的掌握程度。