编程题目:素数存储与偶数四位数筛选

需积分: 9 2 下载量 11 浏览量 更新于2024-11-14 收藏 146KB DOC 举报
"该资源包含了两道编程题目,分别涉及素数查找和特定条件的四位数筛选。第一题要求编写一个函数找到大于指定整数m的连续k个素数,并存储到数组中,同时提供了一个已有的数据输出函数。第二题要求统计IN.DAT文件中200个四位数中,所有位上数字只包含0、2、4、6、8的个数,并按降序排列后存入另一个数组,最后输出结果到OUT.DAT文件。" 在这两个编程题目中,我们可以提取出以下几个关键知识点: 1. **素数判断**:在第一个问题中,函数`num`负责找到大于整数m的k个素数。素数是指大于1且除了1和它本身以外没有其他正因数的自然数。题目中采用了一种简单的素数检查方法,即对于每个数`data`,检查从2到`data/2`之间是否存在因子。如果不存在,那么`data`就是素数。当找到n个素数时,函数停止。 2. **循环与条件语句**:`while`循环用于不断迭代寻找素数,`if`语句用于检查当前数是否为素数,`break`语句用于跳出内层循环,表示找到因子,不是素数。此外,还用到了`for`循环来遍历数组元素。 3. **文件操作**:虽然题目没有提供具体实现,但提到调用了`readwriteDAT()`函数来处理输入输出文件。在实际编程中,这可能涉及到文件的打开、读取、写入和关闭等操作,通常使用C语言的`fopen`, `fread`, `fwrite`, `fclose`等函数。 4. **数组操作**:题目中的数组`xx`用于存储找到的素数,`bb`数组用于存储四位数的每一位,`a`和`b`数组分别用于存储原始数据和满足条件的数据。 5. **计数器与索引**:变量`n`作为计数器,记录找到的素数数量,`cnt`统计满足条件的四位数个数。 6. **条件判断**:在第二个问题中,`jsVal`函数通过`for`循环遍历数组`a`,然后用`if`语句检查每个四位数的每一位是否只包含0、2、4、6、8,如果满足条件则设置标志变量`flag`为1,否则为0。之后,利用`flag`的值来决定是否将这个数添加到结果数组`b`中。 7. **排序**:为了将满足条件的四位数按降序排列,使用了嵌套的`for`循环进行冒泡排序。外层循环遍历数组`b`的前`cnt-1`个元素,内层循环用于比较相邻元素并进行交换,确保较大的数始终位于较小的数之前。 8. **函数接口**:题目要求不修改主函数`main()`、读函数`readDat()`和写函数`writeDat()`的内容,这意味着这些函数已经被定义好,程序员只需关注核心算法的实现,即`num`和`jsVal`函数。 这些知识点涵盖了基础的算法设计、数据结构(数组)、条件判断、循环控制、文件操作以及函数接口设计等编程基本概念,是计算机科学和软件开发中的基础技能。