刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读以下说明和C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明1]
函数isPrime(int n)的功能是判断n是否为素数。若是,则返回1,否则返回0。素数是只能被1和自己整除的正整数。例如,最小的5个素数是2,3,5,7,11。

[C函数]

    int isPrime(int n)

    {

    int k,  t;

    if  (n==2)
 return 1;

    if(n<2 || ______)return 0;  /*小于2的数或大于2的偶数不是素数//

    t=(int)Sqrt(n)+1;

    for(k=3; k<t; k+=2)

    if(______)
 return 0;

    return 1;

    }
[说明2]
函数int minOne(int art[],int k)的功能是用递归方法求指定数组中前k个元素中的最小者,并作为函数值返回。
[C函数]
int minOne(int arr[],int k)
{
int t;
assert(k>0);
if(k==1)
return ______;
t=minOne(arr+1,______);
if(arr[0]<t)
return amr[0];
return ______;
}

使用微信搜索喵呜刷题,轻松应对考试!

答案:

n%2==0,或!(n%2),或其等价形式
n%k==0,或!(n%k),或其等价形式
arr[0],或*arr,或其等价形式
k-1,或其等价形式
t

解析:

对于isPrime函数:

  • 判断一个数是否为素数,首先需要排除小于2的数以及大于2的偶数,因为偶数除了2以外都不是素数。因此,第一个空缺处是为了排除大于2的偶数,可以使用 n % 2 == 0!(n % 2) 来判断n是否为偶数。
  • 对于大于2的奇数,我们需要检查它是否可被其他数整除。因此,第二个空缺处是为了检查n是否可被k整除,可以使用 n % k == 0!(n % k) 进行判断。这里的k是循环变量,从3开始递增到sqrt(n)。如果在这段范围内找到了一个因子,那么n就不是素数。

对于minOne函数:

  • 使用递归方法求指定数组中前k个元素中的最小者。当k为1时,只有一个元素,这个元素就是最小的,所以空缺3处应填入 arr[0]*arr 或其等价形式。
  • 在递归调用中,我们需要找的是数组中下一个元素到第k个元素中的最小值,所以第二个参数应该是k-1,表示元素个数为k-1个。因此空缺4处应填入 k-1 或其等价形式。
  • 最后,将递归返回的结果t与当前数组的第一个元素arr[0]比较,得到最小的值,所以空缺5处应填入 t
创作类型:
原创

本文链接:阅读以下说明和C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明1]函数isPrime(i

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share