41.请编制程序,要求:将文件IN41.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,并计算数组xx下标为奇数的元素值的算术平均值pj(保留两位小数),结果cnt1、cnt2、pj输出到文件OUT41.DAT中。 void main() {
int cnt1,cnt2,xx[N]; float pj; FILE *fw; int i,k=0; long j=0; cnt1=0; cnt2=0;
system(\
fw=fopen(\w\
read_dat(xx); for(i=0;i if(xx[i]%2) cnt1++; /*求出数组xx中奇数的个数cnt1*/ else cnt2++; /*求出数组xx中偶数的个数cnt2*/ if(i%2==1) { j+=xx[i]; /*计算数组xx下标为奇数的元素值的和*/ k++; } } pj=(float)(j*100/k)/100; /*计算数组xx下标为奇数的元素值的算术平均值*/ printf(\t2=%d,pj=%6.2f\\n\,cnt2,pj); fprintf(fw,\.2f\\n\ fclose(fw); } 42.请编制程序,要求:将文件IN42.DAT中的200个整数读入数组xx中,求出数组xx中最大数max及最大数的个数cnt,并计算数组xx中值能被3整除或能被7整除的数的算术平均值pj(保留两位小数),结果max、cnt、pj输出到文件OUT42.DAT中。 void main() { int i,k,cnt,xx[N],max; float pj; FILE *fw; long j=0; system(\ fw=fopen(\w\ read_dat(xx); max=xx[0]; for(i=1,k=0;i if(xx[i]>max) max=xx[i]; /*找出数组xx中的最大元素*/ if(xx[i]%3==0||xx[i]%7==0) { j+=xx[i]; /*计算数组xx中值能被3整除或能被7整除的数的和*/ k++; } } for(i=0,cnt=0;i pj=(float)(j*100/k)/100; printf(\=%d,pj=%6.2f\\n\t,pj); fprintf(fw,\.2f\\n\ fclose(fw); } 43.已知数据文件IN43.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:如果4位数各位上的数字均是0、2、4、6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT43.DAT文件中。 void jsVal() {int bb[4]; int i,j,k,flag=0; for(i=0;i<200;i++) {bb[0]=a[i]/1000; /*求四位数的千位数字*/ bb[1]=a[i]00/100; /*求四位数的百位数字*/ bb[2]=a[i]0/10; /*求四位数的十位数字*/ bb[3]=a[i]; /*求四位数的个位数字*/ for(j=0;j<4;j++) {if(bb[j]%2==0) /*如果各位上的数字均偶数*/ flag=1; /*则置标志位flag为1*/ else{ flag=0;break; } /*否则置flag为0,退出循环*/ }if(flag==1) /*将满足条件的数存入数组b中,并统计满足条件的个数cnt*/ { b[cnt]=a[i]; cnt++; } } for(i=0;i 45.在文件IN45.DAT中有200个正整数,且每个数均在1 000至9 999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后三位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后三位相等的数,则对这些数按原始4位数据进行升序排列。最后,调用函数writeDat()把结果bb输出到文件OUT45.DAT中。 例如:处理前9012 5099 6012 7025 8088 处理后5099 8088 7025 6012 9012 void jsSort() { int i,j,data; for(i=0;i<199;i++) /*对数组中的四位数按后三位进行从大到小排序*/ for(j=i+1;j<200;j++) { if (aa[i]00aa[j]) /*则要按原四位数的值进行从小到大排序*/ { data=aa[i]; aa[i]=aa[j]; aa[j]=data; } } for(i=0;i<10;i++) bb[i]=aa[i]; /*将排序后的前10个数存入数组b中*/ } 46.在文件IN46.DAT中有200个正整数,且每个数均在1 000至9 999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,将排序后的前10个数依次存入数组b中,如果数组b中出现后三位相等的数值,则对这些数值按原始4位数据进行降序排列。最后,调用函数writeDat()把结果bb输出到文件OUT46.DAT中。 例:处理前6012 5099 9012 7025 8088 处理后9012 6012 7025 8088 5099 void jsSort() { int i,j,data; for(i=0;i<199;i++) /*对数组中的四位数按后三位进行从小到大排序*/ for(j=i+1;j<200;j++) { if (aa[i]00>aa[j]00) /*比较每个数的后三位*/ { data=aa[i]; aa[i]=aa[j]; aa[j]=data; } else if(aa[i]00==aa[j]00) /*若后三位数相等*/ if(aa[i] 47.下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现函数的要求,最后调用函数readwriteDAT()把结果输出到文件OUT47.DAT中。 例如:若输入17,5,则应输出:19,23,29,31,37。 void num(int m,int k,int xx[]) { int Data; int half,i,n=0; Data=m+1; while(n 找出所有100以内(含100)满足i、i+4、i+10都是素数的整数i(i+10也是在100以内)的个数cnt,以及这些整数之和sum。请编制函数 countValue()实现程序要求,最后调用函数 writeDAT()把结果cnt和sum输出到文件 OUT48.DAT中(数值1不是素数)。 void countValue() { int i,count=0,xx[30]; cnt=0; sum=0; for(i=2;i<90;i++) if(isPrime(i)) /*若该数为素数,则将它存入数组xx中,并统计其个数*/ { xx[count]=i; count++; } for(i=0;i if(isPrime(xx[i]+4)&&isPrime(xx[i]+10)) { cnt++; /*统计满足条件的数的个数*/ sum+=xx[i]; /*计算数组xx中满足条件的数的总和*/ } } 49.下列程序的功能是:计算500~800之间素数的个数cnt,并按所求素数的值从小到大的顺序,再计算其间隔加、减之和,即第1个素数—第2个素数+第3个素数—第4个素数+第5个素数??的值sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum输出到文件OUT49. DAT中。 void countValue() { int i,j ,yy[100]; for(i=500;i<800;i++) { for(j=2;j<= i/2;j++) if(i%j==0) break; /*若该数不是素数,则退出此循环*/ if(j>= i/2) /*若该数是素数,则将该数存入数组yy中,并统计其个数*/ { yy[cnt]=i; cnt++; } } for(i=0,j=-1;i } 51.下面程序的功能是: 在三位整数(100至999)中寻找符合下面条件的整数,并依次从小到大存入数组中;它既是完全平方数,又有两位数字相同,例如144、676等。请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回,最后调用函数writeDat()把结果输出到文件OUT51.DAT中。 int jsvalue(int bb[]) { int i,j,k=0; int hun,ten,data; for(i=100;i<=999;i++) { j=10; while(j*j<=i) { if(i==j*j) { hun=i/100; data=i-hun*100; ten=data/10; data=data-ten*10; if(hun==ten||hun==data||ten==data) { bb[k]=i; k++; } } j++; } } return k; } 52.下面程序的功能是:寻找并输出11至999之间的数m,它满足m、m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11、m2=121、m3=1331皆为回文数。请编制函数int jsvalue(long n)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件OUT52.DAT中。 int jsvalue(long n) { int i,strl,half; char xy[20]; ltoa(n,xy,10); strl=strlen(xy); half=strl/2; for(i=0;i if(i>=half) return 1; else return 0; } 53.下面程序的功能是:选出5 000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些4位自然数的个数cnt及这些数的和sum。请编写函数countValue()实现程序的要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT53.DAT中。 oid countValue() { int i,qw,bw,sw,gw; for(i=5000;i>=1000;i--) { qw=i/1000; /*求四位数的千位数字*/ bw=i00/100; /*求四位数的百位数字*/ sw=i0/10; /*求四位数的十位数字*/ gw=i; /*求四位数的个位数字*/ if(qw+bw==sw+gw&& qw+bw==(gw-qw)*10) { cnt++; sum+=i; } /*统计满足条件的数的个数并对其求和*/ } } 54.已知在文件IN54.DAT中存有N个(个数<200)实数,函数ReadDat()读取这N个实数并存入数组xx中。请编制函数Calvalue(),其功能要求:(1)求出这N个实数的平均值aver;(2)分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数WriteDat()把所求的结果输出到文件OUT54.DAT中。 void Calvalue(void) { int i; double x,sum=0; for (i=0;i sumint=sumint+(int)xx[i]; x=xx[i]-(int)xx[i]; sumdec=sumdec+x; sum=sum+xx[i]; } aver=sum/N; } 55.已知在文件IN55.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数Calvalue(),其功能要求:(1)求出文件中共有多少个正整数totNum;(2)求出这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT55.DAT void Calvalue(void) { int i,thou,hun,ten,data; int ab; float sum=0; for(i=0;i 中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是:(1)求出这个文件中共有多少个正整数totNum。(2)求出这些数中的各位数字之和是奇数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz。最后,调用函数WriteDat()把所有结果输出到文件OUT56.DAT中。 void CalValue(void) { int i,thou,hun,ten,data,ab; for(i=0;i 57.已知在文件IN57.DAT58.已知在文件IN58.DAT59.请编制函数中存有若干个(个数中存有若干个(个数ReadDat(),实现从文件<200)4位数字的正整<200)四位数字的正整IN59.DAT中读取1 000个数,函数ReadDat()是读数,函数ReadDat()读取十进制整数到数组xx中;取这若干个正整数并存入这若干个正整数并存入数请编制函数Compute()分数组xx中。请编制函数组xx中。请编制函数别计算出xx中偶数的个数CalValue(),其功能要求Calvalue(),其功能要even、奇数的个数odd、是:(1)求出这个文件求:(1)求出这个文件奇数的平均值ave1、偶数中共有多少个正整数中共有多少个正整数的平均值ave2以及所有偶totNum。(2)求这些数totnum;(2)求这些数数的方差totfc的值,最右移一位后,产生的新数右移1位后,产生的新数后调用函数WriteDat()把是奇数的数的个数是偶数的数的个数结果输出到OUT59.DAT文totCnt,以及满足此条件totcnt,以及满足此条件件中。 的这些数(右移前的值)的这些数(右移前的值)计算方差的公式如下: 60.请编制函数 ReadDat(),实现从文件IN60.DAT中读取1 000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd、奇数的平均值 ave1、偶数的平均值ave2及所有奇数的方差totfc的值。最后调用函数 WriteDat()把结果输出到OUT60.DAT文件中。 计算方差的公式如下: 的算术平均值totPjz。最后调用函数WriteDat()把所有结果输出到文件OUT57.DAT中。 void CalValue(void) { int i,data; for(i=0;i 设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。 原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2 000)。 void Compute(void) { int i,yy[MAX]; for(i=0;i<1000;i++) if(xx[i]%2!=0) { odd++; ave1+=xx[i]; yy[odd-1]=xx[i]; } else { even++; ave2+=xx[i]; } ave1/=odd; /*求数组xx中所有奇数的平均值*/ ave2/=even; /*求数组xx中所有偶数的平均值*/ for(i=0;i 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机等级考试三级网络技术题库(3)在线全文阅读。
相关推荐: