niusouti.com

下列给定程序中,函数fun()的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:include <conio.h>include <stdio.h>int fun( int m){ int i,k;for (i=m+1; ;i++){ for (k=2;k<i;k++)/*************found**************/if (i%k!=0)break;/*

题目

下列给定程序中,函数fun()的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

试题程序:

include <conio.h>

include <stdio.h>

int fun( int m)

{ int i,k;

for (i=m+1; ;i++)

{ for (k=2;k<i;k++)

/*************found**************/

if (i%k!=0)

break;

/*************found**************/

if (k<i)

return(i);

}

}

main()

{ int n;

clrscr ();

printf("\nPlease enter n: ");

scanf ("%d", &n);

printf ("%d\n",fun(n));

}


相似考题
参考答案和解析
正确答案:(1)错误: if(i%k!=0) 正确: if(i%k=0) (2)错误: if(ki) 正确: if(k>=i)
(1)错误: if(i%k!=0) 正确: if(i%k=0) (2)错误: if(ki) 正确: if(k>=i) 解析:也许刚接触C语言的学习者对素数的概念不清楚,在这里说明一下,素数就是质数,本题的任务是随便输入一个整数m,然后在m的后面寻找紧跟m的一个质数,作为函数值返回。
for (i=m+1; ;i++){
是从m后面的一位开始循环,将m后面一位的值赋予i。然后;我们依次判断m后面的一位是否为素数。
for (k=2;ki;k++)
if (i%k==0)
是一个简单的数学判断问题,判断i被赋予的值与k的余数是否为零。
更多“下列给定程序中,函数fun()的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。 请改 ”相关问题
  • 第1题:

    给定程序MODll.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。

    请改正函数fun中指定部位的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)if(t==0) (2)*zero=count;
    (1)if(t==0) (2)*zero=count; 解析:本题中函数的功能是统计一个无符号整数中各位数字值为0的个数。对无符号数进行截取,然后对每个数字进行判断并统计。

  • 第2题:

    下列给定程序中,函数proc()的功能是:对M名学生的学习成绩,按从低到高的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

    请修改程序中的错误,使它能得到正确结果。

    注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

    试题程序:


    正确答案:

    (1)错误:*t=calloe(m,sizeof(STU));
    正确:(structss*)calloc(m,sizeof(STU));
    (2)错误:for(i=j=0;i<M;j++)
    正确:for(i=j=0;i<M;i++)
    (3)错误:t[k].s=b[j].s;
    正确:t[k]=b[j];
    【解析】由函数proc()可知,变量t是指向动态存储空间的变量,因此不能间接访问运算符,而函数calloc的返回值类型为void*,要进行显式类型转换,因此“*t=calloc(m,si-zeof(STU));”应改为“(structss*)calloc(m,sizeof(STU));”。
    由程序可知,变量i为控制学生个数的变量,因此“for(i=j=


  • 第3题:

    试编写程序,完成以下功能: 1、定义一个函数:判断给定的一个整数是否是素数,是素数返回True,不是素数返回False 2、输出用户指定范围内的所有素数。具体输入输出格式见样例。


    A

  • 第4题:

    给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

    请改正函数fun中指定部位的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


    正确答案:(1)t=(STU*)calloc(sizeof(sTu)m); (2)t[k]=b[j];
    (1)t=(STU*)calloc(sizeof(sTu),m); (2)t[k]=b[j]; 解析:本题中函数的功能是按学习成绩从高到低的顺序找出前m(m≤10)名学生。利用循环结构实现对定义的结构体中的成绩域进行排序。

  • 第5题:

    下列给定程序中,函数proc()的功能是:判断一个整数m是否是素数,若是返回1,否则返回0。在main()函数中,若proc()返回1,则输出″YES″;若proc()返回0,则输出″NO″!

    请修改程序中的错误,使它能得出正确的结果。

    注意:不要改动main)函数,不得增行或删行,也不得,t更改程序的结构。

    试题程序:


    正确答案:

    (1)错误:k++
    正确:k++;
    (2)错误:if(m=k)
    正确:if(m==k)
    【解析】根据C语言的语法规则,每一条语句都要以分号结束,因此,要在语句“k++”之后加上分号。判断变量m与变量k是否相等应该用符号“==”,符号“=”为赋值符号,因此,“if(m=k)”应改为“if(m==k)”。