2023年計算機三級考試南開題上機題庫_第1頁
2023年計算機三級考試南開題上機題庫_第2頁
2023年計算機三級考試南開題上機題庫_第3頁
2023年計算機三級考試南開題上機題庫_第4頁
2023年計算機三級考試南開題上機題庫_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

全國計算機三級考試南開100題上機題庫

題目1:下列程序的功能是:將不小于整數(shù)m且緊靠ml內(nèi)k個素數(shù)存入數(shù)組xx。請編寫函數(shù)num(inl

k,intxx[|)實現(xiàn)函數(shù)的規(guī)定.最終調(diào)用函數(shù)readwriteDAT。把成果輸出到文獻out.dat中。

原則答案*/

{intdata=m+1;

inthalf.n=0.I;

whiled)

{half=daUi/2:for(I=2:I<=hilf;l++)

if(data%I=O)break;

if(I>half)

{xx(n]=data;n++;)

if(n>=k)break;

data++;

})

題目2:已知數(shù)據(jù)文獻N.DAT中存有200個四位數(shù).并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a

中,請考生編制一函數(shù)j$Val(),其功能是:假如四位數(shù)各位上的數(shù)字均是0或2或4或6或8,則記錄出滿足

此條件的個數(shù)加、并把這些四位數(shù)按從大到小的次序存入數(shù)組b中。最終main。函數(shù)調(diào)用寫函數(shù)writeDat()

把成果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文獻中。

voidjsVal。/*原則答案*/

{intbb(4];

iniI,j,k,flag;

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

{bb[O]=a[I]/l00():bb[Il=a[I]%l000/100;

bb[2]=aII|%100/l0;bb(3]=a[I|%10;

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

{if(bb[jl%2==0)

flag=l;

else

{flag=0;break;}

)

if(flag==l)

{b[cnt]=a[I];

cnt++;|}

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

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

(k=b[i];b[i]=b[j];bU]=k;)

)

題目3:函數(shù)READDAT()實現(xiàn)從文獻IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX4;請編

制函數(shù)STROR(),其函數(shù)功能盤以行為單位把字符串中的所有小寫字母O左邊的字符串內(nèi)容移到該串的右

邊寄存,然后并把小寫字母0刪除,余下的字符串內(nèi)容移到已處理字符串的左邊寄存.最終把已處理的字符串

仍按行重新存入字符串?dāng)?shù)組XX中,最終調(diào)用函數(shù)WRITEDAT。把成果XX輸出到文獻OUT.DAT中.

voidSlrOR(void)/*原則答案*/

{intI.j,k,index,strl;

charch;

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

{str)=strlen(xx[Il):

index=strl:

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

if(xx[I][j]=='o')

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

xx(IJ[k]=xx[I][k+I];

index=j;}

for(j=strl-1;j>=indexj—)

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

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

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

xx[I][O]=ch;)

)

)

題目4:函數(shù)ReadDaK)實現(xiàn)從文獻IN.DAT中讀取一篇英又文章存入到字符串?dāng)?shù)組xx中;請編制函

數(shù)SirOLQ,其函數(shù)的功能是:以行為單位對行中以空格或標(biāo)點符號為分隔的所有單詞進行倒排,同步去

除標(biāo)點符號,之后把已處理的字符串(應(yīng)不含標(biāo)點符號)仍按行重新存入字符串?dāng)?shù)組xx中。最終main()

