2024全國計(jì)算機(jī)三級考試南開100題上機(jī)題庫_第1頁
2024全國計(jì)算機(jī)三級考試南開100題上機(jī)題庫_第2頁
2024全國計(jì)算機(jī)三級考試南開100題上機(jī)題庫_第3頁
2024全國計(jì)算機(jī)三級考試南開100題上機(jī)題庫_第4頁
2024全國計(jì)算機(jī)三級考試南開100題上機(jī)題庫_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

全國計(jì)算機(jī)三級考試南開100題上機(jī)題庫

題目1:下列程序的功能是:將大于整數(shù)m且緊靠m的k個素?cái)?shù)存入數(shù)組XX。請編

寫函數(shù)num(intm,intk,in(xx[])實(shí)現(xiàn)函數(shù)的要求,最終調(diào)用函數(shù)readwriteDAT。把結(jié)果輸出

到文件out.dat中。

標(biāo)準(zhǔn)答案*/

{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:已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這些

數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsValO,其功能是:假如四位數(shù)各位上的數(shù)字均是0或2

或4或6或&則統(tǒng)計(jì)出滿意此條件的個數(shù)ent,并把這些四位數(shù)按從大到小的依次存入數(shù)組

b中。最終main。函數(shù)調(diào)用寫函數(shù)wrileDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出

到OUT.DAT文件中。

voidjsVal。/*標(biāo)準(zhǔn)答案號

{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:函數(shù)READDAT()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)

組XX中;請編制函數(shù)STROR0,其函數(shù)功能是:以行為單位把字符串中的全部小寫字母0左

邊的字符串內(nèi)容移到該串的右邊存放,然后并把小寫字母0刪除,余下的字符串內(nèi)容移到已處

理字符串的左邊存放.最終把一處理的字符串仍按行重新存入字符串?dāng)?shù)組XX中,最終調(diào)用函

數(shù)WRITEDAT0把結(jié)果XX輸出到文件OUT.DAT中.

voidStrOR(void)/*標(biāo)準(zhǔn)答案

{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:函數(shù)ReadDat()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx

中;請編制函數(shù)SlrOL(),其函數(shù)的功能是:以行為單位對行中以空格或標(biāo)點(diǎn)符號為分隔的

全部單詞進(jìn)行倒排,同時去

除標(biāo)點(diǎn)符號,之后把已處理的字符串(應(yīng)不含標(biāo)點(diǎn)符號)仍按行重新存入字符串?dāng)?shù)組XX

中。最終main。函數(shù)調(diào)用函數(shù)WriteDat。把結(jié)果xx輸出到文件OUT6.DAT中。

voidStrOL(void)/*標(biāo)準(zhǔn)答案*/

{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個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)ReadDat()

讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSor【(),其函數(shù)的功能是:要求按每個數(shù)的

后三位的大小進(jìn)行升序排列,然后取出滿意此條件的前10個數(shù)依次存入數(shù)組b中,假如后

三位的數(shù)值相等,則按原先的數(shù)值進(jìn)行降序排列。最終調(diào)用函數(shù)WriteDatO把結(jié)果bb輸出

到文件out.dat中。

voidjsSort。/*標(biāo)準(zhǔn)答案*/

{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個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)ReadDat()

讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個數(shù)的

后三位的大小進(jìn)行降序排列,然后取出滿意此條件的前10個數(shù)依次存入數(shù)組b中,假如后

三位的數(shù)值相等,則按原先的數(shù)值進(jìn)行升序排列。最終調(diào)用函數(shù)WriteDatO把結(jié)果bb輸出

到文件out.dat中。

voidjsSort。/*標(biāo)準(zhǔn)答案*/

{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個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品

代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長

整型)四部分組成。其中:金額=單價*數(shù)量計(jì)算得出。函數(shù)ReadDal。是讀取這100個銷售記

錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDatO,其功能要求:按產(chǎn)品代碼從大到小進(jìn)行排

列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,

最終調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT10.DAT中。

voidSortDatO/*標(biāo)準(zhǔn)答案*/

{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:函數(shù)ReadDat()實(shí)現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組

xx中;請編制函數(shù)encryptChar。,按給定的替代關(guān)系對數(shù)組xx中的全部字符進(jìn)行替代,仍

存入數(shù)組xx的對應(yīng)的位置上,最終調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PSLDAT中。

替代關(guān)系:f(p)=p*llnK)d256(p是數(shù)組中某一個字符的ASC^值,f(p)是計(jì)算后新字

符的ASCII值),假如計(jì)算后f(p)值小于等于32或大于130,則該字符不變,否則將f(p)所

對應(yīng)的字符進(jìn)行替代。

voidencryptChar()/*標(biāo)準(zhǔn)答案*/

{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:函數(shù)ReadDat()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx

中;請編制函數(shù)SortCharD(),其函數(shù)的功能是:以行為亙位對字符按從大到小的依次進(jìn)行

排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中。最終main。函數(shù)調(diào)用函數(shù)WriteDatO

把結(jié)果xx輸出到文件OUT2.DAT中。

voidSortCharD(void)/*標(biāo)準(zhǔn)答案*/

{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:請編制函數(shù)ConvertCharAO,其函數(shù)的功能是:以行為單位把字符串中的全

部小寫字母改寫成該字母的卜.一個字母,假如是字母z,則改寫成字母a,大寫字母和其它字

符保持不變。把已處理的字符串仍按行重新存入字符中數(shù)組xx中。。最終main。函數(shù)調(diào)用函

數(shù)WriteDat()把結(jié)果xx輸出到文件OUT3.DAT中。

voidConvertCharA(void)/*標(biāo)準(zhǔn)答案*/

{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。要求大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不做

變更。請編寫函數(shù)chg(cha「*s)實(shí)現(xiàn)程序的要求,最終調(diào)用函數(shù)readwrileDat。把結(jié)果輸出到

文件out.dat中。

voidchg(char*s)/*標(biāo)準(zhǔn)答案*/

{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個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品

代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長

整型)四部分組成。其中:金額=單價*數(shù)量計(jì)算得出。函數(shù)ReadDatO是讀取這10。個銷售記

錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)Sor【Dat(),其功能要求:按產(chǎn)品名稱從小到大進(jìn)行排

列,若產(chǎn)品名稱相同,則按金額從小到大進(jìn)行排列.最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最

終調(diào)用函數(shù)WritcDat。把結(jié)果輸出到文件OUT5.DAT中。

voidSortDat()/*標(biāo)準(zhǔn)答案*/

{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個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品

代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長

整型)四部分組成。其中:金額=單價*數(shù)量計(jì)算得出。函數(shù)ReadDatO是讀取這100個銷售記

錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDatO,其功能要求:按產(chǎn)品代碼從小到大進(jìn)行排

列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,

最終調(diào)用函數(shù)WriteDal。把結(jié)果輸出到文件OUT6.DAT中。

voidSorlDat。/*標(biāo)準(zhǔn)答案*/

{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:已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這

些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:依次從數(shù)組a中取出一個四位數(shù),

假如該數(shù)連續(xù)大于該四位數(shù)以后的5個數(shù)且該數(shù)是奇數(shù),則統(tǒng)計(jì)出滿意此條件的個數(shù)ent,

并把這些四位數(shù)按從小到大的依次存入數(shù)組b中。并要計(jì)算滿意上述條件的四位數(shù)的個數(shù)

ento最終main。函數(shù)調(diào)用寫函數(shù)writeDaK)把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出

到OUT.DAT文件中。

voidjsVal。/*標(biāo)準(zhǔn)答案*/

{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:已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這

些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:若一個四位數(shù)的千位數(shù)字上的值小于

等于百位數(shù)字上的值,百位數(shù)字上的值小于等于十位數(shù)字上的值,十位數(shù)字上的值小于等于

個位數(shù)字上的值,并且此四位數(shù)是偶數(shù),則統(tǒng)計(jì)出滿意此條件的個數(shù)ent,并把這些四位數(shù)

按從大到小的依次存入數(shù)組b中。最終main。函數(shù)調(diào)用寫函數(shù)wriieDai()把結(jié)果cnl以及數(shù)

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

voidjsVal()/*標(biāo)準(zhǔn)答案*/

{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:函數(shù)ReadDal。實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組

xx+,請編制函數(shù)StrCharJR(),其函數(shù)的功能是:以行為單位把字符串中全部字符的ASCH

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

入原字符串對應(yīng)的位置上,最終把己處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最終

調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT8.DAT中。原始數(shù)據(jù)文件存放的格式是:每

行的寬度均小于80個字符,含標(biāo)點(diǎn)符號和空格。

voidStrCharJR(void)/*標(biāo)準(zhǔn)答案*/

{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:函數(shù)READDAT()實(shí)現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串

數(shù)組XX中;請編制函數(shù)CHA。,其函數(shù)功能是:以行為單位把字符串中的第一個字符的ASCII

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

的ASCII值,得到其次個新字符,依此類推始終處理到最終其次個字符,最終一個字符的

ASCII值加原第一個字符的ASCII值,得到最終一個新的字符,得到的新字符分別存放在原

字符串對應(yīng)的位置上。最終把已處理的字符串逆轉(zhuǎn)后按行重新存入字符串?dāng)?shù)組XX中撮終

調(diào)用函數(shù)WRITEDAT。把結(jié)果XX輸出到文件OUT9.DAT中.原始數(shù)據(jù)文件存放的格式是:

每行的寬度均小于80個字符,含標(biāo)點(diǎn)符號和空格.

voidChA(void)/*標(biāo)準(zhǔn)答案*/

{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:函數(shù)ReadDatO實(shí)現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組

XX中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的全部字符進(jìn)行替代,仍

存入數(shù)組xx的對應(yīng)的位置上,最終調(diào)用函數(shù)WriteDat。把結(jié)果xx輸出到文件PS10.DAT中。

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

符的ASCH值),假如原字符的ASCII值是偶數(shù)或計(jì)算后f(p)值小于等于32,則該字符不變,

否則將f(p)所對應(yīng)的字符進(jìn)行替代。

voidencryptChar()/*標(biāo)準(zhǔn)答案*/

{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:編寫一個函數(shù)findstr。,該函數(shù)統(tǒng)計(jì)一個長度為2的子字符串在另一個字符串

中出現(xiàn)的次數(shù)。例如:假定輸入的字符串為"asdasasdfgasdaszx67asdmklo",了?字符串為"as",

函數(shù)返回值為6。

函數(shù)readwriteDal。的功能是實(shí)現(xiàn)從文件in.dat中讀取兩個字符穿4,并調(diào)用函數(shù)

findstr(),最終把結(jié)果輸出到文件out.dat中。

/*標(biāo)準(zhǔn)答案*/

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:編寫函數(shù)jsvalue,它的功能是:求Fibonacci數(shù)列中大于t的最小的一個數(shù),

結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:

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

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

最終調(diào)用函數(shù)writeDat。讀取10個數(shù)據(jù)t,分別得出結(jié)果且把結(jié)果輸出到文件oin.dai

中。

intjsValue(intt)/*標(biāo)準(zhǔn)答案力

{intfl=0,f2=l,fn;

fn=fl+f2;

while(fn<=t)

{fl=⑵

f2=fn;

fn=fl+f2;}

returnfn;

)

題目21:下列程序的功能是:利用發(fā)下所示的簡潔迭代方法求方程:cos(x)-x=0的一

個實(shí)根。xn+l=cos(xn)

floalcouniValuc。/*標(biāo)準(zhǔn)答案

{floatx0,xl=0.0;

while(l)

{xO=xl;

xl=cos(xO);

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

)

returnxl;

)

題目22:請編寫函數(shù)countvalue。,它的功能是:求n以內(nèi)(不包括n)同時能被3和

7整數(shù)的全部自然數(shù)之和的平方根s,并作為函數(shù)值返回,最終結(jié)果s輸出到文件out.dat中。

doublecountValue(intn)/*標(biāo)準(zhǔn)答案*/

{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個(個數(shù)<200)四位數(shù)字的正整數(shù),函數(shù)rea(idat()

讀取這N個正整數(shù)并存入數(shù)組xx中。請編制函數(shù)calvalueO,其功能要求:1、求出這N個

實(shí)數(shù)的平均值aver;2、分別求出這N個實(shí)數(shù)的整數(shù)部分之和sumint以及小數(shù)部分之和

sumdec,最終調(diào)用函數(shù)wiitedat。把所求的結(jié)果輸出到文件out.dat中。

voidCalValue(void)產(chǎn)標(biāo)準(zhǔn)答案*/

{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:在三位整數(shù)(100至999)中找尋符合條件的整數(shù)并依次從小到大存入數(shù)組中;

它既是完全平方數(shù),乂是兩位數(shù)字相同,例如144、676等。請編制函數(shù)實(shí)現(xiàn)此功能,滿意

該條件的整數(shù)的個數(shù)通過所編制的函數(shù)返回。最終調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件

oul.dat中。

jsValue(inta[I0][9j)產(chǎn)標(biāo)準(zhǔn)答案

{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之間的數(shù)m,它滿意m,m2和m3

均為回文數(shù)。所謂回文數(shù)是指其各位數(shù)字左右對稱的整數(shù),例如121,676,94249等。滿意

上述條件的數(shù)如l,m2=121,m3=1331皆為回文數(shù)。請編制函數(shù)intsvalue(longm)實(shí)現(xiàn)此

功能,假如是I可文數(shù),則函數(shù)返歸I1,反之則返回0。最終把結(jié)果輸出到文件。ut.dai中。

intjsValue(longn)/*標(biāo)準(zhǔn)答案*/

{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中存有若干個(個數(shù)〈200)四位數(shù)字的正整數(shù),函數(shù)readdat()

讀取這若干個正整數(shù)并存入數(shù)組xx中。請編制函數(shù)calvalue(),其功能要求:I、求出這文

件C.P有多少個正整數(shù)totnum;2、求這些數(shù)右移1位后,產(chǎn)生的新數(shù)是偶數(shù)的數(shù)的個數(shù)totent,

以及滿意此條件的這些數(shù)(右移前的值)的算術(shù)平均值mpjz,最終調(diào)用函數(shù)writedat。把所

求的結(jié)果輸出到文件oul.dat中。

voidCalValue(void)產(chǎn)標(biāo)準(zhǔn)答案*/

{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:已知數(shù)據(jù)文件IN.DAT中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat。把這

些數(shù)存入數(shù)組a中,請編制一函數(shù)jsvahieO,其功能是:求出千位數(shù)上的數(shù)減百位數(shù)減H立

數(shù)上的數(shù)減個位數(shù)上的數(shù)大于零的個數(shù)ent,再求出全部滿意此條件的四位數(shù)平均值pjzl,

以及不滿意此條件的四位數(shù)平均值pjz2,最終調(diào)用寫函數(shù)wriieDal。把結(jié)果輸出到OUTDAT

文件。例如:9123.9-1-2-3>0,則該數(shù)滿意條件計(jì)算平均值pjzl,且個數(shù)cnt=cnt+l。

9812,9-8-1-2<0,則該數(shù)不滿意條件計(jì)算平均值pjz2.

voidjsValuc。/*標(biāo)準(zhǔn)答案*/

{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:己知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這

些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把千位數(shù)字和十位數(shù)字重新組成一

個新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個位數(shù)字是原四

位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字組成另一個新的十位數(shù)cd(新十位數(shù)的十位

數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字),假如新組成的兩

個十位數(shù)ab-cd>=0且ab-cd<=10且兩個數(shù)均是奇數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則

將滿意此條件的四位數(shù)按從大到小的依次存入數(shù)組b中,并要計(jì)算滿意上述條件的四位數(shù)的

個數(shù)cnto最終main。函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)

輸出到OUT.DAT文件中。

voidjsVal()/*標(biāo)準(zhǔn)答案*/

{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:已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat。把這

些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:把千位數(shù)字和十位數(shù)字重新組成一

個新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個位數(shù)字是原四

位數(shù)的十位數(shù)字),以及把個位數(shù)字和百位數(shù)字組成另一個新的十位數(shù)cd(新H立數(shù)的十位

數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字),假如新組成的兩

個十位數(shù)ab-cd>=IO且ab-cd<=20且兩個數(shù)均是偶數(shù),同E寸兩個新數(shù)的十位數(shù)字均不為零,則

將滿意此條件的四位數(shù)按從大到小的依次存入數(shù)組b中,并要計(jì)算滿意上述條件的四位?數(shù)的

個數(shù)cnt0最終main。函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)

輸出到OUT.DAT文件中。

voidjsVal。/*標(biāo)準(zhǔn)答案*/

{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:一知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并己調(diào)用讀函數(shù)readDat()把這

些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal。,其功能是:依次從數(shù)組a中取出一個四位數(shù),

假如該數(shù)連續(xù)小丁該四位數(shù)以后的5個數(shù)且該數(shù)是偶數(shù),則統(tǒng)計(jì)出滿意此條件的個數(shù)ent,

并把這些四位數(shù)按從小到大的依次存入數(shù)組b中。并要計(jì)算滿意上述條件的四位數(shù)的個數(shù)

ento最終main。函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果ent以及數(shù)組b中符合條件的四位數(shù)輸出

到OUT.DAT文件中。

voidjsVal。/*標(biāo)準(zhǔn)答案*/

{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個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品

代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長

整型)四部分組成。其中:金額=單價*數(shù)量計(jì)算得出。函數(shù)ReadDatO是讀取這100個銷售記

錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)Sor【Dat(),其功能要求:按產(chǎn)品代碼從大到小進(jìn)行排

列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,

最終調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT6.DAT中。

voidSortDat()/*標(biāo)準(zhǔn)答案*/

{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個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品

代碼dm(字符型4位),產(chǎn)品名稱me(字符型10位),單價dj(整型),數(shù)量si(整型),金額je(長

整型)四部分組成。其中:金額=單價*數(shù)量計(jì)算得出。函數(shù)ReadDal。是讀取這100個銷售記

錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDatO,其功能要求:按產(chǎn)品名稱從大到小進(jìn)行排

列,若產(chǎn)品名稱相同,則按金額從小到大進(jìn)行排列.最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,

最終調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件OUT7.DAT中。

voidSortDatO/*標(biāo)準(zhǔn)答案*/

{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:請編制函數(shù)RcadDatO實(shí)現(xiàn)從文件IN.DAT中讀取1000個十進(jìn)制整數(shù)到數(shù)組

xx中;請編制函數(shù)Compute。分別計(jì)算出xx中奇數(shù)的個數(shù)odd,奇數(shù)的平均值avel,:禺?dāng)?shù)

的平均值ave2以及全部奇數(shù)的方差totfc的值,最終調(diào)用函數(shù)WriteDat。把結(jié)果輸出到

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

intReadDal(void)/*標(biāo)準(zhǔn)答案*/

{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以內(nèi)全部個位數(shù)字與十位數(shù)字之

和被10除所得余數(shù)恰是百位數(shù)字的素?cái)?shù)(如293)。計(jì)算并輸出上述這些素?cái)?shù)的個數(shù)CNT

以及這些素?cái)?shù)值的和SUM。請編寫函數(shù)COUNTvalue()實(shí)現(xiàn)程序要求,最終調(diào)用函數(shù)

WRITEDAT()把結(jié)果CNT和SUM輸出到文件OUT.DAT中.

voidcouniValue。/*標(biāo)準(zhǔn)答案*/

{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:某級數(shù)的前兩項(xiàng)A1=1,A2=1,以后各項(xiàng)具有如下關(guān)系:An=An-2+2An-l.

下列程序的功能是:要求依次對于整數(shù)M=1001000和10000求出對應(yīng)的n值,使其

滿意:Sn=M,這里Sn=Al+A2+...+An,

并依次把n值存入數(shù)組單元b[O],b[l]和b[2]中,請編制jsvalue。函數(shù)來實(shí)現(xiàn)此功能,最

終調(diào)用函數(shù)writeDai。把數(shù)組b[]中的值輸出到out.dat文件中。

voidjsvaluc。/*標(biāo)準(zhǔn)答案*/

{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:函數(shù)ReadDai。實(shí)現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組

xx中;請編制函數(shù)encryptChar。,按給定的替代關(guān)系對數(shù)組xx中的全部字符進(jìn)行替代,仍

存入數(shù)組xx的對應(yīng)的位置上,最終調(diào)用函數(shù)WriteDatO把結(jié)果xx輸出到文件PS6.DAT中。

替代關(guān)系:陸曰*11]]城2568是數(shù)組中某一個字符的人$01值,即)是計(jì)算后新字

符的ASCH值),假如計(jì)算后f(p)值小于等于32或f(p)對應(yīng)的字符是數(shù)字。至9,則該字符

不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。

voidencryptChar。/*標(biāo)準(zhǔn)答案*/

{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:函數(shù)ReadDatO實(shí)現(xiàn)從文件ENGIN中讀取一篇英文文章,存入到字符串?dāng)?shù)組

xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的全部字符進(jìn)行替代,仍

存入數(shù)組XX的對應(yīng)的位置上,最終調(diào)用函數(shù)WriteDal。把結(jié)果xx輸出到文件PS6.DAT中。

替代關(guān)系:f(p尸p*11mod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計(jì)算后新字

符的ASCH值),假如原字符是大寫字母或計(jì)算后f(p)值小于等于32,則該字符不變,否則

將f(p)所對應(yīng)的字符進(jìn)行替代。

void

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論