2024全国计算机三级考试南开100题上机题库_第1页
2024全国计算机三级考试南开100题上机题库_第2页
2024全国计算机三级考试南开100题上机题库_第3页
2024全国计算机三级考试南开100题上机题库_第4页
2024全国计算机三级考试南开100题上机题库_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机三级考试南开100题上机题库

题目1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组XX。请编

写函数num(intm,intk,in(xx[])实现函数的要求,最终调用函数readwriteDAT。把结果输出

到文件out.dat中。

标准答案*/

{intdata=m+l;

inihalf,n=0,I;

while(l)

{half=data/2;for(I=2;l<=half;I++)

if(data%I==O)brcak;

if(I>half)

{xx[n]=data;n++;}

if(n>=k)break;

data++;

)}

题目2:已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat。把这些

数存入数组a中,请考生编制一函数jsValO,其功能是:假如四位数各位上的数字均是0或2

或4或6或&则统计出满意此条件的个数ent,并把这些四位数按从大到小的依次存入数组

b中。最终main。函数调用写函数wrileDat()把结果ent以及数组b中符合条件的四位数输出

到OUT.DAT文件中。

voidjsVal。/*标准答案号

{intbb[4|;

intI,j,k,flag;

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

{bbl0]=a[I]/1000;bbj]=a[l]%1000/100;

bb[2]=a[I]%100/10;bb[3]=a[I]%10;

for(j=0;j<4;j++)

{if(bb|j]%2==0)

flag=l;

else

{flag=O;break;}

)

if(flag==l)

{b[cntj=a[l];

cnt++;})

for(I=0;I<CNT-l;I++)

for(j=I+ly<CNT;J++)

if(b[I]<B[J])

{k=b[l];b[l]=bU];bU]=k;)

)

题目3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数

组XX中;请编制函数STROR0,其函数功能是:以行为单位把字符串中的全部小写字母0左

边的字符串内容移到该串的右边存放,然后并把小写字母0删除,余下的字符串内容移到已处

理字符串的左边存放.最终把一处理的字符串仍按行重新存入字符串数组XX中,最终调用函

数WRITEDAT0把结果XX输出到文件OUT.DAT中.

voidStrOR(void)/*标准答案

{intI,j,k,index,strl;

charch;

for(I=0;I<MAXLINE;I++)

{strl=strlen(xx[IJ);

indcx=std;

for(j=0;j<STRL;J++)

if(xx[IJU]=V)

{for(k=j;k<STRL-l;K++)

xx[Il[k]=xx[I][k+l];

xx[Il[strl-l]=";

index=j;}

for(j=strl-1;j>=indcx:j-)

{ch=xx[I][strl-l];

for(k=strl-l;k>0;k-)

xx[I][k]=xx[I][k-l];

xx[I][O]=ch;}

)

)

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

中;请编制函数SlrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的

全部单词进行倒排,同时去

除标点符号,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组XX

中。最终main。函数调用函数WriteDat。把结果xx输出到文件OUT6.DAT中。

voidStrOL(void)/*标准答案*/

{intI,j,k,strl,l;charc;

for(I=0;I<MAXLINE;I++)

for(j=0;j<STRLEN(XX[I]);J++)

{C=xx[l皿;

if((c>='A,&&c<='Z')||(c>='a,&&c<='z,)||c==,');

elsexx[I][j]-';}

for(l=0;l<MAXLINE;L++)

{charch[80]={0};charpp[80]={0);

strl=strlen(xx[l]);

I=strl-I;k=l;

while(l)

{while(((xx[l][I]>='a'&&xx[l][I]<='z')||(xx[l][I]>='A,&&xx[l][I]<='z,))&&I>=0)

{fbr(j=k;j>=O;j-)

pplj+u=ppljl;pp[O]=xxll]lI];k++;I-;}

strcat(ch,pp);strcpy(pp,"""");k=l;

if(I==-l)break;while((xx[l][I]<,A,||xx[l][I]>'z,)&&I>=O)

{for(j=k;j>=0;j-)

pp[j+l]=pp[jl;pp[O]=xx[l][I];k++;I-;}

strcat(ch,pp);strcpy(pp,...');

k=0;

if(I==.l)break;|

strcpy(xx[l],ch);

))

题目5:在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()

读取这200个数存放到数组aa中。请编制函数jsSor【(),其函数的功能是:要求按每个数的

后三位的大小进行升序排列,然后取出满意此条件的前10个数依次存入数组b中,假如后

三位的数值相等,则按原先的数值进行降序排列。最终调用函数WriteDatO把结果bb输出

到文件out.dat中。

voidjsSort。/*标准答案*/

{iniI,j,data;

for(I=0;i<199;I++)

fbr(j=I+ly<200;j+4-)

{if(aa[I]%1000>aa[jl%1000)

{data=aa[I];aa[I]=aa[j];aa[j]=data;}

elseif(aa[I]%1000==aa[j]%1000)

if(aa[I]<AA[J])

{data=aa[I];aa[I]=aa[j];aa[j]=data;}

)

for(I=0;I<l();1++)

bb[I]=aa[I];

)

题Fl6:在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()

读取这200个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的

后三位的大小进行降序排列,然后取出满意此条件的前10个数依次存入数组b中,假如后

三位的数值相等,则按原先的数值进行升序排列。最终调用函数WriteDatO把结果bb输出

到文件out.dat中。

voidjsSort。/*标准答案*/

{intI,j,data;

for(I=0;l<199;I++)

for(j=I+l:j<200:j++)

{if(aa[I]%1000<AA[J]%1000)

{data=aa[I];aa[I]=aa[j];aa[j]=data;}

elseif(aa[I]%1OOO==aa[j]%1000)

if(aa[I]>aaUD

{data=aall];aallj=aa[j];aa[j]=data;}

)

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

bbfll=aa|l];

}

题目7:已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品

代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长

整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDal。是读取这100个销售记

录并存入结构数组sell中。请编制函数SortDatO,其功能要求:按产品代码从大到小进行排

列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,

最终调用函数WriteDat。把结果输出到文件OUT10.DAT中。

voidSortDatO/*标准答案*/

{inllj;

PROxy;

for(I=0;I<99;I++)

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

elseif(strcmp(sell[I].dm,sell[j].dm)==O)

if(sell[I].je<SELL[J].JE)

{xy=sell[I];sell[I]=sell[jl;sell[j]=xy;}

题目8:函数ReadDat()实现从文件ENGIN中读取一篇英文文章,存入到字符串数组

xx中;请编制函数encryptChar。,按给定的替代关系对数组xx中的全部字符进行替代,仍

存入数组xx的对应的位置上,最终调用函数WriteDat()把结果xx输出到文件PSLDAT中。

替代关系:f(p)=p*llnK)d256(p是数组中某一个字符的ASC^值,f(p)是计算后新字

符的ASCII值),假如计算后f(p)值小于等于32或大于130,则该字符不变,否则将f(p)所

对应的字符进行替代。

voidencryptChar()/*标准答案*/

{intI;

char*pf;

for(I=0;I<MAXLINE;I++)

)pf=xx[I];

\vhilc(*pf!=O)

{if(*pf*11%256>130||*pf*11%256<=32);

else

*pf=*pf*11%256;

pf++;)

)

)

9题目:

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

中;请编制函数SortCharD(),其函数的功能是:以行为亘位对字符按从大到小的依次进行

排序,排序后的结果仍按行重新存入字符串数组xx中。最终main。函数调用函数WriteDatO

把结果xx输出到文件OUT2.DAT中。

voidSortCharD(void)/*标准答案*/

{intIj,k,strl;

charch:

for(I=0;I<MAXLINE;I++)

{strl=slrlen(xx[I]);

for(j=0;j<STRL-l;J++)

for(k=j+l;k

if(xx[I]U]<XX[I][K])

{ch=xx[I][j];xx[l][j]=xx[I][k];xx[I][k]=ch;}

})

题目10:请编制函数ConvertCharAO,其函数的功能是:以行为单位把字符串中的全

部小写字母改写成该字母的卜.一个字母,假如是字母z,则改写成字母a,大写字母和其它字

符保持不变。把已处理的字符串仍按行重新存入字符中数组xx中。。最终main。函数调用函

数WriteDat()把结果xx输出到文件OUT3.DAT中。

voidConvertCharA(void)/*标准答案*/

{intIj.str;

for(I=0;I<MAXLINE;I++)

{str=strlen(xx[I]);

for(j=0;j<STR;J++)

if(xxlIJljJ==,z')xx[IJ|j]=,a';

elseif(xx[I][j]>-a'&&xx[I][j]<-y')xx[I][j]+=l;

I

)

题目11:下列程序的功能是:把s字符串中的全部字母改写成该字母的下一个字符,

字母Z改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做

变更。请编写函数chg(cha「*s)实现程序的要求,最终调用函数readwrileDat。把结果输出到

文件out.dat中。

voidchg(char*s)/*标准答案*/

{while(*s)

if(*s=='z'||*s=='Z')

{*s-=25;s++;)

elseif(*s>-a'&&*s<-y')

{*s+=l;s++;)

elseif(*s>-A'&&*s<-Y')

{*s+=l;s++;}

elses++;

)

或者:

voidchg(char*s)

{inti,k;

k=strlcn(s);

for(i=0;i<K;I++)

{if(s[i]=='z'||s[i]==Z)

s[il-=25;

else

if(isalpha(s[i]))

s[i]++;}

题目12:已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品

代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长

整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDatO是读取这10。个销售记

录并存入结构数组sell中。请编制函数Sor【Dat(),其功能要求:按产品名称从小到大进行排

列,若产品名称相同,则按金额从小到大进行排列.最终排列结果仍存入结构数组sell中,最

终调用函数WritcDat。把结果输出到文件OUT5.DAT中。

voidSortDat()/*标准答案*/

{intI,j;

PROxy;

for(I=0;I<99;I++)

fbr(j=I+lj<100;j++)

if(strcmp(sell[I].dm,sell[jJ.dm)<0)

{xy=sell[l];sell[I]=sell[j];sell[j]=xy;)

elseif(strcmp(sell[I].dm,sell[j].dm)==O)

if(selI[I].je<SELL[J].JE)

{xy=sell[I];seH[I]=sell[j];sell[j]=xy;)

}

题目13:已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品

代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长

整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDatO是读取这100个销售记

录并存入结构数组sell中。请编制函数SortDatO,其功能要求:按产品代码从小到大进行排

列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,

最终调用函数WriteDal。把结果输出到文件OUT6.DAT中。

voidSorlDat。/*标准答案*/

{intI,j;

PROxy;

for(I=0;I<99;I++)

for(j=I+l:j<100:j++)

if(strcmp(sell[I].mc,sell[j].mc)>0)

{xy=sell[I];sell|I]=sell[j];sell[j]=xy;}

elseif(strcmp(sell[I].mc,seH[j].mc)==O)

if(sell[I].je<SELL[J].JE)

{xy=sell[IJ;sellll]=sell|jj;sell(j]=xy;)

)

题目14:已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这

些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,

假如该数连续大于该四位数以后的5个数且该数是奇数,则统计出满意此条件的个数ent,

并把这些四位数按从小到大的依次存入数组b中。并要计算满意上述条件的四位数的个数

ento最终main。函数调用写函数writeDaK)把结果ent以及数组b中符合条件的四位数输出

到OUT.DAT文件中。

voidjsVal。/*标准答案*/

{intI.j,flag=O;

intk;

for(I=0;I<MAX-5;I+4-)

{for(j=I+l;j<=I+5;j+-t-)

{if(a[I]>a[j])

flag=l;

else{flag=O:brcak;}

if(a[I]%2==0)

Hag=0;}

if(flag==l)

{b[cnt]=a[I];cnt++;})

for(I=0;I<CNT-l;I++)

for(j=I+l;j<CNT;J++)

if(b[I]>b|j])

{k=b[I];b[I]=b[j];b[j]=k;}

I

题目15:已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat。把这

些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值小于

等于百位数字上的值,百位数字上的值小于等于十位数字上的值,十位数字上的值小于等于

个位数字上的值,并且此四位数是偶数,则统计出满意此条件的个数ent,并把这些四位数

按从大到小的依次存入数组b中。最终main。函数调用写函数wriieDai()把结果cnl以及数

组b中符合条件的四位数输出到OUT.DAT文件中。

voidjsVal()/*标准答案*/

{intI,j;

intal,a2,a3,a4,k;

for(I=0;I<MAX;I++)

{al=a[I]/1000;a2=a[I]%10(X)/100;

a3=a[I]%100/10;a4=a[I]%10;

if((al<=a2)&&(a2<=a3)&&(a3<=a4)&&(a[I]%2==0))

{b[cnt]=a[Il;

cnt++;}

)

for(I=0;I<CNT-l;I++)

for(j=I+l;j<CNT;J++)

if(bll]>b|j])

{k=b[I];b[I]=b[j];b[j]=k;}

)

1题目:

题目16:函数ReadDal。实现从文件IN.DAT中读取一篇英文文章存入到字符串数组

xx+,请编制函数StrCharJR(),其函数的功能是:以行为单位把字符串中全部字符的ASCH

值右移4位,然后把右移后的字符ASCH值再加上原字符的ASCII值,得到新的字符仍存

入原字符串对应的位置上,最终把己处理的字符串仍按行重新存入字符串数组xx中,最终

调用函数writeDat()把结果xx输出到文件OUT8.DAT中。原始数据文件存放的格式是:每

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

voidStrCharJR(void)/*标准答案*/

{iniI,j,strl;

for(I=0;I<MAXLINE;I++)

{strl=strlcn(xxll]);

for(j=0;j<STRL;J++)

xx[I][j]+=xx[I][j]»4;

)

题目17:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串

数组XX中;请编制函数CHA。,其函数功能是:以行为单位把字符串中的第一个字符的ASCII

值加其次个字符的ASCII值,得到第一个亲朋字符,其次个字符的ASCH值加第三个字符

的ASCII值,得到其次个新字符,依此类推始终处理到最终其次个字符,最终一个字符的

ASCII值加原第一个字符的ASCII值,得到最终一个新的字符,得到的新字符分别存放在原

字符串对应的位置上。最终把已处理的字符串逆转后按行重新存入字符串数组XX中撮终

调用函数WRITEDAT。把结果XX输出到文件OUT9.DAT中.原始数据文件存放的格式是:

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

voidChA(void)/*标准答案*/

{intI,j,k,str;

charch;

for(I=0;I<MAXLINE;I++)

{str=strlen(xx[I]);

ch=xx[Il[O];

for(j=0;j<STR-l;J++)

xx[I][j]+=xX[I]U+l];

xx[IJ[str-lJ+=ch;

for(j=0,k=str-1;j

{ch=xx[I](j];

xx[I][j]=xx[I][k];

xxfll[k]=ch;}

)

)

voidChA(void)

{inti,j;

charp,c;

for(i=0;i<MAXLINE;I++)

{P=xx[i][0];

c=xx[il[strlen(xx[il)-l];

for(j=0;j<STRLEN(XX[I])-1;J++)

xx[ij[jj+=xx[i][j+l];

xx[i][strlen(xx[i])-1J=p+c;

strrcv(xx[ij);}

题目18:函数ReadDatO实现从文件ENGIN中读取一篇英文文章,存入到字符串数组

XX中;请编制函数encryptChar(),按给定的替代关系对数组xx中的全部字符进行替代,仍

存入数组xx的对应的位置上,最终调用函数WriteDat。把结果xx输出到文件PS10.DAT中。

替代关系:f(p)=p*llmod256(p是数组中某一个字符的ASC^值,f(p)是计算后新字

符的ASCH值),假如原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,

否则将f(p)所对应的字符进行替代。

voidencryptChar()/*标准答案*/

{intI;

char*pf;

for(I=0;I<MAXLINE;I++)

{pf=xx(I];

whilc(*pf!=O)

{if(*pf%2==O||*pf*11%256<=32)

else

*pf=*pf*U%256;

pf++;

I)

}

题目19:编写一个函数findstr。,该函数统计一个长度为2的子字符串在另一个字符串

中出现的次数。例如:假定输入的字符串为"asdasasdfgasdaszx67asdmklo",了•字符串为"as",

函数返回值为6。

函数readwriteDal。的功能是实现从文件in.dat中读取两个字符穿4,并调用函数

findstr(),最终把结果输出到文件out.dat中。

/*标准答案*/

intfindStr(char*str,char*substr)

{intn;

char*p,*r;

n=0;

while(*str)

{p=str;

r=substr;

while(*r)

if(*r==*p){r++;p++;}

elsebreak;

if(*r=='\O')

n++;

str++;}

returnn;

)

题目20:编写函数jsvalue,它的功能是:求Fibonacci数列中大于t的最小的一个数,

结果由函数返回。其中Fibonacci数列F(n)的定义为:

F(0)=0,F(l)=l

F(n)=F(n-l)+F(n-2)

最终调用函数writeDat。读取10个数据t,分别得出结果且把结果输出到文件oin.dai

中。

intjsValue(intt)/*标准答案力

{intfl=0,f2=l,fn;

fn=fl+f2;

while(fn<=t)

{fl=⑵

f2=fn;

fn=fl+f2;}

returnfn;

)

题目21:下列程序的功能是:利用发下所示的简洁迭代方法求方程:cos(x)-x=0的一

个实根。xn+l=cos(xn)

floalcouniValuc。/*标准答案

{floatx0,xl=0.0;

while(l)

{xO=xl;

xl=cos(xO);

if(fabs(x0-xl)<le-6)break;

)

returnxl;

)

题目22:请编写函数countvalue。,它的功能是:求n以内(不包括n)同时能被3和

7整数的全部自然数之和的平方根s,并作为函数值返回,最终结果s输出到文件out.dat中。

doublecountValue(intn)/*标准答案*/

{doublexy=0.0;

intI;

for(I=l;I<N;I++)

if(I%3==0&&1%7==0)xy+=I;

xy=sqrt((double)xy);

returnxy;

)

doublecountvalue(intn)

{inti,j=0;

doublek;

for(i=0;i<N;I++)

if(i%3==0&&i%7==0)

j+=i;

k=sqrt(j);

returnk;}

题目23:已知在文件in.dai中存有N个(个数<200)四位数字的正整数,函数rea(idat()

读取这N个正整数并存入数组xx中。请编制函数calvalueO,其功能要求:1、求出这N个

实数的平均值aver;2、分别求出这N个实数的整数部分之和sumint以及小数部分之和

sumdec,最终调用函数wiitedat。把所求的结果输出到文件out.dat中。

voidCalValue(void)产标准答案*/

{intI;

doublex,sum=0;

for(I=0;I<MAXNUM;I++)

{sumint=sumint+(int)xxll);

x=xx[I]-(int)xx[I];

sumdec=sumdec+x;

sum=sum+xx[I];

aver=sum/MAXNUM;

)

题目24:在三位整数(100至999)中找寻符合条件的整数并依次从小到大存入数组中;

它既是完全平方数,乂是两位数字相同,例如144、676等。请编制函数实现此功能,满意

该条件的整数的个数通过所编制的函数返回。最终调用函数writeDat()把结果输出到文件

oul.dat中。

jsValue(inta[I0][9j)产标准答案

{intI,j,k=O;

inthun,tcn,data;

for(I=100;I<=999;I+-)

{j=io;

while(j*j<=I)

{if(I==j*j)

{hun=I/lOO;data=I-hun*1(X);

ten=data/10;data=data-ten*10;

if(hun==tcn||hun==data||tcn==data)

{bb[k]=I;k++;}

)

j++;})

returnk;

题目25:下列程序的功能是:找寻并输出11至999之间的数m,它满意m,m2和m3

均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满意

上述条件的数如l,m2=121,m3=1331皆为回文数。请编制函数intsvalue(longm)实现此

功能,假如是I可文数,则函数返归I1,反之则返回0。最终把结果输出到文件。ut.dai中。

intjsValue(longn)/*标准答案*/

{intI,strl,half;

charxy[20J;

ltoa(n,xy,10);

strl=strlen(xy);

half=strl/2;

for(I=0;I<nALr;I++)

if(xy[I]!=xy[--strl])break;

if(I>=half)return1;

elsereturn0;

)

题目26:已知在文件in.dat中存有若干个(个数〈200)四位数字的正整数,函数readdat()

读取这若干个正整数并存入数组xx中。请编制函数calvalue(),其功能要求:I、求出这文

件C.P有多少个正整数totnum;2、求这些数右移1位后,产生的新数是偶数的数的个数totent,

以及满意此条件的这些数(右移前的值)的算术平均值mpjz,最终调用函数writedat。把所

求的结果输出到文件oul.dat中。

voidCalValue(void)产标准答案*/

{intI,data;

for(I=0;I<MAXNUM;I++)

{if(!xx[I])break;

if(xx[I]>0)totNum++;

data=xx[I]»l;

if(data%2==0){totCnt++;totPjz+=xx[I];}

tolPjz/=lotCnl;

题目27:已知数据文件IN.DAT中存有300个四位数,并已调用读函数ReadDat。把这

些数存入数组a中,请编制一函数jsvahieO,其功能是:求出千位数上的数减百位数减H立

数上的数减个位数上的数大于零的个数ent,再求出全部满意此条件的四位数平均值pjzl,

以及不满意此条件的四位数平均值pjz2,最终调用写函数wriieDal。把结果输出到OUTDAT

文件。例如:9123.9-1-2-3>0,则该数满意条件计算平均值pjzl,且个数cnt=cnt+l。

9812,9-8-1-2<0,则该数不满意条件计算平均值pjz2.

voidjsValuc。/*标准答案*/

{intI,lhou,hun,(en,dala,j;

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

{thou=a[I]/1000;hun=a[I]%1000/100;

tcn=a[I]%100/10;data=a[I]%10;

if(thou-hun-ten-data>0){b[cnt]=a[l];cnt++;}

)

for(I=0;I<CNT-l;I++)

for(j=I+l;j<CNT;J++)

if(bll]>b[jj)

{data=b[IJ;bll]=b[j];h[j]=data;}

)

题目28:己知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这

些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一

个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四

位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位

数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),假如新组成的两

个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则

将满意此条件的四位数按从大到小的依次存入数组b中,并要计算满意上述条件的四位数的

个数cnto最终main。函数调用写函数writeDat()把结果ent以及数组b中符合条件的四位数

输出到OUT.DAT文件中。

voidjsVal()/*标准答案*/

{intI,thou,hun.tcn,data.j;

intab,cd;

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

{thou=a[I]/l000:hun=a|Il%1000/100;

tcn=a[I]%100/10;data=a[I]%10;

ab=IO*lhou+len;cd=IO*data+hun;

if((ab-cd)>=O&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0)

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

for(I=0;I<CNT-l;I++)

for(j=I+l;j<CNT;J++)

{data=b[I];b[I]=b[j];b[j]=daia;}

题目29:已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat。把这

些数存入数组a中,请考生编制一函数jsVal(),其功能是:把千位数字和十位数字重新组成一

个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四

位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新H立数的十位

数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),假如新组成的两

个十位数ab-cd>=IO且ab-cd<=20且两个数均是偶数,同E寸两个新数的十位数字均不为零,则

将满意此条件的四位数按从大到小的依次存入数组b中,并要计算满意上述条件的四位•数的

个数cnt0最终main。函数调用写函数writeDat()把结果ent以及数组b中符合条件的四位数

输出到OUT.DAT文件中。

voidjsVal。/*标准答案*/

{iniI,lhou,hun,ten,dala,j;

intab,cd;

for(I=0;l<200;I++)

{thou=a[I]/l000;hun=a[I]%1000/100:

ten=a[I]%100/10:data=a[I]%10;

ab=10*thou+ten;cd=10*da(a+hun;

if((ab-cd)>=O&&(ab-cd)<=10&&ab%2==l&&cd%2==1&&ab!=0&&cd!=0)

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

)

for(I=0;I<CNT-l;I++)

for(j=I+l;j<CNT;J++)

if(b[I]<B[J])

{data=b[I];b[I]=b[j];b[j]=data;}

}

题目30:一知数据文件IN.DAT中存有200个四位数,并己调用读函数readDat()把这

些数存入数组a中,请考生编制一函数jsVal。,其功能是:依次从数组a中取出一个四位数,

假如该数连续小丁该四位数以后的5个数且该数是偶数,则统计出满意此条件的个数ent,

并把这些四位数按从小到大的依次存入数组b中。并要计算满意上述条件的四位数的个数

ento最终main。函数调用写函数writeDat()把结果ent以及数组b中符合条件的四位数输出

到OUT.DAT文件中。

voidjsVal。/*标准答案*/

{intI,j,flag=O;

for(I=0;I<MAX-5;I++)

{for(j=I+l;j<=I+5;j++)

flag=l;

elseflag=O;

if(a[I]%2!=0)

flag=O;

if(flag==O)

break;}

if(flag==1){b[cnt]=a(I];cnt++;}

)

for(I=0;I<CNT-l;I++)

for(j=I+l;j<CNT;J++)

if(b[I]>bUD

{flag=b[I];b[I]=bU];bUJ=flag;}

)

题目31:已知在文件1N.DAT中存有100个产品销售记录,每个产品销售记录由产品

代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长

整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDatO是读取这100个销售记

录并存入结构数组sell中。请编制函数Sor【Dat(),其功能要求:按产品代码从大到小进行排

列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,

最终调用函数WriteDat。把结果输出到文件OUT6.DAT中。

voidSortDat()/*标准答案*/

{intLj;

PROxy;

for(I=0;I<99;I++)

for(j=I+lj<100;j++)

if(sell[I].je<SELL[J].JE)

{xy=sell[IJ;sell[I]=sell[jJ;sell[jj=xy;}

elseif(sell[l].je==sell[j].je)

if(strcmp(sell[I].dm,sell[j].dm)<O)

{xy=sell[I];sell[I]=sell[j];sell|j]=xy;}

}

题目32:已如在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品

代码dm(字符型4位),产品名称me(字符型10位),单价dj(整型),数量si(整型),金额je(长

整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDal。是读取这100个销售记

录并存入结构数组sell中。请编制函数SortDatO,其功能要求:按产品名称从大到小进行排

列,若产品名称相同,则按金额从小到大进行排列.最终排列结果仍存入结构数组sell中,

最终调用函数WriteDat。把结果输出到文件OUT7.DAT中。

voidSortDatO/*标准答案*/

{inllj;

PROxy;

for(I=0;I<MAX-l;I+4-)

for(j=I+l:j<MAX;J+4-)

if(strcmp(sell[I].mc,sell|j].mc)<0)

{xy=sell[I];sell[I]=sellfj];sell[j]=xy;}

elseif(strcmp(sell[I].mc,sell[jl.mc)==O)

if(sen[l].je>sell|j].je)

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

题目33:请编制函数RcadDatO实现从文件IN.DAT中读取1000个十进制整数到数组

xx中;请编制函数Compute。分别计算出xx中奇数的个数odd,奇数的平均值avel,:禺数

的平均值ave2以及全部奇数的方差totfc的值,最终调用函数WriteDat。把结果输出到

OUT.DAT文件中。计算方差的公式如下:totfc=l/NE(xx[i]-avel)2

intReadDal(void)/*标准答案*/

{FILE*fp;

intI,j;

if((fp=fopen(,,,,IN.DAT"",'M,r""))==NULL)return1;

for(I=0;I<IOO;I++)

{for(j=0;j<10;j++)

fscanf(fp,&xx[I*10+j]);

fscanf(fp,…n"");

if(fcof(fp))break;}

fclosc(fp);

return0;}

voidCompute(void)

{intI,yyfMAX];

for(I=0;I<l000;I++)

if(xxlIJ%2){odd++;avel+=xx[I];}

else(even++;ave2+=xx[I];yy[even-l]=xxll];)

avcl/=odd;

ave2/=even;

for(I=0;I<EVEN;I++)

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

题目34:下列程序的功能是:选取出10()以上1000以内全部个位数字与十位数字之

和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CNT

以及这些素数值的和SUM。请编写函数COUNTvalue()实现程序要求,最终调用函数

WRITEDAT()把结果CNT和SUM输出到文件OUT.DAT中.

voidcouniValue。/*标准答案*/

{intI,j,half,hun,ten,data;

fdr(I=101;I<1000;1++)

{hun=I/100;

ten=I%100/10;

data=I%10;

if(hun==(ten+data)%10)

{half=I/2;

for(j=2;j<HALF;J++i

if(I%j==O)break;

if(j>=half)

{cnt++;sum+=I;})}

)

题目35:某级数的前两项A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-l.

下列程序的功能是:要求依次对于整数M=1001000和10000求出对应的n值,使其

满意:Sn=M,这里Sn=Al+A2+...+An,

并依次把n值存入数组单元b[O],b[l]和b[2]中,请编制jsvalue。函数来实现此功能,最

终调用函数writeDai。把数组b[]中的值输出到out.dat文件中。

voidjsvaluc。/*标准答案*/

{intal=l,a2=l,n=kaii;

intsumO,sum;

sum0=al+a2;

while(l)

{an=al+a2*2;

sum=sumO+an;

al=a2;a2=an;n++;

if(sum0<100&&sum>100)b[0]=n;

if(sumO<1000&&sum>1000)b[l]=n;

if(sum0<10000&&sum>10000){b[2]=n;break;}

sumO=sunK

)

)

jsvalue()

{intal=l,a2=l,a12,sn,k=2;

sn=al+a2;

while(l)

{a!2=al+2*a2;

if(sn<100&&sn+al2>=100)b[O]=k;

if(sn<l(X)O&&sn+al2>=1000)b[1]=k;

if(sn<IOO()O&&sn+a12>=10000){b[2J=k;break;}

sn=sn+al2;

al=a2;a2=al2;

k++;

)

)

题目36:函数ReadDai。实现从文件ENGIN中读取一篇英文文章,存入到字符串数组

xx中;请编制函数encryptChar。,按给定的替代关系对数组xx中的全部字符进行替代,仍

存入数组xx的对应的位置上,最终调用函数WriteDatO把结果xx输出到文件PS6.DAT中。

替代关系:陆曰*11]]城2568是数组中某一个字符的人$01值,即)是计算后新字

符的ASCH值),假如计算后f(p)值小于等于32或f(p)对应的字符是数字。至9,则该字符

不变,否则将f(p)所对应的字符进行替代。

voidencryptChar。/*标准答案*/

{intI;

char*pf;

for(I=0;I<MAXLINE;I++)

{pf=xxllj;

while(*pf!=0)

{if((*pf*ll%256>='0,&&*pf*ll%256<='9')||*pf*l1%256<=32)

{pf++;continue;}

*pf=*pf*ll%256;

pf++;}}

)

题目37:函数ReadDatO实现从文件ENGIN中读取一篇英文文章,存入到字符串数组

xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的全部字符进行替代,仍

存入数组XX的对应的位置上,最终调用函数WriteDal。把结果xx输出到文件PS6.DAT中。

替代关系:f(p尸p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字

符的ASCH值),假如原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则

将f(p)所对应的字符进行替代。

void

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论