1、计算机三级数据库技术(上机操作)机试模拟试卷 53及答案与解析 一、程序设计题 1 已知数据文件 in dat中存放有 200个四位数,并已调用读函数 readDat()把这些数存人数组 a中,请编写函数 jsVal(),其功能是:把千位数字和个位数字重新组成一个新的含有两位数字的数 (新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的个位数字 ),并把百位数字和十位数字组成另一个新的含有两位数字的数 (新数的十位数字是原四位数的百位数字。新数的个位数字是原四位数的十位数字 )。如果两个新组成的数均是奇数并且 至少有一个数能被 5整除,同时两个新数的十位数字均不为零,则将满足此条件
2、的四位数按从大到小的顺序存人数组b中,并计算满足上述条件的四位数的个数 cnt。最后通过 main()函数调用写函数writeDat(),把结果 cnt以及数组 b中符合条件的四位数输出到 out dat文件中。 【试题程序】 #include #define MAX 200 int aMAX, bMAX, cnt一 0; void writeDat(); void jsVal() void readDat() int i; FILE*fp; fp=fopen(”in dat”, ”r”); for(i=0; iMAX;i+) fscanf(fp,“0Ad”。 ai); fclose(fp);
3、 void main() int i; readDat(); jsVal(); printf(“满足条件的数 = dkn”, cnt); for(i=0; icnt;i+) printf(“ d”, bi); printf(“ n”); writeDat(); void writeDat() FILE*fp; int i; fp=fopen(“out dat”, “W”); fprintf(fp, “ d n”。 ent); for(i=0; ient;i+) fprintf(fp “ d n” bi); felose(fp); 计算机三级数据库技术(上机操作)机试模拟试卷 53答案与解析 一、程序设计题 1 【正确答案】 void jsVal() int i, j; *定义变量 * int a1, a2, a3, a4; int ab, cd; int temp; for(i=0;iMAX;i+) al=ai 10; *数位分解 * a2=ai 100 10; a3=ai 1000 100; a4=ai 1000; ab=a4*10+a1; *数位重组 * cd=a3*10+a2; if(ab 2=1i+) *选择法排序 * for(j=i+1;jcnt; j+) if(bibj) temp=bi; bi=bi; bj=temp;