计算机二级考试必备:80题库详解,填空、改错、编程全涵盖

需积分: 9 1 下载量 153 浏览量 更新于2024-07-30 1 收藏 623KB DOC 举报
"计算机二级上机考试80题库讲解" 计算机二级上机考试是对考生计算机基础知识和应用能力的测试,通常包含填空题、改错题和编程题等多种题型。以下是对给定的三道典型题目的解析: 1. **填空题** 这个题目要求编写一个计算1/4圆周长的函数。已给出的函数`fun`接受圆的直径`d`,并返回1/4圆周长。函数内部的计算是正确的,但需要注意的是,主函数`main`中的输出格式可能需要调整以匹配题目要求的输出样例。程序应该首先提示用户输入圆的直径,然后调用`fun`函数,并将结果输出。在实际考试中,考生应确保输出的格式符合题目要求,如保留小数点后足够位数的精度。 2. **改错题** 在`fun`函数中,其目的是计算正整数`m`各位数字的乘积。目前的实现中存在一个问题:如果输入的`m`是0,函数会进入无限循环,因为`n/=10;`这行代码在`n`等于0时仍会执行。为修复此问题,可以在`while`循环条件前添加检查`n!=0`的条件,以避免在`n`为0时继续循环。修正后的代码如下: ```c while(n != 0) { r *= n % 10; n /= 10; } ``` 这将确保在`n`为0时,循环停止。 3. **编程题** 此编程题要求编写一个函数`fun`,找出1到`m`之间(含`m`)能被7或11整除的所有整数,并将它们存入数组`b`中,同时返回这些数的个数。题目中给出的函数`fun`有一些问题: - 函数`fun`的参数`*n`用于返回整数的个数,但不应该在函数内部初始化为0。 - `Return(n);`应更改为`*n=j; return;`,因为函数不返回任何值。 - 函数签名应更改为`void fun(int m, int b[], int* n)`,避免在函数内对`n`进行赋值操作。 - 在`for`循环中,当`i`满足能被7或11整除的条件时,应检查数组`b`是否有足够的空间存储新元素。 修正后的`fun`函数如下: ```c void fun(int m, int b[], int* n) { int i, j = 0; for (i = 1; i <= m; i++) { if (i % 7 == 0 || i % 11 == 0) { if (j < N) // 确保数组有空间 { b[j] = i; j++; } else { printf("Array overflow, cannot store more numbers.\n"); break; } } } *n = j; // 返回存储的整数个数 } ``` 在实际考试中,考生需确保程序的正确性和效率,同时注意代码的可读性,因为这是评分的一部分。对于编程题,还需要注意内存管理,防止数组溢出等问题。在完成题目后,考生应进行测试,确保程序能处理各种边界情况。