编程题:
2.请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun(int *a,int *n)
{
}
main()
{
int aa[1000],n,k;
clrscr();
fun(aa,&n);
for(k=0;k
if((k+1)%10==0)
printf(“\n”);
else printf(“%5d,”,aa[k]);
}
3.请编写函数void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
void fun(int x, int pp[], int *n)
{
}
main()
{
int x, aa[1000], n, i;
clrscr();
printf(“\nPlease enter an integer number:\n”);
scanf(“%d”,&x);
fun(x,aa,&n);
for(i=0;i
printf(“%d “, aa[i]);
printf(“\n”);
}
改错题:
59.下列给定程序中,函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入THIs is a boot,则输出应该是1、0、2、2、0。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
/********found********/
fun ( char *s, int num[5] )
{
int k, i=5;
/********found********/
for ( k = 0; k
num[i]=0;
for (; *s; s++)
{
i=-1;
/********found********/
switch ( s )
{
case ‘a’:
case ‘A’:
{
i=0;
break;
}
case ‘e’:
case ‘E’:
{
i=1;
break;
}
case ‘i’:
case ‘I’:
{
i=2;
break;
}
case ‘o’:
case ‘O’:
{
i=3;
break;
}
case ‘u’:
case ‘U’:
{
i=4;
break;
}
}
if (i >=0)
num[i]++;
}
}
main( )
{
char s1[81];
int num1[5], i;
clrscr();
printf(“\nPlease enter a string: ” );
gets( s1 );
fun ( s1,num1 );
for ( i=0; i < 5; i++ )
printf (“%d”,num1[i]);
printf(“\n”);
}
60.下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
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)) ;
}