三级.docx

上传人:b****6 文档编号:13369639 上传时间:2023-06-13 格式:DOCX 页数:269 大小:69.45KB
下载 相关 举报
三级.docx_第1页
第1页 / 共269页
三级.docx_第2页
第2页 / 共269页
三级.docx_第3页
第3页 / 共269页
三级.docx_第4页
第4页 / 共269页
三级.docx_第5页
第5页 / 共269页
三级.docx_第6页
第6页 / 共269页
三级.docx_第7页
第7页 / 共269页
三级.docx_第8页
第8页 / 共269页
三级.docx_第9页
第9页 / 共269页
三级.docx_第10页
第10页 / 共269页
三级.docx_第11页
第11页 / 共269页
三级.docx_第12页
第12页 / 共269页
三级.docx_第13页
第13页 / 共269页
三级.docx_第14页
第14页 / 共269页
三级.docx_第15页
第15页 / 共269页
三级.docx_第16页
第16页 / 共269页
三级.docx_第17页
第17页 / 共269页
三级.docx_第18页
第18页 / 共269页
三级.docx_第19页
第19页 / 共269页
三级.docx_第20页
第20页 / 共269页
亲,该文档总共269页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

三级.docx

《三级.docx》由会员分享,可在线阅读,更多相关《三级.docx(269页珍藏版)》请在冰点文库上搜索。

三级.docx

三级

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

第01套:

程序PROG1.C的功能是:

计算500~800区间内素数的个数cnt,并按所求素数

的值从大到小的顺序,计算其间隔减、加之和,即第1个素数-第2个素数+第3个

素数-第4个素数+第5个素数...的值sum。

请编写函数countValue()实现程序的

要求,最后main()函数调用函数writeDAT()把结果cnt和sum,输出到文件OUT.DAT

中。

注意:

部分源程序存放在PROG1.C中。

请勿改动主函数main()和输出数据函数writeDAT()的内容。

参考答案:

#include

intcnt,sum;

voidwriteDAT();

intisPrime(intnum)

{

inti;

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

if(num%i==0)return0;

return1;

}

voidcountValue()

{

inti,j=-1;

for(i=800;i>500;i--){

if(isPrime(i)){

cnt++;

j*=-1;

sum+=j*i;

}

}

}

voidmain()

{

cnt=sum=0;

countValue();

printf("素数的个数=%d\n",cnt);

printf("按要求计算的值=%d\n",sum);

writeDAT();

}

voidwriteDAT()

