www.eol360.com 三级 C 语言 360 教育在线 宇创 IT 培训 07 年 9 月内部资料
360 教育在线 宇创 IT 培训 07 年 9 月内部资料
内部资料,请勿公开传播
1: 已知数据文件 IN.DAT 中存有 200 个四位数, 并已调用
读函数 readDat()把这些数存入数组 a 中,请考生编制一函数
jsVal(),其功能是:依次从数组 a 中取出一个四位数,如果该四
位数大于该四位数以后的连续五个数且该数是奇数 (该四位
数以后不满五个数,则不统计), 则统计出满足此条件的个
数 cnt 并把这些四位数按从小到大的顺序存入数组 b 中,最
后调用写函数 writeDat()把结果 cnt 以及数组 b 中符合条件
的四位数输出到 OUT.DAT 文件中。
注意: 部分源程序存在文件 PROG1.C 文件中。
程序中已定义数组: a[200], b[200], 已定义变量: cnt
请勿 改 动 数据 文 件 IN.DAT 中的 任 何 数据 、 主函数
main()、读函数 readDat()和写函数 writeDat()的内容。
#include <stdio.h>
#define MAX 200
int a[MAX], b[MAX], cnt = 0 ;
void writeDat();
void jsVal()
{
}
void readDat()
{
int i ;
FILE *fp ;
fp = fopen("c:\test\in.dat", "r") ;
for(i = 0 ; i < MAX ; i++) fscanf(fp, "%d", &a[i]) ;
fclose(fp) ;
}
void main()
{
int i ;
readDat() ;
jsVal() ;
printf("满足条件的数=%d", cnt) ;
for(i = 0 ; i < cnt ; i++) printf("%d ", b[i]) ;
printf("") ;
writeDat() ;
}
void writeDat()
{
FILE *fp ;
int i ;
fp = fopen("c:\test\out.dat", "w") ;
fprintf(fp, "%d", cnt) ;
for(i = 0 ; i < cnt ; i++) fprintf(fp, "%d", b[i]) ;
fclose(fp) ;
}
2: 在文件 in.dat 中已存有 200 个正整数, 且每个数均在
1000 至 9999 之间。函数 readDat()是读取这 200 个数存放到
数组 aa 中。请编制函数 jsSort(),其函数的功能是: 要求按每
个数的后三位的大小进行降序排列,如果出现后三位相等的
数值,则对这些数值按原始 4 位数据进行升序排列,将排序后
的前 10 个数存入数组 bb 中。最后调用函数 writeDat()把结
果 bb 输出到文件 out.dat 中。
例: 处理前 9012 5099 6012 7025 8088
处理后 5099 8088 7025 6012 9012
注意: 部分源程序存在文件 PROG1.C 文件中。
请勿改动数据文件 in.dat 中的任何数据、主函数 main()、
读函数 readDat()和写函数 writeDat()的内容。
#include <stdio.h>
#include <string.h>
void readDat();
void writeDat();
int aa[200], bb[10] ;
void jsSort()
{
}
void main()
{
readDat() ;
jsSort() ;
writeDat() ;
}
1