![]() ![]() |
|
1999年9月机试试题及答案-已运行通过- | |
作者:佚名 文章来源:不详 点击数 更新时间:2007/12/21 18:22:09 文章录入:杜斌 责任编辑:杜斌 | |
|
|
1./*prog1 已知在文件in.dat中存有若干个(个数<200)四位数字的正整数, 函数readdat()是读取这若干个正整数并存入数组xx中。请编制函数calvalue(), 其功能要求:1、求出这文件中共有多少个正整数totnum;2、求出这些数中的 各位数字之和是偶数的数的个数totcnt,以及满足此条件的这些数的算术平均 值totpjz,最后调用函数writedat()把所求的结果输出到文件out2.dat中。 注意:部分部分源程序存放在prog1.c中。 请勿改动主函数main(),读数据函数reacddat()和输出数据函数writedat()的内容。*/ #include <stdio.h> #include <conio.h> #define maxnum 200 int xx[maxnum] ; int totnum = 0 ; /* 文件in.dat中共有多少个正整数 */ int totcnt = 0 ; /* 符合条件的正整数的个数 */ double totpjz = 0.0 ; /* 平均值 */ int readdat(void) ; void writedat(void) ; void calvalue(void) { int i; int a,b,c,d; double sum=0; for (i=0;i<maxnum;i++) if (xx[i]>0) { totnum++; a=xx[i]/1000; b=xx[i]/100-a*10; c=xx[i]/10-a*100-b*10; d=xx[i]%10; if((a+b+c+d)%2==0) {totcnt++; sum=sum+xx[i]; } } totpjz=sum/totcnt; } void main() { clrscr() ; if(readdat()) { printf("数据文件in.dat不能打开!/007/n") ; return ; } calvalue() ; printf("文件in.dat中共有正整数=%d个/n", totnum) ; printf("符合条件的正整数的个数=%d个/n", totcnt) ; printf("平均值=%.2lf/n", totpjz) ; writedat() ; } int readdat(void) { file *fp ; int i = 0 ; if((fp = fopen("in.dat", "r")) == null) return 1 ; while(!feof(fp)) { fscanf(fp, "%d,", &xx[i++]) ; } fclose(fp) ; return 0 ; } void writedat(void) { file *fp ; fp = fopen("out2.dat", "w") ; fprintf(fp, "%d/n%d/n%.2lf/n", totnum, totcnt, totpjz) ; fclose(fp) ; } 2./*prog2 已知在文件in.dat中存有若干个(个数<200)四位数字的正整数, 函数readdat()是读取这若干个正整数并存入数组xx中。请编制函数calvalue(), 其功能要求:1、求出这文件中共有多少个正整数totnum;2、求出这些数右移 1位后,产生的新数是偶数的数的个数totcnt,以及满足此条件的这些数(右移 前的值)的算术平均值totpjz,最后调用函数writedat()把所求的结果输出到 文件out4.dat中。 注意:部分部分源程序存放在prog2.c中。 请勿改动主函数main(),读数据函数reacddat()和输出数据函数writedat()的内容。*/ #include <stdio.h> #include <conio.h> #define maxnum 200 int xx[maxnum] ; int totnum = 0 ; /* 文件in.dat中共有多少个正整数 */ int totcnt = 0 ; /* 符合条件的正整数的个数 */ double totpjz = 0.0 ; /* 平均值 */ |
|
![]() ![]() |