




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
全國計算機等級考試三級網(wǎng)絡(luò)技術(shù)南開上機100題幾點說明:1.題目標(biāo)題號前用"☆"顯示的是2005年4月份本人根據(jù)各大論壇考生聵的題號集中而來,題號前加"★"為2005年9月上機考試題,其中難免有題型相同而題號增加的現(xiàn)象,此類標(biāo)明,僅供參考。2.每種題目,只用一種解題方法,加粗部分為解題答案,此種方法本人覺得容易理解,不易出錯,適合初學(xué)者。3、特別說明:所有解法,本人均上機驗證通過。4、個別南開題如57、100題,題目與原書有所不同,是按實際考試的題目所來,并對今年在實際上機中出現(xiàn)的考題,用紅色部分表示實際上機題中的注明事項。☆題目1請編寫一個函數(shù)jsValue(intm,intk,intxx[]),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個素數(shù)存入數(shù)組xx傳回。
最后調(diào)用函數(shù)writeDat()讀取10組數(shù)據(jù),分別得出結(jié)果且把結(jié)果輸出到文件out.dat中。
部分源程序存在文件prog1.c中。
例如:若輸入175則應(yīng)輸出:19,23,29,31,37。
請勿改動主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。#include<conio.h>#include<stdio.h>voidreadwriteDat();
intisP(intm){
inti;
for(i=2;i<m;i++)
if(m%i==0)return0;
return1;}
voidnum(intm,intk,intxx[]){ints=0;
for(m=m+1;k>0;m++)
if(isP(m)){xx[s++]=m;k--;}}
main(){
intm,n,xx[1000];
clrscr();
printf("\nPleaseentertwointegers:");
scanf("%d%d",&m,&n);
num(m,n,xx);
for(m=0;m<n;m++)
printf("%d",xx[m]);
printf("\n");
readwriteDat();}
voidreadwriteDat(){
intm,n,xx[1000],i;
FILE*rf,*wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(rf,"%d%d",&m,&n);
num(m,n,xx);
for(m=0;m<n;m++)fprintf(wf,"%d",xx[m]);
fprintf(wf,"\n");
}
fclose(rf);
fclose(wf);}
☆
題目2已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:如果四位數(shù)各位上的數(shù)字均是0或2或4或6或8,則統(tǒng)計出滿足此條件的個數(shù)cnt,并把這些四位數(shù)按從大到小的順序存入數(shù)組b中。最后main()函數(shù)調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定義數(shù)組:a[200],b[200],已定義變量:cnt
請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。#include<stdio.h>#defineMAX
200inta[MAX],b[MAX],cnt=0;
voidjsVal(){inti,j,qw,bw,sw,gw;
for(i=0;i<MAX;i++)
{qw=a[i]/1000;bw=a[i]/100%10;
sw=a[i]%100/10;gw=a[i]%10;
if(qw&&qw%2==0&&bw%2==0&&sw%2==0&&gw%2==0)b[cnt++]=a[i];
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]<b[j]){qw=b[i];b[i]=b[j];b[j]=qw;}}
voidreadDat(){
inti;
FILE*fp;
fp=fopen("in.dat","r");
for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);
fclose(fp);}
voidmain(){
inti;
readDat();
jsVal();
printf("滿足條件的數(shù)=%d\n",cnt);
for(i=0;i<cnt;i++)printf("%d",b[i]);
printf("\n");
writeDat();}
writeDat(){
FILE*fp;
inti;
fp=fopen("out.dat","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);
fclose(fp);}★題目3函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中;請編制函數(shù)StrOR(),其函數(shù)的功能是:以行為單位依次把字符串中所有小寫字母o左邊的字符串內(nèi)容移到該串的右邊存放,然后把小寫字母o刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放,之后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT5.DAT中。
原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。
注意:部分源程序存放在文件prog1.c中。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>
charxx[50][80];intmaxline=0;
/*文章的總行數(shù)*/
intReadDat(void);voidWriteDat(void);
voidStrOR(void){inti,righto,j,s,k;
chartem[80];
for(i=0;i<maxline;i++)
for(j=strlen(xx[i])-1;j>=0;j--)
{
k=0;
memset(tem,0,80);
if(xx[i][j]=='o')
{righto=j;
for(s=righto+1;s<strlen(xx[i]);s++)tem[k++]=xx[i][s];
for(s=0;s<righto;s++)
if(xx[i][s]!='o')tem[k++]=xx[i][s];
strcpy(xx[i],tem);
}
elsecontinue;
}}
voidmain(){
clrscr();
if(ReadDat()){
printf("數(shù)據(jù)文件IN.DAT不能打開!\n\007");
return;
}
StrOR();
WriteDat();}
intReadDat(void){
FILE*fp;
inti=0;
char*p;
if((fp=fopen("IN.DAT","r"))==NULL)return1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;
}
maxline=i;
fclose(fp);
return0;}voidWriteDat(void){
FILE*fp;
inti;
clrscr();
fp=fopen("OUT5.DAT","w");
for(i=0;i<maxline;i++){
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);}★題目4函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)StrOL(),其函數(shù)的功能是:以行為單位對行中以空格或標(biāo)點符號為分隔的所有單詞進行倒排。最后把已處理的字符串(應(yīng)不含標(biāo)點符號)仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT6.DAT中。
例如:原文:YouHeMe
Iamastudent.結(jié)果:MeHeYou
studentaamI
原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。
部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>#include<ctype.h>
charxx[50][80];intmaxline=0;/*文章的總行數(shù)*/
intReadDat(void);voidWriteDat(void);
voidStrOL(void){inti,j,k,s,m,strl;
charstr[80];
for(i=0;i<maxline;i++)
{strl=strlen(xx[i]);memset(str,0,80);
s=k=0;for(j=strl-1;j>=0;j--)
{if(isalpha(xx[i][j]))k++;
else{for(m=1;m<=k;m++)
str[s++]=xx[i][j+m];
k=0;
}
if(!isalpha(xx[i][j]))str[s++]='';
}for(m=1;m<=k;m++)
str[s++]=xx[i][j+m];str[s]='\0';
strcpy(xx[i],str);
}}
voidmain()
{
clrscr();
if(ReadDat()){
printf("數(shù)據(jù)文件IN.DAT不能打開!\n\007");
return;
}
StrOL();
WriteDat();}
intReadDat(void){
FILE*fp;
inti=0;
char*p;
if((fp=fopen("IN.DAT","r"))==NULL)return1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;}maxline=i;fclose(fp);return0;}
voidWriteDat(void){
FILE*fp;
inti;
clrscr();
fp=fopen("OUT6.DAT","w");
for(i=0;i<maxline;i++){
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);}
*******************************************************************************☆題目5(整數(shù)排序題)在文件in.dat中有200個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個數(shù)的后三位的大小進行升序排列,然后取出滿足此條件的前10個數(shù)依次存入數(shù)組bb中,如果后三位的數(shù)值相等,則按原先的數(shù)值進行降序排列。最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat中。
例:處理前6012
5099
9012
7025
8088
處理后9012
6012
7025
8088
5099
部分源程序存在文件prog1.c中。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>
intaa[200],bb[10];
voidjsSort(){
inti,j,data;
for(i=0;i<199;i++)
for(j=i+1;j<200;j++)
if(aa[i]%1000>aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]<aa[j])
{data=aa[i];aa[i]=aa[j];aa[j]=data;}
for(i=0;i<10;i++)
bb[i]=aa[i];}
voidmain(){
readDat();
jsSort();
writeDat();}
readDat()
{
FILE*in;
inti;
in=fopen("in.dat","r");
for(i=0;i<200;i++)fscanf(in,"%d,",&aa[i]);
fclose(in);
}
writeDat(){
FILE*out;
inti;
clrscr();
out=fopen("out.dat","w");
for(i=0;i<10;i++){
printf("%d",bb[i]);
fprintf(out,"%d\n",bb[i]);
}
fclose(out);}☆題目6正整數(shù)排序在文件in.dat中有200個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)ReadDat()讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),其函數(shù)的功能是:要求按每個數(shù)的后三位的大小進行降序排列,然后取出滿足此條件的前10個數(shù)依次存入數(shù)組b中,如果后三位的數(shù)值相等,則按原先的數(shù)值進行升序排列。最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat中。例:處理前90125099601270258088
處理后50998088702560129012
注意:部分源程序已給出。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>
intaa[200],bb[10];
voidjsSort(){
inti,j,data;
for(i=0;i<199;i++)
for(j=i+1;j<200;j++)
if(aa[i]%1000<aa[j]%1000||aa[i]%1000==aa[j]%1000&&aa[i]>aa[j])
{data=aa[i];aa[i]=aa[j];aa[j]=data;}
for(i=0;i<10;i++)
bb[i]=aa[i];}
voidmain(){readDat();jsSort();writeDat();system("pause");}
readDat(){FILE*in;inti;
in=fopen("in.dat","r");for(i=0;i<200;i++)fscanf(in,"%d,",&aa[i]);
fclose(in);}
writeDat(){FILE*out;inti;clrscr();out=fopen("out.dat","w");for(i=0;i<10;i++){printf("i=%d,%d\n",i+1,bb[i]);fprintf(out,"%d\n",bb[i]);}fclose(out);}
☆題目7(結(jié)構(gòu)體操作題)已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價dj(整型),數(shù)量sl(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat()是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從大到小進行排列,若產(chǎn)品代碼相同,則按金額從大到小進行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT6.DAT中。
部分源程序存在文件prog1.c中。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include<stdio.h>#include<mem.h>#include<string.h>#include<conio.h>#include<stdlib.h>
#defineMAX100typedefstruct{
chardm[5];
/*產(chǎn)品代碼*/
charmc[11];/*產(chǎn)品名稱*/
intdj;
/*單價*/
intsl;
/*數(shù)量*/
longje;
/*金額*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();
voidSortDat(){inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
if(strcmp(sell[i].dm,sell[j].dm)<0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[i].je<sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}
voidmain()
{
memset(sell,0,sizeof(sell));
ReadDat();
SortDat();
WriteDat();
}
voidReadDat(){
FILE*fp;
charstr[80],ch[11];
inti;
fp=fopen("IN.DAT","r");
for(i=0;i<100;i++){
fgets(str,80,fp);
memcpy(sell[i].dm,str,4);
memcpy(sell[i].mc,str+4,10);
memcpy(ch,str+14,4);ch[4]=0;
sell[i].dj=atoi(ch);
memcpy(ch,str+18,5);ch[5]=0;
sell[i].sl=atoi(ch);
sell[i].je=(long)sell[i].dj*sell[i].sl;
}
fclose(fp);}
voidWriteDat(void){
FILE*fp;
inti;
fp=fopen("OUT6.DAT","w");
for(i=0;i<100;i++){
printf("%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
fprintf(fp,"%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
}
fclose(fp);}
★題目8(字符替換題)函數(shù)ReadDat()實現(xiàn)從文件ENG.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS1.DAT中。替代關(guān)系:f(p)=p*11mod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果計算后f(p)值小于等于32或大于130,則該字符不變,否則將f(p)所對應(yīng)的字符進行替代。(注意中間變量用無符號整型),部分源程序存在文件prog1.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>#include<ctype.h>
unsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/
intReadDat(void);voidWriteDat(void);
voidencryptChar(){inti,j;
for(i=0;i<maxline;i++)
for(j=0;j<strlen(xx[i]);j++)
if(xx[i][j]*11%256<=32||xx[i][j]*11%256>130)continue;
elsexx[i][j]=xx[i][j]*11%256;}
voidmain()
{
clrscr();
if(ReadDat()){
printf("數(shù)據(jù)文件ENG.IN不能打開!\n\007");
return;
}
encryptChar();
WriteDat();}
intReadDat(void){
FILE*fp;
inti=0;
unsignedchar*p;
if((fp=fopen("eng.in","r"))==NULL)return1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;
}maxline=i;fclose(fp);return0;}
voidWriteDat(void){
FILE*fp;
inti;
fp=fopen("ps1.dat","w");
for(i=0;i<maxline;i++){
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);}
★☆題目9(字符串排序題)函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)SortCharD(),其函數(shù)的功能是:以行為單位對字符按從大到小的順序進行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT2.DAT中。
例:原文:dAe,BfC.
CCbbAA
結(jié)果:fedCBA.
bbCCAA
原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。
部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>
charxx[50][80];intmaxline=0;/*文章的總行數(shù)*/
intReadDat(void);voidWriteDat(void);
voidSortCharD(void){inti,j,k,strl;
charch;
for(i=0;i<maxline;i++)
{strl=strlen(xx[i]);
for(j=0;j<strl-1;j++)
for(k=j+1;k<strl;k++)
if(xx[i][j]<xx[i][k])
{ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}
}}
voidmain()
{
clrscr();
if(ReadDat()){
printf("數(shù)據(jù)文件IN.DAT不能打開!\n\007");
return;
}
SortCharD();
WriteDat();}
intReadDat(void){
FILE*fp;
inti=0;
char*p;
if((fp=fopen("IN.DAT","r"))==NULL)return1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;}maxline=i;fclose(fp);return0;}
voidWriteDat(void){
FILE*fp;
inti;
fp=fopen("OUT2.DAT","w");
for(i=0;i<maxline;i++){
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);}
★☆題目10(替換字符題)函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)ConvertCharA(),其函數(shù)的功能是:以行為單位把字符串中的所有小寫字母改寫成該字母的下一個字母,如果是字母z,則改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變。把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT1.DAT中。
例:原文:Adb.Bcdza
abck.LLhj
結(jié)果:Aec.Bdeab
bcdl.LLik
原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。
部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>
charxx[50][80];intmaxline=0;/*文章的總行數(shù)*/
intReadDat(void);voidWriteDat(void);
voidConvertCharA(void){inti,j;
for(i=0;i<maxline;i++)
{for(j=0;j<strlen(xx[i]);j++)
if(xx[i][j]=='z')xx[i][j]='a';
elseif(xx[i][j]>='a'&&xx[i][j]<='y')xx[i][j]+=1;
}}
voidmain()
{
clrscr();
if(ReadDat()){
printf("數(shù)據(jù)文件IN.DAT不能打開!\n\007");
return;
}
ConvertCharA();
WriteDat();}
intReadDat(void){
FILE*fp;
inti=0;
char*p;
if((fp=fopen("IN.DAT","r"))==NULL)return1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;
}maxline=i;fclose(fp);return0;}
voidWriteDat(void){
FILE*fp;
inti;
clrscr();
fp=fopen("OUT1.DAT","w");
for(i=0;i<maxline;i++){
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);}☆題目11(字符串字母移位題)程序prog1.c的功能是:把s字符串中的所有字母改寫成該字母的下一個字母,字母z改寫成字母a。要求大寫字母仍為大寫字母,小寫字母仍為小寫字母,其它字符不做改變。
請考生編寫函數(shù)chg(char
*s)實現(xiàn)程序要求,最后調(diào)用函數(shù)readwriteDAT()把結(jié)果輸出到文件bc1.out中。
例如:s字符串中原有的內(nèi)容為:Mn.123Zxy,則調(diào)用該函數(shù)后,結(jié)果為:No.123Ayz。
注意:部分源程序存在文件prog1.c文件中。
請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)readwriteDAT()的內(nèi)容。#include<conio.h>#include<string.h>#include<stdio.h>#include<ctype.h>#define
N81voidreadwriteDAT();
voidchg(char*s){intI;for(I=0;I<strlen(s);I++)
if(s[i]=='z'||s[i]=='Z')
s[i]-=25;
elseif(s[i]>='a'&&s[i]<='y'||s[i]>='A'&&s[i]<='Y')s[i]+=1;
}
main(){
chara[N];
clrscr();
printf("Enterastring:");gets(a);
printf("Theoriginalstringis:");puts(a);
chg(a);
printf("Thestringaftermodified:");
puts(a);
readwriteDAT();}
voidreadwriteDAT(){
inti;
chara[N];
FILE*rf,*wf;
rf=fopen("bc1.in","r");
wf=fopen("bc1.out","w");
for(i=0;i<50;i++){
fscanf(rf,"%s",a);
chg(a);
fprintf(wf,"%s\n",a);
}
fclose(rf);
fclose(wf);}
★☆題目12(結(jié)構(gòu)體運算題題)已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價dj(整型),數(shù)量sl(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat()是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱從小到大進行排列,若產(chǎn)品名稱相等,則按金額從小到大進行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT5.DAT中。
部分源程序存在文件prog1.c中。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include<stdio.h>#include<mem.h>#include<string.h>#include<conio.h>#include<stdlib.h>#defineMAX100typedefstruct{
chardm[5];
/*產(chǎn)品代碼*/
charmc[11];/*產(chǎn)品名稱*/
intdj;
/*單價*/
intsl;
/*數(shù)量*/
longje;
/*金額*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();
voidSortDat(){inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
if(strcmp(sell[i].mc,sell[j].mc)>0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je>sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}
voidmain()
{
memset(sell,0,sizeof(sell));
ReadDat();
SortDat();
WriteDat();
}
voidReadDat(){
FILE*fp;
charstr[80],ch[11];
inti;
fp=fopen("IN.DAT","r");
for(i=0;i<100;i++){
fgets(str,80,fp);
memcpy(sell[i].dm,str,4);
memcpy(sell[i].mc,str+4,10);
memcpy(ch,str+14,4);ch[4]=0;
sell[i].dj=atoi(ch);
memcpy(ch,str+18,5);ch[5]=0;
sell[i].sl=atoi(ch);
sell[i].je=(long)sell[i].dj*sell[i].sl;
}
fclose(fp);}voidWriteDat(){
FILE*fp;
inti;
fp=fopen("OUT5.DAT","w");
for(i=0;i<100;i++){
printf("%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
fprintf(fp,"%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
}
fclose(fp);}題目13(結(jié)構(gòu)體運算題)已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位),產(chǎn)品名稱mc(字符型10位),單價dj(整型),數(shù)量sl(整型),金額je(長整型)五部分組成。其中:金額=單價*數(shù)量計算得出。函數(shù)ReadDat()是讀取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從小到大進行排列,若產(chǎn)品代碼相等,則按金額從大到小進行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT9.DAT中。
部分源程序存在文件prog1.c中。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include<stdio.h>#include<mem.h>#include<string.h>#include<conio.h>#include<stdlib.h>
#defineMAX100typedefstruct{
chardm[5];
/*產(chǎn)品代碼*/
charmc[11];/*產(chǎn)品名稱*/
intdj;
/*單價*/
intsl;
/*數(shù)量*/
longje;
/*金額*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();
voidSortDat(){inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
if(strcmp(sell[i].dm,sell[j].dm)>0||strcmp(sell[i].dm,sell[j].dm)==0&&sell[i].je<sell[j].je)
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}
voidmain()
{
memset(sell,0,sizeof(sell));
ReadDat();
SortDat();
WriteDat();
}
voidReadDat(){
FILE*fp;
charstr[80],ch[11];
inti;
fp=fopen("IN.DAT","r");
for(i=0;i<100;i++){
fgets(str,80,fp);
memcpy(sell[i].dm,str,4);
memcpy(sell[i].mc,str+4,10);
memcpy(ch,str+14,4);ch[4]=0;
sell[i].dj=atoi(ch);
memcpy(ch,str+18,5);ch[5]=0;
sell[i].sl=atoi(ch);
sell[i].je=(long)sell[i].dj*sell[i].sl;
}
fclose(fp);}
voidWriteDat(){
FILE*fp;
inti;
fp=fopen("OUT9.DAT","w");
for(i=0;i<100;i++){
printf("%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
fprintf(fp,"%s%s%4d%5d%5d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);
}
fclose(fp);}
★☆題目14(整數(shù)統(tǒng)計排序題)已知數(shù)據(jù)文件IN.DAT中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請考生編制一函數(shù)jsVal(),其功能是:依次從數(shù)組a中取出一個四位數(shù),如果該四位數(shù)連續(xù)大于該四位數(shù)以后的五個數(shù)且該數(shù)是奇數(shù)(該四位數(shù)以后不滿五個數(shù),則不統(tǒng)計),則統(tǒng)計出滿足此條件的個數(shù)cnt并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定義數(shù)組:a[200],b[200],已定義變量:cnt
請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。#include<stdio.h>#defineMAX
200inta[MAX],b[MAX],cnt=0;
voidjsVal(){inti,j,flag;
for(i=0;i<MAX-5;i++)
{for(j=i+1;j<=i+5;j++)
if(a[i]>a[j]&&a[i]%2)flag=1;
else{flag=0;break;}
if(flag==1)b[cnt++]=a[i];
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]>b[j]){flag=b[i];b[i]=b[j];b[j]=flag;}}
voidreadDat(){
inti;
FILE*fp;
fp=fopen("in.dat","r");
for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);
fclose(fp);}
voidmain(){
inti;
readDat();
jsVal();
printf("滿足條件的數(shù)=%d\n",cnt);
for(i=0;i<cnt;i++)printf("%d",b[i]);
printf("\n");
writeDat();}
writeDat(){
FILE*fp;
inti;
fp=fopen("out.dat","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);
fclose(fp);}★題目15(整數(shù)各位數(shù)字運算排序題)已知數(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)計出滿足此條件的個數(shù)cnt并把這些四位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.DAT文件中。
注意:部分源程序存在文件prog1.c中。
程序中已定義數(shù)組:a[200],b[200],已定義變量:cnt
請勿改動數(shù)據(jù)文件IN.DAT中的任何數(shù)據(jù)、主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。#include<stdio.h>#defineMAX
200inta[MAX],b[MAX],cnt=0;
voidjsVal(){inti,j;
intqw,bw,sw,gw;
for(i=0;i<MAX;i++)
{qw=a[i]/1000;
bw=a[i]%1000/100;
sw=a[i]%100/10;
gw=a[i]%10;
if((qw<=bw)&&(bw<=sw)&&(sw<=gw)&&(a[i]%2==0))
b[cnt++]=a[i];
}
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b[i]>b[j]){qw=b[i];b[i]=b[j];b[j]=qw;}}voidreadDat(){
inti;
FILE*fp;
fp=fopen("in.dat","r");
for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);
fclose(fp);}voidmain(){
inti;
readDat();
jsVal();
printf("滿足條件的數(shù)=%d\n",cnt);
for(i=0;i<cnt;i++)printf("%d",b[i]);
printf("\n");
writeDat();}
writeDat(){
FILE*fp;
inti;
fp=fopen("out.dat","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);
fclose(fp);}★☆題目16(字符替換題)函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,請編制函數(shù)StrCharJR(),其函數(shù)的功能是:以行為單位把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串對應(yīng)的位置上。最后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)writeDat()把結(jié)果xx輸出到文件OUT8.DAT中。
原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。
部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>charxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidStrCharJR(){inti,j;
for(i=0;i<maxline;i++)
for(j=0;j<strlen(xx[i]);j++)
xx[i][j]+=(xx[i][j]>>4);}voidmain()
{
clrscr();
if(ReadDat()){
printf("數(shù)據(jù)文件IN.DAT不能打開!\n\007");
return;
}
StrCharJR();
WriteDat();}intReadDat(void){
FILE*fp;
inti=0;
char*p;
if((fp=fopen("IN.DAT","r"))==NULL)return1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;}maxline=i;fclose(fp);return0;}voidWriteDat(void){
FILE*fp;
inti;
clrscr();
fp=fopen("OUT8.DAT","w");
for(i=0;i<maxline;i++){
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);}☆題目17(親朋字符替換題)函數(shù)READDAT()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組XX中;請編制函數(shù)CHA(),其函數(shù)功能是:以行為單位把字符串中的第一個字符的ASCII值加第二個字符的ASCII值,得到第一個親朋字符,第二個字符的ASCII值加第三個字符的ASCII值,得到第二個新字符,依此類推一直處理到最后第二個字符,最后一個字符的ASCII值加原第一個字符的ASCII值,得到最后一個新的字符,得到的新字符分別存放在原字符串對應(yīng)的位置上。最后把已處理的字符串逆轉(zhuǎn)后按行重新存入字符串?dāng)?shù)組XX中,最后調(diào)用函數(shù)WRITEDAT()把結(jié)果XX輸出到文件OUT9.DAT中.原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格.
注意:部分源程序已給出。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>charxx[50][80];intmaxline=0;
/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidChA(void){inti,j;
charch;
for(i=0;i<maxline;i++)
{ch=xx[i][0];
for(j=0;j<strlen(xx[i])-1;j++)
xx[i][j]+=xx[i][j+1];
xx[i][strlen(xx[i])-1]+=ch;
strrev(xx[i]);
}}voidmain(){
clrscr();
if(ReadDat()){
printf("數(shù)據(jù)文件IN.DAT不能打開!\n\007");
return;
}
ChA();
WriteDat();}intReadDat(void){
FILE*fp;
inti=0;
char*p;
if((fp=fopen("IN.DAT","r"))==NULL)return1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;
}
maxline=i;
fclose(fp);
return0;}voidWriteDat(void){
FILE*fp;
inti;
clrscr();
fp=fopen("OUT9.DAT","w");
for(i=0;i<maxline;i++){
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);}☆題目18函數(shù)ReadDat()實現(xiàn)從文件ENG.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進行替代,仍存入數(shù)組xx的對應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件PS10.DAT中。
替代關(guān)系:f(p)=p*11mod256(p是數(shù)組中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果原字符的ASCII值是偶數(shù)或計算后f(p)值小于等于32,則該字符不變,否則將f(p)所對應(yīng)的字符進行替代。
部分源程序存在文件prog1.c中。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include<stdio.h>#include<string.h>#include<conio.h>#include<ctype.h>
unsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/
intReadDat(void);voidWriteDat(void);
voidencryptChar(){inti,j;
for(i=0;i<maxline;i++)
for(j=0;j<strlen(xx[i]);j++)
if(xx[i][j]*11%256<=32||xx[i][j]%2==0)continue;
elsexx[i][j]=xx[i][j]*11%256;}
voidmain()
{
clrscr();
if(ReadDat()){
printf("數(shù)據(jù)文件ENG.IN不能打開!\n\007");
return;
}
encryptChar();
WriteDat();}
intReadDat(void){
FILE*fp;
inti=0;
unsignedchar*p;
if((fp=fopen("eng.in","r"))==NULL)return1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],'\n');
if(p)*p=0;
i++;}maxline=i;fclose(fp);return0;}
voidWriteDat(void){
FILE*fp;
inti;
fp=fopen("ps10.dat","w");
for(i=0;i<maxline;i++){
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);}
☆題目19(單詞個數(shù)統(tǒng)計題)編寫一個函數(shù)findStr(char*str,char*substr),該函數(shù)統(tǒng)計一個長度為2的子字符串在另一個字符串中出現(xiàn)的次數(shù)。例如,假定輸入的字符串為"asdasasdfgasdaszx67asdmklo",子字符串為"as",函數(shù)返回值是6。
函數(shù)ReadWrite()實現(xiàn)從文件in.dat中讀取兩個字符串,并調(diào)用函數(shù)findStr(),最后把結(jié)果輸出到文件out.dat中。
注意:部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()和其它函數(shù)中的任何內(nèi)容,僅在函數(shù)findStr()的花括號中填入你編寫的若干語句。#include<stdio.h>#include<string.h>#include<conio.h>
intfindStr(char*str,char*substr){inti,j,len1,len2,cnt=0,flag;
len1=strlen(str);
len2=strlen(substr);
for(i=0;i<len1;i++)
{for(j=0;j<len2;j++)
if(str[i+j]==substr[j])
flag=1;
else{flag=0;break;}
if(flag==1)
cnt++;
}
returncnt;}
main(){
charstr[81],substr[3];
intn;
clrscr();
printf("輸入原字符串:");
gets(str);
printf("輸入子字符串:");
gets(substr);
puts(str);
puts(substr);
n=findStr(str,substr);
printf("n=%d\n",n);
ReadWrite();}
ReadWrite(){
charstr[81],substr[3],ch;
intn,len,i=0;
FILE*rf,*wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
while(i<25){
fgets(str,80,rf);
fgets(substr,10,rf);
len=strlen(substr)-1;
ch=substr[len];
if(ch=='\n'||ch==0x1a)substr[len]=0;
n=findStr(str,substr);
fprintf(wf,"%d\n",n);
i++;
}
fclose(rf);
fclose(wf);}★題目20(Fibonacci數(shù)列題)編寫函數(shù)jsValue,它的功能是:求Fibonacci數(shù)列中大于t的最小的一個數(shù),結(jié)果由函數(shù)返回。其中Fibonacci數(shù)列F(n)的定義為:
F(0)=0,F(1)=1
F(n)=F(n-1)+F(n-2)
最后調(diào)用函數(shù)writeDat()讀取50個數(shù)據(jù)t,分別得出結(jié)果且把結(jié)果輸出到文件out.dat中。
例如:當(dāng)t=1000時,函數(shù)值為:1597。
部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()和寫函數(shù)writeDat()的內(nèi)容。#include<stdio.h>
intjsValue(intt){intf0=0,f1=1,fn;
fn=f0+f1;
while(fn<=t)
{f0=f1;
f1=fn;
fn=f0+f1;
}
returnfn;}
main(){
intn;
n=1000;
printf("n=%d,f=%d\n",n,jsValue(n));
writeDat();}
writeDat(){
FILE*in,*out;
inti,n,s;
in=fopen("in.dat","r");
out=fopen("out.dat","w");
for(i=0;i<50;i++){
fscanf(in,"%d",&n);
s=jsValue(n);
printf("%d\n",s);
fprintf(out,"%d\n",s);
}
fclose(in);
fclose(out);}☆題目21(迭代方法求方程題)下列程序prog1.c的功能是:利用以下所示的簡單迭代方法求方程:cos(x)-x=0的一個實根。
Xn+1=cos(Xn)
迭代步驟如下:(1)取X1初值為0.0;(2)X0=X1,把X1的值賦給X0;(3)X1=cos(X0),求出一個新的X1;(4)若X0-X1的絕對值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2);(5)所求X1就是方程cos(X)-X=0的一個實根,作為函數(shù)值返回。
請編寫函數(shù)countValue()實現(xiàn)程序的要求,最后調(diào)用函數(shù)writeDat()把結(jié)果輸出到文件OUT17.DAT中。
部分源程序已給出。
請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。#include<conio.h>#include<math.h>#include<stdio.h>
floatcountValue(){floatx0,x1;
x1=0.0;
do{x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>=0.000001);
returnx1;}
main(){
clrscr();
printf("實根=%f\n",countValue());
printf("%f\n",cos(countValue())-countValue());
writeDat();}
writeDat(){
FILE*wf;
wf=fopen("OUT17.DAT","w");
fprintf(wf,"%f\n",countValue());
fclose(wf);}
注:本題在無憂或捷成模擬盤中,需定義doublex0,x1;才能通過,據(jù)實際上機抽到該題的考生反映,實際上機需按上面解法的定義方能通過,特此說明,供參考。★題目22(平方根問題)請編寫函數(shù)countValue(),它的功能是:求n以內(nèi)(不包括n)同時能被3與7整除的所有自然數(shù)之和的平方根s,并作為函數(shù)值返回,最后結(jié)果s輸出到文件out.dat中。
例如若n為1000時,函數(shù)值應(yīng)為:s=153.909064。
部分源程序存在文件prog1.c中。
請勿改動主函數(shù)main()和輸入輸出數(shù)據(jù)函數(shù)progReadWrite()的內(nèi)容。#include<conio.h>#include<math.h>#include<stdio.h>
doublecountValue(intn){inti;
doubles=0.0;
for(i=1;i<n;i++)
if(i%21==0)s+=i;
returnsqrt(s);}
main(){
clrscr();
printf("自然數(shù)之和的平方根=%f\n",countValue(1000));
progReadWrite();}
progReadWrite(){
FILE*fp,*wf;
inti,n;
floats;
fp=fopen("in.dat","r");
if(fp==NULL){
printf("數(shù)據(jù)文件in.dat不存在!");
return;
}
wf=fopen("out.dat","w");
for(i=0;i<10;i++){
fscanf(fp,"%d\n",&n);
s=countValue(n);
fprintf(wf,"%f\n",s);
}fclose(fp);fclose(wf);}題目23(實數(shù)運算題)已知在文件in.dat中存有N個(個數(shù)<200)實數(shù),函數(shù)readdat()讀取這N個實數(shù)并存入數(shù)組xx中。請編制函數(shù)calvalue(),其功能要求:1.求出這N個實數(shù)的平均值aver;2.分別求出這N個實數(shù)的整數(shù)部分之和sumint以及小數(shù)部分之和sumdec,最后調(diào)用函數(shù)writedat()把所求的結(jié)果輸出到文件out.dat中。
注意:部分源程序已給出。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)readdat()和輸出數(shù)據(jù)函數(shù)writedat()的內(nèi)容。#include<stdio.h>#include<conio.h>#defineMAXNUM200
floatxx[MAXNUM];intN=0;/*文件IN.DAT中共有多少個實數(shù)*/doubleaver=0.0;/*平均值*/doublesumint=0.0;/*整數(shù)部分之和*/doublesumdec=0.0;/*小數(shù)部分之和*/intReadDat(void);voidWriteDat(void);voidCalValue(void){inti;
for(i=0;i<N;i++)
{sumint+=(long)xx[i];
sumdec+=xx[i]-(long)xx[i];
aver+=xx[i];
}
aver/=N;}voidmain(){inti;
clrscr();
for(i=0;i<MAXNUM;i++)xx[i]=0;
if(ReadDat()){
printf("數(shù)據(jù)文件IN.DAT不能打開!\007\n");
return;
}
Calvalue();
printf("文件IN.DAT中共有實數(shù)=%d個\n",N);
printf("平均值=%.2lf\n",aver);
printf("整數(shù)部分之和=%.2lf\n",sumint);
printf("小數(shù)部分之和=%.2lf\n",sumdec);
WriteDat();system("pause");}intReadDat(void){
FILE*fp;
inti=0;
if((fp=fopen("in.dat","r"))==NULL)return1;
while(!feof(fp)){
fscanf(fp,"%d,",&xx[i++]);
}
fclose(fp);
return0;}voidWriteDat(void){
FILE*fp;
fp=fopen("OUT.DAT","w");
fprintf(fp,"%.2lf\n%.2lf\n%.2lf\n",av
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 收藏生活常識試題及答案
- 2025年建筑工程知識競賽試題及答案
- 高中生物細胞工程競賽試題及答案
- 2024-2025學(xué)年山東省臨沂市高三(上)期中語文試卷
- 2025年煤礦井下安全作業(yè)試題及答案
- 化學(xué)知識競賽試題及答案高中
- (正式版)DB2327∕T 049-2022 《大興安嶺地區(qū)生態(tài)產(chǎn)品總值(GEP)核算指南與技術(shù)辦法》
- 2025年老年護理醫(yī)院筆試題庫及答案
- 2025年家政護理理論知識題庫及答案
- 求職詐騙課件
- 2025年酒水行業(yè)精釀啤酒市場前景研究報告
- 西游記大鬧通天河課件
- 自制凈水器原理課件
- 《互換性與測量技術(shù)》課件-Lesson 09 第五章 公差原則
- 儀器儀表安全培訓(xùn)課件
- 交誼舞教學(xué)課件下載
- 固定資產(chǎn)盤點與賬目核對模板
- 觸電急救培訓(xùn)課件模板
- 2025-2030肉牛養(yǎng)殖大數(shù)據(jù)平臺建設(shè)與數(shù)字化管理轉(zhuǎn)型路徑研究報告
- 新加坡cpa教學(xué)法課件
- GB/T 9943-2025高速工具鋼
評論
0/150
提交評論