}
*****************************************************************************
题目22(整数各位数字运算题 )
已知数据文件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。 jsValue()
{int i,qw,bw,sw,gw,n=0; for(i=0;i<300;i++)
{qw=a[i]/1000; bw=a[i]00/100; sw=a[i]0/10; gw=a[i]; if(qw-bw-sw-gw>0) {cnt++;pjz1+=a[i];} else {n++;pjz2+=a[i];} }
if(cnt==0) pjz1=0; else pjz1/=cnt; if(n==0) pjz2=0; else pjz2/=n;
}
*******************************************************************************
☆题目23(整数各位数字运算题)
已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。
例如:9123,9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+1。 jsValue()
{ int i,j,qw,bw,sw,gw; for(i=0;i<300;i++)
{ qw=a[i]/1000; bw=a[i]/100; sw=a[i]0/10; gw=a[i]; if((qw-bw-sw-gw)>0) b[cnt++]=a[i]; }
for(i=0;i for(j=i+1;j if(b[i]>b[j]) { qw=b[i];b[i]=b[j];b[j]=qw;} } 第 11 页 共 52 页 ******************************************************************************* 题目24(整数各位数字运算题) 下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数cnt以及这些数的和sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT13.DAT中。 void countValue() {int i,thou,hun,ten,data; for(i=1000;i<5000;i++) { thou=i/1000; hun=i00/100; ten=i0/10; data=i; if(thou+hun==ten+data&&thou+hun==(data-thou)*10) {cnt++;sum+=i;} } } ************************************************************************ ☆题目25(整数各位数字统计运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 void jsVal() {int i,j,thou,hun,ten,data; for(i=0;i<200;i++) {thou=a[i]/1000; hun=a[i]00/100; ten=a[i]0/10; data=a[i]; if(thou&&thou%2&&hun%2&&ten%2&&data%2) b[cnt++]=a[i]; } for(i=0;i if(b[i] } ********************************************************************************** ★☆题目26(整数各位运算题) 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函 第 12 页 共 52 页 数jsVal(),其功能是:把一个四位数的千位数字上的值加上十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 void jsVal() {int i,j,thou,hun,ten,data; for(i=0;i {thou=a[i]/1000; hun=a[i]/100; ten=a[i]0/10; data=a[i]; if((thou+ten==hun+data)&&a[i]%2==0) b[cnt++]=a[i]; } for(i=0;i if(b[i]>b[j]) {thou=b[i];b[i]=b[j];b[j]=thou;} } **************************************************************************** 题目27(整数各位数运算题) 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:1239,9-1-2-3>0,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 8129,9-8-1-2<0,则该数不满足条件计算平均值pjz2。 jsValue() {int i,j,thou,hun,ten,data,n=0; for(i=0;i<300;i++) {thou=a[i]/1000; hun=a[i]/100; ten=a[i]0/10; data=a[i]; if(data-thou-hun-ten>0) { cnt++; pjz1+=a[i];} else { n++; pjz2+=a[i];} } if(cnt==0) pjz1=0; else pjz1/=cnt; if(n==0) pjz2=0; else pjz2/=n; } ************************************************************************** ☆题目28(整数各位数运算题) 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出 第 13 页 共 52 页 到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+1<>2+9,则该数不满足条件计算平均值pjz2。 jsValue() {int i,thou,hun,ten,data,n=0; for(i=0;i<300;i++) {thou=a[i]/1000; hun=a[i]00/100; ten=a[i]0/10; data=a[i]; if(thou+hun==ten+data) {cnt++;pjz1+=a[i];} else {n++;pjz2+=a[i];} } if(cnt==0) pjz1=0; else pjz1/=cnt; if(n==0) pjz2=0; else pjz2/=n; } ************************************************************************ ☆题目29(整数各位运算统计题) 已知数据文件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。 jsValue() { int i,gw,sw,bw,qw,cnt2=0; for(i=0;i<300;i++) {gw=a[i]; sw=a[i]/10; bw=a[i]/100; qw=a[i]/1000; if((qw+gw)==(sw+bw)) { cnt++;pjz1+=a[i]; } else { cnt2++;pjz2+=a[i]; } } if(cnt==0) pjz1=0; else pjz1/=cnt; if(cnt2==0) pjz2=0; else pjz2/=cnt2; } **************************************************** 第 14 页 共 52 页 ☆题目30 请编写一个函数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()的内容。 int isP(int m) { int i; for(i=2;i void num(int m,int k,int xx[]) { int s=0; for(m=m+1;k>0;m++) if(isP(m)) { xx[s++]=m; k--;} } 题目31 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后main( )函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 void jsVal() { int i,j,qw,bw,sw,gw; for(i=0;i { qw=a[i]/1000; bw=a[i]/100; sw=a[i]0/10; gw=a[i]; if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0) b[cnt++]=a[i]; } for(i=0;i if(b[i] } ****************************************************************************** 第 15 页 共 52 页