下列给定程序中,函数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题:
给定程序MODll.C中函数fun的功能是:统计一个无符号整数中各位数字值为零的个数,通过形参传回主函数;并把该整数中各位上最大的数字值作为函数值返回。例如,若输入无符号整数30800,则数字值为零的个数为3,各位上数字值最大的是8。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
第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、输出用户指定范围内的所有素数。具体输入输出格式见样例。
第4题:
给定程序MODll.C中函数fun的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
第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)”。