1、三级数据库技术机试-193 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN.dat 中存有 300 个四位数,并已调用读函数 Rdata()把这些数存入数组 a 中,请编写函数 NumCal(),其功能是:求出千位上的数加个位上的数等于百位上的数加十位上的数的四位数的个数count,再求出所有满足此条件的四位数的平均值 Ave1,以及不满足此条件的四位数的平均值 Ave2。最后调用写函数 Wdata(),把结果输出到 OUT.dat 文件中。例如:6712,6+2=7+1,则该数满足条件,计算平均值 Ave1,且个数 c
2、ount=count+1。8129, 8+9!=1+2,则该数不满足条件,计算平均值 Ave2。注意:部分源程序已经给出。程序中已定义数组 a300,已定义变量 count、Ave1、Ave2。请勿改动主函数 main()、读函数 Rdata()和写函数 Wdata()的内容。#include stdio. hint a300, count = 0;double Ave1 = 0.0, Ave2 = 0.0;void NumCal ()void Rdata()FILE *fp;int i;fp = fopen(“IN. dat“, “r“);for (i=0; i300; i+)fscanf(
3、 fp, “%d,“, fclose (fp);void Wdata ()FILE *fp;fp = fopen(“OUT. dat“, “w“);fprintf(fp, “%d/n%7.2f/n%7.2f/n“, count, Ave1, Ave2);fclose (fp);main ()Rdata ();NumCal ( );Wdata ();printf (“count=%d/n 满足条件的平均值 Ave1=%7.2f/n 不满足条件的平均值 Ave2=%7.2f/n“, count, Ave1, Ave2);(分数:100.00)_三级数据库技术机试-193 答案解析(总分:100.0
4、0,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.已知数据文件 IN.dat 中存有 300 个四位数,并已调用读函数 Rdata()把这些数存入数组 a 中,请编写函数 NumCal(),其功能是:求出千位上的数加个位上的数等于百位上的数加十位上的数的四位数的个数count,再求出所有满足此条件的四位数的平均值 Ave1,以及不满足此条件的四位数的平均值 Ave2。最后调用写函数 Wdata(),把结果输出到 OUT.dat 文件中。例如:6712,6+2=7+1,则该数满足条件,计算平均值 Ave1,且个数 count=count+1。8129, 8+9!=1+2,
5、则该数不满足条件,计算平均值 Ave2。注意:部分源程序已经给出。程序中已定义数组 a300,已定义变量 count、Ave1、Ave2。请勿改动主函数 main()、读函数 Rdata()和写函数 Wdata()的内容。#include stdio. hint a300, count = 0;double Ave1 = 0.0, Ave2 = 0.0;void NumCal ()void Rdata()FILE *fp;int i;fp = fopen(“IN. dat“, “r“);for (i=0; i300; i+)fscanf( fp, “%d,“, fclose (fp);void
6、 Wdata ()FILE *fp;fp = fopen(“OUT. dat“, “w“);fprintf(fp, “%d/n%7.2f/n%7.2f/n“, count, Ave1, Ave2);fclose (fp);main ()Rdata ();NumCal ( );Wdata ();printf (“count=%d/n 满足条件的平均值 Ave1=%7.2f/n 不满足条件的平均值 Ave2=%7.2f/n“, count, Ave1, Ave2);(分数:100.00)_正确答案:(void NumCal() int i, n = 0, thou, hun, ten, data;
7、for (i=0; i300; i+) thou = ai/1000;hun = ai%1000/100;ten = ai%100/10;data = ai%10;if (thou+ data = hun+ ten) count+;Ave1 += ai;else n+;Ave2 += ai;Ave1 /= count;Ave2 /= n;)解析:解题思路 对于每一个四位数,用这个四位数除以 1000,可得到这个四位数千位上的数字输给变量 thou;这个四位数对 1000 求余数然后再除以 100,可得到这个四位数百位上的数字输给变量 hun;这个四位数对 100 求余数然后再除以 10,可得到这个四位数十位上的数字输给变量 ten;这个四位数对 10求余数,可得到这个四位数个位上的数字输给变量 data。然后判断表达式 thou+ data=hun+ ten 是否成立,如果成立,则计数变量 count 加 1,同时把这个数加到变量 Ave1 上;否则计数变量 n 加 1,同时把这个数加到变量 Ave2 上。循环结束后,变量 Ave1 的值除以 count,就得到所有满足此条件的四位数的平均值 Ave1;变量 Ave2 的值除以 n,就得到有不满足此条件的四位数的平均值 Ave2。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1