




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大唐西市旅游經(jīng)濟(jì)效應(yīng)-全面剖析
- 圖形數(shù)據(jù)中的聚類算法改進(jìn)-全面剖析
- 土木工程建筑行業(yè)綠色可持續(xù)發(fā)展策略-全面剖析
- 2025年角質(zhì)溶解藥項(xiàng)目投資風(fēng)險評估報告
- 2025年色漿基體樹脂項(xiàng)目投資風(fēng)險評估報告
- 非營利組織合規(guī)管理計(jì)劃
- 2025平安校園師生安全責(zé)任落實(shí)計(jì)劃
- 遠(yuǎn)程心電監(jiān)護(hù)儀使用流程詳解
- 信息技術(shù)2.0青少年編程教育計(jì)劃
- 電力設(shè)施施工機(jī)械與人力安排計(jì)劃
- 2024年北京市西城區(qū)中考一模語文試題
- 《沁園春 長沙》 統(tǒng)編版高中語文必修上冊
- 醫(yī)院停水停電應(yīng)急預(yù)案培訓(xùn)
- 浙教版三年級下冊勞動全冊教案教學(xué)設(shè)計(jì)
- 南安市第三次全國文物普查不可移動文物-各鄉(xiāng)鎮(zhèn)、街道分布情況登記清單(表五)
- 馬工程《思想政治教育學(xué)原理 第二版》課后習(xí)題詳解
- 術(shù)后疼痛健康教育
- 信息技術(shù)基礎(chǔ)(拓展模塊) 課件 學(xué)習(xí)單元5大數(shù)據(jù) 5.4
- 2024年安徽省通信產(chǎn)業(yè)服務(wù)有限公司招聘筆試參考題庫含答案解析
- 2024年建筑設(shè)計(jì)公司轉(zhuǎn)型方案
- 濕法靜電除塵器WESP技術(shù)方案
評論
0/150
提交評論