c语言三级网络

上传人:无*** 文档编号:157349060 上传时间:2022-09-29 格式:DOC 页数:75 大小:360KB
收藏 版权申诉 举报 下载
c语言三级网络_第1页
第1页 / 共75页
c语言三级网络_第2页
第2页 / 共75页
c语言三级网络_第3页
第3页 / 共75页
资源描述:

《c语言三级网络》由会员分享,可在线阅读,更多相关《c语言三级网络(75页珍藏版)》请在装配图网上搜索。

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

2、句进行解题;产品名称比较请用函数strcmp进行解题。 例如:selli = temp ;void SortDat()int i,j; PRO cell; for (i=0;i99;i+) for (j=i+1;j 0) cell=selli; selli=sellj; sellj=cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if (strcmp(selli.mc,sellj.mc) = 0)&(selli.jesellj.je) cell=selli; selli=sellj; sellj=cell; 2.函数ReadDat()实现从文件in.dat

3、中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。例如:位置01234567源字符串h g f e d c b a 则处理后字符串 h a f c d e b g本题for循环条件里采用的步长为2,这是因为要求只对下边为奇数的元素进行判断。程序使用三重循环来实现要求的功能。外层的while循环用来实现行间遍历,内层的二重for循环用来遍历行内

4、下标为奇数的元素。void jsSort()int i,j,k,l,p,temp; /*定义局部变量*/ i=0; while(i20) /*判断i的值若小于20,则执行内嵌语句*/ j=strlen(xxi); /*strlen(xxi)函数的功能是统计第i行字符串中字符的个数*/ for(k=1;kj;k=k+2) p=k; for(l=k+2;lj;l=l+2) if(xxilxxip) /*比较两个字符的ASCII值按从小到大的顺序进行排序处理*/ p=l; if(p!=k) temp=xxip; xxip=xxik; xxik=temp; i+; 3. 已知在文件IN.DAT中存有1

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

