




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1请编写一个函数 jsValue(int m,int k,int xx),该函数的功能是:将大于整数 m 且紧靠 m 的 k 个素数存入数组 xx 传回。 例如:若输入 17 5 则应输出:19,23,29,31,37。 void jsValue(int m,int k,int xx) int i,j,s=0; for(i=m+1;k0;i+) for(j=2;ji;j+) if(i%j=0) break; if(i=j) xxs+=i; k-; 2已知数据文件 IN.DAT 中存有 200 个四位数,并已把这些数存入数组 a 中,请考生编制 一函数 jsVal(),其功能是:如果四位数各位上的数字均是 0 或 2 或 4 或 6 或 8,则统计出满 足此条件的个数 cnt, 并把这些四位数按从大到小的顺序存入数组 b 中。程序中已定义数组: a200,b200,已定义变量:cnt void jsVal() int i,j,qw,bw,sw,gw; for(i=0;iMAX;i+) qw=ai/1000; bw=ai/100%10; sw=ai%100/10; gw=ai%10; if(qw&qw%2=0&bw%2=0&sw%2=0&gw%2=0) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) qw=bi; bi=bj; bj=qw; 题目 3 函数读取一英文章存入到数组 xx 中;请编制函数 StrOR( ),其函数的功能是:以 行为单位依次把字符串中所有小写字母 o 左边的字符串内容移到该串的右边存放, 然后把小 写字母 o 删除, 余下的字符串内容移到已处理字符串的左边存放, 之后把已处理的字符串仍 按行重新存入字符串数组 xx 中。 原始数据文件存放的格式是: 每行的宽度均小于 80 个字符, 含标点符号和空格。 void StrOR(void) int i; char a80,*p; for(i=0;imaxline;i+) p=strchr(xxi,o); while(p) memset(a,0,80); memcpy(a,xxi,p-xxi); strcpy(xxi,p+1); strcat(xxi,a); p=strchr(xxi,o); 题目 4(无忧 id 24 题 捷成 id 9 题) 函数 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()的内容。 void StrOL(void) int i,j,k,s,m,strl; char str80; for(i=0;i=0;j-) if(isalpha(xxij) k+; else for(m=1;m=k;m+) strs+=xxij+m; k=0; if(!isalpha(xxij) strs+= ; for(m=1;m=k;m+) strs+=xxij+m; strs=0; strcpy(xxi,str); 题目 5(无忧 id 8 题) 在文件 in.dat 中有 200 个正整数,且每个数均在 1000 至 9999 之间。函数 ReadDat()读取这 200 个数存放到数组 aa 中。请编制函数 jsSort(),其函数的功能是:要求按每个数的后三位 的大小进行升序排列, 然后取出满足此条件的前 10 个数依次存入数组 bb 中, 如果后三位的 数值相等,则按原先的数值进行降序排列。最后调用函数 WriteDat()把结果 bb 输出到文件 out.dat 中。 例:处理前 6012 处理后 9012 5099 6012 9012 7025 7025 8088 8088 5099部分源程序存在文件 prog1.c 中。 请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 WriteDat()的内容。 void jsSort() int i,j,data; for(i=0;i199;i+) for(j=i+1;jaaj%1000|aai%1000=aaj%1000&aaiaaj) data=aai;aai=aaj;aaj=data; for(i=0;i10;i+) bbi=aai; 题目 6:在文件 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()的内容。 void jsSort() int i,j,data; for(i=0;i199;i+) for(j=i+1;j200;j+) if(aai%1000aaj) data=aai;aai=aaj;aaj=data; for(i=0;i10;i+) bbi=aai; 题目 7(无忧 id 15 题) 已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位),产品名称 mc(字符型 10 位),单价 dj(整型),数量 sl(整型),金额 je(长整型)五部分组 成。其中:金额=单价*数量计算得出。函数 ReadDat()是读取这 100 个销售记录并存入结构 数组 sell 中。请编制函数 SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代 码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组 sell 中,最后调用函数 WriteDat()把结果输出到文件 OUT6.DAT 中。 void SortDat() int I,j; PRO xy; for(I=0;I99;I+) for(j=I+1;j100;j+) if(strcmp(sellI.dm,sellj.dm)0|strcmp(sellI.dm,sellj.dm)=0&sellI.jesellj.je) xy=sellI; sell I=sellj; sellj=xy; 题目 8(无忧 id 83 题)函数 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 个字符。 void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11%256130) continue; else xxij=xxij*11%256; 题目 9(无忧 id 28;id 124 题;捷成 id 16 题) 函数 ReadDat()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中,请编制函 数 SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后 的结果仍按行重新存入字符串数组 xx 中,最后调用函数 writeDat()把结果 xx 输出到文件 OUT2.DAT 中。 例:原文:dAe,BfC. CCbbAA 结果:fedCBA. bbCCAA 原始数据文件存放的格式是:每行的宽度均小于 80 个字符,含标点符号和空格。 void SortCharD(void) int I,j,k,strl; char ch; for(I=0;Imaxline;I+) strl=strlen(xxI); for(j=0;jstrl-1;j+) for(k=j+1;kstrl;k+) if(xxIjxxIk) ch=xxIj; xxIj=xxIk; xxIk=ch; 题目 10(无忧 id 68 题) 函数 ReadDat()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中,请编制函 数 ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母 的下一个字母,如果是字母 z,则改写成字母 a。大写字母仍为大写字母,小写字母仍为小 写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组 xx 中,最后调用函 数 writeDat()把结果 xx 输出到文件 OUT1.DAT 中。 例:原文:Adb.Bcdza abck.LLhj结果:Aec.Bdeab bcdl.LLik 原始数据文件存放的格式是:每行的宽度均小于 80 个字符,含标点符号和空格。 部分源程序存在文件 prog1.c 中。 请勿改动主函数 main()、读数据函数 ReadDat()和输出数据函数 writeDat()的内容。 void ConvertCharA(void) int i,j; for(i=0;imaxline;i+) for(j=0;j=a&xxij=a&*s=A&*s=Y) *s+=1;s+; else s+; 题目 12 已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位),产品名称 mc(字符型 10 位),单价 dj(整型),数量 sl(整型),金额 je(长整 型)五部分组成。其中:金额=单价*数量计算得出。函数 ReadDat()是读取这 100 个销售记录 并存入结构数组 sell 中。请编制函数 SortDat(),其功能要求: 按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结 果仍存入结构数组 sell 中,最后调用函数 WriteDat()把结果输出到文件 OUT5.DAT 中。 部分源程序存在文件 prog1.c 中。 void SortDat() int I,j; PRO xy; for(I=0;I99;I+) for(j=I+1;j0|strcmp(sellI.mc,sellj.mc)=0&sellI.jesellj.je) xy=sellI;sellI=sellj;sellj=xy; 题目 13(无忧 id 81 题(按金额从小到大进行排列)) 已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位),产品名称 mc(字符型 10 位),单价 dj(整型),数量 sl(整型),金额 je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数 ReadDat()是读取这 100 个销售记录并存入结构 数组 sell 中。请编制函数 SortDat(),其功能 要求:按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列,最终 排列结果仍存入结构数组 sell 中, 最后调用函数 WriteDat()把结果输出到文件 OUT9.DAT 中。 void SortDat() int I,j; PRO xy; for(I=0;I99;I+) for(j=I+1;j0|strcmp(sellI.dm,sellj.dm)=0&sellI.jesellj.je) xy=sellI;sellI=sellj;sellj=xy; 题目 14(无忧 id 151 题) 已知数据文件 IN.DAT 中存有 200 个四位数,并已调用读函数 readDat()把这些数存入数组 a 中,请考生编制一函数 jsVal(),其功能是:依次从数组 a 中取出一个四位数,如果该四位数 连续大于该四位数以后的五个数且该数是奇数(该四位数以后不满五个数,则不统计 ) ,则 统计出满足此条件的个数 cnt 并把这些四位数按从小到大的顺序存入数组 b 中,最后调用写 函数 writeDat( )把结果 cnt 以及数组 b 中符合条件的四位数输出到 OUT.DAT 文件中。 注意:部分源程序存在文件 prog1.c 中。 程序中已定义数组:a200,b200,已定 义变量:cnt void jsVal() int I,j,flag; for(I=0;IMAX-5;I+) for(j=I+1;jaj&aI%2) flag=1; else flag=0;break; if(flag=1) bcnt=aI; cnt+; for(I=0;Icnt-1;I+) for(j=I+1;jbj) flag=bI;bI=bj;bj=flag; 题目 15(无忧 id 150 题) 已知数据文件 IN.DAT 中存有 200 个四位数,并已调用读函数 readDat()把这些数存入数组 a 中,请考生编制一函数 jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数 字上的值, 百位数字上的值小于等于十位数字上的值, 以及十位数字上的值小于等于个位数 字上的值,并且原四位数是偶数,则统计出满足此条件的个数 cnt 并把这些四位数按从小到 大的顺序存入数组 b 中,最后调用写函数 writeDat()把结果 cnt 以及数组 b 中符合条件的四 位数输出到 OUT.DAT 文件中。 注意:部分源程序存在文件 prog1.c 中。 程序中已定义数组:a200,b200,已定义变 量:cnt 请 勿改 动数 据文 件 IN.DAT 中 的任 何数 据、 主函 数 main()、 读函 数 readDat()和 写函 数 writeDat()的内容。 void jsVal()int I,j; int qw,bw,sw,gw; for (I=0;IMAX;I+) qw=aI/1000; bw=aI%1000/100; sw=aI%100/10; gw=aI%10; if(qw=bw)&(bw=sw)&(sw=gw)&(aI%2=0) bcnt+=aI; for(I=0;Icnt-1;I+) for(j=I+1;jbj) qw=bI;bI=bj;bj=qw; 题目 16 函数 ReadDat()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx 中, 请编制函数 StrCharJR(),其函数的功能是:以行为单位把字符串中所有字符的 ASCII 值右 移 4 位,然后把右移后的字符 ASCII 值再加上原字符的 ASCII 值,得到新的字符仍存入原 字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组 xx 中,最后调用 函数 writeDat()把结果 xx 输出到文件 OUT8.DAT 中 原始数据文件存放的格式是:每行的宽度均小于 80 个字符,含标点符号和空格。 void StrCharJR() int i,j; for(i=0;imaxline;i+) for(j=0;j4); 题目 17:函数 READDAT()实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 XX 中;请编制函数 CHA(),其函数功能是:以行为单位把字符串中的第一个字符的 ASCII 值加 第二个字符的 ASCII 值, 得到第一个亲朋字符, 第二个字符的 ASCII 值加第三个字符的 ASCII 值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的 ASCII 值 加原第一个字符的 ASCII 值,得到最后一个新的字符,得到的新字符分别存放在原字符串 对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组 XX 中,最后调用函 数 WRITEDAT()把结果 XX 输出到文件 OUT9.DAT 中.原始数据文件存放的格式是:每行的宽 度均小于 80 个字符,含标点符号和空格. void ChA(void) int i,j; char ch; for(i=0;imaxline;i+) ch=xxi0; for(j=0;jstrlen(xxi)-1;j+) xxij+=xxij+1; xxistrlen(xxi)-1+=ch; strrev(xxi); 题目 18(无忧 id 1 题)函数 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 个字符。 void encryptChar() int i,j; for(i=0;imaxline;i+) for(j=0;jstrlen(xxi);j+) if(xxij*11%256=32|xxij%2=0) continue; else xxij=xxij*11%256; 题目 19(无忧 id 144 题) 编写一个函数 findStr(char *str,char *substr),该函数统计一个长度为 2 的子字符串在另一个 字符串中出现的次数。例如,假定输入的字符串为asd asasdfg asd as zx67 asd mklo,子字 符串为as,函数返回值是 6。 函数 ReadWrite()实现从文件 in.dat 中读取两个字符串,并调用函数 findStr(),最后把结 果输出到文件 out.dat 中。 注意:部分源程序存在文件 prog1.c 中。 请勿改动主函数 main()和其它函数中的任何内容,仅在函数 findStr()的花括号中填入你 编写的若干语句。 int findStr(char *str,char *substr) int n=0; char *p , *r; while ( *str ) p=str; r=substr; while(*r) if(*r=*p) else break; if(*r=0) n+; str+; return n;r+; p+; 题目 20(无忧 id 80 题) 编写函数 jsValue,它的功能是:求 Fibonacci 数列中大于 t 的最小的一个数,结果由函数返 回。其中 Fibonacci 数列 F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2)最后调用函数 writeDat()读取 50 个数据 t, 分别得出结果且把结果输出到文件 out.dat 中。 例如:当 t=1000 时,函数值为:1597。 部分源程序存在文件 prog1.c 中。 int jsValue(int t) int f0=0,f1=1,fn; fn=f0+f1; while(fn=0.000001); return x1; 题目 22 请编写函数 countValue(),它的功能是:求 n 以内(不包括 n)同时能被 3 与 7 整 除的所有自然数之和的平方根 s,并作为函数值返回,最后结果 s 输出到文件 out.dat 中。 例如若 n 为 1000 时,函数值应为:s=153.909064。 部分源程序存在文件 prog1.c 中。 double countValue(int n) int i; double s=0.0; for(i=1;in;i+) if(i%21=0) s+=i; return sqrt(s); 题目 23已知在文件 in.dat 中存有 N 个(个数200)实数,函数 readdat()读取这 N 个实数并存入数 组 xx 中。请编制函数 calvalue(),其功能要求: 1、求出这 N 个实数的平均值 aver; 2、分别求出这 N 个实数的整数部分之和 sumint 以及小数部分之和 sumdec,最后调用函数 writedat()把所求的结果输出到文件 out.dat 中。 void CalValue(void) int I; for (I=0;IN;I+) sumint+=(long)xxI; sumdec+=xxI-(long)xxI; aver+=xxI; aver/=N; 题目 24(无忧 id 16 题) 下列程序 prog1.c 的功能是:在三位整数(100 至 999)中寻找符合条件的整数并依次从小到 大存入数组中;它既是完全平方数,又是两位数字相同,例如 144、676 等。 请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。 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%100/10; ten=I%10; if(hun=ten|hun=data|ten=data) bbk+=I; j+; return k; 题目 25 下列程序的功能是:寻找并输出 11 至 999 之间的数 m,它满足 m,m2 和 m3 均为回文数。 所谓回文数是指其各位数字左右对称的整数,例如 121,676,94249 等。满足上述条件的数 如 m=11,m2=121,m3=1331 皆为回文数。请编制函数 int svalue(long m)实现此功能,如果是 回文数,则函数返回 1,反之则返回 0。最后把结果输出到文件 out.dat 中。 int jsValue(long n) int I,strl,half; char xy20; ltoa(n,xy,10); strl=strlen(xy); half=strl/2;for(I=0;I=half) return 1; else return 0; 题目 26(无忧 id 37 题) 已知在文件 IN.DAT 中存有若干个(个数200)四位数字的正整数,函数 ReadDat()读取这 若干个正整数并存入数组 xx 中。请编制函数 CalValue(),其功能要求:1、求出这文件中共 有多少个正整数 totNum;2、求这些数右移 1 位后,产生的新数是偶数的数的个数 totCnt, 以及满足此条件的这些数(右移前的值)的算术平均值 totPjz,最后调用函数 writeDat()把所求 的结果输出到文件 OUT.DAT 中。 void CalValue(void) int i,data,yyMAXNUM; for(i=0;iMAXNUM;i+) yyi=0; for(i=0;i0) yytotNum+=xxi; for(i=0;i1; if(data%2=0)totCnt+;totPjz+=yyi; if(totCnt=0) totPjz=0; else totPjz/=totCnt; 题目 27(无忧 id 57 题) 已知数据文件 in.dat 中存有 300 个四位数,并已调用读函数 ReadDat()把这些数存入数组 a 中,请编制一函数 jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数 减个位数上的数大于零的个数 cnt,再把所有满足此条件的四位数依次存入数组 b 中,然后 对数组 b 的四位数按从小到大的顺序进行排序,最后调用写函数 writeDat()把结果输出到 out.dat 文件。 例如:9123,9-1-2-30,则该数满足条件存入数组 b 中,且个数 cnt=cnt+1。 9812,9-8-1-20,则该数不满足条件忽略。 jsValue() int i,j,qw,bw,sw,gw; for(i=0;i0) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jbj) qw=bi; bi=bj; bj=qw; 题目 28(无忧 id 138 题)已知数据文件 IN.DAT 中存有 200 个四位数,并已调用读函数 readDat()把这些数存入数组 a 中,请考生编制一函数 jsVal(),其功能是:把千位数字和十位数字重新组成一个新的十位数 ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数 字) ,以及把个位数字和百位数字组成另一个新的十位数 cd(新十位数的十位数字是原四位 数的个位数字,新十位数的个位数字是原四位数的百位数字 ) ,如果新组成的两个十位数 ab-cd=0 且 ab-cd=10 且两个数均是奇数, 同时两个新数的十位数字均不为零,则将满足此 条件的四位数按从大到小的顺序存入数组 b 中, 并要计算满足上述条件的四位数的个数 cnt。 最后 main()函数调用写函数 writeDat( )把结果 cnt 以及数组 b 中符合条件的四位数输出到 OUT.DAT 文件中。 void jsVal() int I,j,thou,hun,ten,data,ab,cd; for(I=0;I=0&(ab-cd)=10&cd=10) bcnt+=aI; for(I=0;Icnt-1;I+) for(j=I+1;jcnt;j+) if(bI=10 且 ab-cd=20 且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足 此条件的四位数按从大到小的顺序存入数组 b 中,并要计算满足上述条件的四位数的个数 cnt。 void jsVal() int i,j,qw,bw,sw,gw,ab,cd; for(i=0;i=10&ab-cd=20&ab%2=0&cd%2=0&qw!=0&gw!=0) bcnt+=ai; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+)if(bibj) qw=bi;bi=bj;bj=qw; 题目 30(无忧 id 152 题) 已知数据文件 IN.DAT 中存有 200 个四位数,并已调用读函数 readDat()把这些数存入数组 a 中,请考生编制一函数 jsVal(),其功能是:依次从数组 a 中取出一个四位数,如果该四位数 连续小于该四位数以后的五个数且该数是偶数(该四位数以后不满五个数,则不统计 ) ,则 统计出满足此条件的个数 cnt 并把这些四位数按从小到大的顺序存入数组 b 中,最后调用写 函数 writeDat( )把结果 cnt 以及数组 b 中符合条件的四位数输出到 OUT.DAT 文件中。 程序中已定义数组:a200,b200,已定义变量:cnt void jsVal() int I,j,flag; for(I=0;IMAX-5;I+) for(j=I+1;j=I+5;j+) if(aIaj&aI%2=0) flag=1; else flag=0; break; if(flag=1) bcnt+=aI; for(I=0;Icnt-1;I+) for(j=I+1;jbj) flag=bI;bI=bj;bj=flag; 题目 31(无忧 id 17 题)已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位),产品名称 mc(字符型 10 位),单价 dj(整型),数量 sl(整型),金额 je(长整型)五部分组 成。其中:金额=单价*数量计算得出。函数 ReadDat()是读取这 100 个销售记录并存入结构 数组 sell 中。请编制函数 SortDat(),其功能要求:按金额从大到小进行排列,若金额相同, 则按产品代码从大到小进行排列, 最终排列结果仍存入结构数组 sell 中,最后调用函数 WriteDat() 把结果输出到文件 OUT4.DAT 中。 部分源程序存在文件 prog1.c 中。 void SortDat() int I,j; PRO xy; for(I=0;I99;I+) for(j=I+1;j100;j+) if(sellI.jesellj.je|sellI.je=sellj.je&strcmp(sellI.dm,sellj.dm)0) xy=sellI;sellI=sellj;sellj=xy; 题目 32(无忧 id 79 题) 已知在文件 IN.DAT 中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位),产品名称 mc(字符型 10 位),单价 dj(整型),数量 sl(整型),金额 je(长整型)五部分组 成。其中:金额=单价*数量计算得出。函数 ReadDat()是读取这 100 个销售记录并存入结构 数组 sell 中。请编制函数 SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名 称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组 sell 中,最后调用函数 WriteDat()把结果输出到文件 OUT7.DAT 中。 void SortDat() int I,j; PRO xy; for(I=0;I99;I+) for(j=I+1;j100;j+) if(strcmp(sellI.mc,sellj.mc)sellj.je) xy=sellI;sellI=sellj;sellj=xy; 题目 33(无忧 id 61 题) 请编制函数 ReadDat()实现从文件 IN.DAT 中读取 1000 个十进制整数到数组 xx 中;请编制 函数 Compute()分别计算出 xx 中偶数的个数 even,奇数的平均值 ave1,偶数的平均值 ave2 以及方差 totfc 的值,最后调用函数 WriteDat()把结果输出到 OUT.DAT 文件中。 计算方差的公式如下: N totfc=1/N(xxi-ave2) i=1 2设 N 为偶数的个数,xxi为偶数,ave2 为偶数的平均值。 原始数据文件存放的格式是:每行存放 10 个数,并用逗号隔开。 (每个数均大于 0 且小 于等于 2000) #include #include #include #define MAX 1000 int xxMAX,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(IN.DAT,r)=NULL) return 1; /*编制函数 ReadDat()的部分*/ for(i=0;iMAX;i+) fscanf(fp,%d,&xxi); if(i+1)%10=0) fscanf(fp,n); /*/ fclose(fp); return 0; void Compute(void) int i,yyMAX; for(i=0;iMAX;i+) yyi=0;for(i=0;iMAX;i+) if(xxi%2=0) yyeven+=xxi; else odd+; ave1+=xxi; if(odd=0) ave1=0; else ave1/=odd; if(even=0) ave2=0; else ave2/=even; for(i=0;ieven;i+)ave2+=xxi;totfc+=(yyi-ave2)*(yyi-ave2)/even; 题目 34(无忧 id 73,102 题(提供了求素数 isPrime()函数)) 程序 prog1.c 的功能是:选出 100 以上 1000 之内所有个位数字与十位数字之和被 10 除所得 余数恰是百位数字的素数(如 293) 计算并输出上述这些素数的个数 cnt 以及这些素数值的 。 和 sum。 请考生编写函数 countValue( )实现程序要求,最后调用函数 writeDAT()把结果 cnt 和 sum 输出到文件 bc10.out 中。 注意:部分源程序存放在文件 prog1.c 中。 请勿改动主函数 main( )和输出数据函数 writeDAT()的内容。 #include int cnt, sum ; void countValue() int i,j,bw,sw,gw; for(i=100;i1000;i+) bw=i/100; sw=i%100/10; gw=i%10; for(j=2;ji;j+) if(i%j=0) break; if(i=j) if(gw+sw)%10=bw) cnt+; sum+=i; 题目 35(无忧 id 20 题) 某级数的前两项 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 值存入数组单元 b0,b1和 b2中,请编制 jsValue()函数来实现此功能, 最后调用函数 writeDat()把数组 b中的值输出到 out.dat 文件中。 请勿改动主函数 main()和写函数 writeDat()的内容。 #include int b3; jsValue() int a1=1,a2=1,a12,sn,k=2; sn=a1+a2; while(1)a12=a1+2*a2; if(sn=100) b0=k; if(sn=1000) b1=k; if(sn=10000) b2=k;break; sn=sn+a12; a1=a2;a2=a12; k+; 题目 36(无忧 id 5 题) 函数 ReadDat()实现从文件 ENG.IN 中读取一篇英文文章,存入到字符串数组 xx 中;请编制 函数 encryptChar(),按给定的替代关系对数组 xx 中的所有字符进行替代,仍存入数组 xx 的 对应的位置上,最后
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沪科版必修二数学试卷
- 今年惠州中考数学试卷
- 印刷出版业职业健康管理制度及措施
- 观赏鱼水族箱智能控制系统升级创新创业项目商业计划书
- 畜牧良种繁育创新创业项目商业计划书
- 中药熏洗设备创新创业项目商业计划书
- 产后恢复身体护理系列创新创业项目商业计划书
- 数字营销人才培养创新创业项目商业计划书
- 蛋品深加工创新创业项目商业计划书
- 体育经纪行业品牌建设与市场影响力研究考核试卷
- 中央空调项目可行性报告
- 2025年无房产证房屋买卖合同示例
- T/CECS 10097-2020大直径缓粘结预应力钢绞线
- 检测站雇佣合同协议书
- 调理康养协议书
- 儿童支气管哮喘诊断与防治指南解读课件
- 分子量子纠缠效应研究-洞察阐释
- 口腔退款免责协议书
- 即时检测急诊临床应用专家共识(2024)解读 课件
- ICU谵妄管理课件
- 铁马购销合同协议
评论
0/150
提交评论