1、计算机三级数据库技术-117 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写程序,要求:将文件 IN.DAT中的 200个整数读入数组 xx中,求出数组 xx中奇数的个数 cnt1和偶数的个数 cnt2,以及数组 xx下标为偶数的元素值的算术平均值 pj(保留 2位小数),将结果cnt1、cnt2 和 pj输出到 OUT.DAT中。 试题程序 #includestdlib.h #includestdio.h #define N 200 void read_dat(int xxN) int i,j; FILE*fp; fp=fopen
2、(“IN.DAT“,“r“); for(i=0;i20;i+) for(j=0;j10;j+) fscanf(fp,“%d,“, printf(“%d“,xxi*10+j); printf(“n“); fclose(fp); void main() int cnt1,cnt2,xxN; float pj; FILE* fw; int i,k=0; long j; system(“CLS“); fw=fopen(“OUT.DAT“,“w“); read_dat(xx); printf(“nncnt1=%d,cnt2=%d,pj= %6.2fn“,cnt1,cnt2,pj); fprintf(fw
3、,“%dn%dn%6.2fn“,cnt1, cnt2,pj); fclose(fw); (分数:100.00)_计算机三级数据库技术-117 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编写程序,要求:将文件 IN.DAT中的 200个整数读入数组 xx中,求出数组 xx中奇数的个数 cnt1和偶数的个数 cnt2,以及数组 xx下标为偶数的元素值的算术平均值 pj(保留 2位小数),将结果cnt1、cnt2 和 pj输出到 OUT.DAT中。 试题程序 #includestdlib.h #includestdio.h #define
4、N 200 void read_dat(int xxN) int i,j; FILE*fp; fp=fopen(“IN.DAT“,“r“); for(i=0;i20;i+) for(j=0;j10;j+) fscanf(fp,“%d,“, printf(“%d“,xxi*10+j); printf(“n“); fclose(fp); void main() int cnt1,cnt2,xxN; float pj; FILE* fw; int i,k=0; long j; system(“CLS“); fw=fopen(“OUT.DAT“,“w“); read_dat(xx); printf(“
5、nncnt1=%d,cnt2=%d,pj= %6.2fn“,cnt1,cnt2,pj); fprintf(fw,“%dn%dn%6.2fn“,cnt1, cnt2,pj); fclose(fw); (分数:100.00)_正确答案:()解析:void main() int cnt1,cnt2,xxN; float pj; FILE *fw; int i,k=0; long j; system(“CLS“); fw=fopen(“out.dat“,“w“); read_dat(xx); for(i=0,j=0,cnt1=0,cnt2=0;iN;i+) /*初始化计数器变量,依次取数组中的数进行统
6、计*/ if(xxi%2!=0) /*如果是奇数*/ cnt1+; /*统计数组 xx中奇数的个数 cnt1*/ else /*如果是偶数*/ cnt2+; /*统计偶数的个数 cnt2*/ if(i%2=0) /*如果下标是偶数*/ j+=xxi; /*求数组 xx下标为偶数的元素值的总和*/ k+; /*统计下标为偶数的元素的个数,以进一步求平均值*/ pj=(float)(j*100/k)/100; /*求数组 xx下标为偶数的元素值的算术平均值 pj*/ printf(“nncnt1=%d,cnt2=%d,pj=%6.2fn“,cnt1,cnt2,pj); fprintf(fw,“%dn%dn%6.2fn“,cnt1,cnt2,pj); fclose(fw); 考点 本题考查对指定范围内数的筛选和计算。考查的知识点主要包括:if 条件判断结构,逻辑表达式,平均值计算方法。 此题属于数学类问题。分析题干,本题存在 2个关键点:关键点 1如何判断一个数是奇数还是偶数;关键点 2如何计算所有下标为偶数的元素的平均值。 本题的解题思路为:使用循环控制逐个访问数组中的每个数据,通过 if else结构判断该数的奇偶性,并分别统计个数,同时累加所有下标为偶数的元素的和值,最后由和值计算出平均值。 通过一个数被 2除的结果可以判断该数的奇偶性,如果可以整除则表示该数是偶数,反之为奇数。