函數(shù)調(diào)用困數(shù)WriteDat。把成果xx輸出到義航(JUI6.DA1中。

voidSirOL(void)六原則答案*/

(intl.j.k,strl.l:charc;

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

for(j=0;j<STRLEN(XXn|)J++)

{c=xx[I]Ul;

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

elsexx[I][j]='}

foi-(l=0:l<MAXLINE:L++)

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

strl=strlen(xx[l]);

I=strl-1;k=l;

whilc(l)

{while(((xx(i][I]'>='a'&&xx[l](I)^=,z,)||(xx[l]|I>='A'&&xx[l][IK=,z'))&&I^=O)

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

PPlj+l]=PPlil;pp[O]=xx[ll|I];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=kj>=0u-)

PP[j+n=PPU];pp[O]=xx[ll|I];k++;I-;)

strcat(ch.pp);strcpy(pp."""'^);

k=0;

if(I==-l)break;}

strcpy(xx[l],ch);

))

題目5:在文獻in.dal中有200個正整數(shù),且每個數(shù)均在100。至9999之間。函數(shù)RcadDal()讀取這200

個數(shù)寄存到數(shù)組aa中。請編制函數(shù)jsSort。,其函數(shù)的功能是:規(guī)定按每個數(shù)的后三位的大小進行升序排列,

然后取出滿足此條件的前10個數(shù)依次存入數(shù)組b中,假如后三位的數(shù)值相等,則按原先的數(shù)值進行降序排

列。最終調(diào)用函數(shù)WriieDat。把成果bb輸出到文獻out.dat中。

voidjsSort。/*原則答案*/

{intl.j.data:

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

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

{if(aa[Ij%100()>aa|jJ%1000)

{data=aalI];aa[I]=aa[jj;aaj]=dala;}

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

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

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

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

bb(I]=aa(I];

)

題目6:在文獻in.dat中有200個正整數(shù),且每個數(shù)均在100D至9999之間。函數(shù)ReadDat。讀取這200

個數(shù)寄存到數(shù)組aa中。請編制函數(shù)jsSortO,其函數(shù)的功能是:規(guī)定按每個數(shù)口勺后三位的大小進行降序排列,

然后取出滿足此條件的前10個數(shù)依次存入數(shù)組b中,假如后三位的數(shù)值相等,則按原先的數(shù)值進行升序排

列。最終調(diào)用函數(shù)WriicDal。把成果bb輸出到文獻oul.dai中。

voidjsSort()/*原則答案*/

{intI,j,data;

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

for(j=I+I;j<200;j+4-)

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

{data=aa[I]:aa[I|=aa[j];aaj]=data;)

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

if(aarn>aa(jl)

{data=aa[I]:aa[Il=aa[jJ:aaj]=data:)

)

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

bb[I]=aalIJ;

)

題目7:已知在文獻IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4

位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)四部分構(gòu)成。其中:金額=單

價*數(shù)量計算得出。函數(shù)ReadDatO是讀取這100個銷售記錄并存入均造數(shù)組sell中。請編制困數(shù)SoriDai。,其

功能規(guī)定:按產(chǎn)品代碼從大到小進行排列,若產(chǎn)品代碼相似,則按金額從大到小進行排列,最終排列成果仍

存入構(gòu)造數(shù)組sell中,最終調(diào)用函數(shù)WrileDal。把成果輸出到文獻OUT10.DAT中。

voidSortDaK)」原則答案*/

{intIj;

PROxy;

foHI=0:I<99;I++)

foi-(j=I+l:j<IOO;j++)if(strcnip(seII[I].dm.sell[j].dm)<O)

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

elseif(strcmp(sell[I].dm.s5ll[jJ.dm)==0)

if(sellll].je<SELLlJ]JE)

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

)

題目8:函數(shù)ReadDat。實現(xiàn)從文獻ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中:請編制函

數(shù)encryptCharQ,按給定的替代關(guān)系對數(shù)組xx中的所有字符進行替代,仍存入數(shù)組xxII勺對應(yīng)H勺位置上,最

終調(diào)用函數(shù)WrileDaH)把成果xx輸出到文獻PSLDAT中。

替代關(guān)系:f(p)=p*IImod256(p是數(shù)綱中某一種字符的ASCII值,f(p)是計算后新字符的ASCH值),假

如計算后f(p)值不不小T等于32或不小于130,則該字符不變,否則將f(p)所對應(yīng)的字符進行替代。

voidencryp〔Char()原則答案*/

{intI;

char*pf:

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

lpf=xx[I];

\vhile(*pf!=O)

{II%256>130||*pf*ll%256<=32);

else

*pf=*pt*ll%256;

pf++;}

)

)

9題目:

題目9:函數(shù)ReadDaK)實現(xiàn)從文獻IN.DAT中讀取一篇英義文章存入到字符串?dāng)?shù)組xx中;請編制函

數(shù)SortCharD(),其函數(shù)口勺功能是:以行為單位對字符按從大到小II勺次序進行排序,排序后的成果仍投行市

新存入字符串?dāng)?shù)組xx中。最終main。函數(shù)調(diào)用函數(shù)WriteDat。把成果xx輸出到文獻OUT2.DAT中。

voidSortCharD(void)/*原則答案*/

{intl.j,k,strl;

charch;

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

{strl=strlen(xx[I]);

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

for(k=j+l;k

if(xx(I]|j]<XX[I][K])

{ch=xx[I][jl;xx|I][j|=xx[I]|kl:xx[I][k]=ch;}

)}

題目10:請編制函數(shù)ConverlCharAO.其函數(shù)的功能是:以行為單位把字符串中的所有小寫字母改寫

成該字母的下?種字母,假如是字母z,則改寫成字母a,大寫字母和其他字符保持不變。把己處理的字符串

仍按行重新存入字符串?dāng)?shù)組xx中。。最終main。函數(shù)調(diào)用函數(shù)WriicDaiO把成果xx輸出到文獻OUT3.DAT

中。

voidConvertCharA(void)/*原則答案*7

{intI.j,str;

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

{str=strlen(xx(I]);

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

if(xx[I][j]==,z')xx[I][j]=,a';

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

)

}

題目11:下列程序的功能是:把S字符串中的所有字母改寫成該字母H勺下一種字符,字母Z改寫成字

母a。規(guī)定大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不做變化。請編寫函數(shù)chg(char*s)

實現(xiàn)程序口勺規(guī)定,最終調(diào)用函數(shù)rcadwriicDal。把成果輸出到文獻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+=1;s++;}

elses++;

)

或者:

voidchg(char*s)

k=strlen(s);

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

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

s|i]-=25;

else

if(isalpha(s[i]))

州++;)

)

題目12:已知在文獻IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型

4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)四部分構(gòu)成。其中:金額=

單價*數(shù)量計算得出。函數(shù)ReadDatO是讀取這100個銷售記錄并存入構(gòu)造數(shù)組sell中。請編制函數(shù)SoriDat(),

其功能規(guī)定:按產(chǎn)品名稱從小到大進行排列,若產(chǎn)品名稱相似,財按金額從小到大進行排列.最終排列成果

仍存入構(gòu)造數(shù)組sell中,最終調(diào)用函數(shù)WriteDaK)把成果輸出到文獻OUT5,DAT中。

voidSortDat()/*原則答案*/

(intI.j:

PROxy;

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

for(j=I+l:j<iOO;j++)

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

(xy=sell[I];sell[I]=sellU];selHj]=xy;}

elseif(slrcmp(sell[I|.dm,S2ll(j].clm)==0)

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

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

J

題目13:已知在文獻IN.DAT中存有100個產(chǎn)品梢告記錄,母個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型

4位).產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)四部分構(gòu)成。其中:金額=

單價*數(shù)量計算得出。函數(shù)ReadDat。足讀取這100個銷售記錄并存入構(gòu)造數(shù)組sell中。請編制函數(shù)SoriDa((),

其功能規(guī)定:按產(chǎn)品代碼從小到大進行排列,若產(chǎn)品代碼相似,則按金額從大到小進行排列,最終排列成果

仍存入構(gòu)造數(shù)組sell中,最終調(diào)用函數(shù)WriteDat。把成果輸出到文獻OUT6.DAT中。

voidSortDal。/*原則答案*/

{intIj;

PROxy;

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

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

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

{xy=sell[IJ;sell|I]=sell|j|;sell[j]=xy;)

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

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

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

}

題目14:已知數(shù)據(jù)文獻IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDal。把這些數(shù)存入數(shù)組a

中,請考生編制?函數(shù)jsValO,其功能是:依次從數(shù)組a中取出?種四位數(shù),假如該數(shù)持續(xù)不小于該四位數(shù)后

來口勺5個數(shù)且該數(shù)是奇數(shù),則記錄出滿足此條件的個數(shù)cm,并把這些四位數(shù)按從小到大的次序存入數(shù)組b

中。并要計算滿足上述條件的四位數(shù)的個數(shù)ent。最終main。函數(shù)調(diào)用寫函數(shù)writeDat()把成果ent以及數(shù)

組b中符合條件的四位數(shù)輸出到OUT.DAT文獻中。

voidjsVal。/*原則答案*/

{intI,j,flag=O;

intk;

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

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

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

flag=l;

else{flag=O:break:I

if(a[I]%2=0)

flag=O;}

if(flag==l)

{b[cnt]=a|IJ;cnt++;)}

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

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

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

{k=b[l];b[ii=b[j];bU]=k;!

J

題目15:己知數(shù)據(jù)文獻IN.DAT中存有200個四位數(shù),并己調(diào)用讀函數(shù)readDai。把這些數(shù)存入數(shù)組a

中,請考生編制一函數(shù)jsVa】(),其功能是:若一種四位數(shù)的千位數(shù)字上口勺值不不小于等于百位數(shù)字上的值、百

位數(shù)字上的值不不小于等于十位數(shù)字上的值,十位數(shù)字上的值不不小于等于個位數(shù)字上H勺值,并且此四位

數(shù)是偶數(shù),則記錄出滿足此條件的個數(shù)cm,并把這些四位數(shù)按從大到小的次序存入數(shù)組b中。最終main。

函數(shù)調(diào)用寫函數(shù)writeDat()把成果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文獻中。

voidjsVal。/*原則答案*/

{intIj;

intal.a2,a3.a4.k;

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

{al=a[Il/1000:a2=a[I]%1000/100:

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

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

{b[cnt]=a|I];

cnt++;)

)

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

foi-(j=I+I;j<CNT;J++)

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

{k=b[I];blI]=bUJ;bUl=k;}

J

1題目:

題目16:函數(shù)ReadDat。實現(xiàn)從文獻IN.DAT中讀取?篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函

數(shù)SuCharJR。,其函數(shù)的功能是:以行為單位把字符串中所有字符的ASCI【值右移4位,然后把右移后II勺字

符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串對應(yīng)的位置上。最終把已處理的字符

串仍按行重新存入字符串?dāng)?shù)組xx中,最終調(diào)用函數(shù)wriicDai。把成果xx輸出到文獻OUT8.DAT中。原始數(shù)

據(jù)文獻寄存啊格式是:每行的寬度均不不小于80個字符,含標(biāo)點符號和空格。

voidSirCharJR(void)/*原則答案*/

{intI.j,strl;

foi-(I=0;I<MAXLINE;I++)

(strl=strlen(xx[i]);

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

xx(IHj|+=xxlI]|j]?4;

J

)

題目17:函數(shù)READDATC)實現(xiàn)從文獻IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請編

制函數(shù)CHAO,其函數(shù)功能是:以行為單位把字符串中時第一種字符的ASCII值加第二個字符日勺ASCH值,得

到第?種親朋字符,第二個字符的ASCII值加第三個字符的ASCII值,得到第二個新字符,依此類推?直處

理到最終第二個字符,最終一種字符的ASCII值加原第一種字符的ASCII值,得到最終一種新的字符,得到

的新字符分別寄存在原字符串對應(yīng)的位置匕最終把己處理的字符串逆轉(zhuǎn)后按行重新存入字符串?dāng)?shù)紐XX

中,最終調(diào)用函數(shù)WRITEDAT。把成果XX輸出到文獻OUT9.DAT中.原始數(shù)據(jù)文獻寄存R勺格式是:每行口勺寬

度均不不小于80個字符,含標(biāo)點符號和空格.

voidChA(void)/*原則答案。

{intI.j,k.str;

charch:

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

{str=strlen(xx[i]);

ch=xx|I]lO];

for(j=0;j<STR-IJ++)

xx(I]Li]+=xx[JJ(j+lJ;

xx[I][str-l]+=ch;

for(j=0,k=str-ly

{ch=xx(I][j];

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

xx(I][k]=ch;}

)

)

voidChA(void)

{iniij;

charp,c;

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

{P=xx[i][。];

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

for(j=OJ<STRLEN(XX[I])-l;J++)

xxli][j]+=xx[i][j+l];

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

strrev(xxlij);}

)

題目18:函數(shù)ReadDal()實現(xiàn)從文獻ENGIN中讀取一篇英叉文章,存入到字符串?dāng)?shù)組xx中:請編制

函數(shù)encryptCharO,按給定的替代關(guān)系對數(shù)組xx中的所有字符進行替代,仍存入數(shù)組xxH勺對應(yīng)的位置上,

最終調(diào)用函數(shù)WriteDatO把成果xx輸出到文獻PS10.DAT中。

替代關(guān)系:f(p)=p*llmod256(p是數(shù)組中某一種字符的ASCII值,f(p)是計算后新字符的ASCII值),假

如原字符口勺ASCII值是偶數(shù)或計算后f(p)值不不小于等于32,則該字符不變,否則將f(p)所對應(yīng)口勺字符進行

替代。

voidencryptCharQ/*原則答案*/

{inti;

char*pf;

foitI=0;I<MAXLINE;I++)

lpf=xxlU;

while(*pf!=O)

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

else

*pf=*p#ll%256;

pf++;

})

)

題目19:編寫一種函數(shù)findsirO,該函數(shù)記錄一種長度為2的子字符串在另一種字符串中出現(xiàn)的次數(shù)。

例如:假定輸入的字符串為"asdasasdfgasdaszx67asdmklo”,子字符串為“as",函數(shù)返回值為6。

函數(shù)readwrileDal。的功能是實現(xiàn)從文獻in.dat中讀取兩個字符穿4,并調(diào)用函數(shù)findstr(),最終把成果

輸出到文獻oul.dai中。

/*原則答案*/

intfindStr(char*str,char4substr)

{intn;

char*p,*r;

n=0;

while(*str)

{p=str:

r=subslr;

whilc(*r)

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

elsebreak;

if(*r=='\O')

n++;

str++;}

returnn:

)

題目20:編寫函數(shù)jsvalue,它時功能是:求Fibonacci數(shù)列中不小于IH勺最小的一種數(shù),成果由函數(shù)返

回。其中Fibonacci數(shù)列F(n)的定義為:

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

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

最終調(diào)用函數(shù)wrileDat。讀取10個數(shù)據(jù)t,分別得出成果且把成果輸出到文獻。ul.dal中。

intjsValue(init)/*原則答案*/

{intfl=0.f2=I,fn;

fn=fl+f2;

whilc(fn<=t)

{fl=f2;

f2=fn;

fn=fl+f2;}

returnfn;

)

題目21:下列程序口勺功能是:運用發(fā)下所示II勺簡樸迭代措施求方程:cos(x)-x=0的一種實根。

xn+l=cos(xn)

floatcountValue。/*原則答案*/

(floatx(),x1=0.0;

while(l)

{x0=xl;

xl=cos(x0);

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

returnx1;

)

題目22:請編寫函數(shù)countvalueO,它的)功能是:求n以內(nèi)(不包括n)同步能被3和7整數(shù)的所有自

然數(shù)之和的平方根s,并作為函數(shù)值返回,最終成果s輸出到文獻疝i.dal中。

doublecountValuc(intn)/*原則答案*/

{doublexy=0.0;

intI;

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

if(I%3==0&&!%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.dal中存有N個(個數(shù)<200)四位數(shù)字的正整數(shù),函數(shù)readdat。讀取這N個正

整數(shù)并存入數(shù)組xx中。請編制函數(shù)calvalue。,其功能規(guī)定:1.求出這N個實數(shù)的平均值aver;2.分別求出

這N個實數(shù)H勺整數(shù)部分之和sumini以及小數(shù)部分之和sumdec,最終調(diào)用函數(shù)wri〔cdal()把所求H勺成果輸出

到文獻out.dat中。

voidCalValue(void)/*原則答案*/

{inti;

doublex.sum=0:

for(I=0:I<MAXNUM:I+-)

(sumint=sumint+(int)xx[I];

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

sumdec=sumdec+x;

sum=sum+xx|l|;

}

aver=sum/MAXNUM;

)

題目24:在三位整數(shù)(100至999)中尋找符合條件的整數(shù)并依次從小到大存入數(shù)組中:它既是完全平

方數(shù),乂是兩位數(shù)字相似,例如144.676等。請編制函數(shù)實現(xiàn)此功能、滿足該條件的整數(shù)的個數(shù)通過所編制

的函數(shù)返回。最終調(diào)用函數(shù)wrileDal。把成果輸出到文獻out.dat中。

jsValuc(inla[10|⑼)蘆原則答案*/

{intI,j,k=O;

inthun,ten,data;

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

{j=10;

whiie(j*j<=I)

{if(I=j*j)

{hun=I/lOO:data=I-hun*li)O;

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

if(hun——ten||hun——data||ten——data)

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

J

j++;)}

returnk;

題目25:下列程序的功能是:尋找并輸出II至999之間的數(shù)m、它滿足mm2和m3均為回文數(shù)。所

調(diào)回文數(shù)是指其各位數(shù)字左右對稱的整數(shù),例如121,676,94249等。滿足上述條件的數(shù)如

m=ll.m2=121,m3=1331皆為回文數(shù)。請編制函數(shù)intsvalue(longm)實現(xiàn)此功能,假如是回文數(shù),則函數(shù)返回

I,反之則返回0。最終把成果輸出到文獻。ui.dal中。

inijsValuc(longn)/*原則答案*/

{intI,strl,half;

charxy[20];

ltoa(iLxy,IO);

strl=strlen(xy);

half=strl/2:

foiXI=0;I<HALF:I++)

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

if(I>=half)returnI;

elsereturn0;

)

題目26:已知在文獻in.dai中存有若干個(個數(shù)<200)四位數(shù)字的正整數(shù),函數(shù)readdal。讀取這若干個

正整數(shù)并存入數(shù)組xx中。請編制函數(shù)calvalue。,其功能規(guī)定:I.求出這文獻C.P有多少個正整數(shù)lotnum:

2.求這些數(shù)右移1位后,產(chǎn)生的新數(shù)是偶數(shù)的數(shù)的個數(shù)totcnt,以及滿足此條件的這些數(shù)(右移前的值)的

算術(shù)平均值lotpjz,最終調(diào)用函數(shù)writedal。把所求的成果輸出到文獻oul.dat'I10

voidCalValue(void)/*原則答案*/

(intl.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];)

)

totPjz/=totCnt;

I

題目27:已知數(shù)據(jù)文獻IN.DAT中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat。把這些數(shù)存入數(shù)組a

中,請編制一函數(shù)jsvalue。,其功能是:求出千位數(shù)上的數(shù)減百位數(shù)減十位數(shù)上的數(shù)減個位數(shù)上H勺數(shù)不小于

零I內(nèi)個數(shù)ent,再求出所有滿足此條件的四位數(shù)平均值pjzl,以及不滿足此條件的四位數(shù)平均值pjz2,最終

調(diào)用寫函數(shù)writeDat。把成果輸出到OUT.DAT文獻。例如:9123.9-i-2-3>0,則該數(shù)滿足條件計算平均值

pjzl,且個數(shù)cnl=cni+l。

9812.9-8-1-2<0,則該數(shù)不滿足條件計算平均值pjz2.

voidjsValue()/*原則答案*/

{iniI,thou,hun,lcn,data,j;

foi-(I=0:I<300:I++)

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

ten=a|IJ%100/10;data=a[l|%10;

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

)

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

foiXj=I+l;j<-CNT;J++)

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

題目28:已知數(shù)據(jù)文獻【N.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a

中,請考生編制一函數(shù)jsVal(),其功能是:把千位數(shù)字和十位數(shù)字重新構(gòu)成一種新的十位數(shù)ab(新十位數(shù)的十

位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)H勺個位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字

構(gòu)成另一種新的十位數(shù)cd(新十位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的

百位數(shù)字),假如新構(gòu)成的兩個十位數(shù)ab-cd>=0且ab-cd<=10且兩個數(shù)均是奇數(shù),同步兩個新數(shù)H勺十位數(shù)字

均不為零,則將滿足此條件的四位數(shù)按從大到小的次序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個

數(shù)cni。最終main。函數(shù)調(diào)用寫函數(shù)wriieDaK)把成果cnl以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT

文獻中.

voidjsVal。/*原則答案*/

{intI.thou.hun.ten.data.j;

intab.cd;

foi-(I=0:I<200:I++)

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

ten=a|IJ%100/10;data=a[l|%10;

ab=10*thou+len;cd=10*data+hun;

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

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

)

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

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

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

{data=bfll:b(l]=b|j];b[j]=data;}

)

題目29:已知數(shù)據(jù)文獻IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組a

中,請考生編制一函數(shù)jsVal(),其功能是:把「?位數(shù)字和十位數(shù)字重新構(gòu)成一種新的十位數(shù)ab(新十位數(shù)的十

位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)H勺個位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字

構(gòu)成另?種新的十位數(shù)cd(新十位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的

百位數(shù)字),假如新構(gòu)成的兩個卜位數(shù)ab-cd>=10且ab-cd<=20且兩個數(shù)均是偶數(shù),同步兩個新數(shù)的卜位數(shù)字

均不為零,則將滿足此條件的四位數(shù)按從大到小的次序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個

數(shù)cnto最終main。函數(shù)調(diào)用寫函數(shù)wrileDat()把成果ent以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT

文獻中。

voidjsVal。/*原則答案*/

{intI.thou.hun.ten.data.j;

intab.cd;

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

{thou=a|I]/1000:hun=a(I]%1000/100:

tcn=a|Il%100/l0;data=a[l]%10;

ab=10*thou+lcn;cd=10*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++)

if(b[Il<B[J])

{data=b|I]:b|I]=b|jl;b[j]=data;}

)

題目30:已知數(shù)據(jù)文獻【N.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDal。把這些數(shù)存入數(shù)組a

中,請考生編制?函數(shù)JsValO,其功能是:依次從數(shù)組a中取出?種四位數(shù),假如該數(shù)持續(xù)不不小于該四位數(shù)

后來的5個數(shù)且該數(shù)是偶數(shù),則記錄出滿足此條件的個數(shù)cni,并把這些四位數(shù)按從小到大的次序存入數(shù)組

b中。并要計算滿足上述條件的四位數(shù)『'J個數(shù)cnto最終main。函數(shù)調(diào)用寫函數(shù)wriieDat()把成果ent以及

數(shù)組h中符合條件的四位數(shù)輸出到0UT.DAT文獻中。

voidjsVal()六原則答案七

{intIj,flag=O;

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

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

{if(a[I]<A|JD

flag=l;

elseflag=O;

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

flag=0;

if(flag==O)

break;}

if(flag==l){b[cnt]=a|I];c:n++;}

)

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

foi-(j=I+I;j<CNT:J++)

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

{flag=b[I];b[n=bO];bUl=flag;}

)

題目31:已知在文獻IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼山n(字符型

4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)四部分構(gòu)成。其中:金額=

單價*數(shù)量計算得出。函數(shù)ReadDat。是讀取這100個銷售記錄并存入構(gòu)造數(shù)組sell中。請編制函數(shù)SonDa((),

其功能規(guī)定:按產(chǎn)品代碼從大到小進行排列、若產(chǎn)品代碼相似,則按金額從大到小進行排列,最終排列成果

仍存入構(gòu)造數(shù)組sell中,最終調(diào)用函數(shù)WriteDatO把成果輸出到文獻OUT6.DAT中。

voidSortDalO產(chǎn)原則答案*/

{intIj;

PROxy;

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

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

if(sell[Ilje<SELL[J].JE)

{xy=se!l[I];sell[I]=sell|j];sell|j]=xy:}

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

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

{xy=selUl|:sell[l|=sell|jl;sell|j]=xy;}

)

題目32:已知在文獻IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型

4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長整型)四部分構(gòu)成。其中:金額=

單價*數(shù)量計算得出。函數(shù)ReadDatO是讀取這100個銷售記錄并存入構(gòu)造數(shù)組sell中。請編制困數(shù)SortDat(),

其功能規(guī)定:按產(chǎn)品名稱從大到小進行排列,若產(chǎn)品名稱相似,貝J按金額從小到大進行排列.最終排列成果

仍存入構(gòu)造數(shù)組sen中,最終調(diào)用函數(shù)WriteDat。把成果輸出到文獻OUT7.DAT中。

voidSortDaK)產(chǎn)原則答案*/

{intI.j;

PROxy;

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

for(j=I+Iu<MAX;J++)

if(strcmp(sell[I].mc,sell[jJ.mc)<O)

{xy=sell[IJ;sell[I|=sell[j]:sell[j]=xy;)

elseif(strcmp(sel1[1].me,sell|j].mc)==0)

if(sell[I].je>sellU].je)

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

)

題目33:請編制函數(shù)ReadDat。實現(xiàn)從文獻IN.DAT中讀取1000個十進制整數(shù)到數(shù)組xx中:請編制

函數(shù)CompuleO分別計算出xx中奇數(shù)H勺個數(shù)odd,奇數(shù)的平均值avel,偶數(shù)的平均值ave2以及所有奇數(shù)的

方差totfc的值,最終調(diào)用函數(shù)WriteDatO把成果輸出到OUT.DAT文獻中。計算方差的公式如下:totfc=l/N

E(xx[i]-avel)2

intReadDat(void)建原則答案"/

{HLE*fp;

intI.j;

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

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

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

fscanf(fp,&xx[IMO+j]);

fscanf(fp,…n"");

if(feof(fp))break;}

fclose(fp);

return0;}

voidCompute(void)

{intI,yy[MAX];

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

if(xx[Il%2){odd++:aveI+=xx[I];}

else{even++;ave2+=xx[I];yy[even-!l=xx|I];}

avel/=odd;

ave2/=even;

foi-(I=0:I<EVENJ++)

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

J

J

題目34:下列程序的功能是:選用出100以上1000以內(nèi)所有個位數(shù)字與十位數(shù)字之和被10除所得余

數(shù)恰是百位數(shù)字日勺素數(shù)(如293)。計算并輸出上述這些素數(shù)的個數(shù)CNT以及這些素數(shù)值的和SUM。請編

寫函數(shù)COUNTvalue()實現(xiàn)程序規(guī)定,最終調(diào)用函數(shù)WRITEDAT()把成果CNT和SUM輸出到文獻

OUT.DAT中.

voidcountValue。/*原則答案*/

{intl,j,half.hun,ten.data;

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

{hun=I/100;

ten=I%100/10;

data=I%10;

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

{half=I/2;

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

if(I%j==O)break;

if(j>=ha!f)

{cn【++;sum+=I;}}}

)

題目35:某級數(shù)的前兩項AI=I.A2=I.后來各項具有如下關(guān)系:An=An-2+2An-l.

下列程序的功能是:規(guī)定依次對于?整數(shù)M=100.1000和10000求出對應(yīng)孫]值,使其滿足:Sn=M,這里

Sn=Al+A2+...+An.

并依次把n值存入數(shù)組單元b[0].b⑴和b⑵中,請編制jsvalue。函數(shù)來實現(xiàn)此功能,最終調(diào)用函數(shù)

wrilcDai。把數(shù)組b[]中的值輸出到oul.dat文獻中。

voidjsvalue。產(chǎn)原則答案*/

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

inisum0,sum;

sufnO=al+a2;

whilc(1)

{an=al+a2*2;

suin=suinO+an;

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

if(sum0<100&&sum>100)b|O]=n;

if(sumO<IO(X)&&sum>IO(X))b[l]=n:

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

sumO=sum;

)

J

jsvalue()

{inial=l.a2=l,a12,sn,k=2;

sn=al+a2;

whilc(l)

{a12=al+2*a2;

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

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

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

sn=sn+al2;

al=a2;a2=a!2;

k++;

)

)

題目36:函數(shù)RcadDal。實現(xiàn)從文獻ENGIN中讀取一篇英叉文章,存入到字符串?dāng)?shù)組xx中:請編制

函數(shù)encryptCharO.按給定時替代關(guān)系對數(shù)組xx中的所有字符進行替代,仍存入數(shù)組xx的對應(yīng)的位置上,

最終調(diào)用函數(shù)WriieDal。把成果xx輸出到文獻PS6.DAT中。

替代關(guān)系:f(p)=p*l1mod256(p是數(shù)組中某一種字符的ASCI!值,f(p)是計算后新字符的ASCII值),假

如計算后f(p)值不不小于等于32或f(p)對應(yīng)II勺字符是數(shù)字0至9,則該字符不變,否則將f(p)所對應(yīng)的字符

進行替代。

voidcncryplChar。/*原則答案*/

{inti;

char*pf;

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

{pf=xx[Il;

whiie(*pf!=O)

(if((*pf*11%256>='0'&&*pf*11%256<='9')||*pf*11%256<=32)

{pf++;c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論