计算机三级考试上机最新南开100精简版 联系客服

发布时间 : 星期一 文章计算机三级考试上机最新南开100精简版更新完毕开始阅读

fprintf(fp, \

for(i = 0 ; i < cnt ; i++) fprintf(fp, \ fclose(fp) ; }

**************************************************************************** ★☆题目33(方差运算题)

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

N 2 totfc=1/N∑(xx[i]-ave2) i=1

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

原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)

部分源程序存在文件prog1.c中。

请勿改动主函数main()和输出数据函数writeDat()的内容。 #include #include #include #define MAX 1000

int xx[MAX],odd=0,even=0;

double ave1=0.0,ave2=0.0,totfc=0.0; void WriteDat(void);

int ReadDat(void) {int i;

FILE *fp;

if((fp=fopen(\T\

/*********编制函数ReadDat()的部分************/ for(i=0;i

{ fscanf(fp,\ if((i+1)==0) fscanf(fp,\ }

/*******************************************/

fclose(fp); return 0; }

void Compute(void) { int i,yy[MAX];

for(i=0;i

for(i=0;i

if(xx[i]%2==0) { yy[even++]=xx[i]; ave2+=xx[i];} else { odd++; ave1+=xx[i];} if(odd==0) ave1=0; else ave1/=odd; if(even==0) ave2=0; else ave2/=even; for(i=0;i

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

void main() { int i;

for(i=0;i

printf(\数据文件IN.DAT不能打开!\\007\\n\ return; }

Compute();

printf(\VE1=%f\\nAVER2=%f\\nTOTFC=%f\\n\ WriteDat(); }

void WriteDat(void) {

FILE *fp; int i;

fp=fopen(\T\

fprintf(fp,\ fclose(fp); }

************************************************************************* 题目34(素数题)

无忧id 102 题提供了求素数isPrime()函数

程序prog1.c的功能是:选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数cnt以及这些素数值的

和sum。 请考生编写函数countValue( )实现程序要求,最后调用函数writeDAT()把结果cnt和sum输出到文件bc10.out中。

注意:部分源程序存放在文件prog1.c中。

请勿改动主函数main( )和输出数据函数writeDAT()的内容。 #include int cnt, sum ;

int isPrime(int m) {

int i;

for(i=2;i

if(m % i==0)return 0; return 1; }

void countValue() { int i,j,bw,sw,gw;

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

{ bw=i/100; sw=i0/10; gw=i;

if(isPrime(i)&&(gw+sw)==bw) { cnt++; sum+=i;} } }

void main() {

cnt=sum=0;

countValue() ;

printf(\素数的个数=%d\\n\

printf(\满足条件素数值的和=%d\ writeDAT() ; }

writeDAT() {

FILE *fp ;

fp = fopen(\

fprintf(fp, \ fclose(fp) ; }

***************************************************************************

★☆题目35(级数运算题)

某级数的前两项A1=1,A2=1,以后各项具有如下关系: An=An-2+2An-1(注:n-2与n-1为下标)

下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能, 最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。

请勿改动主函数main()和写函数writeDat()的内容。 #include int b[3];

jsValue()

{int a1=1,a2=1,a12,sn,k=2; sn=a1+a2; while(1)

{a12=a1+2*a2;

if(sn<100&&sn+a12>=100) b[0]=k; if(sn<1000&&sn+a12>=1000) b[1]=k;

if(sn<10000&&sn+a12>=10000) {b[2]=k;break;} sn=sn+a12; a1=a2;a2=a12; k++; } }

main() {

jsValue();

printf(\ writeDat(); }

writeDat() {

FILE *fp;

fp=fopen(\

printf(\ fprintf(fp,\ fclose(fp); }

运行结果为: M=100,n=6