6、1; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()int i,j; PRO cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if (atoi(selli.dm) atoi(sellj.dm) cell=selli; selli=sellj; sellj=cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if ( atoi(selli.dm

7、)=atoi(sellj.dm)&(selli.jesellj.je ) cell=selli; selli=sellj; sellj=cell; 4.下列程序prog1.c的功能是:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。 请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。 最后调用函数writeDat()把结果输出到文件out.dat中。本题采用for循环结合if语句来实现功能。循环的起始点为10,终止点32。因为此二者的平方恰好包括了100和1000。在循环体内计算出变量a的值,这

8、样可以保证每次检查的数都是平方数。然后再得出此数的各位数值。如果符合条件则将其传递给数组bb。int jsValue(int bb) int i,a,d,e,c,p; /*定义局部变量*/ p=0; for(i=10;i=100&a1000) /*判断a的取值范围*/ c=a/100; /*求数值的百位数的数字*/e=(a-c*100)/10; /*求数值的十位数的数字*/d=a-c*100-e*10; /*求数值的个位数的数字*/if(c=e)|(c=d)|(d=e) /*判断数值是否有两位数字相同*/bbp=a; /*将符合条件的数值存入数组中*/ p+; return p-;5.已知在文

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

10、 char mc11; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()int i,j; PRO cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if (selli.je sellj.je) cell=selli; selli=sellj; sellj=cell; for (i=0;i99;i+) for (j=i+1;j100;j+) if ( atoi(selli.dm)

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

12、用函数WriteDat()把结果输出到文件OUT2.DAT中。#define MAX 100typedef struct char dm5; /*产品代码*/ char mc11; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/PRO;PRO sellMAX;void ReadDat();void WriteDat();void SortDat()int i,j; PRO cell; for (i=0;i99;i+) for (j=i+1;j sellj.je) cell=selli; selli=sellj; sellj=cell

13、; for (i=0;i99;i+) for (j=i+1;j100;j+) if ( atoi(selli.dm) atoi(sellj.dm)&(selli.je=sellj.je ) cell=selli; selli=sellj; sellj=cell; 7.某级数的前两项A1=1,A2=1,以后各项具有如下关系: An=An-2+2An-1下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn=M,这里Sn=A1+A2+.+An,并依次把n值存入数组单元b0,b1和b2中,请编制jsValue()函数来实现此功能, 最后调用函数

14、writeDat()把数组b中的值输出到out.dat文件中。jsValue() int i,a1,a2,a,Sn; a1=1; a2=1; Sn=a1;i=1; while (Sn100) Sn=Sn+a2; a=a1; a1=a2; a2=a+2*a1; if (Sn100) i+; b0=i; a1=1; a2=1; Sn=a1;i=1; while (Sn1000) Sn=Sn+a2;a=a1;a1=a2;a2=a+2*a1;if (Sn1000) i+; b1=i; a1=1; a2=1; Sn=a1;i=1; while (Sn10000) Sn=Sn+a2;a=a1;a1=a2;

15、a2=a+2*a1;if (Sn的使用。另外,第一个元素先用变量p保存,然后在程序结尾单独处理。void CharConvA() int i,j,k,p; /*定义局部变量*/ i=0; while(i=2;k-) xxik=(xxik 4)+xxik-1; /*利用移位操作符求出各个新字符*/ xxi1=(xxi1 4)+p; /*得到第二个的新字符*/ i+; 9.下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。请编写函数countValue()实现程序要求的功能,最后调用函数writeDa

16、t()把结果cnt和sum输出到文件out.dat中。 在循环条件中只需使用i+10100就包含了其他的条件。void countValue()int i; /*定义局部变量*/ i=2; /*为变量赋初值*/ cnt=0; sum=0; while(i+10 100*/ if(isPrime(i)!=0)&(isPrime(i+4)!=0)&(isPrime(i+10)!=0) /*调用isPrime函数判断i,i+4,i+10的值是否都是素数*/ cnt=cnt+1; /*统计满足条件的数的个数*/ sum=sum+i; /*计算满足条件的数之和*/ i=i+1; 10. 函数ReadDa

17、t()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrCharJR(),其函数的功能是:以该文章中的行为单位把字符串中的所有字符的二进制ASCII值右移4位,高位补0,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置上。之后把已处理的结果仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT8.DAT中。 例如: z对应的ASCII值为7AH,二进制值为01111010,右移4位后为00000111,加上原来z的ASCII值01111010得到10000001结果。 原始数据文件存

18、放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按字符处理。 本题考察的重点是是否知道使用移位操作符。并使用二重循环来遍历输入数据。void StrCharJR()int i,j; /*定义局部变量*/ i=0; while(imaxline) /*判断i是否小于文章的总行数*/for(j=0;j4); /*利用移位操作符求出各个新字符*/ i+; 11. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:以读入文章的行为单位,以空格或标点符号(数据文件中仅含,或.作为标点符号)作为分隔符,对行中所有单

19、词进行倒排,单词间仍以空格作为分隔符,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后main()函数调用函数writeDat()把结果xx输出到文件OUT6.DAT中。 例如:原文:You He Me I am a student. I like study.结果:Me He You study like I student a am I 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 本程序首先定义了一个字符串,即一个长度为80的数组line。然后在逐行的循环中将每一行从第一个单词装入line。这样就可以实现按单词倒序排列。然后在行内循环

20、结束的时候将整个字符串复制给xxi。程序中达到判断单词是否结束功能的函数是isalpha。实现装入功能的函数是strcat,即连接字符串函数。void StrOL(void) int n;char line80; /*字义一个长度为80的字符型数组*/ int i;for(i=0; i maxline; i+) /*设置循环初始值和终止值*/ line0 = 0; n = strlen(xxi); /*strlen函数的功能是统计第i行字符串中字符的个数*/ while(-n) if(!isalpha(xxin) /*调用isalpha函数判断单词是否结束*/ strcat(line,xxi

21、+ n + 1); /*strcat函数的功能是实现字符串的连接*/ strcat(line, ); xxin = 0; strcat(line,xxi); strcpy(xxi,line); /*strcpy函数的功能是将后一字符串拷贝到前一字符中*/12.函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConverCharD(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个小写字母,如果是字母a,则改写成字母z。大写字母仍为大写字母,其它字符不变。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数wri

22、teDat()把结果xx输出到文件OUT4.DAT中。 例:原文:Adb.Bcdza abck.LLhj 结果:Aca.Bbcyz zabj.LLgi 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。 本题只需要对小写字母进行处理,因此只需要在判断循环中区分是否为a,如果是则用z代替。void ConvertCharD(void)int i,j,n,p; i=0; while(imaxline) /*判断i是否小于文章的总行数*/ n

23、=strlen(xxi); /*strlen函数的功能是统计第i行字符串中字符的个数*/ for(j=0;j97&xxij=122) /*判断字符是否是除a以外的小写字母*/ p=xxij-1; /*根据题面要求改写小写字母*/ xxij=p; else if(xxij=97) /*判断字符若是a,则改写为z*/ xxij=122; i+; 13 .下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx)实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。 例如:若输入17 5则应输出:19 2

24、3 29 31 37。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数readwriteDat()的内容。 本题在while循环中采用的条件变量是已找到的素数的个数变量k。如果找到的数字是素数,则将其传递给数组xx,数组的下标使用的自增运算符。void num(int m,int k,int xx)int i,p,r; /*定义局部变量*/ p=m;r=0;i=0; while(ik) /*判断i是否小于k*/ p=p+1; if (isP(p) != 0) /*调用isP函数判断p是否是素数*/ xxr+=p; /*将p的值传递给数组xx*/ i=i+1; 1

25、4. 函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数SortCharD(),其函数的功能是:以行为单位对字符按ASCII码从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后main()函数调用函数writeDat()把结果xx输出到文件OUT2.DAT中。 例:原文:dAe,BfC. CCbbAA 结果:fedCBA., bbCCAA 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。本题采用了二重循环的冒泡排序法来实现行内的排序。而while循环则用来实现行间的遍历。void SortCharD(v

26、oid)int i,j,p,k,temp; /*定义局部变量*/ i=0; while(imaxline) /*判断i是否小于文章的总行数*/ for(j=0;j(int)strlen(xxi)-1;j+)/*strlen函数的功能是统计第i行字符串中字符的个数*/ p=j; for(k=j+1;kxxip)p=k; if(p!=j) /*按从大到小的顺序进行排序*/ temp=xxip; xxip=xxij; xxij=temp; i+; 15.下列程序的功能是:把s字符串中的所有字母改写成该字母的下一个字符,字母z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改

27、变。请编写函数chg(char *s)实现程序的要求,最后调用函数readwriteDat()把结果输出到文件out.dat中。 例如:s字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为No.123Ayz。 本题使用一个for循环在行内遍历。在检查每个元素的值后按要求进行替换。并将字符z和单独处理。void chg(char *s)int i,j; char b81; /*定义局部字符型数组b*/ strcpy(b,s); /*利用strcpy函数将s字符串拷贝到b中*/ i=strlen(b); /*利用strlen函数将b中字符的个数赋值给i*/ for(j=0;j=97&

28、bj=65&bj90) /*判断字符是否为除了z和Z之外的字母*/ bj=bj+1; /*将第j个字母改为该字母的下一个字符*/ else if(bj=122) /*判断该字母是否为z*/ bj=97; /*将该字母改为a*/ else if(bj=90) /*判断该字母是否为Z*/ bj=65; /*将该字母改为A*/ strcpy(s,b); /*利用strcpy函数将b字符串拷贝到s中*/16.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加个位数等于百位数上的数加十位数上的数

29、的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数把结果输出到out.dat文件。 例如:6712,6+2=7+1,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。8129,8+91+2,则该数不满足条件计算平均值pjz2。 程序中已定义数组:a300,已定义变量:cnt,pjz1,pjz2。 本题使用一个for循环来遍历数组a中的元素。在循环体内使用if语句来判断是否符合要求,然后将其直接累加进平均值中。同时记录满足条件的元素数。在循环结束后得出最后的平均值。jsValue()int i,b,c,d,e; /*定义局部

30、变量*/ pjz1=0;pjz2=0; for(i=0;i300;i+) /*设置循环的初始值和终止值*/ b=ai/1000; /*求出某四位数的千位数*/ c=(ai-b*1000)/100; /*求出某四位数的百位数*/ d=(ai-b*1000-c*100)/10; /*求出某四位数的十位数*/ e=ai-b*1000-c*100-d*10; /*求出某四位数的个位数*/ if(b+e)=(c+d) /*判断千位数加个位数的值是否等于百位数加十位数的值*/ cnt+; /*统计符合条件的数的个数*/ pjz1=pjz1+ai; /*计算符合条件的数的和*/ else pjz2=pjz2

31、+ai; /*计算不符合条件的数的和*/ if(cnt=0) pjz1=0; /*计算符合条件的数的平均值*/ else pjz1=pjz1/cnt; if(300-cnt)=0) pjz2=0; /*计算不符合条件的数的平均值*/ else pjz2=pjz2/(300-cnt);17. 现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。给定函数ReadDat()的功能是把

32、选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy0到yy9中。把结果yy输出到文件OUT.DAT中。本程序首先在最外层使用一个for循环来遍历十张选票,然后在此循环体内使用一个while循环来统计当前选票的选中数,如果所选不高于5个人则作废此选票。还有就是要注意体内的for循环的写法,其终止条件比较特殊。void CountRs(void) int i,j,cnt;char* pch; /*定义指向字符型变量的指针变量*/for(i = 0; i 100; i+) /*设置循环的初始值和终止值*/cnt = 0; pch = xxi; wh

33、ile (*pch) /*统计这张选票所选的人数*/ if(*(pch+) = 1) cnt+; if(cnt = 5) /*小于等于5人,无效*/continue; for(j = 0; xxij; j+) /*统计每个人的选票数*/ if(xxij = 1)yyj+; /*将得票数依次存入yy数组中*/18. 已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值

34、pjz2,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:7153,7+1=5+3,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。 8129,8+1!=2+9,则该数不满足条件计算平均值pjz2。 部分源程序存在文件prog1.c中。 程序中已定义数组:a300,已定义变量:cnt,pjz1,pjz2。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。本题使用一个for循环来遍历数组a中的元素。在循环体内使用if语句来判断是否符合要求,然后将其直接累加进平均值中。同时记录满足条件的元素数。在循环结束后得出最后的平均

35、值。其中cnt如果为0则会出现除数为0的情况,所以要单独处理。 本题使用一个for循环来遍历数组a中的元素。在循环体内使用if语句来判断是否符合要求,然后将其直接累加进平均值中。同时记录满足条件的元素数。在循环结束后得出最后的平均值。其中cnt如果为0则会出现除数为0的情况,所以要单独处理。jsValue()int i,b,c,d,e; /*定义局部变量*/ pjz1=0;pjz2=0; for(i=0;i0,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。9812,9-8-1-20,则该数不满足条件计算平均值pjz2。 部分源程序存在文件prog1.c中。 程序中已定义数组:a3

36、00,已定义变量:cnt,pjz1,pjz2。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。本题使用一个for循环来遍历数组a中的元素。在循环体内使用if语句来判断是否符合要求,然后将其直接累加进平均值中。同时记录满足条件的元素数。在循环结束后得出最后的平均值。其中cnt如果为0则会出现除数为0的情况,所以要单独处理。jsValue() int i,b,c,d,e; /*定义局部变量*/ pjz1=0;pjz2=0; for(i=0;i0) /*判断千位数减百位数减十位数减个位数的值是否大于零*/ cnt+; /*统计符合条件的数的个数*/pjz1=

37、pjz1+ai; /*计算符合条件的数的和*/ else pjz2=pjz2+ai; /*计算不符合条件的数的和*/ if(cnt=0) /*计算符合条件的数的平均值*/ pjz1=0; else pjz1=pjz1/cnt; if(300-cnt)=0) /*计算不符合条件的数的平均值*/ pjz2=0; else pjz2=pjz2/(300-cnt);20. 请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后

38、调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: 设N为奇数的个数,xxi为奇数,ave1为奇数的平均值。 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000) 本题首先计算奇数和偶数各自的累加和,同时记录奇数的个数。然后在计算平均值的时候要注意odd为0的情况要单独处理。方差则用一个for循环来计算。void Compute(void) int i,yyMAX; /*定义局部变量和数组*/ ave1=0;ave2=0; for(i=0;iMAX;i+) /*设置循环的初始值和终止值*/ if(xxi%2!=0) /

39、*判断此数是否为奇数*/ yyodd=xxi; /*将奇数存入数组yy中*/ odd+; /*统计奇数个数*/ ave1=ave1+xxi; /*计算奇数之和*/ else even+; /*统计偶数个数*/ ave2=ave2+xxi; /*计算偶数之和*/ if(odd=0) /*计算奇数的平均值*/ ave1=0; else ave1=ave1/odd; if(even=0) /*计算偶数的平均值*/ ave2=0; else ave2=ave2/even; for(i=0;iodd;i+) /*计算所有奇数的方差值*/ totfc=totfc+(yyi-ave1)*(yyi-ave1)

40、/odd;21.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。9812是非素数,则该数不满足条件忽略。 部分源程序存在文件prog1.c中。 程序中已定义数组:a300,b300,已定义变量:cnt 请勿改动主函数main()、读函

41、数ReadDat()和写函数writeDat()的内容。本题首先遍历数组a的各元素。如果是素数就将其传递给数组b。然后在数组b中使用冒泡排序将其从小到大排列。jsValue() int i,j,k; /*定义局部变量*/ for(i=0;i300;i+) /*设置初始值和终止值*/ if(isP(ai)!=0) /*调用isP函数判断ai是否是素数*/ bcnt=ai; /*将素数存入数组b中*/ cnt=cnt+1; /*统计素数的个数*/ for (i=0;icnt;i+) /*使用冒泡法将数组b中的数按从小到大的顺序进行排序*/ for (j=i;jbj) k=bi;bi=bj;bj=k

42、;22.已知数据文件in.dat中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把结果输出到out.dat文件。 例如:1239,9-1-2-30,则该数满足条件存入数组b中,且个数cnt=cnt+1。 8129,9-8-1-20,则该数不满足条件忽略。 部分源程序存在文件prog1.c中。 程序中已定义数组:a300,b30

43、0,已定义变量:cnt 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。本题首先使用while循环遍历数组a的各元素,如果符合条件则将其传递给数组b,同时记入计数变量cnt中。然后在数组b中使用冒泡排序法将b的元素按降序排列。jsValue() int i,j,p,temp,f,c,d,e; /*定义局部变量*/ i=0; while(i0) /*判断个位数减千位数减百位数减十位数的值是否大于零*/ bcnt=ai; /*将符合条件的数存入数组b中*/ cnt+; /*统计符合条件的数的个数*/ i+; for(i=0;icnt-1;i+) /*将数组b中的数按从大到小的顺序排序*/ p=i; for(j=i+1;jbp)p=j; if(p!=i) temp=bp; bp=bi; bi=temp; 23.已知在文件IN.DAT中存有若干个(个数200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些正整数右移1位二进制位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些正整数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OU

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!