1、 /*如果4位数各位上的数字均是奇数*/bcnt=ai; /*将满足条件的数存入数组b中*/ cnt+; /*统计满足条件的数的个数*/cnt-1;i+) /*将数组b中的数按从大到小的顺序排列*/for(j=i+1;jcnt;j+)if(bibj)temp=bi;bi=bj;bj=temp;2.已知IN2.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数 jsVal(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用
2、写函数 writeDat() 把结果cnt及数组b中符合条件的4位数输出到 OUT2.DAT文件中。MAX-5;i+) /*逐个取每个4位数*/ if(ai%2!=0) /*如果当前数是奇数*/=i+5;j+) /*取该数后面的5个数进行比较*/if(ai3. 已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按
3、产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。void SortDat()PRO temp; /*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/99;i+) /*利用选择法进行排序*/100;if(strcmp(selli.mc,sellj.mc)0) /*按产品名称从小到大进行排列*/temp=selli;selli=sellj;sellj=temp;else if(strcmp(selli.mc,sellj.mc)=0) /*若产品名称相同*/if(
4、selli.jesellj.je) /*则按金额从小到大进行排列*/4. 函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。void enc
5、ryptChar()int str; /*存储字符串的长度*/char ch; /*存储当前取得的字符*/maxline;i+) /*以行为单位获取字符*/str=strlen(xxi); /*求得当前行的字符串长度*/for(j=0;str;j+) /*依次取每行的各个字符*/ ch=xxij *11%256;if(ch130)continue; /*如果计算后的值小于等于32或大130,则该字符不变*/elsexxij=ch; /*否则将所对应的字符进行替代*/5. 函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCh
6、arA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。void ConvertCharA(void) /*求得当前行的字符串的长度*/j+) /*逐个取得当前行的每一个字符*/if(xxij=a
7、& xxijz) /*如果是小写字母*/if(xxij=)xxij=; /*如果是小写字母z,则改写成字母a*/xxij+=1; /*其他的小写字母则改写为该字母的下一个字母*/6. 在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前 9
8、012 5099 6012 7025 8088处理后 5099 8088 7025 6012 9012void jsSort()199;i+) /*用选择法对数组进行排序*/if(aai%1000aaj) *则按原4位数的大小进行升序排序*/ for(i=0;10;i+) /*将排序后的前10个数存入数组bb中*/ bbi=aai;7. 函数ReadDat( )的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD( ),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteD
9、at( )把结果xx输出到文件OUT7.DAT中。dAe,BfCCCbbAAfedCBA,bbCCAAvoid SortCharD()int i,j,k;char temp;for (i=0;str-1;j+) /*对字符按从大到小的顺序进行排序*/for(k=j+1;kk+)if(xxij5) /*当cnt值大于5时为有效选票*/j+) /*统计有效选票*/if(xxij= yyj+;9. 下列程序的功能是:利用以下所示的简单迭代方法求方程:cos (x) -x=0的一个实根。xn+1=cos(xn )迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=
10、cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue ( )实现程序要求,最后调用函数writeDAT( )把结果输出到文件out9.dat中。float countValue( ) float x0,x1=0.0; /*定义两个浮点型变量进行迭代*/while(1) /*无条件循环*/ x0=x1; /*将x1值赋给x0*/x1=cos(x0); /*求出新的x1值*/if(fabs(x0-x1)1e-6) break; /*若
11、x0-x1的绝对值小于0.000001,则结束循环*/return x1; /*返回x1的值*/10. 请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。void countValue(int *a,int *n)int i;*n=0;for(i=1;=1000;i+) /*在这个范围内寻找符合条件的数*/if(i%7=0 & i%11!=0)|(i%7! i%11=0) /*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7
12、整除*/*a=i; /*保存符合条件的数*/*n=*n+1; /*统计符合条件的数的个数*/a+;11. 已知在文件IN11.DAT中存有若干个(个数0) /*判断是否正整数*/totNum+; /*统计正整数的个数*/data=xxi1; /*将数右移一位*/if(data%2=0) /*如果产生的新数是偶数*/totCnt+; /*统计这些数的个数*/totPjz+=xxi; /*并将满足条件的原数求和*/totPjz/=totCnt; /*求满足条件的这些数(右移前的值)的算术平均值*/12. 已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入
13、数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。6712,6271,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,891+2,则该数不满足条件,忽略。void jsValue()300;a2=ai%100/10;a1=ai%10;if(a4+a1=a3+a2) /*如果千位数加个位数等于百位数加十位数*/ /*统计满足条件的数的个数
14、cnt*/i+) /*用选择法对数组b中的4位数按从小到大的顺序进行排序*/13. 已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。 /*求4位数的百位数字*/ /*求4位数的十位数字*/ if(a4%2=0 & a3%2=0 & a2%2=0 & a1%2=0) /*如果各
15、位上的数字均是0或2或4或6或8*/i+) /*将数组b中的数按从大到小的顺序排序*/14. 已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。7153,7153,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,81 2+9,则该数不满足条件,忽略。
16、int i,j; int a1,a2,a3,a4; int temp;if (a4+a3=a2+a1) /*如果千位数字加百位数字等于十位数字加个位数字*/ /*把满足条件的4位数依次存入数组b中*/ /*计算满足条件的数的个数*/i+) /*对数组b中的4位数按从大到小的顺序进行排序*/15. 已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat( )把这些数存入数组a中,请编制一函数jsVal( ),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统
17、计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。 a4=ai/1000;if (a4=a3) & (a3=a2) & (a2=a1) & (a1%2=0) /*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/ /*则将该数存入数组b中*/ /*并且统计出满足条件的数的个数*/i+) /*把数组b中的4位数按从小到大的顺序排列*/16. 已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2