itgle.com

程序test.c的功能是:在三位整数(100至999)中寻找符合下面条件的整数,并依次从小到大存入数组b[]中。条件如下:某数既是完全平方数,又有两位数字相同,例如144、676等。 请考生编制函数intjsValue(int bb[])实现此功能,满足该条件的整数的个数通过所编制的函数返回。 最后调用函数writeDat把结果输出到文件out.dat中。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main和写函数writeDat的内容。

题目

程序test.c的功能是:在三位整数(100至999)中寻找符合下面条件的整数,并依次从小到大存入数组b[]中。条件如下:某数既是完全平方数,又有两位数字相同,例如144、676等。 请考生编制函数intjsValue(int bb[])实现此功能,满足该条件的整数的个数通过所编制的函数返回。 最后调用函数writeDat把结果输出到文件out.dat中。 注意:部分源程序存放在test.c文件中。 请勿改动主函数main和写函数writeDat的内容。


相似考题
更多“ 程序test.c的功能是:在三位整数(100至999)中寻找符合下面条件的整数,并依次从小到大存入数组b[]中。条件如下:某数既是完全平方数,又有两位数字相同,例如144、676等。 请考生编制函数intjsVa”相关问题
  • 第1题:

    阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。

    【说明】

    函数fun1 (int bb[])的功能是:在3位整数(100~999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,两位数字又相同,例如144、676等。

    【函数2.11】

    fun1 (int bb[])

    {

    int i, j, k=0, g, s, b;

    for (i=100; i<=999; i++)

    {

    g=i%10;

    (1)

    b=i/100;

    if ((i== (int) sqrt (i) * (int) sqrt (i)) && (g==s‖s==b‖b==g))

    (2)

    }

    return k;

    }

    【函数2.2说明】

    函数void fun2()的功能是:数组a中有300个四位数,求出数组a千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数CNT,再把所有满足此条件的四位数依次存入数组bb中,然后对数组bb的四位数按小到大的顺序进行排序。例如:9123,9-1-2-3>0,则该数满足条件存入数组bb中,且个数CNT=CNT+1,9812,9-8-1-2<0,则该数不满足条件,忽略。

    【函数2.2】

    void fun2 ( )

    {

    int q,b,s,g,i,j;

    for (i=0;i<300;i++)

    {q=a[i]/1000;

    b=a[i]/100%10;

    s=a[i]/10%10;

    g=a[i]%10;

    if (q-b-s-g>0)

    (3)

    }

    for ( i=0;i<cnt-1;i++ )

    for ( j=i+1;j<cnt;j++ )

    if ( bb[i]>bb[j] )

    { (4)

    bb[i]=bb[j];

    (5)

    }

    }


    正确答案:(1)s=i/10%10; (2) bb[k++]=i; (3) bb[cnt++]=a[i]; (4) q=bb[i]; (5) bb[j]=q;
    (1)s=i/10%10; (2) bb[k++]=i; (3) bb[cnt++]=a[i]; (4) q=bb[i]; (5) bb[j]=q;

  • 第2题:

    已知数据文件IN1.DAT和IN2.DAT中分别存有100个两位十进制数,并且已调用读函数readDat把这两个文件中的数存入数组a和b中,请考生编制一个函数jsVal,实现的功能是依次对数组a和b中的数按条件重新组成一个新数并依次存入数组C中,再对数组C中的数按从小大的顺序进行排序,最后调用输出函数writeDat把结果C输出到文件out.dat中。组成新数的条件:如果数组a和b中相同下标位置的数必须符合一个是偶数,另一个是奇数,则数组a中的数按二进制数左移八位后再加上数组b对应位置上的数,把这样组成的新数依次存入数组C中。


    正确答案:
    【审题关键句】数组相同下标位置上的奇数和偶数,二进制数左移八位,对应数组元素相加,保存到新数组,从小到大排序。
    【解题思路】
    ①定义循环变量i、i和无符号整型变量v。
    ②在for循环语句中,循环变量i从0开始,依次递增直到其值等于MAX。在循环体中,用if语句判断如果a[i]是奇数且b[i]是偶数或者a[i]是偶数且b[i]是奇数,则把a[i]左移八位后与b[i]的和赋给c[cnt],同时cnt加1。
    ③在第一层for循环语句中,循环变量i从0开始,依次递增直到其值等于或大于cnt。在第二层for循环语句中,循环变量j从i十1开始,依次递增直到其值等于或大于cnt。在循环体中,用if,吾句判断如果c[i]大于c[j],则两者互换,实现数组C中元素从小到大的排序。
    【参考答案】

  • 第3题:

    已知数据文件in.dat中存有300个四位数,并已调用读函数readDat把这些数存入数组a中,请编制一函数isValue,其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。最后main函数调用写函数writeDat把数组b中的数输出到out.dat文件中。 例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件忽略。 注意:部分源程序存在test.C文件中。 程序中已定义数组:a[300],b[300],已定义变量:cnt请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。


    正确答案:
    【审题关键句】求素数的个数,存入数组,按从小到大的顺序排序。
    【解题思路】
    ①首先定义两个循环变量循环i、j和一个用于数据交换的整型变量tmp。
    ②通过for循环依次读取数组中的300个数,其中,循环变量i从0开始每次加1,直到i<300停止循环;在每次循环中判断a[i]是否是素数,如果是素数,则把a[i]的值赋给数组b[cnt],同时数组下标变量cnt值加1。
    ③在退出循环后,用两个for循环对数组b[]中元素进行两两比较,实现数组元素从小到大的排序,比较过程中通过整型变量tmp实现两个数的交换。
    【参考答案】

  • 第4题:

    已知数据文件in.dat中存有300个四位数,并已调用读函数readDat把这些数存入数组a中,请编制一函数jsValue,其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。最后maini函数调用写函数writeDat把数组b中的数输出到0ut.dat文件中。 例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件忽略。 注意:部分源程序存在test.C文件中。 程序中已定义数组:a[300],b[300],已定义变量:cnt


    正确答案:
    【审题关键句】求素数的个数,存入数组,按从小到大的顺序排序。
    【解题思路】
    ①首先定义两个循环变量循环i、j和一个用于数据交换的整型变量tmp。
    ②通过for循环依次读取数组中的300个数,其中,循环变量i从0开始每次加1,直到i<300停止循环;在每次循环中判断a[i]是否是素数,如果是素数,则把a[i]的值赋给数组b[cnt],同时数组下标变量cnt值加1。
    ③在退出循环后,用两个for循环对数组b[]中元素进行两两比较,实现数组元素从小到大的排序,比较过程中通过整型变量tmp实现两个数的交换。
    【参考答案】

  • 第5题:

    已知数据文件in.dat中存有200个四位数,并已调用读函数readDat0把这些数存入数组a中,请考生编制一函数jsVal,其功能是:依次从数组a中取出一个四位数,如果该四位数大于该四位数以后的连续五个数且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数 writeDat把结果cnt以及数组b中符合条件的四位数输出到0ut.dat文件中。 注意:部分源程序存在test.C文件中。 程序中已定义数组:a[200],b[200],已定义变量:cnt 请勿改动数据文件in.dat中的任何数据、主函数main、读函数readDat和写函数writeDat的内容。


    正确答案:
    【审题关键句】大于后连续5个数,奇数,从小到大排序。
    【解题思路】本题类似第35套试题,通过审题可以发现主要有两个不同点:①判断数值为奇数,可通过a[i]%2进行判断,参考答案的第4条语句;②要求进行比较的元素大于后连续5个数,因此在设置判断条件时,作为比较的两个数之间应该是大于关系,参考答案的第4条语句。
    【参考答案】