全国计算机等级考试三级上机题库(南开100题).pdf

### 全国计算机等级考试三级上机题库知识点解析 #### 题目1:寻找素数 **题目概述:** 本题目要求实现一个函数 `num`,该函数的功能是找出大于给定整数 `m` 的连续 `k` 个素数,并将这些素数存储在一个整型数组 `xx[]` 中。最后通过调用 `readwriteDAT()` 函数将结果输出到文件 `out.dat` 中。 **关键知识点:** 1. **素数的概念:** 一个大于1的自然数,除了1和它本身以外不再有其他因数。 2. **素数判断方法:** 对于一个数 `n`,只需要检查它是否能被 2 到 `sqrt(n)` 之间的任何整数整除即可。 3. **循环结构:** 使用 `while` 循环来不断寻找素数,直到找到 `k` 个素数为止。 4. **数组操作:** 将找到的素数存储在数组 `xx[]` 中。 5. **文件读写:** 通过调用特定的函数将结果输出到文件。 **代码分析:** ```c void num(int m, int k, int xx[]) { int data = m + 1; int half, n = 0, i; while (1) { half = data / 2; for (i = 2; i <= half; i++) if (data % i == 0) break; if (i > half) { xx[n] = data; n++; } if (n >= k) break; data++; } } ``` **解析:** 1. **初始化变量:** `data` 初始化为 `m + 1`,表示从 `m` 后的第一个整数开始检查。 2. **循环判断素数:** 使用 `while` 循环,内部通过 `for` 循环来检查每个数是否为素数。 3. **素数检测逻辑:** 如果 `data` 能被 2 到 `half` 之间的任何数整除,则不是素数;否则是素数。 4. **存储素数:** 每当找到一个素数,就将其存入数组 `xx[]` 并增加计数器 `n`。 5. **终止条件:** 当找到 `k` 个素数后退出循环。 --- #### 题目2:筛选符合条件的四位数 **题目概述:** 题目要求实现一个函数 `jsVal()`,该函数的功能是从数组 `a[]` 中筛选出所有各位数字都是偶数的四位数,并统计这些数字的数量 `cnt`,最后将筛选出的四位数按照从大到小的顺序存储在数组 `b[]` 中。 **关键知识点:** 1. **位运算:** 通过位运算可以方便地获取一个数的每一位数字。 2. **条件判断:** 使用 `if` 语句判断每一位数字是否都为偶数。 3. **排序算法:** 使用简单的冒泡排序对数组进行降序排列。 4. **数组操作:** 包括数组元素的读取、赋值等操作。 **代码分析:** ```c void jsVal() { int bb[4]; int i, j, k, flag; for (i = 0; i < 200; i++) { bb[0] = a[i] / 1000; bb[1] = a[i] % 1000 / 100; bb[2] = a[i] % 100 / 10; bb[3] = a[i] % 10; for (j = 0; j < 4; j++) { if (bb[j] % 2 == 0) flag = 1; else { flag = 0; break; } } if (flag == 1) { b[cnt] = a[i]; cnt++; } } for (i = 0; i < cnt - 1; i++) for (j = i + 1; j < cnt; j++) if (b[i] < b[j]) { k = b[i]; b[i] = b[j]; b[j] = k; } } ``` **解析:** 1. **提取每位数字:** 使用数组 `bb[]` 存储每一位数字。 2. **检查条件:** 使用 `if` 语句逐个检查每个数字是否为偶数。 3. **存储符合条件的数字:** 如果全部数字都是偶数,则将该数存入数组 `b[]` 并增加计数器 `cnt`。 4. **排序:** 使用冒泡排序算法对数组 `b[]` 进行降序排序。 --- #### 题目3:字符串处理——字母 O 的移除与重组 **题目概述:** 题目要求实现一个函数 `StrOR()`,该函数的功能是对字符串中的小写字母 "o" 左边的字符串内容进行移动和删除操作,即将 "o" 左边的字符串内容移到该串的右边,删除 "o" 字符,并将剩余的字符串内容移到处理后的字符串的左边。 **关键知识点:** 1. **字符串长度计算:** 使用 `strlen()` 函数计算字符串长度。 2. **字符串操作:** 包括字符串的遍历、字符的替换等操作。 3. **条件判断:** 使用 `if` 语句判断是否遇到 "o" 字符。 4. **字符串移动:** 通过索引移动字符串内容。 **代码分析:** ```c void StrOR(void) { int i, j, k, index, strl; char ch; for (i = 0; i < maxline; i++) { strl = strlen(xx[i]); index = strl; for (j = 0; j < strl; j++) if (xx[i][j] == 'o') { for (k = j; k < strl - 1; k++) xx[i][k] = xx[i][k + 1]; xx[i][strl - 1] = '\0'; index = j; } for (j = strl - 1; j >= index; j--) { ch = xx[i][strl - 1]; for (k = strl - 1; k > 0; k--) xx[i][k] = xx[i][k - 1]; xx[i][0] = ch; } } } ``` **解析:** 1. **计算字符串长度:** 使用 `strlen()` 获取每个字符串的长度。 2. **遍历字符串:** 使用循环遍历字符串,查找 "o" 字符的位置。 3. **移除 "o" 字符:** 当找到 "o" 字符时,通过字符移动的方式将后面的字符前移一位,从而达到删除 "o" 字符的效果。 4. **重组字符串:** 将原本位于 "o" 字符左边的内容移到字符串的右边,同时将剩余的部分移到左边。 --- #### 题目4:字符串处理——单词倒排与标点符号去除 **题目概述:** 题目要求实现一个函数 `StrOL()`,该函数的功能是以行为单位对字符串中的单词进行倒排,并去除其中的标点符号。 **关键知识点:** 1. **字符串分割:** 使用标点符号或空格作为分隔符来分割字符串。 2. **单词倒排:** 对单词进行倒序排列。 3. **标点符号去除:** 去除字符串中的标点符号。 4. **字符串操作:** 包括字符串的遍历、字符的替换等操作。 **代码分析:** 由于题目提供的代码片段不完整,这里主要解析所需的关键知识点。 1. **字符串分割:** 可以通过遍历字符串,识别出单词与非单词之间的边界来进行分割。 2. **单词倒排:** 对于每一个识别出的单词,可以通过双指针技术从两端向中间交换字符来实现倒排。 3. **标点符号去除:** 在遍历过程中,一旦发现标点符号,可以跳过或者直接覆盖掉。 这四个题目涵盖了基础的数据结构操作、算法设计以及编程技巧,对于备考全国计算机等级考试三级的学生来说是非常重要的练习。











剩余47页未读,继续阅读

- Kernel232011-11-12资源不存在,连接有问题

- 粉丝: 9
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 实训报告-网页制作与网站建设项目实战.doc
- 试论互联网+时代事业单位档案管理创新.docx
- PLC控制中央空调节能改造方案设计书1.doc
- 互联网+会计时代-高职《管理会计》课程改革探究.docx
- 基于SNAP网络的实验室监控系统研究设计.doc
- 嵌入式系统程序可移植性设计方案及性能优化.doc
- 单片机电子台历设计方案.docx
- 2017年广西公需科目-“互联网+”开放合作考试及标准答案2(90分).docx
- 抢答器PLC控制系统设计-河南工业大学.doc
- 培训师大计算机采集处理系统.pptx
- 大数据在健康医疗行业中应用概况.pptx
- 慧锦校园网络布线系统措施设计方案.doc
- 机械产品和零件的计算机辅助设计.docx
- 《数据库课程设计方案》实验任务书学时.doc
- 项目管理中如何建立高绩效的研发项目团队.docx
- 基于51单片机的多路温度采集控制系统方案设计书.doc


