请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。注意:部分源程序已给出。请勿改动主函数main()和写函数writeDAT()的内容。试题程序:include<conio.h>include<stdio.h>void countValue(int *a, int *n){}main ( ){int aa[1000],n, k;clrscr();countVa

题目

请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。

注意:部分源程序已给出。

请勿改动主函数main()和写函数writeDAT()的内容。

试题程序:

include<conio.h>

include<stdio.h>

void countValue(int *a, int *n)

{

}

main ( )

{

int aa[1000],n, k;

clrscr();

countValue (aa, &n);

for(k=0;k<n; k++)

if((k+1) %10 ==0)

{

printf("%5d",aa[k]);

printf("\n");

}

else printf("%5d",aa[k]);

writeDAT();

}

writeDAT ( )

{

int aa[1000],n, k;

FILE *fp;

fp=fopen("out79.dat","w");

countValue(aa,&n);

for(k=0; k<n; k++)

if((k+1)%10==0)

{

fprintf(fp,"%5d",aa[k]);

fprintf(fp,"\n");

}

else fprintf (fp,"%5d",aa[k]);

fclose(fp);

}


相似考题
更多“请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时 ”相关问题
  • 第1题:

    请编写实现void * malloc(int)内存分配函数功能一样的代码。


    正确答案:
               

  • 第2题:

    请编写一个函数fun(),它的功能是:求出1到m(含m)之内能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。

    例如,若传给m的值为50,则程序输出:

    7 11 14 21 X 28 33 35 42 44 49

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

    试题程序:

    include<conio.h>

    include<stdio.h>

    define M 100

    void fun(int m, int *a, int *n)

    {

    }

    main()

    {

    int aa[M],n,k;

    clrscr();

    fun(50,aa,&n);

    for(k=0;k<n; k++)

    if((k+1)%20==0) /*每行输出20个数*/

    {printf("%4d",aa[k]);

    printf("\n");

    }

    else

    printf("%4d",aa[k]);

    printf("\n");

    }


    正确答案:void fun(int mint *aint *n) { int ij=0; for(i=1;i=m;i++) if(i%7==0||i%11==0) /*求出1到m(含m)之内能被7或11整除的所有整数放在数组a中*/ a[j++]=i; *n=j; /*返回这些数的个数*/ }
    void fun(int m,int *a,int *n) { int i,j=0; for(i=1;i=m;i++) if(i%7==0||i%11==0) /*求出1到m(含m)之内能被7或11整除的所有整数放在数组a中*/ a[j++]=i; *n=j; /*返回这些数的个数*/ } 解析:本题要找出能被7或11整除的所有整数,注意数学中的“或”和C语言中的“或”的区别,但在此处,if条件语句中用了“||”运算符,若要找能同时被7和11整除的所有整数则在if()中应用“&&”运算符。

  • 第3题:

    请编写函数void proc(int x,int pp[],int*n),它的功能是:求出能整除x且不是偶数、不为1的各整数,并按从大到小的顺序放在PP所指的数组中,这些除数的个数通过形参n返回。

    例如,若x的值为30,则有3个数符合要求,它们是15,5,3。

    注意:部分源程序给出如下。

    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。

    试题程序:


    正确答案:


    【解析】按照题目中要求,求出能整除x且不是偶数的各整数。首先判断小于等于整数x的所有奇数是否能被x整除,将能被x整除的奇数放入数组pp中。最后将数组pp中元素的个数返回到主函数中。

  • 第4题:

    请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件OUT11.DAT中。

    例如,若n为1000时,函数值应为s=153.909064。

    注意:部分源程序已给出。

    请勿改动主函数main()和输入输出函数progReadWrite()的内容。

    试题程序:

    include<conio.h>

    include<math.h>

    include<stdio.h>

    double countValue(int n)

    {

    }

    main ( )

    {

    clrscr();

    printf ("自然数之和的平方根=%f\n", countValue(lO00)) ;

    pregReadWrite();

    }

    pregReadWrite()

    {

    FILE *wf;

    int i, n;

    float s;

    wf = fepen("OUT11.DAT", "w");

    s = ceuntValue(1000);

    fprintf(wf, "%f\n", s);

    fclese(wf);

    }


    正确答案:double countValue(int n) { double xy=0.0; int i; for(i=1;in;i++) if(i%3==0 && i%7==0) xy+=i; /*求n以内(不包括n)同时能被3与7整除的所有自然数之和*/ xy=sqrt((double)xy); /*再对总和求平方根*/ return xy; }
    double countValue(int n) { double xy=0.0; int i; for(i=1;in;i++) if(i%3==0 && i%7==0) xy+=i; /*求n以内(不包括n)同时能被3与7整除的所有自然数之和*/ xy=sqrt((double)xy); /*再对总和求平方根*/ return xy; } 解析:本题的解题思路是:利用一个for循环依次从n个自然数当中取数,对当前取出的数进行条件判断。判断条件为:既能被3整除同时也能被7整除,因此,用“&&”运算符来连接两个条件表达式,当某数满足判断条件时,就把该数累加到变量xy中(xy的初始值为0.0),当所有满足条件的数都被找完后,对累加求得的变量xy的值进行求平方根的计算,并把所求得的结果作为函数值返回。

  • 第5题:

    请编写函数count Value(intn),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s, s作为函数返回值,最后结果S输出到文件out.dat中。 例如若n为1000时,函数值应为:s=153.909 064。


    正确答案:
    【审题关键句】同时被3和7整除的自然数和的平方根。
    【解题思路】
    ①定义循环整型变量i和双精度型变量sum,并将sum值设置为0.0。
    ②采用for循环语句,循环变量i从7开始依次递增直到其值等于或大于n,在循环体中,如果i除以3和7的得的余数同时为0,则说明这个数能同时被3和7整除,这时把这个数的值乘以1.0转化成实型数据,累加到变量sum上。
    ③退出循环后,调用求平方根的函数sqrt(sum),求得这些数的和的平方根赋给变量sum,把sum的值返回。
    【参考答案】