全国计算机等级考试中心
题目24:在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。最后调用函数writeDat()把结果输出到文件out.dat中。
注意:部分源程序已给出。
请勿改动主函数main()和写函数writeDat()的内容。 -------------------- jsValue(int a[10][9]) {int I,j,k=0; int hun,ten,data; for(I=100;I<=999;I++) {j=10; while(j*j<=I) {if (I==j*j)
{hun=I/100;data=I-hun*100; ten=data/10;data=data-ten*10; if(hun==ten||hun==data||ten==data) {bb[k]=I;k++;} } j++;} } return k;
全国计算机等级考试中心
}
题目25:下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数int svalue(long m)实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出到文件out.dat中。 注意:部分源程序已给出。 请勿改动主函数main()的内容。 ------------------- int jsValue(long n) {int I,strl,half; char xy[20]; ltoa(n,xy,10); strl=strlen(xy); half=strl/2; for(I=0;I
全国计算机等级考试中心
}
题目26:已知在文件in.dat中存有若干个(个数<200)四位数字的正整数,函数readdat()读取这若干个正整数并存入数组xx中。请编制函数calvalue(),其功能要求:1、求出这文件中共有多少个正整数totnum;2、求这些数右移1位后,产生的新数是偶数的数的个数totcnt,以及满足此条件的这些数(右移前的值)的算术平均值totpjz,最后调用函数writedat()把所求的结果输出到文件out.dat中。
注意:部分源程序已给出。
请勿改动主函数main()、读数据函数readdat()和输出数据函数writedat()的内容。 ---------------------------- void CalValue(void) {int I,data;
for(I=0;I
if (data%2==0){totCnt++;totPjz+=xx[I];} }
totPjz/=totCnt; }
全国计算机等级考试中心
题目27:已知数据文件IN.DAT中存有300个四位数,并已调用读函数ReadDat()把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出千位数上的数减百位数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2,最后调用写函数writeDat()把结果输出到OUT.DAT文件。 例如:9123,9-1-2-3>0,则该数满足条件计算平均值pjz1,且个数cnt=cnt+1。
9812,9-8-1-2<0,则该数不满足条件计算平均值pjz2. 注意:部分源程序已给出。
程序中已定义数组:a[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-ten-data>0){b[cnt]=a[I];cnt++;} }

