c语言编程题作弊技巧,全国计算机二级C语言上机编程题详细分析(3)

全国计算机二级C语言上机编程题详细分析(3)

分类:计算机等级

|

更新时间:2016-07-08|

来源:转载

请编写一个函数void fun(char m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入17和5,则应输出:19,23,29,31,37。

注意:部分源程序存在PROG1.C中,请勿改动主函数和其他函数中的内容,仅在函数fun的指定的部位填入你编写的若干语句。

试题源程序如下:

#include <stdio.h>

void fun(int m, int k, int xx[])

{

}

main()

{ int m, n, zz[100];

printf("\nPlease enter two integers(m & n): ");

scanf("%d%d",&m,&n);

fun(m, n, zz);

for(m=0; m<n; m++) printf("%d ",zz[m]);

printf("\n\n");

分析:

(1)本题的基本算法是求素数。假设有整数i,若i不能被2到i之间的任意一个数除尽,则i就是素数;若一旦能被某个数除尽就不是素数。

(2)以下是求i是否为素数的基本算法:变量ok用作i是素数的标志,ok为1,则i是素数。

ok=1;

for(p=2; p<i/2; p++)

if( i%p==0){ ok=0; break; }

if(ok)……

(3)本题要求把大于m的k个素数存入xx所指的数组中。所以,i的值应大于m;取大于m的值逐一进行判断,若是素数就放入xx所指数组中。把以上语句放入一个循环中:

for( i=m+1,j=0; ? ; i++ )

{ ok=1;

for(p=2; p<=i/2; p++)

if( i%p==0 ){ ok=0; break; }

if (ok) { xx[j]=i;j++; }

}

此处,变量i统计存入数组中元素的个数,同时作为下标。

(4)按本题的要求,外循环结束的条件应当是:j<k(j的值从0到k-1)。只要求得了k个素数,就可退出循环。因此在?处应填入j<k。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值