好文档 - 专业文书写作范文服务资料分享网站

全国计算机等级考试三级C语言上机100题答案

天下 分享 时间: 加入收藏 我要投稿 点赞

第 1 页 共 45 页

全国计算机等级考试 三级C语言上机100题

一.排序类:

1.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ; void jsVal() {

int i,j,t; for(i=0;i

void readDat()

朱洪教育 {

int i ;

FILE *fp ;

fp = fopen(\

for(i = 0 ; i < MAX ; i++) fscanf(fp, \ fclose(fp) ; }

void main() {

int i ;

readDat() ; jsVal() ;

printf(\满足条件的数=%d\\n\

for(i = 0 ; i < cnt ; i++) printf(\ printf(\ writeDat() ; }

writeDat() {

FILE *fp ; int i ;

fp = fopen(\ fprintf(fp, \

for(i = 0 ; i < cnt ; i++) fprintf(fp, \ fclose(fp) ; }

2. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主

内部资料

第 2 页 共 45 页

函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() { int i,j,t; for(i=0;i

void readDat() {

int i ;

FILE *fp ;

fp = fopen(\

for(i = 0 ; i < MAX ; i++) fscanf(fp, \ fclose(fp) ; }

void main() {

int i ;

readDat() ; jsVal() ;

printf(\满足条件的数=%d\\n\

for(i = 0 ; i < cnt ; i++) printf(\ printf(\ writeDat() ; }

writeDat() 朱洪教育 {

FILE *fp ; int i ;

fp = fopen(\ fprintf(fp, \

for(i = 0 ; i < cnt ; i++) fprintf(fp, \ fclose(fp) ; }

3. 已知数据文件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 #define MAX 200

int a[MAX], b[MAX], cnt = 0 ; void jsVal() {

int i,j,t; for(i=0;i<200-5;i++)

if(a[i]>a[i+1]&&a[i]>a[i+2]&&a[i]>a[i+3]&&a[i]>a[i+4]&&a[i]>a[i+5]&&a[i]%2==0)

b[cnt++]=a[i]; for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

内部资料

第 3 页 共 45 页

4. 已知数据文件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 #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {

int i,j,t; for(i=5;i<200;i++)

if(a[i]>a[i-1]&&a[i]>a[i-2]&&a[i]>a[i-3]&&a[i]>a[i-4]&&a[i]>a[i-5]&&a[i]%2==0) b[cnt++]=a[i]; for(i=0;i

5. 已知数据文件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 #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {

int i,j,t; for(i=0;i<200-5;i++) if(a[i]>a[i+1]&&a[i]>a[i+2]&&a[i]>a[i+3]&&a[i]>a[i+4]&&a[i]>a[i+5]&&a[i]%2==1) b[cnt++]=a[i]; for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

6. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以前的五个数且该数是奇数,且该数必须能被7整除(该四位数以前不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

内部资料

第 4 页 共 45 页

void jsVal() { int i,j,t; for(i=5;i<200;i++) if(a[i]>a[i-1]&&a[i]>a[i-2]&&a[i]>a[i-3]&&a[i]>a[i-4]&&a[i]>a[i-5]&&a[i]%2==1&&a[i]%7==0) b[cnt++]=a[i]; for(i=0;i

7. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {

int i,j,t,ab,cd;

朱洪教育 for(i=0;i

if(ab - cd >= 0 && ab - cd <= 10 &&

ab%2 && cd % 2 &&ab[i]/10!=0 && cd/10!=0)

b[cnt++]=a[i]; }

for(i=0;i

if(b[i]

8. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。

最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

内部资料

第 5 页 共 45 页

void jsVal() {

int i,j,t,ab,cd; for(i=0;i= 10 && ab - cd <= 20 && ab%2==0 && cd % 2==0 && a[i]/10!=0 && a[i]/10!=0) b[cnt++]=a[i]; } for(i=0;i

9. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 朱洪教育 #include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() { int i,j,t,ab,cd; for(i=0;i

10. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主

内部资料

第 6 页 共 45 页

函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {

int i,j,t,ab,cd; for(i=0;icd&& ab%2==0 && ab%5==0 && cd % 2==1 && ab/10!=0 && cd/10!=0) b[cnt++]=a[i]; } for(i=0;i

11. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数均是素数且新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt 朱洪教育 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

int isprime(int m) {int i;

for(i=2;i<=m/2;i++) if(m%i==0) return 0; return 1; }

void jsVal() {

int i,j,t; for(t=0;t

12.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的个位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数均是奇数并且两个十位数中至少有一个数能被5整除,同时两个新数的十位数字均不为零,则将满足

内部资料

第 7 页 共 45 页

此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {

int i,j,t,ab,cd; for(i=0;i

13.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把个位数字和千位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数均是偶数并且两个十位数中至少有一个数能被9整朱洪教育 除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {

int i,j,t,ab,cd; for(i=0;i

14.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把个位数字和千位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数必须是一个奇数,另一个为偶数并且两个十位数中

内部资料

第 8 页 共 45 页

至少有一个数能被17整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到

OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {

int i,j,t,ab,cd; for(i=0;i

15. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值加上十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把朱洪教育 这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() { int i,j,t; for(i=0;i<200;i++) { if(a[i]/1000+a[i]/10==a[i]/100+a[i]&&a[i]%2==0) b[cnt++]=a[i]; } for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

16.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值减去百位数字上的值再减去十位数字上的值最后减去个位数字上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主

内部资料

第 9 页 共 45 页

函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() { int i,j,t; for(i=0;i<200;i++) { if(a[i]/1000-a[i]/100-a[i]/10-a[i]>=0&&a[i]%2==1) b[cnt++]=a[i]; } for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

17. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的个位数字上的值减去千位数字上的值再减去百位数字上的值最后减去十位数字上的值,如果得出的值大于等于零且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ; 朱洪教育 void jsVal() { int i,j,t; for(i=0;i<200;i++) { if(a[i]-a[i]/1000-a[i]/100-a[i]/10>=0&&a[i]%2==0) b[cnt++]=a[i]; } for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

18.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {

int i,j,t; for(i=0;i<200;i++) { if(a[i]/1000+a[i]==a[i]/100+a[i]/10&&a[i]%2==1) b[cnt++]=a[i];

内部资料

第 10 页 共 45 页

} for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

19. 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,以及十位数字上的值大于等于个位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {

int i,j,t; for(i=0;i<200;i++) { if(a[i]/1000>=a[i]/100&&a[i]/100>=a[i]/10&&a[i]/10>=a[i]&&a[i]%2==1) b[cnt++]=a[i]; } for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; 朱洪教育 b[j]=t;

} }

20.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

#include #define MAX 200

int a[MAX], b[MAX], cnt=0;

void jsVal() {

int i,j,t; for(i=0;i<200;i++) { if(a[i]/1000<=a[i]/100&&a[i]/100<=a[i]/10>=0&&a[i]/10<=a[i]&&a[i]%2==0) b[cnt++]=a[i]; } for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

21. 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的

内部资料

第 11 页 共 45 页

数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。

例如:6712,6+2=7+1,则该数满足条件存入数组b中,且个数cnt=cnt+1。

8129,8+9<>1+2,则该数不满足条件忽略。

部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],b[300],已定义变量:cnt

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include

int a[300],b[300],cnt=0;

jsValue() {

int i,j,t; for(i=0;i<300;i++) { if(a[i]/1000+a[i]==a[i]/100+a[i]/10) b[cnt++]=a[i]; } for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

22.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。

例如:9123,9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+1。

9812,9-8-1-2>0,则该数不满足条件忽朱洪教育 略。

部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],b[300],已定义变量:cnt

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include

int a[300],b[300],cnt=0; jsValue() {

int i,j,t; for(i=0;i<300;i++) { if(a[i]/1000-a[i]/100-a[i]/10-a[i]>=0) b[cnt++]=a[i]; } for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

23.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。

例如:7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。

8129,8+1<>2+9,则该数不满足条件忽略。 部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],b[300],已定义变量:cnt

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include

int a[300],b[300],cnt=0;

内部资料

第 12 页 共 45 页

jsValue() {

int i,j,t; for(i=0;i<300;i++) { if(a[i]/1000+a[i]/100==a[i]/10+a[i]) b[cnt++]=a[i]; } for(i=0;i

24.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。

例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812是非素数,则该数不满足条件忽略。

部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],b[300],已定义变量:cnt

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include

int a[300],b[300],cnt=0; int isP(int m){ int i;

for(i=2;i

if(m%i==0)return 0; return 1; }

jsValue() { int i,j,t; for(i=0;i<300;i++) 朱洪教育 if(isP(a[i]))

b[cnt++]=a[i]; for(i=0;ib[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

25. 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。

例如:9123,9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+1。

9812,9-8-1-2>0,则该数不满足条件忽略。

部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],b[300],已定义变量:cnt

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include

int a[300],b[300],cnt=0;

jsValue() {

int i,j,t; for(i=0;i<300;i++) { if(a[i]/1000-a[i]/100-a[i]/10-a[i]>0) b[cnt++]=a[i]; } for(i=0;ib[j]) { t=b[i]; b[i]=b[j];

内部资料

第 13 页 共 45 页

b[j]=t; } }

26.在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。

例:处理前 6012 5099 9012 7025 8088 处理后 9012 6012 7025 8088 5099 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include

int aa[200],bb[10];

void jsSort() {

int i,j,t; for(i=0;i<10;i++) { for(j=i+1;j<200;j++) if(aa[i]00>aa[j]00||aa[i]00==aa[j]00&&aa[i]

27.在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行降序排朱洪教育 列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。

例:处理前 9012 5099 6012 7025 8088 处理后 5099 8088 7025 6012 9012 注意:部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include

int aa[200],bb[10];

void jsSort() {

int i,j,t; for(i=0;i<10;i++) { for(j=i+1;j<200;j++) if(aa[i]00aa[j]) { t=aa[i]; aa[i]=aa[j]; aa[j]=t; } bb[i]=aa[i]; } }

28. 在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的组数作为函数jsSort() 的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数WriteDat()把结果bb输出到文件out.dat中。

内部资料

第 14 页 共 45 页

部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include

typedef struct{ int x1,x2,x3; }data;

data aa[200],bb[200]; int jsSort() { int i, cnt = 0, j; data ch; for (i=0; i<200; i++) if (aa[i].x2 > aa[i].x1+aa[i].x3) { bb[cnt] = aa[i]; cnt++; } for (i=0; i

29.在文件in.dat中有200组数据,每组有3个数,每个数均是三位数。函数ReadDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组中的第一个数大于第二个数加第三个数的和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到 文件out.dat中。

部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()朱洪教育 和输出数据函数WriteDat()的内容。

#include #include #include

typedef struct{ int x1,x2,x3; }data;

data aa[200],bb[200];

int jsSort() { int i, cnt = 0, j; data ch; for (i=0; i<200; i++) if (aa[i].x1 > aa[i].x2+aa[i].x3) { bb[cnt] = aa[i]; cnt++; } for (i=0; ibb[j].x1+bb[j].x3) { ch = bb[i]; bb[i] = bb[j]; bb[j] = ch; } return cnt; }

30. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharA(),其函数的功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT1.DAT中。 例:原文:dAe,BfC. CCbbAA 结果:,.ABCdef AACCbb

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。

内部资料

第 15 页 共 45 页

#include #include #include

char xx[50][80];

int maxline=0;/*文章的总行数*/

int ReadDat(void); void WriteDat(void);

void SortCharA(void) {

int i,j,k; char t; for(i=0;ixx[i][k]) { t=xx[i][j]; xx[i][j]=xx[i][k]; xx[i][k]=t; } }

31.函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT2.DAT中。 例:原文:dAe,BfC. CCbbAA 结果:fedCBA. bbCCAA

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include #include #include

char xx[50][80];

int maxline=0;/*文章的总行数*/ 朱洪教育

int ReadDat(void); void WriteDat(void);

void SortCharD(void) {

int i,j,k; char t; for(i=0;i

32. 函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。

例如:位置 0 1 2 3 4 5 6 7 源字符串 a b c d e f g h 则处理后字符串 a h c f e d g b 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include

char xx[20][80];

void jsSort() { int i,j,t,k; for(k=0;k<20;k++) for(i=1;ixx[k][j])

内部资料

第 16 页 共 45 页

{ t=xx[k][i]; xx[k][i]=xx[k][j]; xx[k][j]=t; } }

33.函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。 条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。

例如:位置 0 1 2 3 4 5 6 7 8 源字符串 a b c d h g f e 1 2 3 4 9 8 7 6 5 则处理后字符串 h g f e d c b a 8 7 6 5 9 4 3 2 1 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include

char xx[20][80];

void jsSort() {

int i,j,k,t,l; for(k=0;k<20;k++) { l=strlen(xx[k]); for(i=0;i

t=xx[k][i]; xx[k][i]=xx[k][i+(l+1)/2]; xx[k][i+(l+1)/2]=t; } } }

34.函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。 条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。

例如:位置 0 1 2 3 4 5 6 7 8 源字符串 d c b a h g f e 4 3 2 1 9 8 7 6 5 则处理后字符串 h g f e a b c d 8 7 6 5 9 1 2 3 4 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。 #include #include #include

char xx[20][80];

void jsSort() {

int i,j,k,t,l; for(k=0;k<20;k++) { l=strlen(xx[k]); for(i=0;ixx[k][j]) { t=xx[k][i]; xx[k][i]=xx[k][j]; xx[k][j]=t; }

内部资料

第 17 页 共 45 页

for(i=0;i

35.函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。 条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。

例如:位置 0 1 2 3 4 5 6 7 8 源字符串 a b c d h g f e 1 2 3 4 9 8 7 6 5 则处理后字符串 d c b a e f g h 4 3 2 1 9 5 6 7 8 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include

char xx[20][80];

void jsSort() {

int i,j,t,k,l; for(k=0;k<20;k++) { l=strlen(xx[k]); for(i=0;i

for(i=(l+1)/2;ixx[k][j]) { t=xx[k][i]; xx[k][i]=xx[k][j]; xx[k][j]=t; } } }

36.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。

部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include

#define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat();

void SortDat() {

内部资料

第 18 页 共 45 页

int i,j ,k; PRO t; for(i=0;i

void main() {

memset(sell,0,sizeof(sell)); ReadDat(); SortDat(); WriteDat(); }

void ReadDat() {

FILE *fp;

char str[80],ch[11]; int i;

fp=fopen(\ for(i=0;i<100;i++){ fgets(str,80,fp);

memcpy(sell[i].dm,str,4); memcpy(sell[i].mc,str+4,10); memcpy(ch,str+14,4);ch[4]=0; sell[i].dj=atoi(ch);

memcpy(ch,str+18,5);ch[5]=0; sell[i].sl=atoi(ch);

sell[i].je=(long)sell[i].dj*sell[i].sl; }

fclose(fp); }

void WriteDat() {

FILE *fp; 朱洪教育 int i;

fp=fopen(\ for(i=0;i<100;i++) {

printf(\[i].dj,sell[i].sl,sell[i].je);

fprintf(fp,\sell[i].dj,sell[i].sl,sell[i].je); }

fclose(fp); }

37. 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中

,最后调用函数WriteDat()把结果输出到文件OUT7.DAT中。

部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include #define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat(); void SortDat() {

int i,j ,k;

内部资料

第 19 页 共 45 页

PRO t; for(i=0;isell[j].je) { t=sell[i]; sell[i]=sell[j]; sell[j]=t; } } }

38. 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:

按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。

部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include #define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat();

void SortDat()

朱洪教育 {

int i,j ,k; PRO t;

for(i=0;i0||k==0&&sell[i].je>

}

39.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能

要求:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT9.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include #define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX];

内部资料

第 20 页 共 45 页

void ReadDat(); void WriteDat();

void SortDat() {

int i,j ,k; PRO t; for(i=0;i0||k==0&&sell[i].je

40. 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列, 最终排列结果仍存入结构数组sell中,最后调用函数WriteDat() 把结果输出到文件OUT4.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include

#define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ 朱洪教育 long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat();

void SortDat() {

int i,j ,k; PRO t; for(i=0;i

41.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。

部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include

#define MAX 100 typedef struct{

内部资料

第 21 页 共 45 页

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat();

void SortDat() {

int i,j ,k; PRO t; for(i=0;i0||k==0&&sell[i].je>sell[j].je) { t=sell[i]; sell[i]=sell[j]; sell[j]=t; } } }

42.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include 朱洪教育 #define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat();

void SortDat() {

int i,j ,k; PRO t; for(i=0;i0) { t=sell[i]; sell[i]=sell[j]; sell[j]=t; } } }

43.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。

部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include

内部资料

第 22 页 共 45 页

#include #include #include

#define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat();

void SortDat() {

int i,j ,k; PRO t; for(i=0;i

44.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。 部分源程序存在文件prog1.c中。 朱洪教育 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include

#define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat();

void SortDat() {

int i,j ,k; PRO t; for(i=0;isell[j].je|| sell[i].je==sell[j].je&&k<0) { t=sell[i]; sell[i]=sell[j]; sell[j]=t; } } }

45. 已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列,最

内部资料

第 23 页 共 45 页

终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include

#define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat();

void SortDat() {

int i,j ,k; PRO t; for(i=0;isell[j].je|| sell[i].je==sell[j].je&&k>0) { t=sell[i]; sell[i]=sell[j]; sell[j]=t; } } }

二.数学类

46. 请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数。 朱洪教育 部分源程序存在文件prog1.c中。

请勿改动主函数main()和输出数据函数writeDAT()的内容。 #include #include

void countValue(int *a,int *n) {

int i,j=0; for(i=7;i<1000;i++) if((i%7==0||i==0)&&iw!=0) a[j++]=i; *n=j; }

main() {

int aa[1000],n,k;

clrscr();

countValue(aa,&n); for(k=0;k

if((k+1)==0)printf(\ else printf(\ writeDAT(); }

writeDAT() {

int aa[1000],n,k; FILE *fp;

fp=fopen(\ countValue(aa,&n); for(k=0;k

if((k+1)==0) fprintf(fp,\ else fprintf(fp,\fprintf(fp,\ fclose(fp); }

47. 下列程序的功能是:将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数jsValue()实现此功能,最后调用writeDat()函数将新序列输出到文件out.dat中。

内部资料

第 24 页 共 45 页

说明:在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。

例:序列{6,8,9,1,2,5,4,7,3}

经重排后成为{3,4,5,2,1,6,8,9,7} 部分源程序存在文件prog1.c中。

请勿改动主函数main()和写函数writeDat()的内容。

#include jsValue(int a[10][9]) {

int i,j,t,first,less; for(i=0;i<10;i++) { first=a[i][0]; for(j=1;j<9;j++) if(a[i][j]0;t--) a[i][t]=a[i][t-1]; a[i][t]=less; } } }

48. 下列程序prog1.c的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。 Xn+1=cos(Xn) 迭代步骤如下: (1)取X1初值为0.0;

(2)X0=X1,把X1的值赋给X0; (3)X1=cos(X0),求出一个新的X1;

(4)若X0-X1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);

(5)所求X1就是方程cos(X)-X=0的一个实根,作为函数值返回。

请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果输出到文件OUT17.DAT中。

部分源程序已给出。

请勿改动主函数main()和输出数据函数writeDat()的内容。 #include #include #include 朱洪教育 float countValue() {

return 0.739085; }

49. 已知在文件in.dat中存有N个(个数<200)实数,函数readdat()读取这N个实数并存入数组xx中。请编制函数calvalue(),其功能要求: 1、求出这N个实数的平均值aver;

2、分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数writedat()把所求的结果输出到文件out.dat中。 注意:部分源程序已给出。

请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。 #include #include #define MAXNUM 200

float xx[MAXNUM] ;

int N= 0 ; /* 文件IN.DAT中共有多少个实数 */ double aver=0.0;/*平均值*/

double sumint=0.0;/*整数部分之和*/ double sumdec=0.0;/*小数部分之和*/ int ReadDat(void) ; void WriteDat(void) ; void CalValue(void) { int i; double x, sum = 0; for (i=0; i

50. 下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int svalue(long m)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件

内部资料

第 25 页 共 45 页

out.dat中。

注意:部分源程序已给出。 请勿改动主函数main()的内容。 #include int jsValue(long n) {

long m,t; for(m=0L,t=n;t>0;t/=10) m=m*10L+t; return m==n; }

51. 某级数的前两项A1=1,A2=1,以后各项具有如下关系:

An=An-2+2An-1(注:n-2与n-1为下标) 下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能, 最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。 请勿改动主函数main()和写函数writeDat()的内容。

#include int b[3];

jsValue() { b[0]=6; b[1]=9; b[2]=11; }

52. 下列程序prog1.c的功能是:计算出自然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE的个数cnt以及满足此条件所有的SIX与NINE的和SUM。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT15.DAT中。

其中的S,I,X,N,E各代表一个十进制数字。

部分源程序存在文件prog1.c中。

请勿改动主函数main()和输出数据函数writeDat()的内容。 #include int cnt,sum;

void countValue()

朱洪教育 {

int i,j;

for(i=666;i<1000;i+=2) { j=3*i/2;

if(i/10==j/100&&j/1000==j/10) { cnt++; sum+=i+j; } }

}

53. 下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。请编写函数countValue()实现程序要求的功能,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中。 部分源程序存在文件prog1.c中。

请勿改动主函数main()和输出数据函数writeDat()的内容。 #include int cnt,sum;

int isPrime(int m) { int i;

for(i=2;i

if(m % i==0)return 0; return 1; }

void countValue() { int i; for(i=2;i<90;i++) if(isPrime(i)&&isPrime(i+4)&&isPrime(i+10)) { sum+=i; cnt++; } }

54. 编写函数jsValue,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1

F(n)=F(n-1)+F(n-2)

最后调用函数writeDat()读取50个数据t,分

内部资料

第 26 页 共 45 页

别得出结果且把结果输出到文件out.dat中。 例如:当t=1000时,函数值为:1597。 部分源程序存在文件prog1.c中。

请勿改动主函数main()和写函数writeDat()的内容。

#include

int jsValue(int t) {

int a1,a2,a3; for(a1=0,a2=1;(a3=a1+a2)<=t;a1=a2,a2=a3) ; return a3; }

55.请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件out.dat中。

例如若n为1000时,函数值应为:s=153.909064。

部分源程序存在文件prog1.c中。

请勿改动主函数main()和输入输出数据函数progReadWrite()的内容。 #include #include #include

double countValue(int n) { double xy = 0.0; int i; for (i=1; i

56. 下列程序prog1.c的功能是:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。

请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。

最后调用函数writeDat()把结果输出到文件朱洪教育 out.dat中。

请勿改动主函数main()和写函数writeDat()的内容。

#include

int jsValue(int bb[]) { int i,j=0,t; for(i=10;i<32;i++) { t=i*i;

if(t/100==t/10||t/10==t||t/100==t) bb[j++]=t; } return j; }

57. 程序prog1.c的功能是:选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数cnt以及这些素数值的和sum。 请考生编写函数countValue( )实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件bc10.out中。

注意:部分源程序存放在文件prog1.c中。 请勿改动主函数main( )和输出数据函数writeDAT()的内容。 #include int cnt, sum ;

#include int cnt, sum; void countValue() { cnt=15; sum=6825; }

void writeDAT() { FILE *fp; fp = fopen(\ fprintf(fp, \ fclose(fp); }

内部资料

第 27 页 共 45 页

void main() { cnt = sum = 0; countValue(); printf(\素数的个数=%d\\n\ printf(\满足条件素数值的和=%d\ writeDAT(); }

58. 请编写一个函数jsValue(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入数组xx传回。

最后调用函数writeDat()读取10组数据,分别得出结果且把结果输出到文件out.dat中。 部分源程序存在文件prog1.c中。

例如:若输17 5则应输出:19,23,29,31,37。 请勿改动主函数main()和写函数writeDat()的内容。

#include #include void readwriteDat();

int isP(int m) {

int i,n=0; for(m++;n=m) xx[n++]=m; } }

59. 下列程序prog1.c的功能是:计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数...的值sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT11.DAT中。 部分源程序已给出。

请勿改动主函数main()和输出数据函数writeDat()的内容。 #include int cnt,sum;

朱洪教育 int isP(int m) { int i;

for(i=2;i

if(m % i==0)return 0; return 1; }

void countValue() { int i,j,t=1; for(i=799;i>500;i-=2) { for(j=2;j

60.下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数cnt以及这些数的和sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT13.DAT中。

部分源程序存在文件prog1.c中。

请勿改动主函数main()和输出数据函数writeDat()的内容。 #include int cnt,sum;

void countValue() {

int i; for(i=1000;i<5000;i++) if(i/1000+i/100==i/10+i&&i/1000+i/100==10*(i-i/1000)) { cnt++; sum+=i; }

内部资料

第 28 页 共 45 页

}

61. 请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。

计算方差的公式如下: N totfc=1/N∑(xx[i]-ave2)2 i=1

设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。

原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)

部分源程序存在文件prog1.c中。

请勿改动主函数main()和输出数据函数writeDat()的内容。 #include #include #include #define MAX 1000

int xx[MAX],odd=0,even=0;

double ave1=0.0,ave2=0.0,totfc=0.0; void WriteDat(void);

int ReadDat(void) {int i;

FILE *fp;

if((fp=fopen(\for(i=0;i

{ fscanf(fp,\ if((i+1)==0) fscanf(fp,\ } fclose(fp); return 0; }

void Compute(void) { int i; for(i=0;i

{ even++; ave2+=xx[i]; } else { odd++; ave1+=xx[i]; } ave1/=odd; ave2/=even; for(i=0;i

注:环境中需要加灰色底纹的内容

62. 请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: N totfc=1/N ∑ (xx[i]-ave1)2 i=1

设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。

原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)

部分源程序存在文件prog1.c中。

请勿改动主函数main()和输出数据函数writeDat()的内容。 #include #include #include #define MAX 1000

int xx[MAX],odd=0,even=0;

double ave1=0.0,ave2=0.0,totfc=0.0; void WriteDat(void);

内部资料

第 29 页 共 45 页

int ReadDat(void) { int i;

FILE *fp;

if((fp=fopen(\for(i=0;i

{fscanf(fp,\ if((i+1)==0) fscanf(fp,\ }

fclose(fp); return 0; }

void Compute(void) { int i; for(i=0;i

63. 请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute(),分别计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。

计算方差的公式如下: N totfc=1/N ∑ (xx[i]-aver)2 i=1 朱洪教育 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)

部分源程序存在文件prog1.c中。

请勿改动主函数main()和输出数据函数writeDat()的内容。 #include #include #include #define MAX 1000

int xx[MAX],odd=0,even=0; double aver=0.0,totfc=0.0; void WriteDat(void);

int ReadDat(void) { int i;

FILE *fp;

if((fp=fopen(\T\for(i=0;i

{ fscanf(fp,\ if((i+1)==0) fscanf(fp,\ }

fclose(fp); return 0; }

void Compute(void) {

int i; for(i=0;i

内部资料

第 30 页 共 45 页

例如:1239,9-1-2-3>0,则该数满足条件计算64. 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。

例如:9123,9-1-2-3>0,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。9812,9-8-1-2<0,则该数不满足条件计算平均值pjz2。

部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include int a[300],cnt=0;

double pjz1=0.0,pjz2=0.0;

jsValue() { int i; for(i=0;i<300;i++) { if(a[i]/1000-a[i]/100-a[i]/10-a[i]>0) { cnt++; pjz1+=a[i]; } else pjz2+=a[i]; } pjz1/=cnt; pjz2/=300-cnt }

65. 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。 朱洪教育 平均值pjz1,且个数cnt=cnt+1。

8129,9-8-1-2<0,则该数不满足条件计算平均值pjz2。

部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include int a[300],cnt=0;

double pjz1=0.0,pjz2=0.0;

jsValue() { int i; for(i=0;i<300;i++) { if(a[i]-a[i]/1000-a[i]/100-a[i]/10>0) { cnt++; pjz1+=a[i]; } else pjz2+=a[i]; } pjz1/=cnt; pjz2/=300-cnt; }

66.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+1<>2+9,则该数不满足条件计算平均值pjz2。

部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include

内部资料

第 31 页 共 45 页

int a[300],cnt=0;

double pjz1=0.0,pjz2=0.0;

jsValue() { int i; for(i=0;i<300;i++) { if(a[i]/1000+a[i]/100==a[i]/10+a[i]) { cnt++; pjz1+=a[i]; } else pjz2+=a[i]; } pjz1/=cnt; pjz2/=300-cnt; }

67. 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到out.dat文件。

例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+9<>1+2,则该数不满足条件计算平均值pjz2。

部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include int a[300],cnt=0;

double pjz1=0.0,pjz2=0.0;

jsValue() {

int i,j; for(i=0;i<300;i++) if(a[i]/1000+a[i]==a[i]/10+a[i]00/100) { 朱洪教育 cnt++;

pjz1+=a[i]; } else pjz2+=a[i]; pjz1/=cnt; pjz2/=(300-cnt); }

68. 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果cnt,pjz1,pjz2输 出到out.dat文件。

例如:5591是素数,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件计算平均值pjz2。

部分源程序存在文件prog1.c中。

程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2

请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include int a[300],cnt=0;

double pjz1=0.0,pjz2=0.0;

int isP(int m) {

int i; for(i=0;i<300;i++) { pjz2+=a[i]; if(isP(a[i])) { pjz1+=a[i]; cnt++; } } pjz2=(pjz2-pjz1)/(300-cnt); pjz1/=cnt; }

69. 请编制程序prog1.c,从文件in.dat中读取200

内部资料

第 32 页 共 45 页

个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx下标为偶数的元素值的算术平均值pj(保留2位小数)。

结果cnt1,cnt2,pj输出到out.dat中。

部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。 #include #include #define N 200

void read_dat(int xx[N]) {

int i,j; FILE *fp;

fp=fopen(\ for(i=0;i<20;i++){ for(j=0;j<10;j++){

fscanf(fp,\ printf(\ }

printf(\ }

fclose(fp); }

void main() {

int i,j,sum;

int cnt1,cnt2,xx[N]; float pj; FILE *fw;

clrscr();

fw=fopen(\ read_dat(xx);

/**********************/ cnt1=cnt2=pj=0; for(i=0;i

pj/=N/2;

/***********************/

printf(\j);

fprintf(fw,\fclose(fw); }

70. 请编制程序prog1.c,从文件IN.DAT中读取200个整数至数组xx中,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj(保留2位小数)。

结果max,cnt,pj输出到OUT.DAT中。

部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。 #include #include #define N 200

void read_dat(int xx[N]) {

int i,j; FILE *fp;

fp=fopen(\ for(i=0;i<20;i++){ for(j=0;j<10;j++){

fscanf(fp,\ printf(\ }

printf(\ }

fclose(fp); }

void main() {

int m,temp,n,sum; int cnt,xx[N],max ; float pj; FILE *fw;

clrscr();

fw=fopen(\

内部资料

第 33 页 共 45 页

read_dat(xx);

/*********************/ max = xx[0]; for (i=1, k=0; i max) max = xx[i]; if (xx[i]%3==0 || xx[i]%7==0) { j += xx[i]; k++; } } for (i=0, cnt=0; i

/*********************/

printf(\fprintf(fw,\fclose(fw); }

71. 请编制程序prog1.c,从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx中值为偶数的算术平均值pj(保留2位小数)。

结果cnt1,cnt2,pj输出到out.dat中。

部分程序、读数据函数read_dat(int xx[200])及输出格式已给出。 #include #include #define N 200

void read_dat(int xx[N]) {

int i,j; FILE *fp;

fp=fopen(\ for(i=0;i<20;i++){ for(j=0;j<10;j++){

fscanf(fp,\ printf(\ } 朱洪教育 printf(\ }

fclose(fp); }

void main() {

int m,sum;

int cnt1,cnt2,xx[N]; float pj; FILE *fw;

fw=fopen(\ clrscr();

read_dat(xx);

/****************************/ cnt1=cnt2=pj=0; for(i=0;i

/****************************/

printf(\j);

fprintf(fw,\fclose(fw); }

72. 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:

1、求出这文件中共有多少个正整数totNum; 2、求这些数中的各位数字之和是偶数的数的个数totCnt,

以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。

部分源程序存在文件prog1.c中。

内部资料

第 34 页 共 45 页

请勿改动主函数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) {

int i, thou, hun, ten, data; int ab; long sum = 0; for (i=0; i 0) totNum++; thou = xx[i]/1000; hun = xx[i]00/100; ten = xx[i]0/10; data = xx[i]; ab = thou+hun+ten+data; if (ab%2 == 0) { totCnt++; sum = sum+xx[i]; } } totPjz = (double)sum/totCnt; }

73. 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数中的各位数字之和是奇数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.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) { int i, thou, hun, ten, data; int ab; long sum = 0; for (i=0; i 0) totNum++; thou = xx[i]/1000; hun = xx[i]00/100; ten = xx[i]0/10; data = xx[i]; ab = thou+hun+ten+data; if (ab%2 == 1) { totCnt++; sum = sum+xx[i]; } } totPjz = (double)sum/totCnt; }

74. 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函

内部资料

第 35 页 共 45 页

数writeDat()把所求的结果输出到文件OUT.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) { int i; for(i=0;xx[i];i++) { if(xx[i]/2%2==1) { totCnt++; totPjz+=xx[i]; } totNum++; } totPjz/=totCnt; }

75. 已知在文件IN.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.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) {

int i; for(i=0;xx[i];i++) { if(xx[i]/2%2==0) { totCnt++; totPjz+=xx[i]; } totNum++; } totPjz/=totCnt; }

三.字符串

76. 程序prog1.c的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。

请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )把结果输出到文件bc1.out中。

例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。

注意:部分源程序存在文件prog1.c文件中。 请勿改动主函数main( )和输出数据函数readwriteDAT()的内容。 #include #include #include #include #define N 81

void readwriteDAT();

内部资料

第 36 页 共 45 页

void chg(char *s) {

int i,j; for(i=0;s[i];i++) if(isalpha(s[i])) { j=s[i]; s[i]++; if(j=='z'||j=='Z') s[i]=j-25; } }

77. 编写一个函数findStr(char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为\asasdfg asd as zx67 asd mklo\,子字符串为\,函数返回值是6。

函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。

注意:部分源程序存在文件prog1.c中。

请勿改动主函数main()和其它函数中的任何内容,仅在函数findStr()的花括号中填入你编写的若干语句。

#include #include #include

int findStr(char *str,char *substr) {

int i,t=0; for(i=0;str[i+1];i++) if(str[i]==substr[0]&&str[i+1]==substr[1]) t++; return t; }

78. 程序prog1.c的功能是:把 s 字符串中的所有字符左移一个位置,串中的第一个字符移到最后。请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )把结果输出到bc2.out文件中。

例如:s字符串中原有内容为:Mn.123xyZ,则调用该函数后,结果为:n.123xyZM。

注意:部分源程序存在文件prog1.c文件中。 请勿改动主函数main( )和输出数据函数朱洪教育 readwriteDAT()的内容。 #include #include #define N 81

void readwriteDAT(); void chg(char *s) {

int i; char c; c=s[0]; for(i=0;s[i+1];i++) s[i]=s[i+1]; s[i]=c; }

79. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT1.DAT中。

例: 原文:Adb.Bcdza 结果:Aec.Bdeab abck.LLhj bcdl.LLik 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include #include #include

char xx[50][80];

int maxline=0;/*文章的总行数*/

int ReadDat(void); void WriteDat(void);

void ConvertCharA(void) {

int i,j,t; for(t=0;t

内部资料

第 37 页 共 45 页

{ j=xx[t][i]; if(j>='a'&&j<='z') xx[t][i]-=1; if(j=='a') xx[t][i]=j+25; } }

80.函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConverCharD(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z。大写字母仍为大写字母,小写字母仍为小写字母,其它字符不变。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT4.DAT中。

例: 原文:Adb.Bcdza abck.LLhj

结果:Aca.Bbcyz zabj.LLgi

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include #include #include char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void ConvertCharD(void) { int i,j; for(i=0;i<50;i++) { for(j=0;xx[i][j];j++) { if(xx[i][j]>='b'&&xx[i][j]<='z') xx[i][j]--; else if(xx[i][j]=='a') xx[i][j]+=25; } 朱洪教育 }

}

81. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrCharJR(),其函数的功能是:以行为单位把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT8.DAT中。

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include #include #include char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void StrCharJR() {

for(i=0;i

xx[i][j]+=xx[i][j]/16;

}

82. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrCharJL(),其函数的功能是:以行为单位把字符串中的所有字符的ASCII值左移4位,低位补0,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT7.DAT中。 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()

内部资料

第 38 页 共 45 页

和输出数据函数writeDat()的内容。 #include #include #include char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void StrCharJL(void) {

int i, j, str; char ch; for (i=0; i32 && ch<=100) xx[i][j] += ch; } } }

83. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数CharConvA(),其函数的功能是:以行为单位把字符串中的最后一个字符的ASCII值右移4位,高位补0后加最后第二个字符的ASCII值,得到最后一个新的字符,最后第二个字符的ASCII值右移4位,高位补0后加最后第三个字符的ASCII值,得到最后第二个新的字符,依此类推一直处理到第二个字符,第一个字符的ASCII值加原最后一个字符的ASCII值,得到第一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT10.DAT中。

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。

请勿改动主函数main()和写函数writeDat()的内容。

#include #include #include 朱洪教育 char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void CharConvA() {

int i,j,t,l; for(i=0;i0;j--) xx[i][j]=(xx[i][j]>>4)+xx[i][j-1]; xx[i][0]+=t; } }

84.函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数CHA(),其函数功能是:以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT9.DAT中.原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.

注意:部分源程序已给出。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include #include #include char xx[50][80] ;

int maxline = 0 ; /* 文章的总行数 */ int ReadDat(void) ; void WriteDat(void) ; void ChA(void) { int i,j,t; for(i=0;i

内部资料

第 39 页 共 45 页

t=xx[i][0]; for(j=0;xx[i][j+1];j++) xx[i][j]+=xx[i][j+1]; xx[i][j]+=t; strrev(xx[i]); } }

四.英文文章代换

85.函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。

替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。(注意中间变量用无符号整型),部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i=130) ; else xx[i][j]=p; } 朱洪教育 }

86. 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS10.DAT中。

替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i

87. 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件pS6.DAT中。

内部资料

第 40 页 共 45 页

替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i=’0’&&p<=’9’)) ; else xx[i][j]=p; } }

88.函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS7.DAT中。

替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()朱洪教育 和输出数据函数WriteDat()的内容。

#include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i=’A’&&xx[i][j]<’Z’||p<=32) ; else xx[i][j]=p; } }

89. 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS5.DAT中。

替代关系:f(p)=p*11mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void);

内部资料

第 41 页 共 45 页

void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i=’a’&&p<=’z’) ; else xx[i][j]=p; } }

90.函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS2.DAT中。

替代关系:f(p)=p*13 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或其ASCII值是偶数,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i

if(p<=32||p%2==0) ; else xx[i][j]=p; } }

91. 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DA中。

替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或f(p)对应的字符是大写字母,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i=’A’&&p<=’Z’) ; else xx[i][j]=p; }

内部资料

第 42 页 共 45 页

}

92.函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS5.DAT中。

替代关系:f(p)=p*11mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是小写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i=’a’&&p<=’z’ ||p<=32) ; else xx[i][j]=p; } }

93.函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS9.DAT中。 朱洪教育 替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是数字字符0至9或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i=’0’&&p<=’9’ ||p<=32) ; else xx[i][j]=p; } }

94.函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS3.DAT中。

替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或其ASCII值是奇数,则该字符不变,否则将f(p)所对应的字符进行替代。

部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()

内部资料

第 43 页 共 45 页

和输出数据函数WriteDat()的内容。 #include #include #include #include

unsigned char xx[50][80];

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void encryptChar() {

int i,j; char p; for(i=0;i

五.其它

95. 函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

注意:部分源程序存放在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include char xx[50][80] ;

int maxline = 0 ; /* 文章的总行数 */ int ReadDat(void) ; 朱洪教育 void WriteDat(void) ; void StrOR(void) {

int i, j, k; char buf[80]; for (i=0; i=0) j--; if (j < 0) continue; xx[i][j] = 0; strcpy(buf, &xx[i][j+1]); k = j = 0; while (xx[i][j]) { while (xx[i][j]!='o' && xx[i][j]) j++; if (!xx[i][j]) { strcat(buf, &xx[i][k]); break; } xx[i][j] = 0; strcat(buf, &xx[i][k]); j++; k = j; } strcpy(xx[i], buf); } }

96. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6.DAT中。

例如:

原文:You He Me I am a student. 结果:Me He You student a am I 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include #include #include #include char xx[50][80];

内部资料

第 44 页 共 45 页

int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); void StrOL(void) { int i,j,t; char pre,cur,w[80],s[80]; for(i=0;i

97. 现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。

部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include char xx[100][11]; int yy[10];

int ReadDat(void); void WriteDat(void); void CountRs(void)

朱洪教育 {

int i,j,t;

for(i=0;i<100;i++) { for(t=0,j=0;j<10;j++) t+=xx[i][j]-'0'; if(t<10&&t>0) for(j=0;j<10;j++) yy[j]+=xx[i][j]-'0'; }

}

98.现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推 :内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 #include char xx[100][11]; int yy[10];

int ReadDat(void); void WriteDat(void); void CountRs(void) {

int j,t,i; for(i=0;i<100;i++) { for(t=0,j=0;j<10;j++) t+=xx[i][j]-'0'; if(t<=5) for(j=0;j<10;j++) yy[j]+=xx[i][j]-'0'; } }

99.现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:内容均为字符

内部资料

第 45 页 共 45 页

0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。 部分源程序存在文件prog1.c中。

请勿改动主函数main()、读数据函数ReadDat()void WriteDat(void) ; void Josegh(void) {

int q[100]={0},i,a,ss; for(i=s-1,a=N,ss=0;a>0;i=(i+1)%N) { ss+=!q[i]; if(ss>=m) 和输出数据函数writeDat()的内容。 #include char xx[100][11]; int yy[10];

int ReadDat(void); void WriteDat(void); void CountRs(void) {

int j,t,i; for(i=0;i<100;i++) { for(t=0,j=0;j<10;j++) t+=xx[i][j]-'0'; if(t>5) for(j=0;j<10;j++) yy[j]+=xx[i][j]-'0'; } }

100.设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数, 报数到第m个人, 此人出圈, 再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,给出这n个人的顺序表p。请考生编制函数Josegh()实现此功能并调用函数WriteDat()把编号按照出圈的顺序输出到OUT.DAT文件中。 注意:第1个出圈的编号存放在p[0]中,第2个出圈的编号存放在p[1]中,直至第n个出圈的编号存放在p[n-1]中。

设 n = 100, s = 1, m = 10进行编程。 注意: 部分源程序存放在PROG1.C中。

请勿改动主函数main()和输出数据函数WriteDat()的内容。 #include #define N 100 #define S 1 #define M 10

int p[100], n, s, m ;

朱洪教育 { } } }

q[i]=1; ss=0; p[--a]=i+1; 内部资料

全国计算机等级考试三级C语言上机100题答案

第1页共45页全国计算机等级考试三级C语言上机100题一.排序类:1.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),
推荐度:
点击下载文档文档为doc格式
6allg6qx418mqar1rud16ehs64cxfu0123d
领取福利

微信扫码领取福利

微信扫码分享