全国计算机等级三级数据库上机题库100题.docx
《全国计算机等级三级数据库上机题库100题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级三级数据库上机题库100题.docx(97页珍藏版)》请在冰豆网上搜索。
全国计算机等级三级数据库上机题库100题
1.已知数据文件IN1.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:
如果4位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。
最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT1.DAT文件。
【答案】
voidjsVal()
{
inti,j;/*定义循环控制变量*/
inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/
inttemp;/*定义数据交换时的暂存变量*/
for(i=0;i<200;i++)/*逐个取每一个4位数*/
a4=a[i]/1000;/*求4位数的千位数字*/
a3=a[i]%1000/100;/*求4位数的百位数字*/
a2=a[i]%100/10;/*求4位数的十位数字*/
a1=a[i]%10;/*求4位数的个位数字*/
if(a4%2!
=0&&a3%2!
=0&&a2%2!
=0&&a1%2!
=0)
/*如果4位数各位上的数字均是奇数*/
b[cnt]=a[i];/*将满足条件的数存入数组b中*/
cnt++;/*统计满足条件的数的个数*/
}
for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}2.已知IN2.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT2.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;iif(a[i]%2!=0)/*如果当前数是奇数*/{for(j=i+1;j<=i+5;j++)/*取该数后面的5个数进行比较*/if(a[i]break;/*如果当前数不满足比后面5个数都大的条件,则跳出循环*/if(j==i+6)/*如果当前数比后面的5个数都大*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*并统计满足条件的数的总个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。【答案】voidSortDat(){inti,j;/*定义循环控制变量*/PROtemp;/*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/for(i=0;i<99;i++)/*利用选择法进行排序*/for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>0)/*按产品名称从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}4.函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。【答案】voidencryptChar(){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/charch;/*存储当前取得的字符*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;j{ch=xx[i][j]*11%256;if(ch<=32||ch>130)continue;/*如果计算后的值小于等于32或大130,则该字符不变*/elsexx[i][j]=ch;/*否则将所对应的字符进行替代*/}}}5.函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidConvertCharA(void){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串的长度*/for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
for(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}2.已知IN2.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT2.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;iif(a[i]%2!=0)/*如果当前数是奇数*/{for(j=i+1;j<=i+5;j++)/*取该数后面的5个数进行比较*/if(a[i]break;/*如果当前数不满足比后面5个数都大的条件,则跳出循环*/if(j==i+6)/*如果当前数比后面的5个数都大*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*并统计满足条件的数的总个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。【答案】voidSortDat(){inti,j;/*定义循环控制变量*/PROtemp;/*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/for(i=0;i<99;i++)/*利用选择法进行排序*/for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>0)/*按产品名称从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}4.函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。【答案】voidencryptChar(){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/charch;/*存储当前取得的字符*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;j{ch=xx[i][j]*11%256;if(ch<=32||ch>130)continue;/*如果计算后的值小于等于32或大130,则该字符不变*/elsexx[i][j]=ch;/*否则将所对应的字符进行替代*/}}}5.函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidConvertCharA(void){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串的长度*/for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
if(b[i]
temp=b[i];
b[i]=b[j];
b[j]=temp;
2.已知IN2.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:
依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT2.DAT文件中。
for(i=0;iif(a[i]%2!=0)/*如果当前数是奇数*/{for(j=i+1;j<=i+5;j++)/*取该数后面的5个数进行比较*/if(a[i]break;/*如果当前数不满足比后面5个数都大的条件,则跳出循环*/if(j==i+6)/*如果当前数比后面的5个数都大*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*并统计满足条件的数的总个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。【答案】voidSortDat(){inti,j;/*定义循环控制变量*/PROtemp;/*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/for(i=0;i<99;i++)/*利用选择法进行排序*/for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>0)/*按产品名称从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}4.函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。【答案】voidencryptChar(){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/charch;/*存储当前取得的字符*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;j{ch=xx[i][j]*11%256;if(ch<=32||ch>130)continue;/*如果计算后的值小于等于32或大130,则该字符不变*/elsexx[i][j]=ch;/*否则将所对应的字符进行替代*/}}}5.函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidConvertCharA(void){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串的长度*/for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
if(a[i]%2!
=0)/*如果当前数是奇数*/
for(j=i+1;j<=i+5;j++)/*取该数后面的5个数进行比较*/
if(a[i]break;/*如果当前数不满足比后面5个数都大的条件,则跳出循环*/if(j==i+6)/*如果当前数比后面的5个数都大*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*并统计满足条件的数的总个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。【答案】voidSortDat(){inti,j;/*定义循环控制变量*/PROtemp;/*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/for(i=0;i<99;i++)/*利用选择法进行排序*/for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>0)/*按产品名称从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}4.函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。【答案】voidencryptChar(){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/charch;/*存储当前取得的字符*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;j{ch=xx[i][j]*11%256;if(ch<=32||ch>130)continue;/*如果计算后的值小于等于32或大130,则该字符不变*/elsexx[i][j]=ch;/*否则将所对应的字符进行替代*/}}}5.函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidConvertCharA(void){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串的长度*/for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
break;/*如果当前数不满足比后面5个数都大的条件,则跳出循环*/
if(j==i+6)/*如果当前数比后面的5个数都大*/
cnt++;/*并统计满足条件的数的总个数*/
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。【答案】voidSortDat(){inti,j;/*定义循环控制变量*/PROtemp;/*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/for(i=0;i<99;i++)/*利用选择法进行排序*/for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>0)/*按产品名称从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}4.函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。【答案】voidencryptChar(){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/charch;/*存储当前取得的字符*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;j{ch=xx[i][j]*11%256;if(ch<=32||ch>130)continue;/*如果计算后的值小于等于32或大130,则该字符不变*/elsexx[i][j]=ch;/*否则将所对应的字符进行替代*/}}}5.函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidConvertCharA(void){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串的长度*/for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
for(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。【答案】voidSortDat(){inti,j;/*定义循环控制变量*/PROtemp;/*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/for(i=0;i<99;i++)/*利用选择法进行排序*/for(j=i+1;j<100;j++)if(strcmp(sell[i].mc,sell[j].mc)>0)/*按产品名称从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/{temp=sell[i];sell[i]=sell[j];sell[j]=temp;}}4.函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。【答案】voidencryptChar(){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/charch;/*存储当前取得的字符*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;j{ch=xx[i][j]*11%256;if(ch<=32||ch>130)continue;/*如果计算后的值小于等于32或大130,则该字符不变*/elsexx[i][j]=ch;/*否则将所对应的字符进行替代*/}}}5.函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidConvertCharA(void){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串的长度*/for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
if(b[i]>b[j])
3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。
voidSortDat()
PROtemp;/*定义数据交换时的暂存变量(这里是PRO类型的结构体变量)*/
for(i=0;i<99;i++)/*利用选择法进行排序*/
for(j=i+1;j<100;j++)
if(strcmp(sell[i].mc,sell[j].mc)>0)/*按产品名称从小到大进行排列*/
temp=sell[i];
sell[i]=sell[j];
sell[j]=temp;
elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/
if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/
4.函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。
请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。
替代关系:
f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。
voidencryptChar()
intstr;/*存储字符串的长度*/
charch;/*存储当前取得的字符*/
for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;j{ch=xx[i][j]*11%256;if(ch<=32||ch>130)continue;/*如果计算后的值小于等于32或大130,则该字符不变*/elsexx[i][j]=ch;/*否则将所对应的字符进行替代*/}}}5.函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidConvertCharA(void){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串的长度*/for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
str=strlen(xx[i]);/*求得当前行的字符串长度*/
for(j=0;j{ch=xx[i][j]*11%256;if(ch<=32||ch>130)continue;/*如果计算后的值小于等于32或大130,则该字符不变*/elsexx[i][j]=ch;/*否则将所对应的字符进行替代*/}}}5.函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aec.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidConvertCharA(void){inti,j;/*定义循环控制变量*/intstr;/*存储字符串的长度*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串的长度*/for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
ch=xx[i][j]*11%256;
if(ch<=32||ch>130)
continue;
/*如果计算后的值小于等于32或大130,则该字符不变*/
else
xx[i][j]=ch;/*否则将所对应的字符进行替代*/
5.函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。
请编制函数ConvertCharA(),该函数的功能是:
以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。
大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。
把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT5.DAT中。
例如,原文:
Adb.Bcdza
abck.LLhj
结果:
Aec.Bdeab
bcdl.LLik
原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格。
voidConvertCharA(void)
for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串的长度*/for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
str=strlen(xx[i]);/*求得当前行的字符串的长度*/
for(j=0;jif(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/if(xx[i][j]=='z')xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/elsexx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/}}6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012【答案】voidjsSort(){inti,j;/*定义循环控制变量*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<199;i++)/*用选择法对数组进行排序*/for(j=i+1;j<200;j++){if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
if(xx[i][j]>='a'&&xx[i][j]<='z')/*如果是小写字母*/
if(xx[i][j]=='z')
xx[i][j]='a';/*如果是小写字母z,则改写成字母a*/
xx[i][j]+=1;/*其他的小写字母则改写为该字母的下一个字母*/
6.在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。
函数readDat()的功能是读取这200个数存放到数组aa中。
请编制函数jsSort(),该函数的功能是:
要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。
最后调用函数writeDat()把结果bb输出到文件OUT6.DAT中。
例如:
处理前90125099601270258088
处理后50998088702560129012
voidjsSort()
for(i=0;i<199;i++)/*用选择法对数组进行排序*/
for(j=i+1;j<200;j++)
if(aa[i]%1000{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/{temp=aa[i];aa[i]=aa[j];aa[j]=temp;}}for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/bb[i]=aa[i];}7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。【答案】voidSortCharD(){inti,j,k;/*定义循环控制变量*/intstr;/*存储字符串的长度*/chartemp;/*定义数据交换时的暂存变量*/for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
temp=aa[i];
aa[i]=aa[j];
aa[j]=temp;
elseif(aa[i]%1000==aa[j]%1000)*如果后3位数相等*/
if(aa[i]>aa[j])*则按原4位数的大小进行升序排序*/
for(i=0;i<10;i++)/*将排序后的前10个数存入数组bb中*/
bb[i]=aa[i];
7.函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。
请编制函数SortCharD(),该函数的功能是:
以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。
dAe,BfC
CCbbAA
fedCBA,
bbCCAA
voidSortCharD()
inti,j,k;/*定义循环控制变量*/
chartemp;/*定义数据交换时的暂存变量*/
for(i=0;i{str=strlen(xx[i]);/*求得当前行的字符串长度*/for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
for(k=j+1;kif(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
if(xx[i][j]{temp=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=temp;}}}8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。【答案】voidCountRs(void){inti,j;/*定义循环控制变量*/intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/for(i=0;i<10;i++)/*初始化数组yy*/yy[i]=0;for(i=0;i<100;i++)/*依次取每张选票进行统计*/{cnt=0;/*初始化计数器变量*/for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/if(xx[i][j]=='1')cnt++;if(cnt>5)/*当cnt值大于5时为有效选票*/{for(j=0;j<10;j++)/*统计有效选票*/if(xx[i][j]=='1')yy[j]++;}}}9.下列程序的功能是:利用以下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2)x0=x1,把x1的值赋给x0。(3)x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。【答案】floatcountValue(){floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/while(1)/*无条件循环*/{x0=x1;/*将x1值赋给x0*/x1=cos(x0);/*求出新的x1值*/if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/}returnx1;/*返回x1的值*/}10.请编写函数voidcountValue(int*a,int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。【答案】voidcountValue(int*a,int*n){inti;/*定义循环控制变量*/*n=0;/*初始化计数器变量*/for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/{*a=i;/*保存符合条件的数*/*n=*n+1;/*统计符合条件的数的个数*/a++;}}11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。【答案】voidCalValue(void){inti;/*定义循环控制变量*/intdata;/*用于保存处理后产生的新数*/for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/if(xx[i]>0)/*判断是否正整数*/{totNum++;/*统计正整数的个数*/data=xx[i]>>1;/*将数右移一位*/if(data%2==0)/*如果产生的新数是偶数*/{totCnt++;/*统计这些数的个数*/totPjz+=xx[i];/*并将满足条件的原数求和*/}}totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/}12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9≠1+2,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/{b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
8.对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。
每一位内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。
给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。
请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT8.DAT中。
voidCountRs(void)
intcnt;/*用来存储每张选票中选中的人数,以判断选票是否有效*/
for(i=0;i<10;i++)/*初始化数组yy*/
yy[i]=0;
for(i=0;i<100;i++)/*依次取每张选票进行统计*/
cnt=0;/*初始化计数器变量*/
for(j=0;j<10;j++)/*统计每张选票的选中人数cnt*/
if(xx[i][j]=='1')
cnt++;
if(cnt>5)/*当cnt值大于5时为有效选票*/
for(j=0;j<10;j++)/*统计有效选票*/
yy[j]++;
9.下列程序的功能是:
利用以下所示的简单迭代方法求方程:
cos(x)-x=0的一个实根。
xn+1=cos(xn)
迭代步骤如下:
(1)取x1初值为0.0。
(2)x0=x1,把x1的值赋给x0。
(3)x1=cos(x0),求出一个新的x1。
(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤
(2)。
(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。
请编写函数countValue()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。
floatcountValue()
floatx0,x1=0.0;/*定义两个浮点型变量进行迭代*/
while
(1)/*无条件循环*/
x0=x1;/*将x1值赋给x0*/
x1=cos(x0);/*求出新的x1值*/
if(fabs(x0-x1)<1e-6)break;/*若x0-x1的绝对值小于0.000001,则结束循环*/
returnx1;/*返回x1的值*/
10.请编写函数voidcountValue(int*a,int*n),它的功能是:
求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。
voidcountValue(int*a,int*n)
inti;/*定义循环控制变量*/
*n=0;/*初始化计数器变量*/
for(i=1;i<=1000;i++)/*在这个范围内寻找符合条件的数*/
if((i%7==0&&i%11!
=0)||(i%7!
=0&&i%11==0))/*如果当前数可以被7整除而不可以被11整除,或者可以被11整除而不可以被7整除*/
*a=i;/*保存符合条件的数*/
*n=*n+1;/*统计符合条件的数的个数*/
a++;
11.已知在文件IN11.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()的功能是读取这若干个正整数并存入数组xx中。
请编制函数CalValue(),其功能要求:
(1)求出该文件中共有多少个正整数totNum;
(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT11.DAT中。
voidCalValue(void)
intdata;/*用于保存处理后产生的新数*/
for(i=0;i<200;i++)/*逐个取数组xx中的数进行统计*/
if(xx[i]>0)/*判断是否正整数*/
totNum++;/*统计正整数的个数*/
data=xx[i]>>1;/*将数右移一位*/
if(data%2==0)/*如果产生的新数是偶数*/
totCnt++;/*统计这些数的个数*/
totPjz+=xx[i];/*并将满足条件的原数求和*/
totPjz/=totCnt;/*求满足条件的这些数(右移前的值)的算术平均值*/
12.已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。
请编制函数jsValue(),其功能是:
求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件中。
6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。
8129,8+9≠1+2,则该数不满足条件,忽略。
voidjsValue()
for(i=0;i<300;i++)/*逐个取每一个4位数*/
if(a4+a1==a3+a2)/*如果千位数加个位数等于百位数加十位数*/
cnt++;/*统计满足条件的数的个数cnt*/
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
for(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0){/*如果各位上的数字均是0或2或4或6或8*/b[cnt]=a[i];/*将满足条件的数存入数组b中*/cnt++;/*统计满足条件的数的个数cnt*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
13.已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:
如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT13.DAT文件中。
if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0)
{/*如果各位上的数字均是0或2或4或6或8*/
for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
for(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1≠2+9,则该数不满足条件,忽略。【答案】voidjsValue(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<300;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/{b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/cnt++;/*计算满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
14.已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:
求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT14.DAT文件。
7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。
8129,8+1≠2+9,则该数不满足条件,忽略。
if(a4+a3==a2+a1)/*如果千位数字加百位数字等于十位数字加个位数字*/
b[cnt]=a[i];/*把满足条件的4位数依次存入数组b中*/
cnt++;/*计算满足条件的数的个数*/
for(i=0;ifor(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
for(j=i+1;jif(b[i]{temp=b[i];b[i]=b[j];b[j]=temp;}}15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。【答案】voidjsVal(){inti,j;/*定义循环控制变量*/inta1,a2,a3,a4;/*定义变量保存4位数的每位数字*/inttemp;/*定义数据交换时的暂存变量*/for(i=0;i<200;i++)/*逐个取每一个4位数*/{a4=a[i]/1000;/*求4位数的千位数字*/a3=a[i]%1000/100;/*求4位数的百位数字*/a2=a[i]%100/10;/*求4位数的十位数字*/a1=a[i]%10;/*求4位数的个位数字*/if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等于个位数字,并且此4位数是偶数*/{b[cnt]=a[i];/*则将该数存入数组b中*/cnt++;/*并且统计出满足条件的数的个数*/}}for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
15.已知数据文件in15.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:
若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out15.dat文件中。
if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))
/*如果该数的千位数字小于等于百位数字,百位数字小于等于十位数字,十位数字小于等
于个位数字,并且此4位数是偶数*/
b[cnt]=a[i];/*则将该数存入数组b中*/
cnt++;/*并且统计出满足条件的数的个数*/
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
for(j=i+1;jif(b[i]>b[j]){temp=b[i];b[i]=b[j];b[j]=temp;}}16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
16.已知数据文件IN16.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsValue(),其功能是:
求出千位数上的数减百位数上数减十位数上的数减个位数上的数大于零的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1