2012年9月计算机三级网络技术机试100套上机题库(最新)

更新时间:2024-06-20 18:23:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2012年9月计算机三级网络技术机试100套上机题(最新)

第1套(含有答案)

已知在文件IN1.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.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>sell[j].je) /*则按金额从小到大进行排列*/ {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} } }

第2套.

已知在文件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;

1 / 57

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

第3 套.

已知在文件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

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; } } }

第4套

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

2 / 57

数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

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; } } }

第5题

已知在文件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

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 / 57

}

第6套

已知在文件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 temp;

for(i=0;i

if(sell[i].je

||sell[i].je==sell[j].je&&strcmp(sell[i].mc,sell[j].mc)>0) { temp=sell[i]; sell[i]=sell[j]; sell[j]=temp; } }

第7套

已知在文件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) /*按产品代码从大到小进行排列*/

4 / 57

{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }

else if(strcmp(sell[i].dm,sell[j].dm)==0) /*若产品代码相同*/

if(sell[i].je

第8题

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

注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 答案

int i,j; /* 定义变量 */ PRO temp;

for(i=0;i

if(strcmp(sell[i].mc,sell[j].mc)>0 /* 判断条件 */

||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je

第9套

已知在文件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++)

5 / 57

{

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 套

已知在文件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

if(sell[i].je

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; } } }

附加题

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

注意:部分源程序已给出。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 【参考答案】 void SortDat()

6 / 57

{ 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; } } }

已知在文件IN9.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中,金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从小到大进行排列,排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT9.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; } } }

第11套

已知数据文件IN11.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中。请编制一个函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT11.DAT文件。

7 / 57

例如: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]00/100; /*取得四位数的百位数字*/ ten=a[i]0/10; /*取得四位数的十位数字*/ data=a[i]; /*取得四位数的个位数字*/ if (thou+data==hun+ten) { b[cnt]=a[i]; cnt++; } }

for(i=0;i

if(b[i]>b[j]) { data=b[i]; b[i]=b[j]; b[j]=data; } }

第12套

已知数据文件IN14.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中。请编制一个函数jsValue(),其功能是:如果这些四位数各位上的数均是奇数,则统计出满足此条件的个数cnt并把所有满足此条件的四位数按从小到大的顺序存入数组b中,最后main()函数调用写函数writeDat()把结果输出到OUT.DAT文件。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

int i,j; /* 定义变量 */ int a1,a2,a3,a4; int temp;

for(i=0;i

{ a1=a[i]; /* 数位分解 */ a2=a[i]0/10; a3=a[i]00/100; a4=a[i]/1000;

if(a1%2==1&&a2%2==1&&a3%2==1&&a4%2==1) /* 判断条件 */ b[cnt++]=a[i]; }

for(i=0;i

8 / 57

{ temp=b[i]; b[i]=b[j]; b[j]=temp;

}

第13套

已知数据文件IN13.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT13.DAT文件。

例如: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]00/100; /*取得四位数的百位数字*/ ten=a[i]0/10; /*取得四位数的十位数字*/ data=a[i]; /*取得四位数的个位数字*/ if (thou+hun==data+ten) { b[cnt]=a[i]; cnt++; } }

