




版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 營業(yè)網(wǎng)點辦公區(qū)域保潔服務(wù)合同
- 2024年退購房定金的協(xié)議
- 綜合壓彎機構(gòu)施工方案
- 建筑史與古建筑保護知識專項測試卷
- 營銷策略在品牌推廣中的應(yīng)用試卷
- 建項目管理承包合同
- 季度銷售獎杯采購合同
- 固墻寶墻面處理劑施工方案
- 湖北生態(tài)透水路面施工方案
- 輸油管道 施工方案
- 母嬰保健課程標(biāo)準(zhǔn)
- 《農(nóng)民專業(yè)合作社登記管理條例》條文解讀(一
- 一年級的小豌豆我喜歡的一本書(課堂PPT)
- 電廠機組深度調(diào)峰摸底試驗方案
- 地球上的大氣知識結(jié)構(gòu)圖
- 線束加工工時對照表
- 一年級古詩新唱社團計劃
- 新加坡SM1向性測試模擬試卷
- 美國小企業(yè)投資公司計劃(SBIC)
- 商務(wù)演示模版
- 美國簽證在職證明中英文模板.doc
評論
0/150
提交評論