【知识点详解】
1. **C语言的取模运算**:
在给定的代码段中,`t=*n % __1__` 是用来获取变量*n的个位数。因为要获取的是十进制数的个位,所以这里应该填入10。这意味着`t=*n % 10`会返回*n除以10的余数,也就是个位数字。
2. **奇偶数判断**:
判断数的奇偶性通常通过模2运算来实现。在`if(t%2!= __2__)`这句中,`t%2`会返回`t`除以2的余数,如果余数不等于0,那么`t`就是奇数。因此,此处应填入0,完整表达式为`if(t%2!= 0)`,这样可以判断`t`是否为偶数。
3. **返回新数**:
最后,当所有偶数位都被去除后,新数通过形参*n返回。因此,在`*n=__3__;`这一行,应填入变量x,表示新数x赋值给*n,即`*n=x`。
4. **阶乘计算**:
在第二个代码段中,`fun`函数的目标是计算阶乘。首先,`double result = 1.0`初始化结果为1,表示0的阶乘。错误在于条件语句`if n = = 0`,正确的写法应该是`if (n == 0)`,并且`while`循环中`result *= n--;`后面的分号被遗漏了,应修正为`result *= n--;`。
5. **自定义字符串转整数函数**:
第三个代码段要求实现一个函数,将数字字符串转换为整数。在`fun`函数中,需要遍历字符串,逐位转换。首先,检查字符串是否以负号开头,然后根据正负标识`t`进行计算。在`/* 以下完成数字字符串转换为一个数字*/`这部分,需要填充实现将字符串转换为整数的逻辑。基本步骤是逐字符读取,将其转换为对应的数值(0-9),然后累加到`x`上,同时考虑进位。由于题目要求不得使用C语言提供的转换函数,所以需要手动实现这个过程。参考答案的缺失部分应包含这部分逻辑,如:
```
for(i = 0; i < len; i++) {
x = x * 10 + (p[i] - '0');
}
```
6. **文件操作**:
在`NONO`函数中,实现了文件的读写操作,调用`fopen`打开文件,`fscanf`读取数据,`fun`处理数据,`fprintf`写入数据,最后`fclose`关闭文件。这种操作模式在处理大量数据时非常常见,确保数据可以从输入文件读取,经过处理,再写入输出文件。
以上就是针对给定文件中的C语言编程相关知识点的详细解释。这些知识点涵盖了取模运算、条件判断、字符串处理、文件操作以及错误修复等基础编程概念,都是学习C语言时需要掌握的重要技能。