计算机三级数据库机试模拟试题及答案解析(10)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机三级数据库机试模拟试题及答案解析(10)
(1/1)上机题
第1题
已知数据文件IN1.DAT和IN2.DAT中分别存有100个2位十进制数,并且已调用读函数readDat()把这两个文件中的数存入数组a和b中,请考生编写函数jsVal(),它实现的功能是依次对数据组a和b中的数按条件重新组成一个新数并依次存入数组c中,再对数组c中的数按从小到大的顺序进行排序,最后调用输出函数writeDat(),把结果c输出到文件OUT.DAT 中。
组成新数的条件:如果数组a和b中相同下标位置的数均是奇数,则数组a中十位数字为新数的千位数字,个位数字仍为新数的个位数字,数组b中的十位数字为新的百位数字,个位数字为新的十位数字,将这样新数存入数组c中。
例如,
a:12 31 24 15 21 15
b:32 45 17 27 18 15
c:3451 1275 1155
排序后c:1155 1275 3451
注意:程序中已定义数组a[100]、b[100]和c[100]。请勿改动数据文件IN1.DAT和IN2.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
【试题程序】
#include <stdio.h >
#define MAX 100
int a[MAX], b[MAX], c[MAX] ;
int cnt =0; // 存放符合条件数的个数
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", &bEi]) ;
fclose (fp) ;
}
void main ()
{
int i ; void writeDat () ;
for(i=0 ; i<MAX ; i++)
c[i] =0 ;
readDat () ;
jsVal () ;