1.已知在文件IN1.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.DAT中。
【参考答案】
void SortDat()
{
int i,j;
PRO xy;
for( i=0; i<99; i++ )
for( j=i+1; j<100; j++ )
{
if(strcmp(sell[i].mc,sell[j].mc)>0) /*按产品名称从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }
else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/
if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
2.已知在文件IN2.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。
注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
void SortDat()
{
int i,j;
PRO xy;
for(i=0;i for(j=i+1;j { if ( strcmp(sell[i].mc,sell[j].mc)<0 ) /*按产品名称从大到小进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/ if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } } } 3.已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void SortDat() { int i,j; PRO xy; for( i=0; i<99; i++ ) for( j=i+1; j<100; j++ ) { if(strcmp(sell[i].dm,sell[j].dm)<0) /*按产品代码从大到小进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } else if(strcmp(sell[i].dm,sell[j].dm)==0) /*若产品代码相同*/ if(sell[i].je { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } } } 4.已知在文件IN4.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT4.DAT中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void SortDat() { int i,j; PRO xy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) { if(strcmp(sell[i].mc,sell[j].mc)<0) /*按产品名称从大到小进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/ if(sell[i].je { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } } } 5.已知在文件IN5.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相等, 则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void SortDat() { int i,j; PRO xy; for(i=0;i for(j=i+1;j { if(sell[i].je { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy;} else if(sell[i].je==sell[j].je) /*若金额相同*/ if(strcmp(sell[i].dm,sell[j].dm)>0) /*则按代码从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } } } 6.已知在文件IN6.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从小到大进行排列, 若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void SortDat() { int i,j; PRO xy; for(i=0;i for(j=i+1;j { if(strcmp(sell[i].dm,sell[j].dm)>0) /*按代码从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } else if(strcmp(sell[i].dm,sell[j].dm)==0) /*若代码相同*/ if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } } } 7.已知在文件IN7.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT7.DAT中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void SortDat() { int i,j; PRO xy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) { if(sell[i].je { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } else if(sell[i].je==sell[j].je) /*若金额相同*/ if(strcmp(sell[i].dm,sell[j].dm)<0) /*则按代码从大到小进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } } } 8.已知在文件IN8.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中,金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT8.DAT中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void SortDat() { int i,j; PRO xy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) { if (sell[i].je>sell[j].je) /*按金额从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy;} else if (sell[i].je==sell[j].je) /*若金额相同*/ if (strcmp(sell[i].dm,sell[j].dm)<0) /*则按代码从大到小进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } } } 9.已知在文件IN9.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中,金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从小到大进行排列,排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT9.DA T中。 注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void SortDat() { int i,j; PRO xy; for(i=0;i<99;i++) for(j=i+1;j<100;j++) { if (sell[i].je>sell[j].je) /*按金额从小到大进行排列*/ { xy=sell[i];sell[i]=sell[j];sell[j]=xy; } else if (sell[i].je==sell[j].je) /*若金额相同*/ if (strcmp(sell[i].dm,sell[j].dm)>0) /*则按代码从小到大进行排列*/ { xy=sell[i];sell[i]=sell[j];sell[j]=xy; } } } 10.已知数据文件IN10.DA T中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b 中的数输出到OUT10.DA T文件。 例如:9123,9-1-2-3>0,则该数满足条件存入数组b,且个数cnt=cnt+1。 9812,9-8-1-2<0,则该数不满足条件,忽略。 注意:部分源程序已给出。程序中已定义数组:a[300],b[300];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 jsValue() { int i,thou,hun,ten,data,j; for(i=0;i<300;i++) { thou=a[i]/1000; /*取得四位数的千位数字*/ hun=a[i]%1000/100; /*取得四位数的百位数字*/ ten=a[i]%100/10; /*取得四位数的十位数字*/ data=a[i]%10; /*取得四位数的个位数字*/ if (thou-hun-ten-data>0) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i]>b[j]) { data=b[i]; b[i]=b[j]; b[j]=data; } } 11.已知数据文件IN11.DA T中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中。请编制一个函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT11.DA T文件。 例如:6712,6+2=7+1,则该数满足条件存入数组bb中,且个数cnt=cnt+1。 8129,8+9≠1+2,则该数不满足条件,忽略。 注意:部分源程序已给出。程序中已定义数组:a[300],b[300];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsValue() { int i,thou,hun,ten,data,j; for(i=0;i<300;i++) { thou=a[i]/1000; /*取得四位数的千位数字*/ hun=a[i]%1000/100; /*取得四位数的百位数字*/ ten=a[i]%100/10; /*取得四位数的十位数字*/ data=a[i]%10; /*取得四位数的个位数字*/ if (thou+data==hun+ten) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i]>b[j]) { data=b[i]; b[i]=b[j]; b[j]=data; } } 12.已知数据文件IN12.DA T中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b 中的数输出到OUT12.DA T文件。 例如:1239,9-1-2-3>0,则该数满足条件,存入数组b中,且个数cnt=cnt+1。 8129,9-8-1-2<0,则该数不满足条件,忽略。 注意:部分源程序已给出。程序中已定义数组:a[300],b[300];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsValue() { int i,thou,hun,ten,data,j; for(i=0;i<300;i++) { thou=a[i]/1000; /*取得四位数的千位数字*/ hun=a[i]%1000/100; /*取得四位数的百位数字*/ ten=a[i]%100/10; /*取得四位数的十位数字*/ data=a[i]%10; /*取得四位数的个位数字*/ if (data-thou-hun-ten>0) { b[cnt]=a[i]; cnt++; } } for(i=0;i if(b[i] } 13.已知数据文件IN13.DA T中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT13.DA T文件。 例如:7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。 8129,8+1≠2+9,则该数不满足条件,忽略。 注意:部分源程序已给出。程序中已定义数组:a[300],b[300];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsValue() { int i,thou,hun,ten,data,j; for(i=0;i<300;i++) { thou=a[i]/1000; /*取得四位数的千位数字*/ hun=a[i]%1000/100; /*取得四位数的百位数字*/ ten=a[i]%100/10; /*取得四位数的十位数字*/ data=a[i]%10; /*取得四位数的个位数字*/ if (thou+hun==data+ten) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i] } 14.已知数据文件IN14.DA T中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中。请编制一个函数jsValue(),其功能是:求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到OUT14.DAT文件。 例如:5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件,忽略。 注意:部分源程序已给出。程序中已定义数组:a[300]、b[300];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsValue() { int j,i,value; for(i=0;i<300;i++) if(isP(a[i])) { b[cnt]=a[i]; cnt++; } for(i=0;i for(j=i+1;j if(b[i]>b[j]) { value=b[i]; b[i]=b[j]; b[j]=value; } } 15.已知数据文件IN15.DA T中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数的平均值pjz1,以及不满足此条件的四位数的平均值pjz2,最后调用写函数writeDat()把结果输出到OUT15.DAT文件。 例如:9123,9-1-2-3>0,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。 9812,9-8-1-2<0,则该数不满足条件,计算平均值pjz2。 注意:部分源程序已给出。程序中已定义数组:a[300],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 jsValue() int i,thou,hun,ten,data,n=0; for(i=0;i<300;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ if (thou-hun-ten-data>0) { cnt++; pjz1+=a[i]; } /*统计满足条件的数的个数并求和*/ else { n++; pjz2+=a[i]; } /*统计不满足条件的数的个数并求和*/ } pjz1/=cnt; /*求满足条件的数的平均值*/ pjz2/=n; /*求不满足条件的数的平均值*/ } 16.已知数据文件IN16.DA T中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于0的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT16.DA T文件。 例如:1239,9-1-2-3>0,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。 8129,9-8-1-2<0,则该数不满足条件,计算平均值pjz2。 注意:部分源程序已给出。程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz2。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsValue() { int i,thou,hun,ten,data,n=0; for(i=0;i<300;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ if(data-thou-hun-ten>0) { cnt++; pjz1+=a[i]; }/*统计满足条件的数的个数并求和*/ else { n++; pjz2+=a[i]; } /*统计不满足条件的数的个数并求和*/ } pjz1/=cnt; /*求满足条件的数的平均值*/ pjz2/=n; /*求不满足条件的数的平均值*/ } 17.已知数据文件IN17.DA T中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT17.DA T文件。 例如:7153,7+1=5+3,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。 8129,8+1≠2+9,则该数不满足条件,计算平均值pjz2。 注意:部分源程序已给出。程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsValue() { int i,thou,hun,ten,data,n=0; for(i=0;i<300;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ if(thou+hun==ten+data) { cnt++; pjz1+=a[i]; } /*统计满足条件的数的个数并求和*/ else { n++; pjz2+=a[i]; } /*统计不满足条件的数的个数并求和*/ } pjz1/=cnt; /*求满足条件的数的平均值*/ pjz2/=n; /*求不满足条件的数的平均值*/ } 18.已知数据文件IN18.DA T中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2,输出到OUT18.DA T文件中。 例如:6712,6+2=7+1,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。 8129,8+9≠1+2,则该数不满足条件,计算平均值pjz2。 注意:部分源程序已给出。程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz2。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsValue() { int i,thou,hun,ten,data,n=0; for(i=0;i<300;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ if(thou+data==hun+ten) { cnt++; pjz1+=a[i]; } /*统计满足条件的数的个数并求和*/ else { n++; pjz2+=a[i]; } /*统计不满足条件的数的个数并求和*/ } pjz1/=cnt; /*求满足条件的数的平均值*/ pjz2/=n; /*求不满足条件的数的平均值*/ } 19.已知数据文件IN19.DA T中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出这些4位数是素数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT19.DA T文件中。 例如:5591是素数,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。 9812是非素数,则该数不满足条件,计算平均值pjz2。 注意:部分源程序已给出。程序中已定义数组:a[300],已定义变量:cnt、pjz1、pjz2。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsValue() { int i; for(i=0;i<300;i++) if(isP(a[i])) /*判断该数是否为素数*/ { pjz1+=a[i]; cnt++; } /*计算所有素数的和并统计其个数*/ else pjz2+=a[i]; /*计算所有不是素数的数的和*/ pjz1=pjz1/cnt; /*求所有素数的平均值*/ pjz2=pjz2/(300-cnt); /*求所有不是素数的平均值*/ } 20.已知数据文件IN20.DA T中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT20.DA T文件中。 注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内 容。 【参考答案】 void jsVal() { int i,thou,hun,ten,data,j; int ab,cd; for(i=0;i<200;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ ab=10*thou+ten; cd=10*data+hun; if((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab/10!=0&&cd/10!=0) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i] } 21.已知数据文件IN21.DA T中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT21.DA T文件中。 注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsVal() { int i,j,gw,sw,bw,qw,temp,ab,cd; for(i=0;i<200;i++) { qw=a[i]/1000; /*求四位数的个位数字*/ bw=a[i]/100%10; /*求四位数的百位数字*/ sw=a[i]/10%10; /*求四位数的十位数字*/ gw=a[i]%10; /*求四位数的千位数字*/ ab=10*qw+sw;cd=10*gw+bw; if((ab-cd>=10)&&(ab-cd<=20)&&ab%2==0&&cd%2==0&&ab/10!=0&&cd/10!=0) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i] { temp=b[i]; b[i]=b[j]; b[j]=temp; } } 22.已知数据文件IN22.DA T中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数均是素数,同时两个新数均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT22.DA T文件中。 注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsVal() { int i,thou,hun,ten,data,j; int ab,cd; for(i=0;i<200;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ ab=10*thou+ten; cd=10*data+hun; if(isprime(ab)&&isprime(cd)&&ab!=0&&cd!=0) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i] } 23.已知数据文件IN23.DA T中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的两位数(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的个位数字),以及把十位数字和百位数字组成另一个新的两位数(新两位数的十位数字是原四位数的百位数字,新两位数的个位数字是原四位数的十位数字),如果新组成的两个两位数均是奇数并且两个两位数中至少有一个能被5整除,同时两个新数均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT23.DAT文件中。 注意:部分源程序已给出中。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 jsVal() { int i,thou,hun,ten,data,j; int ab,cd; for(i=0;i<200;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ ab=10*thou+data;cd=10*hun+ten; if(ab%2==1&&cd%2==1&&(ab%5==0||cd%5==0)&&ab!=0&&cd!=0) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i] } 24.已知数据文件IN24.DA T中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数ab 注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 jsVal() { int i,thou,hun,ten,data,j; int ab,cd; for(i=0;i<200;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ ab=10*thou+ten; cd=10*data+hun; if(((ab-cd)<0&&ab%2==1&&ab%5!=0)&&cd%2!=1&&ab/10!=0&&cd/10!=0) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i] } 25.已知数据文件IN25.DA T中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把个位数字和千位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个数均为偶数且两个十位数中至少有一个数能被9整除,同时两个新数均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并计算满足上述条件的4位数的个数cnt,最后,调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT25.DAT文件中。 注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsVal() { int i,thou,hun,ten,data,j; int ab,cd; for(i=0;i<200;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ ab=data*10+thou; cd=hun*10+ten; if((ab%9==0||cd%9==0)&&(ab%2!=1)&&(cd%2!=1)&&ab!=0&&cd!=0) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i] } 26.已知数据文件IN26.DA T中存有200个4位数,并已调用读函数readDat( )把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把个位数字和千位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的千位数字),以及把百位数和十位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个十位数必须是一个奇数、另一个为偶数且两个十位数中至少有一个数能被17整除,同时两个新数均不为0,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后,调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT26.DA T文件中。 注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DA T中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsVal( ) { int i,thou,hun,ten,data,j; int ab,cd; for(i=0;i<200;i++) { thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ ab=data*10+thou; cd=hun*10+ten; if((ab%17==0||cd%17==0)&&((ab%2!=1&&cd%2==1)||(ab%2==1&&cd%2!=1))&&ab!=0&&cd!=0 ) { b[cnt]=a[i]; cnt++; } }