网站导航:首页 -> 计算机等级考试 -> 计算机等级考试四级 -> 计算机四级考试复习资料 -> 1999年秋四级上机试题第六套试题

1999年秋四级上机试题第六套试题


程序设计考试题(100分)
已知在文件in.dat中存有若干个数(个数<200)四位数字的正整数,函数readdat()是读取这若干个正整数并存入数组xx中。请编制函数calvalue(),其功能要求:1.求出这文件中共有多少个正整数totnum;2.求这些数中的十位数位置上的数字是2、4和8的数的个数totcnt,以及满足此条件的这些数的算术平均值totpjz,最后调用函数writedat()把所求的结果输出到文件out6.dat中。
注意:部分源程序存放在prog1.c中。
请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。
#include 
#include 
#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)
{
}
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('out6.dat', 'w') ;
fprintf(fp, '%d\n%d\n%.2lf\n', totnum, totcnt, totpjz) ;
fclose(fp) ;
}
in.dat文件内容:
6045,6192,1885,3580,8544,6826,5493,8415,3132,5841,
6561,3173,9157,2895,2851,6082,5510,9610,5398,5273,
3438,1800,6364,6892,9591,3120,8813,2106,5505,1085,
5835,7295,6131,9405,6756,2413,6274,9262,5728,2650,
6266,5285,7703,1353,1510,2350,4325,4392,7573,8204,
7358,6365,3135,9903,3055,3219,3955,7313,6206,1631,
5869,5893,4569,1251,2542,5740,2073,9805,1189,7550,
4362,6214,5680,8753,8443,3636,4495,9643,3782,5556,
1018,9729,8588,2797,4321,4714,9658,8997,2080,5912,
9968,5558,9311,7047,6138,7618,5448,1466,7075,2166,
4025,3572,9605,1291,6027,2358,1911,2747,7068,1716,
9661,5849,3210,2554,8604,8010,7947,3685,2945,4224,
7014,9058,6259,9503,1615,1060,7787,8983,3822,2471,
5146,7066,1029,1777,7788,2941,3538,2912,3096,7421,
9175,6099,2930,4685,8465,8633,2628,7155,4307,9535,
4274,2857,6829,6226,8268,9377,9415,9059,4872,6072,