《全国计算机2级C语言上机考试题库》中的知识点涵盖了C语言的基本操作、逻辑判断、循环控制以及字符串处理等多个方面。下面将详细解析题目中的三个示例题目。
1. 第一个题目是关于C语言中的位操作和条件判断。题目要求编写一个函数`fun`,该函数接收一个无符号长整型指针`n`,将其中每位为偶数的数字移除,保留奇数位,形成一个新的数。关键在于如何获取每一位数字并判断其是否为偶数。代码中下划线处的填充如下:
- 第一处:`t=*n % 10;`,取模运算得到`n`的个位数。
- 第二处:`if(t%2!= 0)`,判断个位数是否为奇数。
- 第三处:`*n=x;`,将新数`x`赋值给`n`。
2. 第二个题目涉及的是阶乘计算。函数`fun`应该计算`n!`,但原代码存在错误。修正后的代码如下:
- 第一处:`if (n == 0)`,条件语句的正确格式。
- 第二处:`return result;`,在循环结束后返回结果,记得添加分号。
3. 第三个题目要求实现一个函数`fun`,它将数字字符串转换为整数。这个函数需要手动实现类似`atoi`的功能,不依赖标准库。参考答案中的关键部分缺失,完整的`fun`函数应该如下:
```c
long fun(char *p) {
int i, len, t;
long x = 0;
len = strlen(p);
if (p[0] == '-') {
t = -1;
len--;
p++;
} else {
t = 1;
}
for (i = 0; i < len; i++) {
x = x * 10 + (p[i] - '0');
}
return x * t;
}
```
这里,`x`用于存储转换后的整数,`p[i] - '0'`将字符转换为对应的数字值。
以上三个题目覆盖了C语言的基础知识,包括指针操作、条件判断、循环控制、位运算、字符串处理以及函数设计。对于准备全国计算机2级C语言上机考试的考生来说,理解和掌握这些知识点至关重要。通过不断地练习和理解,考生可以提升自己的编程能力和应对考试的能力。