C语言编程:去除偶数位后的数值处理与阶乘计算问题解析
需积分: 0 23 浏览量
更新于2024-06-28
收藏 3.58MB PDF 举报
"2012年9月国家计算机二级C语言上机考试题库.pdf"
在2012年9月的国家计算机二级C语言上机考试题库中,涉及了两个主要的编程题目,主要考察了考生对C语言基本语法、数值处理以及算法设计的能力。以下是这两道题目的详解:
第一道题目要求编写一个函数`fun`,其功能是移除输入整数的每一位上的偶数数字,只保留奇数数字。函数接受一个无符号长整型指针`n`作为参数,处理完后的结果会通过该指针返回。解题的关键在于理解题意并正确使用C语言的逻辑运算符和算术运算符。
1. 第一处空格:用`*n%10`获取`n`的个位数,因此填写`10`。
2. 第二处空格:检查个位数是否为奇数,用`t%2!=0`判断,因此填写`0`。
3. 第三处空格:在循环结束后,将处理好的新数`x`赋值回`*n`,因此填写`x`。
完整的`fun`函数如下:
```c
void fun(unsigned long *n) {
unsigned long x = 0, i;
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;
}
```
第二道题目要求实现一个计算阶乘的函数`fun`,输入一个整数`n`,返回`n!`的结果。这里存在两个错误需要修正:
1. 第一处错误:条件语句`ifn==0`应修正为`if(n==0)`,确保语法正确。
2. 第二处错误:`result*=n--`语句后面缺少分号`;`,应补全。
修正后的`fun`函数如下:
```c
double fun(int n) {
double result = 1.0;
if (n == 0)
return 1.0;
while (n > 1 && n < 170) {
result *= n--;
}
return result;
}
```
这两个题目分别涉及了C语言中指针、位运算、条件判断、循环和函数等核心概念,对于准备计算机二级C语言考试的考生来说,这些都是必须掌握的基础知识。通过解答这些题目,考生可以提高对C语言的理解和编程能力。
2021-11-06 上传
2021-11-01 上传
2021-11-01 上传
2021-10-10 上传
2021-11-01 上传
zzzzl333
- 粉丝: 818
- 资源: 7万+
最新资源
- ABAQUS与FORTRAN.pdf
- 软件设计师考试下午题型与大纲
- Addison Wesley - Embedded C.pdf
- 神经网络和模糊逻辑在农业机械制造中的应用
- ABAQUS_Standard 用户材料子程序实例-Johnson-Cook 金属本构模型
- 多维数据OLAP分析资料
- 华为Optix 155/622/2500+硬件习题
- C语言嵌入式系统编程修炼之道
- pb8.0完全参考教程
- TEA5990_FirmwareR3V32_UserManual0.3
- 华为编程规范和范例-初学编程必看
- How To Develop DSP
- 必会的C++ 面试题
- 电子技术基础课程设计
- linux完全命令手册
- ssh架构开发的PDF