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

admin2016-03-25  28

问题 阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。
[说明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||(1))return 0;/*小于2的数或大于2的偶数不是素数*/
t=(int)sqrt(n)+1;
for(k=3;k<t;k+=2)
if((2))return 0;
return 1;
}
[说明2]
函数mt minOne(int arr[],int k)的功能是用递归方法求指定数组中前k个元素中的最小者,并作为函数值返回。
[C函数]
int minOne(int arr[],int k)
{
int t;
assert(k>0);
if(k==1)
return(3);
t=min one(arr+1,(4);
if(arr[0]<t)
return arr[0];
return(5);
}
(5)

选项

答案t

解析 本题考查C程序的基本语法和运算逻辑。
首先应认真分析题目中的说明,然后确定代码结构和各变量的作用。
函数isPrime(int n)的功能是判断n是否为素数。根据素数的定义,小于2的数和大于2的偶数都不是素数,n是偶数可表示为“n%2等于0”,因此空(1)处应填入“n%2==0”,或者“!(n%2)”。
在n是大于2的奇数的情况下,下面的代码从3开始查找n的因子,直到n的平方根为止。
for(k=3;k<t;k+=2)
if((2))return 0;
若k的值是n的因子,则说明n不是素数。因此,空(2)处应填入“n%k==0”,或者“!(n%k)”。
函数int minOne(int arr[],int k)的功能是用递归方法求指定数组中前k个元素中的最小者,显然,k为1时,这一个元素就是最小者。因此,空(3)处应填入“arr[0]”或其等价形式。
空(4)所在的语句是通过递归方式找出arr[1]~arr[k-1]中的最小者,第一个实参指出从arr[1]开始,第二个参数为元素个数,为k-1个,因此空(4)应填入“k-1”。
接下来的处理就很明确了,当t表示arr[1]~arr[k-1]中的最小者,其与arr[0]比较后就可以得到arr[0]~arr[k-1]中的最小者,因此空(5)处应填入“t”。
转载请注明原文地址:https://kaotiyun.com/show/U9jZ777K
0

相关试题推荐
最新回复(0)