1999年9月机试试题及答案-已运行通过- |
|
www.nanhushi.com 佚名 不详 |
1999年9月机试试题及答案(已运行通过)
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 ; /* 平均值 */
|
|
|
文章录入:杜斌 责任编辑:杜斌 |
|
上一篇文章: 2003年4月全国计算机等级考试三级PC笔试试卷 下一篇文章: 2000年9月机试试题 |
【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
|