编程题:
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)) ; }