计算机二级考试上机题库与解题指南

4星 · 超过85%的资源 需积分: 0 5 下载量 125 浏览量 更新于2024-07-28 收藏 3.83MB DOC 举报
"计算机二级上机题库,包含填空题、改错题和编程题,用于准备计算机二级考试。" 计算机二级考试是中国针对非计算机专业人员进行的一项计算机能力认证,其上机题库通常包括对编程基础知识、算法设计、程序调试等方面的能力考核。下面将详细解析给定的几道题目及其涉及的知识点。 1. 填空题: 这道题目考察的是对整数的位操作。题目要求删除给定数中各位上的偶数数字,保留奇数数字。关键在于利用位运算进行处理。在C语言中, `%` 运算符是取余数操作,`%2` 可以用来判断一个数是否为偶数。正确答案如下: ```c // 正确的代码片段 t = *n % 10; // 用10代替__1__, 因为要判断个位上的数字 if (t % 2 != 0) // 用0代替__2__, 判断该位是否为偶数 x = x + t * i; // 如果是奇数,累加到结果x中 *n = *n / 10; // 移除当前位,向高位移动 *n = x; // 用x代替__3__, 最终更新n指向的数值 ``` 2. 改错题: 题目要求计算阶乘。错误在于条件判断和递减操作的位置。正确的代码如下: ```c // 正确的代码片段 if (n == 0) return 1.0; // 修复if语句,添加括号 while (n > 1 && n < 170) // 这里的条件无需修改,保持原样 result *= n--; // 将n--移动到*操作符后面,先计算再递减 return result; ``` 3. 编程题: 此题要求将字符串转换成整数,需要考虑符号、进制转换等问题。给出的代码有小问题,但大体思路是对的。正确的实现如下: ```c // 修正后的代码 long fun(char *p) { int i, len, t; // len为串长,t为正负标识 long x = 0; len = strlen(p); if (p[0] == '-') { t = -1; len--; p++; // 处理负号 } else { t = 1; // 如果是正数 } while (*p) { // 转换数字字符串 x = x * 10 + (*p - '0'); // 使用'0'作为基数,而不是-48 p++; } return x * t; } ``` 这些题目涵盖了C语言中的基本数据类型操作、位运算、条件判断、循环控制、字符串处理、文件操作等基础知识,是计算机二级考试中常见的题型。对于备考者来说,理解和掌握这些知识点至关重要。