1、三级数据库技术机试-55 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序,要求:将文件 IN91DAT 中的 200 个整数读入数组 xx 中,求出数组 xx 中奇数的个数cnt1 和偶数的个数 cnt2,以及数组 xx 下标为偶数的元素值的算术平均值 pj(保留 2 位小数),结果cnt1,cnt2,由输出到 out91.dat 中。 部分程序、读函数 read_dat(int xx200)及输出格式已给出。试题程序:#includeconioh#includestdioh#define N 200void realdat(i
2、nt xxN)int i:j;FILE*fp;fp:fopen(“IN91.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;clrscr();fw=fopen(“out91.dat“,“w“);read_dat(xx);printf(“/n/ncntl=%d, cnt2=%d,pj=%6.2f/n“,cnt1,
3、cnt2,pj);fprintf(fw,“%d/n%d/n%6.2f/n“,cntl,cnt2,pj);fclose(fw);(分数:100.00)_三级数据库技术机试-55 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.请编制程序,要求:将文件 IN91DAT 中的 200 个整数读入数组 xx 中,求出数组 xx 中奇数的个数cnt1 和偶数的个数 cnt2,以及数组 xx 下标为偶数的元素值的算术平均值 pj(保留 2 位小数),结果cnt1,cnt2,由输出到 out91.dat 中。 部分程序、读函数 read_dat(int x
4、x200)及输出格式已给出。试题程序:#includeconioh#includestdioh#define N 200void realdat(int xxN)int i:j;FILE*fp;fp:fopen(“IN91.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;clrscr();fw=fopen(“o
5、ut91.dat“,“w“);read_dat(xx);printf(“/n/ncntl=%d, cnt2=%d,pj=%6.2f/n“,cnt1,cnt2,pj);fprintf(fw,“%d/n%d/n%6.2f/n“,cntl,cnt2,pj);fclose(fw);(分数:100.00)_正确答案:(void main()int cnt1,cnt2,xxN;float pj;FILE *fw;int i,k=0;long j;clrscr();fw=fopen(“out91.dat“,“w“);read_dat(xx);for(i=0,j=0,cnt1=0,cnt2=0;iN;i+)i
6、f (xxi%2) /*求出数组 xx 中奇数的个数 cnt1*/cnt1+;elsecnt2+; /*求出数组 xx 中偶数的个数 cnt2*/if (i%2=0)j+=xxi; /*求数组 xx 下标为偶数的元素值的总和*/k+;pj= (float) (j*100/k) /100; /*求数组 xx 下标为偶数的元素值的算术平均值 pj*/printf(“/n/ncnt1=%d, cnt2=%d,pj=%6.2f/n“,cnt1,cnt2,pj);fprintf(fw,“%d/n%d/n%6.2fkn“,cnt1,cnt2,pj);fclose(fw);)解析:解析 本题考查的知识点如下:(1)运算符“%”的使用。(2)强制类型转换和小数位数的保留。一个数除以 2 取余所得的数为 1,则它是奇数,否则是偶数,取余使用运算符“%”。在本题中,要求算术平均值保留两位小数。使用的方法是:将和乘以 100 除以个数强制类型转换后再除以 100。为了保证和有效,我们定义一个长整型变量来记录和。因为个数也为整型,运算符“/”在这里的含义是整除,而我们要保留小数,所以要使用强制类型转换将和乘以 100 的结果转换为浮点类型,这样就可以实现保留两位小数。使用循环对所有数据进行访问。