请编写函数void proc(int X,int pp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若X中的值为50,则有3个数符合要求,它们是1,5,25。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:

题目

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

例如,若X中的值为50,则有3个数符合要求,它们是

1,5,25。

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

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

试题程序:


相似考题
更多“请编写函数voidproc(intX,intpp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到 ”相关问题
  • 第1题:

    请补充函数fun(),该函数的功能求能整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺序输出。

    例如当x=20时,依次输出:20 10 4 2。

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

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include<conio.h>

    include<stdio.h>

    void fun(int k,int bb[ ])

    {

    int i;

    int j=0;

    for(【l】;i<=k;i++)

    {

    if(【 】)

    bb[i++]=i;

    }

    printf("\n\n");

    for(i=【 】;i>=0;i--)

    printf(“%d”,bb[i]);

    }

    main( )

    {

    int k=1;

    int bb[100];

    clrscr( );

    printf(“\nPlease input X=”);

    scanf(“%d”,&k);

    fun(k,bb);

    }


    正确答案:i=l k%i==0&&i%2==0 -j
    i=l k%i==0&&i%2==0 -j 解析:第一空:为了求出能整除k,且是偶数的数,寻找范围是从1到k。第二空:如果i能整除k,则k对i求余为0,如果i为偶数,则i对2求余为0,由于这两个条件要同时满足,所以要使用“与”运算符“&&”。第三空:由于数组bb[]中的数是按从小到大的顺序排列的,而题目要求按从大到小输出,所以从数组的最后一个元素开始,依次输出。因为在for循环中,变量j多加了一次,所以这里要将j减1,得到数组最后一个元素的下标。

  • 第2题:

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

    例如,若x中的值为24,则有6个数符合要求,它们是2, 4, 6, 8, 12, 24。

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

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

    试题程序:

    include<conio.h>

    include<stdio.h>

    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<n;i++)

    printf("%d",aa[i]);

    printf("\n");

    }


    正确答案:void fun (int x int pp[] int *n) { int i j=0 for(i=2;i=x;i=i+2) /*i的初始值为2步长为2确保i为偶数*/ if(x%i==0) /*将能整除x的数存入数细pp中*/ pp[j++]=i *n=j /*传回满足条件的数的个数*/ }
    void fun (int x, int pp[], int *n) { int i, j=0 for(i=2;i=x;i=i+2) /*i的初始值为2,步长为2,确保i为偶数*/ if(x%i==0) /*将能整除x的数存入数细pp中*/ pp[j++]=i *n=j /*传回满足条件的数的个数*/ } 解析:本题题干信息是;能整除x且不是奇数的所有整数。循环语句中i从2开始且每次增2,所以i始终是偶数。

  • 第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题:

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

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

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

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

    试题程序:

    include <conio.h>

    include <stdio.h>

    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<n ; i++)

    printf ("%d ", aa [i]);

    printf ("\n ") ;

    }


    正确答案:void fun (int x int pp[] int *n) { int ij=0; for(i=1;ix;i=i+2) /*i的初始值为1步长为2确保i为奇数*/ if(x%i==0) /*将能整除x的数存入数组pp中*/ pp[j++]=i; *n=j; /*传回满足条件的数的个数*/ }
    void fun (int x, int pp[], int *n) { int i,j=0; for(i=1;ix;i=i+2) /*i的初始值为1,步长为2,确保i为奇数*/ if(x%i==0) /*将能整除x的数存入数组pp中*/ pp[j++]=i; *n=j; /*传回满足条件的数的个数*/ } 解析:本题题干信息是:能整除x且不是偶数的所有整数。循环语句中i从1开始且每次增2,所以i始终是奇数。

  • 第5题:

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

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

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

    试题程序:

    include <conio.h>

    include <stdio.h>

    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("%5d",aa[k]);

    printf("\n");} /*一行写9个数*/

    else

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

    }


    正确答案:void fun(int *a int *n) { int ij=0; for(i=1;i=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并放入数组a中*/ if((i%7==0||i%11==0)&&i%77!=0) a[j++]=i; *n=j; /*传回满足条件的数的个数*/ }
    void fun(int *a, int *n) { int i,j=0; for(i=1;i=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/ if((i%7==0||i%11==0)&&i%77!=0) a[j++]=i; *n=j; /*传回满足条件的数的个数*/ } 解析:注意本题题目应是找出能被7或11整除但不能同时被7和11整除的所有整数。能同时被7和11整除的整数一定能被77整除,且不能被77整除的数不一定就是能被7或11整除的数。所以可得出程序中的if()。按运算优先级可知 (i%7==0||i%11==0),注意,两边必须要有小括号。