for(i=0;i

if(b[i]

第14套 已知数据文件IN1.DAT和IN2.DAT中分别存有100个两位十进制数,并且已调用读函数readDat()把这两个文件中的数存入数组a和b中,请考生编写一个函数jsVal(),实现的功能是一次对数组a和b中得数按条件重新组成一个新数并一次存入数组c中,在对数组c中的数按从小到大的顺序进行排序,最后调用输出函数writedat()吧结果输出到文件OUT.DAT中。 组成新数的条件:如果数组a和b中相同的下表位置的数必须符合一个是偶数,另一个是奇数,则数组a中的数按二进制数左移八位后再加上数组b对应位置的数,把这样组成的新数一次存入数组c中。

例如: a:12 33 24 15 21 b:32 35 17 15 18

9 / 57

c:6161 5394 排序后c:5394 6161

答案:int i,j; /* 定义变量 */ int temp;

for(i=0;i

if(a[i]%2==1&&b[i]%2==0||a[i]%2==0&&b[i]%2==1) /* 判断条件 */ c[cnt++]=(a[i]<<8)+b[i];

for(i=0;ic[j])

{ temp=c[i]; c[i]=c[j]; c[j]=temp;

}

第15套

已知数据文件IN10.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT10.DAT文件。

例如: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]00/100; /*取得四位数的百位数字*/ ten=a[i]0/10; /*取得四位数的十位数字*/ data=a[i]; /*取得四位数的个位数字*/ if (thou-hun-ten-data>0) { b[cnt]=a[i]; cnt++; } }

for(i=0;i

if(b[i]>b[j]) { data=b[i]; b[i]=b[j]; b[j]=data; } }

10 / 57

第16套

程序PROG.C的功能是:选出1000至9999范围内的所有素数,且符合下面条件:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的正10倍。计算并输出这些四位自然数的个数cnt以及这些数的和sum。请编写函数countValue()实现程序的要求。最后main()函数调用函数writeDAT()把结果cnt和sun输出到OUT.DAT中。 答案:

void countValue()

{ int i,j; /* 定义变量 */ int a1,a2,a3,a4;

for(i=1000;i<=9999;i++)

{ a1=i; /* 数位分解 */ a2=i0/10; a3=i00/100; a4=i/1000; for(j=2;j

if(j==i&&a4+a3==a2+a1&&a4+a3==(a1-a4)*10) /* 判断条件 */ { cnt++; sum+=i; } } }

第17套

已知数据文件IN43.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:如果4位数各位上的数字均是0、2、4、6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT43.DAT文件中。 注意:部分源程序已给出。程序中已定义数组:a[200]、b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】

int i,j; /* 定义变量 */ int a1,a2,a3,a4; int temp;

for(i=0;i

{ a1=a[i]; /* 数位分解 */ a2=a[i]0/10; a3=a[i]00/100; a4=a[i]/1000;

if(a1%2==0&&a2%2==0&&a3%2==0&&a4%2==0) /* 判断条件 */ b[cnt++]=a[i]; }

11 / 57

for(i=0;i

{ temp=b[i]; b[i]=b[j]; b[j]=temp;

}

第18套

已知数据文件IN12.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件。

例如: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,j; /* 定义变量 */ int a1,a2,a3,a4; int temp;

for(i=0;i<300;i++)

{ a1=a[i]; /* 数位分解 */ a2=a[i]0/10; a3=a[i]00/100; a4=a[i]/1000;

if(a1-a4-a3-a2>0) /* 判断条件 */ b[cnt++]=a[i]; }

for(i=0;i

{ temp=b[i]; b[i]=b[j]; b[j]=temp;

}

第19套

12 / 57

已知数据文件IN33.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把一个4位数的千位数上的值减百位数上的值再减十位数上的值最后减个位数上的值,如果得出的值大于零且此4位数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序。最后,调用函数writeDat()把结果cnt及数组b中的符合条件的4位数输出到OUT33.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsVal()

{ int i,j; /* 定义变量 */ int a1,a2,a3,a4; int temp;

for(i=0;i

{ a1=a[i]; /* 数位分解 */ a2=a[i]0/10; a3=a[i]00/100; a4=a[i]/1000;

if(a4-a3-a2-a1>=0&&a[i]%2==1) /* 判断条件 */ b[cnt++]=a[i]; }

for(i=0;ib[j])

{ temp=b[i]; b[i]=b[j]; b[j]=temp;

} }

第20套

已知数据文件IN35.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:如果一个4位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,十位数字上的值大于等于个位数字上的值,并且此4位数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中。最后,调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT35.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsVal() {

int i,qw,bw,sw,gw,j,t;

for(i=0;i

13 / 57

{

qw=a[i]/1000;

bw=a[i]00/100; sw=a[i]0/10; gw=a[i];

if((qw>=bw)&&(bw>=sw)&&(sw>=gw)&&a[i]%2!=0) { b[cnt]=a[i]; cnt++; } }

for(i=0;i

if(b[i]>b[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

第21套

已知数据文件IN36.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一个函数jsVal(),其功能是:如果一个4位数的千位数字上的值加个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且此4位数是奇数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的4位数输出到OUT36.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsVal() {

int i,qw,bw,sw,gw,j,t;

for(i=0;i<200;i++) /*求每个四位数的每位数字*/ {

qw=a[i]/1000;

bw=a[i]00/100; sw=a[i]0/10; gw=a[i];

if ((qw+gw==bw+sw) && a[i]%2==1) { b[cnt]=a[i]; cnt++; } }

for(i=0;i

if(b[i]>b[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

第22套

已知数据文件IN34.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:如果一个4位数的千位数字上的值加十位数字上

14 / 57

的值恰好等于百位数字上的值加上个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中。最后,调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT34.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。 【参考答案】 void jsVal() {

int i,qw,bw,sw,gw,j,t;

for(i=0;i

qw=a[i]/1000;

bw=a[i]00/100; sw=a[i]0/10; gw=a[i];

if((qw+sw==bw+gw)&&a[i]%2!=1) { b[cnt]=a[i]; cnt++; } }

for(i=0;i

if(b[i]>b[j]) { t=b[i]; b[i]=b[j]; b[j]=t; } }

第23套

已知数据文件IN17.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT17.DAT文件。

例如: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]00/100; /*求四位数的百位数字*/ ten=a[i]0/10; /*求四位数的十位数字*/ data=a[i]; /*求四位数的个位数字*/ if(thou+hun==ten+data)

15 / 57

{ cnt++; pjz1+=a[i]; } /*统计满足条件的数的个数并求和*/ else

{ n++; pjz2+=a[i]; } /*统计不满足条件的数的个数并求和*/ }

pjz1/=cnt; /*求满足条件的数的平均值*/ pjz2/=n; /*求不满足条件的数的平均值*/ }

第24题

已知数据文件IN16.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于0的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT16.DAT文件。

例如: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]00/100; /*求四位数的百位数字*/ ten=a[i]0/10; /*求四位数的十位数字*/ data=a[i]; /*求四位数的个位数字*/ if(data-thou-hun-ten>0)

{ cnt++; pjz1+=a[i]; }/*统计满足条件的数的个数并求和*/ else

{ n++; pjz2+=a[i]; } /*统计不满足条件的数的个数并求和*/ }

pjz1/=cnt; /*求满足条件的数的平均值*/ pjz2/=n; /*求不满足条件的数的平均值*/ }

第25题

已知数据文件IN18.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的4位数平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2,输出到OUT18.DAT文件中。

例如:6712,6+2=7+1,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。

16 / 57

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]00/100; /*求四位数的百位数字*/ ten=a[i]0/10; /*求四位数的十位数字*/ data=a[i]; /*求四位数的个位数字*/ if(thou+data==hun+ten)

{ cnt++; pjz1+=a[i]; } /*统计满足条件的数的个数并求和*/ else

{ n++; pjz2+=a[i]; } /*统计不满足条件的数的个数并求和*/ }

pjz1/=cnt; /*求满足条件的数的平均值*/ pjz2/=n; /*求不满足条件的数的平均值*/ }

第26套

已知数据文件IN15.DAT中存有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]00/100; /*求四位数的百位数字*/ ten=a[i]0/10; /*求四位数的十位数字*/ data=a[i]; /*求四位数的个位数字*/ if (thou-hun-ten-data>0)

{ cnt++; pjz1+=a[i]; } /*统计满足条件的数的个数并求和*/ else

17 / 57

{ n++; pjz2+=a[i]; } /*统计不满足条件的数的个数并求和*/ }

pjz1/=cnt; /*求满足条件的数的平均值*/ pjz2/=n; /*求不满足条件的数的平均值*/ }

第27套

已知数据文件IN20.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT20.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数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]00/100; /*求四位数的百位数字*/ ten=a[i]0/10; /*求四位数的十位数字*/ data=a[i]; /*求四位数的个位数字*/ 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

if(b[i]

第28套

已知数据文件IN23.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的两位数(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的个位数字),以及把十位数字和百位数字组成另一个新的两位数(新两位数的十位数字是原四位数

18 / 57

的百位数字,新两位数的个位数字是原四位数的十位数字),如果新组成的两个两位数均是奇数并且两个两位数中至少有一个能被5整除,同时两个新数均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT23.DAT文件中。

注意:部分源程序已给出中。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

【参考答案】 void jsVal()

{ int i,j; /* 定义变量 */ int a1,a2,a3,a4; int ab,cd; int temp;

for(i=0;i

{ a1=a[i]; /* 数位分解 */ a2=a[i]0/10; a3=a[i]00/100; a4=a[i]/1000;

ab=a4*10+a1; /* 数位重组 */ cd=a3*10+a2;

if(ab%2==1&&cd%2==1&&(ab%5==0||cd%5==0) &&a4!=0&&a3!=0) /* 判断条件 */ b[cnt++]=a[i]; }

for(i=0;i

{ temp=b[i]; b[i]=b[j]; b[j]=temp;

} }

第29套

已知数据文件IN21.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT21.DAT文件中。

19 / 57

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数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; /*求四位数的百位数字*/ sw=a[i]/10; /*求四位数的十位数字*/ gw=a[i]; /*求四位数的千位数字*/ 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

temp=b[i]; b[i]=b[j]; b[j]=temp; } }

第30套

已知数据文件IN22.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数均是素数,同时两个新数均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT22.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

【参考答案】

20 / 57

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]00/100; /*求四位数的百位数字*/ ten=a[i]0/10; /*求四位数的十位数字*/ data=a[i]; /*求四位数的个位数字*/ 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

if(b[i]

第31套 已知数据文件IN1.DAT和IN2.DAT中分别存有100个两位十进制数,并且已调用读函数readDat()把这两个文件中的数存入数组a和b中,请考生编写一个函数jsVal(),实现的功能是一次对数组a和b中得数按条件重新组成一个新数并一次存入数组c中,在对数组c中的数按从小到大的顺序进行排序,最后调用输出函数writedat()吧结果输出到文件OUT.DAT中。

组成新数的条件:如果数组a和b中相同的下表位置的数必须符合一个是奇数,则数组a中的十位数为新的千位数字,个位数字仍为新数的个位数字,数组b中的十位数字为ixnde百位数字,个位数字为新的十位数字,把这样组成的新数一次存入数组c中 int i,j; /* 定义变量 */ int a1,a2,b1,b2; int ab; int temp;

for(i=0;i

{ a1=a[i]; /* 数位分解 */ a2=a[i]/10; b1=b[i]; b2=b[i]/10;

ab=a2*1000+b2*100+b1*10+a1;/* 数位重组 */ if(a[i]%2==1&&b[i]%2==1) /* 判断条件 */ c[cnt++]=ab; }

for(i=0;ic[j])

21 / 57

{ temp=c[i]; c[i]=c[j]; c[j]=temp;

}

第32套

已知数据文件IN24.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组成一个新的两位数ab(新两位数的十位数字是原四位数的千位数字,新两位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的两位数cd(新两位数的十位数字是原四位数的个位数字,新两位数的个位数字是原四位数的百位数字),如果新组成的两个两位数ab

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数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]00/100; /*求四位数的百位数字*/ ten=a[i]0/10; /*求四位数的十位数字*/ data=a[i]; /*求四位数的个位数字*/ 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

if(b[i]

第33 套

已知数据文件IN25.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把个位数字和千位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的千

22 / 57

位数字),以及把百位数字和十位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个数均为偶数且两个十位数中至少有一个数能被9整除,同时两个新数均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并计算满足上述条件的4位数的个数cnt,最后,调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT25.DAT文件中。 注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

【参考答案】

int i,j; /* 定义变量 */ int a1,a2,a3,a4; int ab,cd; int temp;

for(i=0;i

{ a1=a[i]; /* 数位分解 */ a2=a[i]0/10; a3=a[i]00/100; a4=a[i]/1000;

ab=a1*10+a4; /* 数位重组 */ cd=a3*10+a2;

if(ab%2==0&&cd%2==0&&(ab%9==0||cd%9==0) &&a1!=0&&a3!=0) /* 判断条件 */ b[cnt++]=a[i]; }

for(i=0;i

{ temp=b[i]; b[i]=b[j]; b[j]=temp;

}

第34套

已知数据文件IN26.DAT中存有200个4位数,并已调用读函数readDat( )把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把个位数字和千位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的千位数字),以及把百位数和十位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个十位数必须是一个奇数、另一个为偶数且两个十位数中至少有一个数能被17整除,同时两个新数均不为0,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后,调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT26.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改

23 / 57

动数据文件IN.DAT中的任何数据、主函数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]00/100; /*求四位数的百位数字*/ ten=a[i]0/10; /*求四位数的十位数字*/ data=a[i]; /*求四位数的个位数字*/ ab=data*10+thou; cd=hun*10+ten;

if((ab==0||cd==0)&&((ab%2!=1&&cd%2==1)||(ab%2==1&&cd%2!=1))&&ab!=0&&cd!=0)

{ b[cnt]=a[i]; cnt++; } }

for(i=0;i

if(b[i]

第35套

已知数据文件IN27.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数均不为0,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后,调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT27.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

【参考答案】 void jsVal( ) {

int i,thou,hun,ten,data,j; int ab,cd;

for(i=0;i<200;i++) {

24 / 57

thou=a[i]/1000; /*求四位数的千位数字*/ hun=a[i]00/100; /*求四位数的百位数字*/ ten=a[i]0/10; /*求四位数的十位数字*/ data=a[i]; /*求四位数的个位数字*/ ab=thou*10+ten; cd=data*10+hun;

if((ab-cd>0)&&(ab%2!=1&&ab%5==0)&&cd%2==1&&ab!=0&&cd!=0) { b[cnt]=a[i]; cnt++; } }

for(i=0;i

if(b[i]

第36套

已知数据文件IN29.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一个函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该数连续小于该四位数以后的5个数,且该数是偶数,则统计出满足此条件的个数cnt,并把这些四位数按从小到大的顺序存入数组b中。最后,main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT29.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

【参考答案】 void jsVal() {

int i,j,flag=0;

for(i=0;i

if(a[i]

b[cnt++]=a[i]; /*将满足条件的数存入数组b中并统计其个数*/ for(i=0; i

if (b[i]>b[j]) { flag=b[i]; b[i]=b[j]; b[j]=flag; } }

第37套

已知数据文件IN30.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一个函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该数连续大于该四位数以前的5个数,且该数是偶数,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后,main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT30.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内

25 / 57

容。

【参考答案】 void jsVal() {

int i,j,flag=0;

for(i=5;i

if(a[i]>a[i-5]&&a[i]>a[i-4]&&a[i]>a[i-3]&&a[i]>a[i-2]&&a[i]>a[i-1]&&a[i]%2==0) { b[cnt]=a[i]; cnt++; } /*将满足条件的数存入数组b中并统计其个数*/ for(i=0;i

if(b[i]

第38套

已知数据文件IN31.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一个函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该数连续大于该四位数以前的5个数,且该数是奇数,且该数必须能被7整除,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。最后,main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT31.DAT文件中。 注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

【参考答案】 void jsVal() {

int i,j,flag=0;

for(i=5;i

if(a[i]>a[i-5]&&a[i]>a[i-4]&&a[i]>a[i-3]&&a[i]>a[i-2]&&a[i]>a[i-1]&&a[i]%2!=0&& a[i]%7==0)

b[cnt++]=a[i]; /*将满足条件的数存入数组b中并统计其个数*/ for(i=0;i

if(b[i]

第39套

已知数据文件IN28.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一个函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以后的5个数,且该数是奇数,则把这个四位数按从小到大的顺序存入数组b中,并计算满足上述条件的四位数的个数cnt。最后,调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT28.DAT文件中。

注意:部分源程序已给出。程序中已定义数组:a[200]、b[200];已定义变量:cnt。请勿改

26 / 57

动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

【参考答案】 void jsVal() {

int i,j,temp;

for(i=0;i

if(a[i]>a[i+1]&&a[i]>a[i+2]&&a[i]>a[i+3]&&a[i]>a[i+4]&&a[i]>a[i+5]&&a[i]%2!=0)

{ b[cnt]=a[i]; cnt++; } /*将满足条件的数存入数组b中并统计其个数*/ for(i=0;i

if(b[i]>b[j]) { temp=b[i]; b[i]=b[j]; b[j]=temp; } }

第40套

在文件IN45.DAT中有200个正整数,且每个数均在1 000至9 999之间。函数readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后三位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后三位相等的数,则对这些数按原始4位数据进行升序排列。最后,调用函数writeDat()把结果bb输出到文件OUT45.DAT中。 例如:处理前9012 5099 6012 7025 8088 处理后5099 8088 7025 6012 9012

注意:部分源程序已给出。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。

【参考答案】 void jsSort() {

int i,j,data;

for(i=0;i<199;i++) /*对数组中的四位数按后三位进行从大到小排序*/

for(j=i+1;j<200;j++) {

if (aa[i]00

else if(aa[i]00==aa[j]00) /*若后三位数相等*/

if (aa[i]>aa[j]) /*则要按原四位数的值进行从小到大排序*/ { data=aa[i]; aa[i]=aa[j]; aa[j]=data; } }

for(i=0;i<10;i++) bb[i]=aa[i]; /*将排序后的前10个数存入数组b中*/ }

第41套

在文件IN46.DAT中有200个正整数,且每个数均在1 000至9 999之间。函数readDat()的功

27 / 57

能是读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小进行升序排列,将排序后的前10个数依次存入数组b中,如果数组b中出现后三位相等的数值,则对这些数值按原始4位数据进行降序排列。最后,调用函数writeDat()把结果bb输出到文件OUT46.DAT中。 例:处理前6012 5099 9012 7025 8088 处理后9012 6012 7025 8088 5099

注意:部分源程序已给出。请勿改动主函数main()、读数据函数readDat()和输出数据函数writeDat()的内容。 【参考答案】 void jsSort() {

int i,j,data;

for(i=0;i<199;i++) /*对数组中的四位数按后三位进行从小到大排序*/

for(j=i+1;j<200;j++) {

if (aa[i]00>aa[j]00) /*比较每个数的后三位*/ { data=aa[i]; aa[i]=aa[j]; aa[j]=data; }

else if(aa[i]00==aa[j]00) /*若后三位数相等*/

if(aa[i]

for(i=0;i<10;i++) bb[i]=aa[i]; /*将排序后的前10个数存入数组b中*/ }

第42套

在文件IN39.DAT中有200组数据,每组有3个数,每个数均是三位数。函数readDat()读取这200组数据存放到结构数组aa中,请编制函数jsSort(),其功能是:要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数之和的,其中满足条件的结构体个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个数之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中。最后,调用函数writeDat()把结果bb输出到文件OUT39.DAT中。

注意:部分源程序已给出。请勿改动主函数main()、读数据函数readDat()和输出数据函数writeDat()的内容。 【正确答案】 int jsSort()

{ int i,j; /* 定义变量 */ Data temp; int cnt=0;

for(i=0;i<200;i++)

if(aa[i].x2>aa[i].x1+aa[i].x3) /* 判断条件 */ bb[cnt++]=aa[i];

28 / 57

for(i=0;i

if(bb[i].x2+bb[i].x3

return cnt; /* 返回函数值 */ }

第43套

已知在文件IN38.DAT中有200组数据,每组有3个数,每个数均为三位数。函数readDat()读取这200组数存放到结构数组aa中。请编制函数jsSort(),其功能是:要求在200组数据中找出条件为每组数据中的第一个数大于第二个数加第三个数之和,其中满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数按照每组数据的第一个数加第三个数之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中。最后,调用函数writeDat()把结果bb输出到文件OUT38.DAT中。

注意:部分源程序已给出。请勿改动主函数main( )、读函数readDat( )和写函数writeDat( )的内容。 【参考答案】 int jsSort() {

int i,j,count=0; Data val;

for(i=0;i<200;i++)

if(aa[i].x1>aa[i].x2+aa[i].x3) {

bb[count].x1=aa[i].x1; bb[count].x2=aa[i].x2; bb[count].x3=aa[i].x3;

count++; /*统计满足条件的数据的组数*/ }

for(i=0;i

if(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3) { val=bb[i]; bb[i]=bb[j]; bb[j]=val; }

return count; /*返回满足条件的数据的组数*/ }

第44套

下列程序的功能是:利用如下所示的简单迭代方法求方程:cos(x)-x=0的一个实根

29 / 57

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()把结果输出到文件OUT97.DAT中。 【参考答案】 float countvalue() {

float x0,x1=0.0; while(1) { x0=x1; x1=cos(x0);

if(fabs(x0-x1)<1e-6) break; }

return x1; }

第45套

编写函数jsvalue(),它的功能是:求Fibonacci数列中最接近t的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:

F(0)= 0,F(1)=1 F(n)= F(n-1)+ F(n-2) (n>=2) 最后,调用函数writeDat()读取10个数据t,分别得出结果且把结果输出到文件OUT.DAT中。 例如:当t=1 000时,函数值为:987。 【参考答案】 int jsValue(int t)

{ int f1=0,f2=1,fn; /* 定义变量 */

fn=f1+f2; /* 初始化变量 */ while(fn<=t) /* 迭代循环 */ { f1=f2; f2=fn; fn=f1+f2; }

if(fn-t

第46套

某级数的前两项A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-1 下列程序的功能是:要求依次对于整数M=100、1000和10000求出对应的n值,使其满足:

30 / 57

Sn=M,这里Sn=A1+A2+?+An,并依次把n值存入数组单元b[0]、b[1]和b[2]中,请编制jsvalue()函数来实现此功能,最后调用函数writeDat()把数组b[]中的值输出到OUT.DAT文件中。 【参考答案】 void jsValue()

{ int n=2; /* 定义变量 */ int a1=1,a2=1,an; int sum;

sum=a1+a2; /* 初始化变量 */ do /* 迭代循环 */ { an=a1+a2*2;

if(sum<100&&sum+an>=100) /* 判断条件 */ b[0]=n;

if(sum<1000&&sum+an>=1000) b[1]=n;

if(sum<10000&&sum+an>=10000) b[2]=n;

a1=a2; a2=an; sum+=an; n++;

} while(sum<10000); }

第47套

下面程序的功能是:选取出100以上1 000以下所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CNT以及这些素数值的和sum。请编写函数countvalue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT50.DAT中。

注意:部分源程序已给出。请勿改动主函数main()和输出函数writeDAT()的内容。 【参考答案】 void countvalue() {

int i,j,half,hun,ten,data; for(i=101;i<1000;i++) {

hun=i/100; ten=i0/10; data=i;

if(hun==(ten+data)) { half=i/2;

for(j=2;j

31 / 57

if(i%j==0) break;

if(j>=half) {cnt++;sum+=i;} } } }

第48套

下列程序的功能是:计算500~800之间素数的个数cnt,并按所求素数的值从小到大的顺序,再计算其间隔加、减之和,即第1个素数—第2个素数+第3个素数—第4个素数+第5个素数??的值sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum输出到文件OUT49. DAT中。

注意:部分源程序已给出。请勿改动主函数main()和写函数writeDAT()的内容。 【参考答案】 void countValue() {

int i,j ,yy[100];

for(i=500;i<800;i++) {

for(j=2;j<= i/2;j++)

if(i%j==0) break; /*若该数不是素数,则退出此循环*/

if(j>= i/2) /*若该数是素数,则将该数存入数组yy中,并统计其个数*/ {

yy[cnt]=i; cnt++; } }

for(i=0,j=-1;i

j=j*-1; sum+=j*yy[i]; } }

第49套

程序PROG1.C的功能是将大于整数m且紧靠m的k个素数存入数组xx。请考生编写函数num(int m,int k, int xx[])实现程序的要求,最后调用函数readwriteDAT()吧结果输出到OT.DAT文件中。 【参考答案】

int cnt=0; /* 定义变量 */

while(cnt

if(isP(m)) xx[cnt++]=m; }

32 / 57

第50套

已知数据文件IN19.DAT中存有300个4位数,并已调用函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:求出这些4位数是素数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt、pjz1、pjz2输出到OUT19.DAT文件中。

例如: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); /*求所有不是素数的平均值*/ }

第51套

下列程序的功能是:找出所有100以内(含100)满足i、i+4、i+10都是素数的整数i(i+10也是在100以内)的个数cnt,以及这些整数之和sum。请编制函数countValue()实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件OUT48.DAT中(数值1不是素数)。 注意:部分源程序已给出。请勿改动主函数main()和输出数据函数writeDAT()的内容。 【参考答案】 void countValue()

{ int i,j; /* 定义变量 */ for(i=2;i+10<100;i++) {

for(j=2;j

for(j=2;j

for(j=2;j

if(j==i+10) /* 统计求和 */

33 / 57

{ cnt++; sum+=i; } } }

第52套

已知数据文件IN14.DAT中存有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

if(b[i]>b[j]) { value=b[i]; b[i]=b[j]; b[j]=value; } }

第53套

已知在文件IN58.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数Calvalue(),其功能要求:(1)求出这个文件中共有多少个正整数totnum;(2)求这些数右移1位后,产生的新数是偶数的数的个数totcnt,以及满足此条件的这些数(右移前的值)的算术平均值totpjz,最后调用函数WriteDat()把所求的结果输出到文件OUT58.DAT中。 【参考答案】 void Calvalue(void) {

int i,data;

for(i=0;i

if(!xx[i]) break;

if(xx[i]>0) totNum++; /*统计正整数的个数*/ data=xx[i]>>1; /*将数右移一位*/

if(data%2==0) /*如果产生的新数是偶数*/ { totCnt++; totPjz+=xx[i]; } /*统计满足条件的数的个数并求和*/ }

totPjz/=totCnt; /*计算满足条件的数的平均值*/

34 / 57

}

第54套

已知在文件IN57.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是:(1)求出这个文件中共有多少个正整数totNum。(2)求这些数右移一位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz。最后调用函数WriteDat()把所有结果输出到文件OUT57.DAT中。 【参考答案】 void CalValue(void) {

int i,data;

for(i=0;i

if(!xx[i]) break;

if(xx[i]>0) totNum++; /*统计正整数的个数*/ data=xx[i]>>1; /*将数右移一位*/

if(data%2) /*如果产生的新数是奇数*/ { totCnt++; totPjz+=xx[i]; } /*统计满足条件的数的个数并求和*/ }

totPjz/=totCnt; /*计算满足条件的数的平均值*/ }

第55套

请编制程序,要求:将文件IN40.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,并计算数组xx下标为偶数(包括下表为0的元素)的元素值的算术平均值pj,结果cnt1、cnt2、pj输出到文件OUT.DAT中。 注意:部分程序、读函数read_dat(int xx[200])及输出格式已给出。 【参考答案】 void jsValue()

{ int i; /* 定义变量 */ for(i=0;i

if(i%2==0) pj+=xx[i]; }

pj/=(N/2); /* 求平均值 */ }

第56套

请编制程序,要求:将文件IN41.DAT中的200个整数读入数组xx中,求出数组xx中奇数的个数cnt1和偶数的个数cnt2,并计算数组xx下标为奇数的元素值的算术平均值pj。结果cnt1、cnt2、pj输出到文件OUT41.DAT中。

注意:部分程序、读函数read_dat(int xx[200])及输出格式已给出。

35 / 57

【参考答案】 void jsValue()

{ int i; /* 定义变量 */ for(i=0;i

if(i%2==1) pj+=xx[i]; }

pj/=(N/2); /* 求平均值 */ }

第57套

已知在文件IN54.DAT中存有N个(个数<200)实数,函数ReadDat()读取这N个实数并存入数组xx中。请编制函数Calvalue(),其功能要求:(1)求出这N个实数的平均值aver;(2)分别求出这N个实数的整数部分之和sumint以及小数部分之和sumdec,最后调用函数WriteDat()把所求的结果输出到文件OUT54.DAT中。 【参考答案】

void Calvalue(void) { int i;

double x,sum=0;

for (i=0;i

sumint=sumint+(int)xx[i]; x=xx[i]-(int)xx[i]; sumdec=sumdec+x; sum=sum+xx[i]; }

aver=sum/N; }

第58套

已知在文件IN56.DAT中存有若干个(个数<200)4位数字的正整数,函数ReadDat()是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求是:(1)求出这个文件中共有多少个正整数totNum。(2)求出这些数中的各位数字之和是奇数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz。最后,调用函数WriteDat()把所有结果输出到文件OUT56.DAT中。 【参考答案】 void CalValue(void) {

int i,thou,hun,ten,data,ab; for(i=0;i

if(!xx[i]) break;

36 / 57

if(xx[i]>0) totNum++; /*求正整数的个数*/

thou=xx[i]/1000; /*求四位数的千位数字*/ hun=xx[i]00/100; /*求四位数的百位数字*/ ten=xx[i]0/10; /*求四位数的十位数字*/ data=xx[i]; /*求四位数的个位数字*/ ab=thou+hun+ten+data; if(ab%2)

{ totCnt++; totPjz+=xx[i]; } /*统计各位数字之和是奇数的个数并累加求和*/ }

totPjz/=totCnt; /*求满足条件的数的平均值*/ }

第59套

已知在文件IN55.DAT中存有若干个(个数<200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数Calvalue(),其功能要求:(1)求出文件中共有多少个正整数totNum;(2)求出这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件OUT55.DAT 【参考答案】 void Calvalue(void) {

int i,thou,hun,ten,data; int ab;

float sum=0;

for(i=0;i

if(xx[i]>0) totNum++; /*求正整数的个数*/ else break;

thou=xx[i]/1000; /*求四位数的千位数字*/ hun=xx[i]00/100; /*求四位数的百位数字*/ ten=xx[i]0/10; /*求四位数的十位数字*/ data=xx[i]; /*求四位数的个位数字*/ ab=thou+hun+ten+data; if (ab%2==0)

{ totCnt++; sum=sum+xx[i]; } /*统计各位数字之和是奇数的个数并累加求和*/ }

totPjz=sum/totCnt; /*求满足条件的数的平均值*/ }

第60套

请编制函数ReadDat(),实现从文件IN60.DAT中读取1 000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd、奇数的平均值ave1、偶数的平均值ave2及所有奇数的方差totfc的值。最后调用函数WriteDat()把结果输出到OUT60.DAT文件中。 计算方差的公式如下:

37 / 57

设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。 原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2 000)。 【参考答案】

void Compute(void) {

int i,yy[MAX]; for(i=0;i<1000;i++) if(xx[i]%2!=0)

{ odd++; ave1+=xx[i]; yy[odd-1]=xx[i]; } else

{ even++; ave2+=xx[i]; }

ave1/=odd; /*求数组xx中所有奇数的平均值*/ ave2/=even; /*求数组xx中所有偶数的平均值*/ for(i=0;i

totfc+=(yy[i]-ave1)*(yy[i]-ave1)/odd; /*计算所有奇数的方差*/ }

第61套

请编制函数ReadDat(),实现从文件IN61.DAT中读取1 000个十进制整数到数组xx中;请编制函数Compute(),分别计算出xx中奇数的个数odd、偶数的个数even、平均值aver及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT61.DAT文件中。 计算方差的公式如下:

原始数据的存放格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2 000)。 【参考答案】

void Compute(void) {

int i,yy[MAX]; for(i=0;i<1000;i++) {

if(xx[i]%2!=0) odd++; /*求数组xx中奇数的个数*/

else even++; /*求数组xx中偶数的个数*/ aver+=xx[i]; /*求数组xx中所有元素的总和*/ }

aver/=MAX; /*求数组xx中所有元素的平均值*/ for(i=0;i<1000;i++)

totfc+=(xx[i]-aver)*(xx[i]-aver)/MAX; /*计算所有元素的方差*/ }

第62套

请编制函数ReadDat(),实现从文件IN59.DAT中读取1 000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中偶数的个数even、奇数的平均值ave1、偶数的平均值ave2以及所有偶数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT59.DAT文件中。

38 / 57

计算方差的公式如下:

设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。

原始数据文件存放的格式是:每行存放10个数,并用逗号隔开(每个数均大于0且小于等于2 000)。 【参考答案】

int i; /* 定义变量 */ for(i=0;i

else ave1+=xx[i]; }

ave2/=even; /* 求平均值 */ ave1/=(MAX-even);

for(i=0;i

totfc+=(xx[i]-ave2)*(xx[i]-ave2)/even;

第63套

请编制程序,要求:将文件IN42.DAT中的200个整数读入数组xx中,求出数组xx中最大数max及最大数的个数cnt,并计算数组xx中值能被3整除或能被7整除的数的算术平均值pj,结果max、cnt、pj输出到文件OUT.DAT中。

注意:部分程序、读函数read_dat(int xx[200])及输出格式已给出。 【参考答案】

int i,cnt2; /* 定义变量 */

max=cnt=cnt2=0; /* 变量初始化 */ for(i=0;i

{ if(xx[i]>max) /* 最大数重置 */ { max=xx[i]; cnt=0; }

if(xx[i]==max) /* 最大数计数 */ cnt++;

if(xx[i]%3==0||xx[i]%7==0) /* 统计求和 */ { pj+=xx[i]; cnt2++; } }

pj/=cnt2; /* 求平均值 */

第64套

请编写函数void countValue(int*,int*n),它的功能是:求出1到100之内能被7或11整除

39 / 57

但不能同时被7和11整除的所有整数,其结果按从小到大的顺序放在数组a中,并通过形式参数n传递这些数的个数。 【参考答案】

int i; /* 定义变量 */

*n=0; /* 初始化变量 */ for(i=1;i<=1000;i++) /* 统计复制 */ if(i%7==0&&i!=0||i%7!=0&&i==0) a[(*n)++]=i;

第65套

请编写函数void countValue(int*n),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数和的平均值的平方根s,s作为函数的返回值,最后结果是输入到文件OUT.DAT中。例如若n为1000时,函数的值应为:s=22.449944 【参考答案】

int i,cnt=0; /* 定义变量并初始化 */ double sum=0.0;

for(i=1;i

sum/=cnt; /* 求平均值 */ sum=sqrt(sum); /* 求平方根 */ return sum; /* 返回结果 */ 第66套

函数ReadDat()的功能是实现从文件ENG63.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS63.DAT中。 替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或在65至90(包括)之间,则该字符不变,否则将f(p)所对应的字符进行替代。 【参考答案】

int i,j,val; /* 定义变量 */ for(i=0;i

{ val=xx[i][j]*11%6; /* 替代关系 */

if(val<=32||val>=65&&val<=90)/* 判断条件 */ continue;

else xx[i][j]=val; }

第67套

函数ReadDat()的功能是实现从文件ENG63.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果

40 / 57

本文来源:https://www.bwwdw.com/article/45m3.html

Top