{

FILE*fp;

fp=fopen("c:

\\test\\OUT.DAT","w");

fprintf(fp,"%d\n%d\n",cnt,sum);

fclose(fp);

}

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

第02套:

程序PROG1.C的功能是:

计算出自然数SIX和NINE满足条件

SIX+SIX+SIX=NINE+NINE的个数cnt,以及满足此条件所有的SIX与NINE

的和SUM。

请编写函数countValue()实现程序的要求,最后main()函数调用函数

writeDAT()把结果cnt和sum,输出到文件OUT.DAT中。

其中的S,I,X,N,E各代表一个十进制数字,允许代表的数字相同,但S和N不能

为0。

例如:

944+944+944=1416+1416

注意:

部分源程序存放在PROG1.C中。

请勿改动主函数main()和输出数据函数writeDAT()的内容。

参考答案:

#include

intcnt,sum;

voidwriteDAT();

voidcountValue()

{

ints,i,x,n,e,six,nine;

for(s=1;s<10;s++)

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

for(x=0;x<10;x++)

\TABfor(n=1;n<10;n++)

\TABfor(e=0;e<10;e++){

\TABsix=s*100+i*10+x;

\TABnine=n*1000+i*100+n*10+e;

\TABif((3*six)==(2*nine)){

\TABcnt++;sum+=six+nine;

\TABprintf("six=%d,nine=%d\n",six,nine);

\TAB}

\TAB}

}

voidmain()

{

cnt=sum=0;

countValue();

printf("满足条件的个数=%d\n",cnt);

printf("满足条件所有的SIX与NINE的和=%d\n",sum);

writeDAT();

}

voidwriteDAT()

{

FILE*fp;

fp=fopen("c:

\\test\\OUT.DAT","w");

fprintf(fp,"%d\n%d\n",cnt,sum);

fclose(fp);

}

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

第03套:

请编写函数voidcountValue(int*a,int*n),它的功能是:

求出1到1000之

内能被7或11整除但不能同时被7和11整除的所有整数,其结果按从小到大的顺序放

在数组a中,并通过形式参数n传递这些数的个数。

注意:

部分源程序存在文件PROG1.C文件中。

请勿改动主函数main()和输入输出数据函数writeDAT()的内容。

参考答案:

#include

#include

voidwriteDAT();

voidcountValue(int*a,int*n)

{

inti;

*n=0;

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

if(((i%7)==0||(i%11)==0)&&(i%77!

=0))a[(*n)++]=i;

}

main()

{

intaa[1000],n,k;

countValue(aa,&n);

for(k=0;k

if((k+1)%10==0)printf("%5d\n",aa[k]);

elseprintf("%5d",aa[k]);

writeDAT();

}

voidwriteDAT()

{

intaa[1000],n,k;

FILE*fp;

fp=fopen("c:

\\test\\out.dat","w");

countValue(aa,&n);

for(k=0;k

if((k+1)%10==0)fprintf(fp,"%5d\n",aa[k]);

elsefprintf(fp,"%5d",aa[k]);

fclose(fp);

}

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

第04套:

已知数据文件IN.DAT中存有300个四位数,并已调用读函数readDat()把这些

数存入数组a中,请编制一函数jsValue(),其功能是:

求出千位数上的数加百位数

上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位

数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。

最后

main()函数调用写函数writeDat()把数组b中的数输出到文件OUT.DAT中。

例如:

7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。

8129,8+1!

=2+9,则该数不满足条件忽略。

注意:

部分源程序存在文件PROG1.C文件中。

程序中已定义数组:

a[300],b[300],已定义变量:

cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和

写函数writeDat()的内容。

参考答案:

#include

inta[300],b[300],cnt=0;

voidreadDat();

voidwriteDat();

jsValue()

{

inti,j,qw,bw,sw,gw,tmp;

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

qw=a[i]/1000;

bw=(a[i]-qw*1000)/100;

sw=(a[i]-qw*1000-bw*100)/10;

gw=a[i]%10;

if(qw+bw-sw-gw==0)b[cnt++]=a[i];

}

for(i=0;i

for(j=i+1;j

if(b[i]

tmp=b[j];

b[j]=b[i];

b[i]=tmp;

}

}

}

}

main()

{

inti;

readDat();

jsValue();

writeDat();

printf("cnt=%d\n",cnt);

for(i=0;i

}

voidreadDat()

{

FILE*fp;

inti;

fp=fopen("c:

\\test\\in.dat","r");

for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);

fclose(fp);

}

voidwriteDat()

{

FILE*fp;

inti;

fp=fopen("c:

\\test\\out.dat","w");

fprintf(fp,"%d\n",cnt);

for(i=0;i

fclose(fp);

}

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

第05套:

已知数据文件IN.DAT中存有300个四位数,并已调用读函数readDat()把这些

数存入数组a中,请编制一函数jsValue(),其功能是:

求出个位数上的数减千位数

上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件

的四位数平均值pjz1,以及所有不满足此条件的四位数平均值pjz2。

最后main()函

数调用写函数writeDat()把结果cnt,pjz1,pjz2输出到OUT.DAT文件。

例如:

1239,9-1-2-3>0,则该数满足条件,参加计算平均值pjz1,且个数

cnt=cnt+1。

8129,9-8-1-2<0,则该数不满足条件,参加计算平均值pjz2。

注意:

部分源程序存在文件PROG1.C文件中。

程序中已定义数组:

a[300],已定义变量:

cnt,pjz1,pjz2

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和

写函数writeDat()的内容。

参考答案:

#include

inta[300],cnt=0;

doublepjz1=0.0,pjz2=0.0;

voidreadDat();

voidwriteDat();

jsValue()

{

inti,qw,bw,sw,gw;

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

qw=a[i]/1000;

bw=(a[i]-qw*1000)/100;

sw=(a[i]-qw*1000-bw*100)/10;

gw=a[i]%10;

if(gw-qw-bw-sw>0){

pjz1+=a[i];

cnt++;

}

elsepjz2+=a[i];

}

pjz1/=cnt;

pjz2/=(300-cnt);

}

main()

{

inti;

readDat();

jsValue();

writeDat();

printf("cnt=%d\n满足条件的平均值pzj1=%7.2lf\n不满足条件的平均值pzj2=%7.2lf\n",cnt,pjz1,pjz2);

}

voidreadDat()

{

FILE*fp;

inti;

fp=fopen("c:

\\test\\in.dat","r");

for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);

fclose(fp);

}

voidwriteDat()

{

FILE*fp;

fp=fopen("c:

\\test\\out.dat","w");

fprintf(fp,"%d\n%7.2lf\n%7.2lf\n",cnt,pjz1,pjz2);

fclose(fp);

}

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

第06套:

函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx

中;请编制函数SortCharA(),其函数的功能是:

以行为单位对字符按从小到大

的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中。

最后main()函

数调用函数WriteDat()把结果xx输出到文件OUT.DAT中。

例:

原文:

dAe,BfC.

CCbbAA

结果:

.ABCdef

AACCbb

原始数据文件存放的格式是:

每行的宽度均小于80个字符,含标点符号和空

格。

注意:

部分源程序存放在PROG1.C中。

请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()

的内容。

参考答案:

#include

#include

charxx[50][80];

unsignedintmaxline=0;/*文章的总行数*/

intReadDat(void);

voidWriteDat(void);

voidSortCharA(void)

{

charch;

unsignedinti,j,k;

for(i=0;i

for(j=0;j

for(k=j;k

\TABif(xx[i][j]>xx[i][k]){

ch=xx[i][k];

xx[i][k]=xx[i][j];

xx[i][j]=ch;

}

}

}

}

}

voidmain()

{

if(ReadDat()){

printf("数据文件IN.DAT不能打开!

\n\007");

return;

}

SortCharA();

WriteDat();

}

intReadDat(void)

{

FILE*fp;

inti=0;

char*p;

if((fp=fopen("c:

\\test\\IN.DAT","r"))==NULL)return1;

while(fgets(xx[i],80,fp)!

=NULL){

p=strchr(xx[i],'\n');

if(p)*p=0;

i++;

}

maxline=i;

fclose(fp);

return0;

}

voidWriteDat(void)

{

FILE*fp;

unsignedinti;

fp=fopen("c:

\\test\\OUT.DAT","w");

for(i=0;i

printf("%s\n",xx[i]);

fprintf(fp,"%s\n",xx[i]);

}

fclose(fp);

}

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

第07套:

函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx

中;请编制函数StrOR(),其函数的功能是:

以该文章中的行为单位依次扫描一

行字符串中的小写字母o,每次将小写母o的左右字符串部分作交叉换位,即左边字

符串移到小写字母o的右边,而原先右边的则反之,并把小写母o删除,依次直至这

一行中的小写母o处理完,之后把已处理的字符串仍按行重新存入字符串数组xx中。

最后main()函数调用函数WriteDat()把结果xx输出到文件OUT.DAT中。

例如原文:

youhavethecorrectrecord.

第1个o:

uhavethecorrectrecord.y

第2个o:

rrectrecord.yuhavethec

第3个o:

rd.yuhavethecrrectrec

提示:

对于每一行字符串数组处理有如下一种递归调用算法可供参考:

查找字符串中首个小写字母'o'的位置;没有找到'o',则结束递归调用;

找到'o',则按题意对字符串进行处理,形成新的字符串,然后返回,继续进行

递归调用。

原始数据文件存放的格式是:

每行的宽度均小于80个字符,含标点符号和空

格。

注意:

部分源程序存放在PROG1.C中。

请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()

的内容。

参考答案:

#include

#include

charxx[50][80];

intmaxline=0;/*文章的总行数*/

intReadDat(void);

voidWriteDat(void);

voidStrOR(void)

{

inti;

charbefore[80],after[80],*p;

for(i=0;i

while

(1){

p=strchr(xx[i],'o');

if(p!

=NULL){

\TABstrcpy(after,xx[i]+(p-xx[i]+1));

\TAB*p=0;

\TABstrcpy(before,xx[i]);

\TABstrcpy(xx[i],after);

\TABstrcat(xx[i],before);

}

elsebreak;

}

}

}

voidmain()

{

if(ReadDat()){

printf("数据文件IN.DAT不能打开!

\n\007");

return;

}

StrOR();

WriteDat();

}

intReadDat(void)

{

FILE*fp;

inti=0;

char*p;

if((fp=fopen("c:

\\test\\IN.DAT","r"))==NULL)return1;

while(fgets(xx[i],80,fp)!

=NULL){

p=strchr(xx[i],'\n');

if(p)*p=0;

i++;

}

maxline=i;

fclose(fp);

return0;

}

voidWriteDat(void)

{

FILE*fp;

inti;

fp=fopen("c:

\\test\\OUT.DAT","w");

for(i=0;i

printf("%s\n",xx[i]);

fprintf(fp,"%s\n",xx[i]);

}

fclose(fp);

}

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

第08套:

函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到无符号字符串

数组xx中;请编制函数ChA(),其函数的功能是:

以行为单位把字符串中的第一

个字符的ASCII值加第二个字符的ASCII值,得到第一个新的值,存入数组单元

xx[i][0]中(其中:

i是文章中的某行)。

第二个字符的ASCII值加第三个字符的

ASCII值,得到第二个新的值,存入数组单元xx[i][1]中。

以此类推一直处理到最

后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一

个新的值,存放在原字符串对应的位置上,之后把已处理的字符串逆转后仍按行

重新存入无符号字符串数组xx中。

最后main()函数调用函数WriteDat()把结果xx

输出到OUT.DAT文件中。

原始数据文件存放的格式是:

每行的宽度均小于80个字符,含标点符号和空

格,并也按它的ASCII值作以上处理。

注意:

部分源程序存放在PROG1.C中。

请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()

的内容。

参考答案:

#include

#include

unsignedcharxx[50][80];

intmaxline=0;/*文章的总行数*/

intReadDat(void);

voidWriteDat(void);

voidChA(void)

{

inti,j;

charyuan;

for(i=0;i

yuan=xx[i][0];

for(j=0;j<(int)strlen(xx[i])-1;j++)xx[i][j]+=xx[i][j+1];

xx[i][strlen(xx[i])-1]+=yuan;

strrev(xx[i]);

}

}

voidmain()

{

if(ReadDat()){

printf("数据文件IN.DAT不能打开!

\n\007");

return;

}

ChA();

WriteDat();

}

intReadDat(void)

{

FILE*fp;

inti=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2