c语言三级网络_第1页
c语言三级网络_第2页
c语言三级网络_第3页
c语言三级网络_第4页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.已知在文件IN.DAT中存有!00个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长整型)五部分组成。其中:金额=单价・数量计算得出。函数ReadDatO是读取这100个销售记录并存入结构数组sell中。请编制函数SortDatO,其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中。最后main()函数调用函数WriteDat()把结果输山到文件OUT10.DAT中。提示:若中间变量为PROtemp,则可以直接使用结构赋值语句进行解题;产品名称比较请用函数stremp进行解题。例如:sell[i]=temp;voidSortDat(){inti,j;PROcell;for(i=0;i<99;i++)for(j=i+l;j<100;j++)if(stremp(sei1[i].me,sell[j].me)>0){cell=sell[i];sell[i]=sell[j];sell[j]=cell;for(i=0;i<99;i++)for(j=i+l;j<100;j++)if((stremp(sei1[i].me,sell[j].me)==0)&&(sell[i].je<sell[j].je)){cell=sell[i];sell[i]=sell[j];sell[j]=cell;.函数ReadDatO实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSortO,其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。例如:位置 01234567源字符串hgfedeba则处理后字符串hafedebg本题for循环条件里采用的步长为2,这是因为要求只对下边为奇数的元素进行判断。程序使用三重循环来实现要求的功能。外层的while循环用来实现行间遍历,内层的二重for循环用来遍历行内下标为奇数的元素。voidjsSort(){inti,j,k,1,p,temp; /・定义局部变量・/i=0;while(i<20)i=0;while(i<20)/*判断i的值若小于20,则执行内嵌语句・/j=strlen(xx[i]); /*strlen(xx[i])函数的功能是统计第i行字符串中字符的个数・/for(k=l;k<j;k=k+2){p=k;for(l=k+2;Kj;1=1+2)if(xx[i][l]<xx[i][p]) /・比较两个字符的ASCII值按从小到大的顺序进行排序处理P=1;if(p!=k){temp=xx[i][p];xx[i][p]=xx[i][k];xx[i][k]=temp;})i++;.已知在文件IN.DAT中存有!00个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长整型)五部分组成。其中:金额=单价・数量计算得出。函数ReadDatO是读取这100个销售记录并存入结构数组sell中。请编制函数SortDatO,其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件0UT8.DAT中。#defineMAX100typedefstruct(chardm[5];/・产品代码・/charmc[ll];/・产品名称・/intdj;/*单价・/intsi;/・数量・/longje;/*金额*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){inti,j;PROcell;for(i二〇;iく99;i++)for(j=i+l;j<100;j++)if(atoi(sell[i].dm)<atoi(sell[j].dm)){cell=sell[i];sell[i]=sell[j];sell[j]=cell;for(i=0;i<99;i++)

for(j=i+l;j<100;j++)if((atoi(sell[i].dm)-atoi(sell[j].dm))&&(sell[i].je<sel1[j].je)){cell=sell[i];sell[i]=sell[j];sell[j]=cell;.下列程序progl.c的功能是:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。最后调用函数writeDat()把结果输出到文件。ut.dat中。本题采用for循环结合if语句来实现功能。循环的起始点为10,终止点32。因为此二者的平方恰好包括了100和!000e在循环体内计算出变量a的值,这样可以保证每次检査的数都是平方数。然后再得出此数的各位数值。如果符合条件则将其传递给数组bb。intjsValue(intbb[]){intjsValue(intbb[]){inti,a,d,e,c,p;P=0;for(i=10;i<32;i++){a=i*i;if(a>=100&&a<1000){c=a/100;e=(a-c*l00)/10;d=a-c*100-e*10;if((c==e)II(c=d)II(d=e)){bb[p]=a;P++;}/・定义局部变量・//・设置循环起始值和终止值・//・设定检查的数是平方数・//・判断a的取值范围・//・求数值的百位数的数字・//・求数值的十位数的数字・//・求数值的个位数的数字・//*判断数值是否有两位数字相同・//・将符合条件的数值存入数组中・/returnp——;.已知在文件IN.DAT中存有!00个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长整型)五部分组成。其中:金额=单价・数量计算得出。函数ReadDatO是读取这100个销售记录并存入结构数组sell中。请编制函数SortDatO,其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT4.DAT中。^defineMAX100typedefstruct{chardm[5];/・产品代码・/charmc[ll];/・产品名称・/intdj; /・单价・/intsi; /・数量・/longje;/・金额・/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){inti,j;PROcell;for(i=0;iく99;i++)for(j=i+l;j<100;j++)if(sell[i].je<sell[j].je){cell=sell[i];sell[i]=sell[j];sell[j]=cell;}for(i二〇;iく99;i++)for(j=i+l;j<100;j++)if((atoi(sell[i].dm)<atoi(sell[j].dm))&&(sell[i].je==sell[j].je)){cell=sell[i];sell[i]=sell[j];sell[j]=cell;.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长整型)五部分组成。其中:金额=单价・数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDatO把结果输出到文件OUT2.DAT中。#defineMAX100typedefstruct{chardm[5];/・产品代码・/charmc[ll];/*产品名称*/intdj;/*单价・/intsi;/・数量・/longje;/・金额・/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){inti,j;PROcell;for(i=0;i<99;i++)for(j=i+1;jく100;j++)if(sell[i].je>sell[j].je){cell二sell[i];sell[i]=sell[j];sell[j]=cell;}for(i二〇;iく99;i++)for(j=i+1;jく100;j++)if((atoi(sell[i].dm)<atoi(sell[j].dm))&&(sel1[i].je==sell[j].je)){cell=sell[i];sell[i]=sell[j];sell[j]=cell;.某级数的前两项Al=l,A2=l»以后各项具有如下关系:An=An-2+2An-l下列程序progl.c的功能是:要求依次对于整数M=100,1000和1000〇求出对应的n值,使其满足:Sn〈M且Sn+1>=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[〇],b[l]和b[2]中,请编制jsValueO函数来实现此功能,最后调用函数writeDat()把数组b口中的值输出到out.dat文件中。jsValueO{inti,al,a2,a,Sn;al=l;a2=l;Sn=al;i=l;while(Sn<100){Sn=Sn+a2;a=al;al=a2;a2=a+2*al;if(Sn<100)i++;}b[0]=i;al=l;a2=l;Sn=al;i=l;while(Sn<1000){Sn=Sn+a2;a=a1;a1=a2;a2=a+2*a1;if(Sn<1000)i++;}b[l]=i;al=l:a2=l;Sn=al;i=l;while(Sn<10000){Sn=Sn+a2;a=al;al=a2;a2=a+2*al;if(Sn<10000)i++;}b[2]=i;}.函数ReadDatO实现从文件IN.DAT中读取ー篇英文文章存入到字符串数组xx中,请编制函数CharConvAO,其函数的功能是:以该文章中的行为单位把字符串中的最后一个字符的ASCII值右移4位二进制位,高位补〇后加最后第二个字符的ASCII值,得到最后ー个新的值,最后第二个字符的ASCI!值右移4位二进制位,髙位补〇后加最后第三个字符的ASCII值,得到最后第二个新的值,依此类推一直处理到第二个字符,注意:第一个字符的ASCII值加原最后ー个字符的ASCII值,得到第一个新的值。得到的新值分别存放在原字符串对应的位置ヒ。之后把已处理的结果仍按行重新存入数组xx中。最后main。函数调用函数writeDat()把结果xx输出到文件OUT10.DAT中.原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按字符处理。本题主要是考察移位操作符》的使用。另外,第一个元素先用变量P保存,然后在程序结尾单独处理。voidCharConvA(){inti,j,k,p; /・定义局部变量・/i=0;while(i<maxline) /・判断i是否小于文章的总行数・/{j=strlen(xx[i]);/*strlen(xx[i])函数的功能是统计第i行字符串中字符的个数・/p=xx[i][0]; /*将第一个元素先保存在变量P中・/xx[i][0]=xx[i][0]+xx[i][j-l]; /*得到第一个的新字符・/for(k=j-l;k>=2;k—){xx[i][k]=(xx[i][k]»4)+xx[i][k-l];} /・利用移位操作符求出各个新字符・/xx[i][l]=(xx[i][1]»4)+p; /*得到第二个的新字符・/i++;}).下列程序的功能是:找出所有100以内(含100)满足I,1+4,1+10都是素数的整数I(1+10也在100以内)的个数ent以及这些I之和sum。请编写函数countValueO实现程序要求的功能,最后调用函数writeDat()把结果ent和sum输出到文件out.dat中〇在循环条件中只需使用i+10<100就包含了其他的条件。voidcountValueO{inti: /・定义局部变量・/i=2; /・为变量赋初值・/entニ〇;sum=0;while(i+10<100) /・设置循环结束条件为:i+10>100*/{if((isPrime(i)!=0)&&(isPrime(i+4)!=0)&&(isPrime(i+10)!=0))/・调用isPrime函数判断i,i+4,i+10的值是否都是素数*/{cnt=cnt+l; /*统计满足条件的数的个数・/sum=sum+i; /・计算满足条件的数之和・/}i=i+l;}}.函数ReadDatO实现从文件IN.DAT中读取・篇英文文章存入到字符串数组xx中,请编制函数StrCharJR0,其函数的功能是:以该文章中的行为单位把字符串中的所有字符的二进制ASCII值右移4位,高位补〇,然后把右移后的字符ASC・值再加上原字符的ASCII值,

得到新的字符仍存入原字符串对应的位置上。之后把己处理的结果仍按行甫新存入字符串数组XX中,最后调用函数writeDatO把结果XX输出到文件0UT8.DAT中。例如:"z”对应的ASCII值为7AH,二进制值为01111010,右移4位后为00000111,加上原来"z"的ASCII值01111010得到10000001结果。原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按字符处理。本题考察的重点是是否知道使用移位操作符>。并使用二重循环来遍历输入数据。voidStrCharJR(){inti,j; /・定义局部变量・/i=0;while(i<maxline) /・判断i是否小于文章的总行数・/{for(j=0;j<(int)strlen(xx[i]);j++)/*strlen函数的功能是统计第i行字符串中字符的个数・/xx[i][j]=xx[i][j]+(xx[i][j]»4); /・利用移位操作符求出各个新字符・/1++;.函数ReadDatO实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOLO,其函数的功能是:以读入文章的行为单位,以空格或标点符号(数据文件中仅含‘,’或’.’作为标点符号)作为分隔符,对行中所有单词进行倒排,单词间仍以空格作为分隔符,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组XX中,最后main。函数调用函数writeDatO把结果xx输出到文件0UT6.DAT中。例如:原文:YouHeMeIamastudent.Ilikestudy.结果:MeHeYoustudylikeIstudentaamI原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。本程序首先定义了一个字符串,即ー个长度为80的数组line。然后在逐行的循环中将每一行从第一个单词装入line。这样就可以实现按单词倒序排列。然后在行内循环结束的时候将整个字符串复制给xx[i]。程序中达到判断单词是否结束功能的函数是isalphao实现装入功能的函数是strcat,即连接字符串函数。voidStrOL(void){intn;charline[80]; /・字义ー个长度为80的字符型数组・/inti;for(i=0;i<maxline;i++) /・设置循环初始值和终止值・/{line[0]=0;n=strlen(xx[i]);/*strlen函数的功能是统计第i行字符串中字符的个数・/while(—n)if(!if(!isalpha(xx[i][n]))/・调用isalpha函数判断单词是否结束・/strcatdine,xx[i]+n+1);/*strcat函数的功能是实现字符串的连接*/strcat(line,"");xx[i][n]=0;})strcat(line,xx[i]);strcpy(xx[i],line);/*strcpy函数的功能是将后一字符串拷贝到前一字符中・/)}.函数ReadDatO实现从文件IN.DAT中读取・篇英文文章存入到字符串数组xx中,请编制函数ConverCharDO,其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个小写字母,如果是字母a,则改写成字母z。大写字母仍为大写字母,其它字符不变。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDatO把结果xx输出到文件0UT4.DAT中。例:原文:Adb.Bcdzaabck.LLhj结果:Aca.Bbcyzzabj.LLgi原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。部分源程序存在文件prog1.c中。请勿改动主函数main。、读数据函数ReadDat()和输出数据函数writeDat()的内容。本题只需要对小写字母进行处理,因此只需要在判断循环中区分是否为a,如果是则用z代替。voidConvertCharD(void){inti,j,n,p;i=0;while(i<maxline) /・判断i是否小于文章的总行数・/{n=strlen(xx[i]); /*strlen函数的功能是统计第i行字符串中字符的个数・/for(j=0:j<n;j++)(if(xx[i][j]>97&&xx[i][j]«22) /・判断字符是否是除a以外的小写字母・/{p=xx[i][j]-l; /・根据题面要求改写小写字母・/xx[i][j]=p;}elseif(xx[i][j]=97) /・判断字符若是a,则改写为z*/xx[i][j]=122:i++;

.下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(intm,intk,intxx口)实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。例如:若输入175则应输出:1923293137。部分源程序存在文件progl.c中。请勿改动主函数main。和输出数据函数readwriteDat。的内容。本题在while循环中采用的条件变量是已找到的素数的个数变量k。如果找到的数字是素数,则将其传递给数组XX,voidnum(intm,intk,int数,则将其传递给数组XX,voidnum(intm,intk,int{inti,p,r;p=m;r=0;i=0;while(i<k){p=p+l;if(isP(p)!=0)

{xx[r++]=p;i=i+l;)数组的下标使用的自增运算符。xx[])/*定义局部变量・//*判断i是否小于是//・调用isP函数判断p是否是素数*//・将p的值传递给数组XX*/}).函数ReadDatO实现从文件IN.DAT中读取ー篇英文文章存入到字符串数组xx中,请编制函数SortCharDO,其函数的功能是:以行为单位对字符按ASCII码从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中最后mainO函数调用函数writeDatO把结果xx输出到文件OUT2.DAT中。例:原文:dAe,BfC.CCbbAA结果:fedCBA.,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。本题采用了二重循环的冒泡排序法来实现行内的排序。而while循环则用来实现行间的遍历。voidSortCharD(void){inti,j,p,k,temp; /・定义局部变量・/i=0;while(i<maxline) /・判断i是否小于文章的总行数・/(for(j=0;j<(int)strlen(xx[i])-l;j++)/*strlen函数的功能是统计第i行字符串中字符的个数・/{p訂;for(k=j+l;k<(int)strlen(xx[i]);k++) /・此循环求出第i行中ASCII值最大的字符・/if(xx[i][k]>xx[i][p])P=k;if(p!=j) /・按从大到小的顺序进行排序・/{temp=xx[i][p];xx[i][p]=xx[i][j];xx[i][j]=temp:

i++;.下列程序的功能是:把s字符串中的所有字母改写成该字母的下一个字符,字母z改写成字母a»要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg(char*s)实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。和Z单独处理。voidchg(char*s){inti,j;charb[81];strcpy(b,s);i=strlen(b);for(j=0;j<i;j++)例如:s字符串中原有的内容为:Mn.123Zxy,则和Z单独处理。voidchg(char*s){inti,j;charb[81];strcpy(b,s);i=strlen(b);for(j=0;j<i;j++)/・定义局部字符型数组b*//*利用strcpy函数将s字符串拷贝到b中・//*利用strlen函数将b中字符的个数赋值给i*//*实现行内的遍历・/if((b[j]>=97&&b[j]<122)II(b[j]>=65&&b[j]<90))/・判断字符是否为除了z和Z之外的字母・/b[j]=b[j]+l;elseif(b[j]==122)b[j]=97;elseif(b[j]==90)b[j]=65;strcpy(s,b);/・将第j个字母改为该字母的下b[j]=b[j]+l;elseif(b[j]==122)b[j]=97;elseif(b[j]==90)b[j]=65;strcpy(s,b);/・判断该字母是否为z*//・将该字母改为a*//・判断该字母是否为Z*//・将该字母改为A*//*利用strcpy函数将b字符串扌考贝到s中・/.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制ー函数jsValueO,其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数ent,再求出所有满足此条件的四位数平均值pjzl,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到out.dat文件。例如:6712,6+2=7+1,则该数满足条件计算平均值pjzl,且个数cnt=cnt+l。8129,8+901+2«则该数不满足条件计算平均值Pjz2.程序中已定义数组:a[300],已定义变量:ent,pjzl,pjz2o本题使用ー个for循环来遍历数组a中的元素。在循环体内使用if语句来判断是否符合要求,然后将其直接累加进平均值中。同时记录满足条件的元素数。在循环结朿后得出最后的平均值。jsValue(){inti,b,c,d,e;pjzl=0;pjz2=0;for(i=0;i<300;{inti,b,c,d,e;pjzl=0;pjz2=0;for(i=0;i<300;i++){b=a[i]/1000;c=(a[i]-b*1000)/100;d=(a[i]-b*1000-c*100)/10;/*定义局部变量・//・设置循环的初始值和终止值・//*求出某四位数的千位数・//・求出某四位数的百位数・//・求出某四位数的十位数・/e=a[i]-b*1000-c*100-d*10;if((b+e)==(c+d))值・/{cnt++;pjzl=pjzl+a[i]e=a[i]-b*1000-c*100-d*10;if((b+e)==(c+d))值・/{cnt++;pjzl=pjzl+a[i];}else{pjz2=pjz2+a[i]:}}if(cnt==O)pjzl=O;elsepjzl=pjzl/cnt;if((300-cnt)==0) pjz2=0;elsepjz2=pjz2/(300-cnt);/・判断千位数加个位数的值是否等于百位数加十位数的/・统计符合条件的数的个数・//・计算符合条件的数的和・//・计算不符合条件的数的和・//・计算符合条件的数的平均值・//・计算不符合条件的数的平均值・/.现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选屮情况,第二位表示第二个人的选中情况,依此类推:内容均为字符。和1,1表示此人被选中,〇表示此人未被选中,若一ー张选票人数小于等于5个人时被认为无效的选票。给定函数ReadDatO的功能是把选票数据读入到字符串数组xx中。请编制函数CountRsO来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。把结果yy输出到文件OUT.DAT中。voidCountRs(void){inti,j,ent:char*pch;for(i=0;i<100;i++){ent=0;pch=xx[i];voidCountRs(void){inti,j,ent:char*pch;for(i=0;i<100;i++){ent=0;pch=xx[i];while(*pch){if(*(pch++)==T')/・定义指向字符型变量的指针变量・//・设置循环的初始值和终止值・//・统计这张选票所选的人数・/cnt++;)/・小于等于5人,无效・/・小于等于5人,无效・//・统计每个人的选票数・/for(j=0;xx[i][j];j++){if(xx[i][j]=T')yy[j]++;} /*将得票数依次存入yy数组中・/.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValueO,其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数ent,再求出所有满足此条件的四位数平均值pjzl,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。

例如:7153,7+1=5+3,则该数满足条件计算平均值pjzl,且个数cnt=cnt+l。8129,8+1!=2+9(则该数不满足条件计算平均值pjz2。部分源程序存在文件progl.c中。程序中已定义数组:a[300],已定义变量:cnt,pjzl,pjz2。请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。本题使用一个for循环来遍历数组a中的元素。在循环体内使用if语句来判断是否符合要求,然后将其直接累加进平均值中。同时记录满足条件的元素数。在循环结束后得出最后的平均值。其中ent如果为O则会出现除数为0的情况,所以要单独处理。本题使用ー个for循环来遍历数组a中的元素。在循环体内使用if语句来判断是否符合要求,然后将其宜接累加进平均值中。同时记录满足条件的元素数。在循环结束后得出最后的平均值。其中ent如果为0则会出现除数为0的情况,所以要单独处理。jsValue(){inti,b,c,d,e;pjzl=0;pjz2=0;jsValue(){inti,b,c,d,e;pjzl=0;pjz2=0;for(i=0;i<300;i++){b=a[i]/1000;c=(a[i]-b*1000)/100;d=(a[i]-b*1000-c*100)/10;e=a[i]-b*1000-c*100-d*10;if((b+c)==(d+e))值・/{cnt++;pjzl=pjzl+a[i];}else(pjz2=pjz2+a[i];])if(cnt=0)pjzl=O;elsepjzl=pjzl/cnt;if((300-cnt)==0)pjz2=0;elsepjz2=pjz2/(300-cnt);/・定义局部变量・//・设置循环的初始值和终止值・//・计算出四位数的千位数・//・计算出四位数的百位数・//・计算出四位数的十位数・//・计算出四位数的个位数・//・判断千位数加百位数的值是否等于十位数加个位数的/・统计符合条件的数的个数・//・计算符合条件的数的和・//・计算不符合条件的数的和・//・计算符合条件的数的平均值・//・计算不符合条件的数的平均值・/.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制ー函数jsValueO,其功能是:求出千位数上的数减百位数减十位数上的数减个位数上的数大于零的个数ent,再求出所有满足此条件的四位数平均值pjzl,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat。把结果输出到。ut.dat文件。例如:9123,9-1-2-3>0,则该数满足条件计算平均值pjzl,且个数cnt=cnt+!〇9812,9-8-1-2<0,则该数不满足条件计算平均值pjz2。

部分源程序存在文件progl.c中。程序中已定义数组:a[300]»已定义变量:cnt,pjzl,pjz2。请勿改动主函数main。、读函数ReadDat()和写函数writeDat()的内容。本题使用ー个for循环来遍历数组a中的元素。在循环体内使用if语句来判断是否符合要求,然后将其直接累加进平均值中。同时记录满足条件的元素数。在循环结朿后得出最后的平均值。其中ent如果为〇则会出现除数为〇的情况,所以要单独处理。jsValue(){inti,b,c,d,e;pjzl=0;pjz2=0;for(i=0;i<300;i++)jsValue(){inti,b,c,d,e;pjzl=0;pjz2=0;for(i=0;i<300;i++){b=a[i]/1000;c=(a[i]-b*1000)/100;d=(a[i]-b*1000-c*100)/10;e^a[i]-b*1000-c*100-d*10;if((b-c-d-e)>0)于零・/{cnt++;pjzl=pjzl+a[i];)else/・定义局部变量・//・设置循环的初始值和终止值・//・计算出四位数的千位数・//・计算出四位数的百位数*//・计算出四位数的十位数・//・计算出四位数的个位数・//・判断千位数减百位数减十位数减个位数的值是否大/・统计符合条件的数的个数・//*计算符合条件的数的和・/pjz2=pjz2+a[i];)/・计算不符合条件的数的和・//・计算符合条件的数的平均值・//・计算符合条件的数的平均值・//・计算不符合条件的数的平均值・/elsepjzl=pjzl/cnt;if((300-cnt)==0)pjz2=0;elsepjz2=pjz2/(300-cnt);.请编制函数ReadDat()实现从文件IN.DAT中读取!000个十进制整数到数组xx中;请编制函数Compute。分别计算出xx中奇数的个数odd,奇数的平均值avel,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。计算方差的公式如下:设N为奇数的个数,xx[i]为奇数,avel为奇数的平均值。原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于〇且小于等于2000)本题首先计算奇数和偶数各自的累加和,同时记录奇数的个数。然后在计算平均值的时候要注意odd为0的情况要单独处理。方差则用ー个for循环来计算。/*定义局部变量和数组/*定义局部变量和数组・/avel=0;ave2=0;for(i=0;i<MAX;i++)if(xx[i]%2!=0){yy[odd]=xx[i];odd++;avel=avel+xx[i];}else{even++;ave2=ave2+xx[i];}if(odd==0)avel=O;elseavel=avel/odd;if(even==O)ave2=0;else/・设置循环的初始值和终止值・//・判断此数是否为奇数・//・将奇数存入数组yy中・//・统计奇数个数・//・计算奇数之和・//・统计偶数个数・//・计算偶数之和・//・计算奇数的平均值・//*计算偶数的平均值・/ave2=ave2/even;for(i=0;i<odd;i++) /・计算所有奇数的方差值・/totfc=totfc+((yy[i]_avel)*(yy[i]-avel))/odd;21.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制ー函数jsValueO,其功能是:求出所有这些四位数是素数的个数ent,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat。把结果输出到out.dat文件。例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+是9812是非素数,则该数不满足条件忽略。部分源程序存在文件progl.c中。程序中已定义数组:a[300],b[300],已定义变量:ent请勿改动主函数main。、读函数ReadDat()和写函数writeDat()的内容。本题首先遍历数组a的各元素。如果是素数就将其传递给数组b。然后在数组b中使用冒泡排序将其从小到大排列。jsValue(){inti,j,k;for(i=0;i<300;i++)

if(isP(a[i])!=0)

{b[cnt]=a[i];cnt=cnt+l;}for(i=0:i<cnt;i++)/*定义局部变量・//・设置初始值和终止值・//*调用isP函数判断a[i]是否是素数・//・将素数存入数组b中・//・统计素数的个数・//・使用冒泡法将数组b中的数按从小到大的顺序进行排序for(j=i;j<cnt;j++)if(b[i]>b[j]){k=b[i];b[i]=b[j];b[j]=k;}jsValue()jsValue(){inti,j,p,temp,f,c,d,e;i=0;while(i<300){f=a[i]/1000;c=(a[i]-f*1000)/100;d=(a[i]-f*1000-c*100)/10;e^a[i]-f*1000-c*100-d*10;if((e-f-c-d)>0)于零・/{b[cnt]=a[i];cnt++;}i++;}for(i=0;i<cnt-l;i++){P=i;for(j=i+l;j<cnt;j++)if(b[j]>b[p])/・将数组b中的数按从大到小的顺序排序・/22.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制ー函数jsValueO,其功能是:求出个位数上的数减千位数上的数减百位数上的数减卜位数上的数大于零的个数ent,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数writeDatO把结果输出到out.dat文件。例如:1239,9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+l。8129,9-8-1-2<0,则该数不满足条件忽略。部分源程序存在文件progl.c中。程序中已定义数组:a[300],b[300],已定义变量:ent请勿改动主函数main。、读函数ReadDat()和写函数writeDat()的内容。本题首先使用while循环遍历数组a的各元素,如果符合条件则将其传递给数组b,同时记入计数变量ent中。然后在数组b中使用冒泡排序法将b的元素按降序排列。/・定义局部变量・//*若i小于300,则执行内嵌语句・//・计算出四位数的千位数・//・计算出四位数的百位数*//・计算出四位数的十位数・//・计算出四位数的个位数・//・判断个位数减千位数减百位数减十位数的值是否大/・将符合条件的数存入数组b中・//・统计符合条件的数的个数・/p=j;if(p!=i){temp=b[p];b[p]=b[i];b[i]=temp;}23.已知在文件IN.DAT中存有若干个(个数〈200)23.已知在文件IN.DAT中存有若干个这若干个正整数并存入数组xx中。请编制函数CalValueO,其功能要求:1、求出这文件中共有多少个正整数totNum:2、求这些正整数右移1位二进制位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT11I〇部分源程序存在文件progl.c中。请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。

本题首先遍历数组XX,用变量totNum记录正整数的个数,同时将其传递给数组yy。然后再遍历数组yy,逐一判断其是否符合条件,如果符合则将其计入平均值变量totPjz。另外还要单独处理其个数为〇的情况。voidCalValue(void)/・定义/・定义局部变量・//・将正整数存入数组yy中,并统计正整数的个数・/intyy[MAXNUM];i=0;j=0;for(i=0;i〈MAXNUM;i++){if(xx[i]>0)for(i=0;i<totNum;i++)if((yy[i]»D%2=0){totCnt++;totPjz=totPjz+yy[i];}if(totCnt==0)for(i=0;i<totNum;i++)if((yy[i]»D%2=0){totCnt++;totPjz=totPjz+yy[i];}if(totCnt==0)totPjz=0;elsetotPjz=totPjz/totCnt;/・判断这些数右移一位后产生的新数是否为偶数・//・统计偶数的个数・//・计算符合条件的数的和・//・计算符合条件的数的平均值・/24.请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件。ut.dat中。例如若n为!000时,函数值应为:s=153.909064。部分源程序存在文件progl.c中。请勿改动主函数mainO和输入输出数据函数progReadWrite。的内容。本题考察是否能够应用基本的算术运算符和函数。在本题中用到的函数是sqrt(求平方根)。注意最后的if语句不能省略,因为sqrt在sum等于0的时候有可能随机的输出ー〇.00000〇或〇.000000«doublecountValue(intn)

inti,,double这若干个正整数并存入数组XX中。请编制函数CalValueO,其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些正整数右移1位二进制位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。i=l;sum=0;while(i<n)/i=l;sum=0;while(i<n)/・当条件为真是执行内嵌语句・/if((i%3==0)&&(i%7==0))sum=sum+i;i++if((i%3==0)&&(i%7==0))sum=sum+i;i++;/・判断i能否被3与7整除*//・求出符合条件的数的和・/s=sqrt(sum);if(s<0)s=-s;/*sqrts=sqrt(sum);if(s<0)s=-s;/*sqrt函数的功能是求平方根・//・若sum等于〇,调整s的随机输出值・/returns;25.已知在文件IN.DAT中存有若干个(个数〈200)四位数字的正整数,函数ReadDat()读取部分源程序存在文件progl.c中。请勿改动主函数main()>读函数ReadDat()和写函数writeDat()的内容。本题首先使用while循环记录正整数的个数。然后利用for循环逐一判断各元素是否符合条件,同时将其计入计数变量和累加变量。另外,符合条件的数字个数为O的情况应该单独处理。voidCalValue(void)(inti;longsum;i=0;sum=0;while(xx[i]!=O){totNum++;voidCalValue(void)(inti;longsum;i=0;sum=0;while(xx[i]!=O){totNum++;i++;)for(i=0;i<totNum;i++)if((xx[i]»l)%2!=0)(totCnt++;sum=sum+xx[i];}if(totCnt==0)/・统计正整数的个数・//・判断这些数右移一位后产生的新数是否为奇数・//・统计奇数的个数・//・计算符合条件的数的和・//・计算符合条件的数的平均值・/totCnt=0;elsetotPjz=l.0*sum/totCnt;26.请编制程序progl.c,从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cntl和偶数的个数cnt2以及数组xx下标为奇数的元素值的算术平均值pj(保留2位小数)。结果cntl,cnt2,pj输出到out.dat中。部分程序、读数据函数read_dat(intxx[200])及输出格式已给出。本题在同一个for循环里采用两个if判断语句实现程序要求的功能。voidmain()intm,n,sum;intcntl,cnt2,xx[N];floatpj;FILE*fw;system("cls");fw二fopen("out.dat,w");read_dat(xx);

ent1=0;ent2=0;n=0;sum=0; /・给变量赋初值・/for(m=0;m<N;m++)if(xx[m]%2!=0)/・判断数组中的数是否为奇数・/cntl++;/・统计奇数的个数・/elsecnt2++;/・统计偶数的个数・/if(m%2!=0)(/・判断数组下标是否为奇数・/sum=sum+xx[m];/・计算下标为奇数的数的和・/n++;/*统计下标为奇数的数的个数・/pj=l.0*sum/n; /・计算下标为奇数的数的算术平均值・/printf(*\n\ncntl=%d,cnt2=%d,pj=%6.2f\n”,cntl,cnt2,pj);fprintf(fw,*%d\n%d\n%6.2f\n*,cntl,cnt2,pj);fclose(fw);}.已知在文件IN.DAT中存有若干个(个数〈200)四位数字的正整数,函数ReadDatO读取这若干个正整数并存入数组xx中。请编制函数CalValueO,其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDatO把所求的结果输出到文件OUT.DAT中。部分源程序存在文件progl.c中。请勿改动主函数main。、读函数ReadDat()和写函数writeDat()的内容。本题首先使用while循环记录正整数的个数。然后利用for循环逐一判断各元素是否符合条件,同时将其计入计数变量和累加变量。另外,符合条件的数字个数为0的情况应该单独处理。voidCalValue(void)(inti,a,b,c,d;i=0;while(xx[i]!=0)(totNum++;voidCalValue(void)(inti,a,b,c,d;i=0;while(xx[i]!=0)(totNum++;i++;)for(i=0:i<totNum;i++){a=xx[i]/1000;b=(xx[i]-a*1000)/100;c=(xx[i]-a*1000-b*100)/10;d=xx[i]-a*1000-b*l00-c*l0;if((a+b+c+d)%2==0)/*设置循环条件为:数组xx中的元素不为零・//・统计正整数的个数・//・计算出四位数的千位数・//・计算出四位数的百位数*//・计算出四位数的十位数*//・计算出四位数的个位数・//・判断各位数之和是否为偶数・/

totCnt++: /・统计满足条件的数的个数・/totPjz=totPjz+xx[i]; /・计算满足•条件的数之和・/if(totCnt==0) /・计算满足条件的数的算术平均值・/totPjzニ〇;elsetotPjz=totPjz/totCnt;).已知在文件IN.DAT中存有若干个(个数く200)四位数字的正整数,函数ReadDatO读取这若干个正整数并存入数组xx中。请编制函数CalValueO,其功能要求:1、求出这文件中共有多少个正整数totNum;2、求出这些正整数中的各位数字之和是奇数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDatO把所求的结果输出到文件OUT.DAT中。部分源程序存在文件progl.c中。请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。本题使用while循环首先计算正整数的个数。然后使用for循环遍历数组xx,对每ー个元素都计算出其各位数值,然后判断是否符合条件。同样,没有符合条件的数字的情况要单独考虑。voidCalValue(void)(inti,voidCalValue(void)(inti,a,b,c,d;i=0;while(xx[i]!=0){totNum++;i++:)for(i=0;i<totNum;i++){a=xx[i]/100〇;b=(xx[i]-a*1000)/100;c=(xx[i]-a*1000-b*100)/10;d=xx[i]-a*l000-b*100-c*10;if((a+b+c+d)%2!=〇)(totCnt++;totPjz=totPjz+xx[i];}}if(totCnt==0)/・定义局部变量・//・设置循环条件为:数组xx中的元素不为零・//・统计正整数的个数・//・计算出四位数的千位数・//・计算出四位数的百位数*//・计算出四位数的十位数・//・计算出四位数的个位数・//*判断各位数之和是否为奇数・//・统计满足条件的数的个数・//・计算满足条件的数之和・//・计算满足条件的数算术平均值・/totPjz=0;elsetotPjz=l.0*totPjz/totCnt;}.下列程序progl.c的功能是:计算500-800区间内素数的个数ent,并按所求素数的值从大到小的顺序,再计算其间隔加、减之和,即第1个素数一第2个素数+第3个素数一第4个素数+第5个素数...的值sum。请编写函数countValueO实现程序的要求,最后调用函数writeDat()把结果ent和sum,输出到文件0UT11.DAT中。部分源程序已给出。请勿改动主函数main()和输出数据函数writeDat()的内容。本题的重点在于累加,如果元素的下标为偶数的话则原值累加,如果为奇数的话则取负累加。实现的方法是在for循环中使用if语句对其下标进行判断。voidcountValueO(inti,j,a[300],tmp; /・定义局部变量・/for(i=500;i<=800;i++) /・利用双重循环来判断i是否为素数・/(for(j=2;j<i;j++)if(i%j=0)j=i+l;if(j==i)(a[cnt]=i;cnt++:)}for(i=0;i<cnt-l;i++) /・将所求的素数按从大到小的顺序排序・/for(j=i+l;j<cnt;j++)if(a[i]<a[j])(tmp=a[i];a[i]=a[j];a[j]=tmp;)for(i=0;i<cnt;i++) /・计算所求素数的间隔加、减之和*/{if(i%2!=0)a[i]=-a[i];sum=sum+a[i];.下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数ent以及这些数的和sum。请编写函数countValueO实现程序的要求,最后调用函数writeDat()把结果ent和sum,输出到文件

OUT13.DAT中。部分源程序存在文件progl.c中。请勿改动主函数main。和输出数据函数writeDat()的内容。本题需要逐一计算出四位整数的各位值,例程中的计算方式不是唯一的。在每次循环里都要同时将计数变量加一。逐一判断是否符合条件。如果符合则将其值累加进变量sum,voidcountValueO同时将计数变量加一。inti,a,b,c,d;/・/・设置循环的初始值和终止值・//・/・计算数i的千位数・//・计算数i的百位数・//・计算数i的十位数*//・计算数i的个位数・//・判断表达式b=(i-a*1000)/100;c=(i-a*1000-b*100)/10;d=i-a*1000-b*100-c*10;if((a+b)=(c+d)&&(a+b)==(d-a)*10)(a+b)==(c+d)&&(a+b)==(d-a)*10是否成立・/cnt++;sum二sum+i;)/cnt++;sum二sum+i;)/*计算符合条件的数之和・/.下列程序progl.c的功能是:计算出自然数SIX和NINE满足条件SIX+SIX+SIX=NINE+NINE的个数ent,以及满足此条件所有的SIX与NINE的和SUM。请编写函数countValue()实现程序的耍求,最后main。函数调用函数writeDat()把结果ent和sum输出到文件0UT15.DAT中。其中的S,I,X,N,E各代表ー个十进制数字。允许代表的数字相同,但S和N不能为〇。例如:944+944+944=1416+1416部分源程序存在文件progl.c中。请勿改动主函数main。和输出数据函数writeDat()的内容。本题的程序并没有直接假设各位数字来计算。而是直接描述两个数字之间和他们自身的特性。SIX的十位和NINE的百位是相等的,NINE的十位和百位是相等的。为了遍历所有的SIX和NINE,程序采用了二重循环。voidcountValueOintSIX;for(SIX=666;SIXく=999;SIX=SIX+2)if((SIX/10%10=(3*SIX/2)/100%10)&&((3*SIX/2)/1000=(3*SIX/2)%100/10))/*以six为准・/cnt++;

sum+=SIX+3*SIX/2;}}.将文件in.dat中的200个整数读至数组xx中。请编制jsValueO函数,要求:求出数组xx中的数值为奇数的个数cntl和数值为偶数的个数cnt2以及数组xx下标为偶数(包括下标为。的元素)的元素值的算术平均值pj(保留2位小数)。结果cntl,cnt2,pj输出到out.dat中。部分程序、读数据函数read_dat(intxx[200])及输出格式已给出。本题在ー个if语句中的两个分支处理奇数与偶数,如果符合条件则累加各自对应的计数变量。另外要注意的是下标为偶数的元素的统计是独立于奇偶数判断的。voidmain()(inti,j,sum;intcntl,cnt2,xx[N];floatpj;FILE*fw;systemcis");fw=fopen("out.dat","w");read_dat(xx);ent1=0;cnt2=0;j=0;sum=0; /・为变量赋初值・/for(i=0;i<200;i++)(if(xx[i]%2!=0)cntl++;elsefor(i=0;i<200;i++)(if(xx[i]%2!=0)cntl++;elsecnt2++;if(i%2==0){j++;sum=sum+xx[i];/*统计奇数的个数・//・统计偶数的个数・//*判断i是否为偶数・//*统计数组XX下标为偶数的个数・/pj=(float)1.0・sum/j;/・计算数组XX下标为偶数的算术平均值pj=(float)1.0・sum/j;/・计算数组XX下标为偶数的算术平均值・/printf("\n\ncntl=%d,cnt2=%d,pj=%6.2f\n",cntl,cnt2,pj);fprintf(fw,"%d\n%d\n%6.2f\n",cntl,cnt2,pj);fclose(fw);)下列程序progl.c的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的ー个实根。Xn+l=cos(Xn)迭代步骤如下:(1)取XI初值为0.0:(2)XO=X1,把XI的值赋给XO;(3)Xl=cos(X0),求出ー个新的XI;(4)若XO-X1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);(5)所求XI就是方程cos(X)-X=0的ー个实根,作为函数值返回。请编写函数countValue()实现程序的要求,最后调用函数writeDatO把结果输出到文件OUT17.DAT中。部分源程序已给出。请勿改动主函数mainO和输出数据函数writeDat()的内容。本题要注意的是两个迭代变量一定要定义为双精度型,否则是无法得出正确结果的。另外,因为初始化的程序输出部分的输出格式默认的小数为6位,所以本例的误差虽然已经符合要求,但显示的却仍然是0.000001。doublecountValue(){doublex0,xl;xl=0.0; /・为xl赋初值0.0*/x0=xl;xl=cos(xO);while(fabs(x0-xl)>=0.000001)/*fabs函数的功能是求浮点数x的绝对值・/{x0=xl;xl=cos(x0);)returnxl; /・将xl的值返回,通过countValue带回调用处・/}.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数,其结果以从小到大的顺序放在数组a中,并通过形式参数n传递这些数的个数。部分源程序存在文件progl.c中。请勿改动主函数main。和输出数据函数writeDAT。的内容。本题的要点是判断条件的确定。能被7或11整除而不能被二者同时整除等价于能被7整除且不能被11整除或者能被11整除且不能被7整除。如果符合条件则将此数传递给数组a,同时将计数变量加一,再将其结果以从小到大的顺序放在数组a中。voidcountValue(int*a,int*n)(inti,j,temp;*n=0;for(i=l;i<=1000;i++) /・设置循环起始值和终止值・/if((i%7==0)&&(i%ll!=0)||(i%7!=0)&&(i%l1=0))/・判断i是否能被7或11整除但不能同时被7或11整除*/(a[*n]=i;/・将所有符合条件的数存入数组a中・/(*n)++; /*统计符合条件的数的个数・/)for(i=0;i<*n;i++)for(j=i;j<*n;j++)if(a[i]>=a[j]){temp=a[j];a[j]=a[i];a[i]=temp;}

.请编制程序progl.c,从文件IN.DAT中读取200个整数至数组xx中,求出最大数max及最大数的个数ent和数组xx中能被3整除或能被7整除的所有整数的算术平均值pj(保留2位小数)。结果max,ent,pj输出到OUT.DAT中。部分程序、读数据函数read_dat(intxx[200])及输出格式已给出。本题苜先利用冒泡排序将具有最大值的元素移动到数组首位。然后再次进行遍历,在每次循环体内对同一元素做两次判断。如果具有最大值就将计数变量加一,如果能被3或7整除则同时记录其个数和累加和。在程序结束时计算平均值。另外还要单独处理后者个数为〇的情况。voidmain()intm,temp,n,sum;intent,xx[N],max;floatpj;FILE*fw;system("els");fw=fopen("out.dat","w");readdat(xx);cnt=0;n=0;sum=0;for(m=l;m<N;m++)if(xx[m]>xx[0]){temp=xx[0];xx[0]=xx[m];xx[m]=temp;}max=xx[0];for(m=0;m<N;m++){if(xx[m]==max)cnt++;if((xx[m]%3==0)II(xx[m]%7=0)){n++;sum=sum+xx[m];})if(n==0)pj二。;elsepj=(float)1.0*sum/n;/・为变量赋初值/・为变量赋初值・//・利用循环求出数组xx中最大的数・//・统计数组xx中最大的数的个数・//*判断某数是否能被3整除或能被7整除*//・统计符合条件的数的个数・//・计算符合条件的数之和・//・计算符合条件的数的算术平均值・/fprintf(fw,"%d\n%d\n%6.2f\n",max,ent,pj);fclose(fw);)

.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制ー函数jsValueO,其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数ent,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDatO把结果输出到out.dat文件。例如:9123,9-1-2-3>0,则该数满足条件存入数组b中,且个数cnt=cnt+l。9812,9-8-1-2>0,则该数不满足条件忽略。部分源程序存在文件progl.c中。程序中已定义数组:a[300],b[300],已定义变量:ent请勿改动主函数main。、读函数ReadDat()和写函数writeDat()的内容。jsValue(){inti,j,k,m,n,r,s;for(i=0;i<300;i++){k=a[i];m=k/1000;n=k/100%10;r=k/10%10;s=k%10;if(m-n-r-s>0){b[cnt]=a[i];cnt++;}for(i=0;i<cnt;i++)/・定义局部变量・/没有本题首先利用两个for循环来实现要求的功能。第一个forjsValue(){inti,j,k,m,n,r,s;for(i=0;i<300;i++){k=a[i];m=k/1000;n=k/100%10;r=k/10%10;s=k%10;if(m-n-r-s>0){b[cnt]=a[i];cnt++;}for(i=0;i<cnt;i++)/・定义局部变量・//・计算出四位数的千位数・//・计算出四位数的百位数・//・计算出四位数的十位数*//・计算出四位数的个位数・//・判断千位数上的数减百位数上的数减十位数上的数减个位数上的数是否大于零・//・将符合条件的数存入数组b中・//・统计符合条件的数的个数・//・用冒泡排序法将数组b中的数按从小到大的顺序排序・/{for(j=i;j<cnt;j++)if(b[i]>=b[j]){n=b[j];b[j]=b[i];b[i]=n;}.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValueO,其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数ent,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。例如:7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+l。8129,8+1!=2+9,则该数不满足条件忽略。部分源程序存在文件progl.c中。程序中已定义数组:a[300],b[300],已定义变量:ent请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。本题首先利用两个for循环来实现要求的功能。第一个for循环在每次的循环体内分别计算当前的数字的各位数字。如果符合条件则将其传递给数组b。在第二次遍历的for循环里使用二重循环的冒泡排序法将数组b排序。jsValueO{inti,j,k,m,n,r,s;jsValueO{inti,j,k,m,n,r,s;for(i=0;i<300;i++){k=a[i];m=k/1000;n=k/100%10;r=k/10%10:s=k%10;if(nrn-r-s>0){b[cnt]=a[i];cnt++;})for(i=0;i<cnt;i++) ,*/{for(j=i;j<cnt;j++)if(b[i]>=b[j]){n=b[j]:b[j]=b[i];b[i]=n;}/・定义局部变量・//・计算出四位数的千位数・//・计算出四位数的百位数・//・计算出四位数的十位数・//・计算出四位数的个位数・//・将符合条件的数存入数组b中・//・统计符合条件的数的个数・//・用冒泡排序法将数组b中的数按从小到大的顺序排序.请编制函数ReadDatO实现从文件IN.DAT中读取!000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。计算方差的公式如下:原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)部分源程序存在文件progl.c中。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论