niusouti.com

请补充函数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;}

题目

请补充函数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);

}


相似考题
更多“请补充函数fun(),该函数的功能求能整除x且是偶数的数,把这些数保存在数组bb中,并按从大到小的顺 ”相关问题
  • 第1题:

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

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

    1,5,25。

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

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

    试题程序:


    正确答案:


    【解析】按照题目中要求求出能整除x且不是偶数的各整数,可以通过判断小于整数x的所有整数能否整除x。将能整除x的所有奇数放入数组pp中。最后将符和条件的整数个数通过形参返回到主函数当中。

  • 第2题:

    已知IN2.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数 jsVal(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数 writeDat() 把结果cnt及数组b中符合条件的4位数输出到 OUT2.DAT文件中。

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

    程序中已定义数组:a[200],b[200],已定义变量:cnt。

    请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。


    #include
    #define MAX 200
    int a[MAX], b[MAX], cnt = 0 ;
    void writeDat();
    void jsVal()
    {
    int i,j; /*定义循环控制变量*/
    int temp; /*定义数据交换是的暂存变量*/
    for(i=0;i
    if(a[i]%2!=0) /*如果当前数是奇数*/
    for(j=i+1;j<=i+5;j++) /*取该数后面的5个数进行比较*/
    {
    if(a[i]
    break; /*如果当前数不满足比后面5个数都大的条件,则跳出循环*/
    else if(j==i+5) /*如果当前数比后面的5个数都大*/
    {
    b[cnt]=a[i]; /*将满足条件的数存入数组b中*/
    cnt++; /*并统计满足条件的数的个数*/
    }
    }
    for(i=0;i
    for(j=i+1;j
    if(b[i]>b[j])
    {
    temp=b[i];
    b[i]=b[j];
    b[j]=temp;
    }
    }
    void readDat()
    {
    int i ;
    FILE *fp;
    fp = fopen("IN2.DAT", "r") ;
    for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
    fclose(fp) ;
    }
    void main()
    {
    int i ;
    readDat() ;
    jsVal() ;
    printf("满足条件的数=%d\n", cnt) ;
    for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;
    printf("\n") ;
    writeDat() ;
    }
    void writeDat()
    {
    FILE *fp;
    int i ;
    fp = fopen("OUT2.DAT", "w") ;
    fprintf(fp, "%d\n", cnt) ;
    for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d\n", b[i]) ;
    fclose(fp) ;
    }

  • 第3题:

    求能整除k且是偶数的数,把这些数保存在数组中,并按从大到小输出。 #include <stdio.h> int main() { int i, j=0, k, a[100]; scanf("%d", &k); for(; i<=k; i++) if(k%i==0 i%2==0) a[j++]=i; printf("nn"); for(i= ; i>=0; i--) printf("%d ", a[i]); return 0; }


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

  • 第4题:

    请编写函数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中元素的个数返回到主函数中。

  • 第5题:

    已知数据文件IN37.DAT中存有200个4位数,并已调用读函数readDat( )把这些数存入数组a中,请编制一函数jsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数(该4位数以前不满5个数,则不统计),则统计出满足此条件的数个数cnt并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到文件OUT37.DAT中。

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

    程序中已定义数组:a[200],b[200],已定义变量:cnt。

    请勿改动主函数main( )、读函数readDat()和写函数writeDat( )的内容。


    答案:
    #include
    #define MAX 200
    int a[MAX],b[MAX],cnt=0;
    void writeDat();
    void jsVal()
    {
    int i,j; /*定义循环控制变量*/
    int temp; /*定义数据交换是的暂存变量*/
    for(i=5;i
    if(a[i]%2==0) /*如果当前数是偶数*/
    for(j=i-5;j<=i-1;j++) /*取该数前面的5个数进行比较*/
    {
    if(a[i]
    break; /*如果当前数不满足比前面5个数都大的条件,则跳出循环*/
    else if(j==i-1) /*如果当前数比前面的5个数都大*/
    {
    b[cnt]=a[i]; /*将满足条件的数存入数组b中*/
    cnt++; /*并统计满足条件的数的个数*/
    }
    }
    for(i=0;i
    for(j=i+1;j
    if(b[i]
    {
    temp=b[i];
    b[i]=b[j];
    b[j]=temp;
    }
    }
    void readDat()
    {
    int i;
    FILE *fp;
    fp=fopen("in37.dat","r");
    for(i=0;i
    fscanf(fp,"%d",&a[i]);
    fclose(fp);
    }
    void main()
    {
    int i;
    readDat();
    jsVal();
    printf("满足条件的数=%d\n",cnt);
    for(i=0;i
    printf("%d ",b[i]);
    printf("\n");
    writeDat();
    }
    void writeDat()
    {
    FILE *fp;
    int i;
    fp=fopen("out37.dat","w");
    fprintf(fp,"%d\n",cnt);
    for(i=0;i
    fprintf(fp,"%d\n",b[i]);
    fclose(fp);
    }