就业数据资源平台
当前位置:首页 > 网络技术
2013年计算机等级考试三级网络技术试题11

已知数据文件IN1.DAT和IN2.DAT中分别存有100个两位十进制数,并且已调用读函数readDat()把这两个文件中的数存入数组a和b中,请考生编制一个函数jsVal(),实现的功能是依次对数组a和b中的数按条件重新组成一个新数并依次存入数组c中,再对数组c中的数按从小到大的顺序进行排序,最后调用输出函数writeDat()把结果c输出到文件OUT.DAT中。


组成新数的条件:如果数组a和b中相同下标位置的数必须符合一个是偶数,另一个是奇数,则数组a中的数按二进制数左移八位后再加上数组b对应位置上的数,把这样组成的新数依次存入数组c中。


       例如:a:12 33 24 15 21


            b:32 35 17 15 18


            c:6161 5394


    排序后c:5394 6161


注意:部分源程序存在文件PROG1.C文件中。程序中已定义:a[100]、b[100]和c[100]。请勿改动数据文件IN1.DAT和IN2.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。


【试题程序】


#include <stdio.h>


#define MAX 100


unsigned int a[MAX], b[MAX], c[MAX];


int cnt =0; /* 存放符合条件数的个数 */


void writeDat();


void jsVal()


{


    


}


void readDat()


{


    int i ;


    FILE *fp ;


    fp =fopen("IN1.DAT", "r") ;


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


fscanf(fp, "%d", &a[i]) ;


    fclose(fp) ;


    fp =fopen("IN2.DAT", "r") ;


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


        fscanf(fp, "%d", &b[i]) ;


    fclose(fp) ;


}


 


void main()


{


    int i ;


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


c[i] =0;


    readDat() ;


    jsVal() ;


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


        if (c[i] > 0)


            printf("%d


    writeDat() ;


}


void writeDat()


{


    FILE *fp ;


    int i ;


    fp =fopen("OUT.DAT", "w") ;


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


        if (c[i] > 0)


            fprintf(fp, "%d


    fclose(fp) ;


}

就业数据资源平台