計(jì)算機(jī)三級(jí)機(jī)試C語言一百題_第1頁
計(jì)算機(jī)三級(jí)機(jī)試C語言一百題_第2頁
計(jì)算機(jī)三級(jí)機(jī)試C語言一百題_第3頁
計(jì)算機(jī)三級(jí)機(jī)試C語言一百題_第4頁
計(jì)算機(jī)三級(jí)機(jī)試C語言一百題_第5頁
已閱讀5頁,還剩143頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1

已知數(shù)據(jù)文件IN1.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)

存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:如果4位數(shù)各位上的數(shù)字均是奇數(shù),

則統(tǒng)計(jì)出滿足此條件的個(gè)數(shù)ent,并把這些4位數(shù)按從大到小的順序存入數(shù)組b中。最

后調(diào)用函數(shù)writeDat()把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出到OUT1.DAT文

件。

注意:部分源程序已給出。

程序中已定義數(shù)組:a[200],b[200],已定義變量:ent。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函赤eadDat()和寫函數(shù)whteDat()的內(nèi)容。

試題程序:

#include<stdio.h>

#defineMAX200

inta[MAXLbMAX],cnt=O;

voidwriteDat();

voidjsVal()

inti,j;

inta1,a2,a3,a4;

inttemp;

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

(

a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if(a4%2!=0&&a3%2!=0&&a2%2!=0&&a1%2!=0)

(

b[cnt]=a[i];

cnt++;

)

}

for(i=0;i<cnt-1;i++)

for(j=i+1;j<cnt;j++)

if(b[i]<b[j])

(

temp=b[i];

b[i]=b[j];

b[j]=temp;

voidreadDat()

inti;

FILE*fp;

fp=fopen("IN1.DAT","r");

for(i=0;i<MAX;i++)

fscanf(fp,"%d'',&a[i]);

fclose(fp);

voidmain()

inti;

readDat();

jsVal();

滿足條件的數(shù)=%小優(yōu)5。;

:or(i=0;i<cnt;i++)

printf("%d\n\b[i]);

printfC'\n");

writeDat();

voidwriteDat()

(FILE*fp;

inti;

fp=fopen("out1.dat","w");

fprintf(fp?%d\n",cnt);

for(i=0;i<cnt;i++)

fprintf(fp,"%d\n",b[i]);

fclose(fp);

2

已知IN2.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些數(shù)存入數(shù)組

a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:依次從數(shù)組a中取出一個(gè)數(shù),如果該4位數(shù)

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

并把這些4位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat()把結(jié)果

ent及數(shù)組b中符合條件的4位數(shù)輸出到OUT2.DAT文件中。

注意:部分源程序已給出。

程序中已定義數(shù)組:a[200],b[200],已定義變量:ent。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函薪readDat()和寫函數(shù)writeDat。的內(nèi)容。

試題程序:

include<stdio.h>

#defineMAX200

inta[MAX],b[MAX],ent=0;

voidwriteDat();

voidjsVal()

{.

inti,j;

inttemp;

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

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

for(j=i+1;j<=i+5;j++)

(

if(a[i]<a[j])

break;

elseif(j==i+5)

b[cnt]=a[i];

cnt++;

}

)

for(i=0;i<cnt-1;i++)

for(j=i+1;j<cnt;j++)

if(b[i]>bU])

(

temp=b[i];

b[i]=bU];

b[j]=temp;

bidreadDat()

(

inti;

FILE*fp;

fp=fopen("IN2.DAT","r");

for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);

fclose(fp);

)

voidmain()

(

inti;

readDat();

jsVal();

printf("滿足條件的數(shù)=%d\n",ent);

for(i=0;i<ent;i++)printf("%d",b[i]);

printf("\n");

writeDat();

)

voidwriteDat()

(

FILE*fp;

inti;

fp=fopen("OUT2.DAT","w");

fprintf(fp,"%d\n",ent);

for(i=0;i<ent;i++)fprintf(fp,"%d\n",b[i]);

fclose(fp);

)

3

已知在文件IN3.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼

dm(字符型4位)、產(chǎn)品名稱me(字符型10位)、單價(jià)dj(整型)、數(shù)量si(整型)、

金額je(長(zhǎng)整型)幾部分組成。其中:金額=單價(jià)x數(shù)量。函數(shù)ReadDat。的功能是

讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat。,其功能要求:

按產(chǎn)品名稱從小到大進(jìn)行排列,若產(chǎn)品名稱相同,則按金額從小到大進(jìn)行排列,最

終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件

OUT3.DAT中。

注意:部分源程序已給出。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)WriteDat。的內(nèi)容。

試題程序:

#include<stdio.h>

#include<memory.h>

#include<string.h>

#include<stdlib.h>

#defineMAX100

typedefstruct

chardm[5];/*產(chǎn)品代眄*1

charmc[111;I*產(chǎn)品茗稱*1

intdi;I*單價(jià)*1

intsi;I*數(shù)量*1

longje;I*金額*/

}PRO;

PROsell[MAX];

voidReaaDat();

voidWriteDatQ;

voidSortDat()

inti,j;

PROtemp;

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

for(j=i+1;j<100;j++)

if(strcmp(sell[i].mc,sell[j].mc)>0)

(

temp=sell[i];

sell[i]=sell[j];

sell[j]=temp;

)

elseif(strcmp(sell[i].mc,sell[j].mc)==O)

if(sell[i].je>sell[j].je)

(

temp=sell[i];

sell[i]=sell[j];

sell[j]=temp;

)

voidmain()

memset(sell,0,sizeof(sell));

ReadDat();

SortDat();

WriteDat();

voidReadDat()

(FILE*fp;

charstr[80],ch[11];

inti;

fp=fopen("IN3.DAT","r");

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

(fgets(str,80,1

fp);

memcp.,y(sell[[ii.dm,str,4);

memcpby(sellll[[!i'.me,str+4,10);

memcpyistr+14,4);ch[4]=0;

?sell[i].dj-=s5(ch);_

memcpy(ch,str+18,5);ch[5]=0;

sell[i].sl=atoi(ch);

sell[ij.je=(long)sell[i].dj*sell[i].sl;

:close(fp);

vo{

fp;

p

o0UT3.DAT","w";

100;i++)

fprintf(fp,"%s%s%4d%5d%10ld\n",sell[i].dm,sell[i].mc,

sell[i].dj,sell[i].sl,sell[i].je);

:close(fp);

函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件ENG4.IN中讀取一篇英文文章,存入到字符

串?dāng)?shù)組xx中。請(qǐng)編的函數(shù)encryptChar(),按給定的替代關(guān)系對(duì)數(shù)組xx中的所有字符

進(jìn)行替代,結(jié)果仍存入數(shù)組xx對(duì)應(yīng)的位置上,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸

出到文件PS4.DAT中。

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

算后新字符的ASCII值),如果計(jì)算后f(p)的值小于等于32或大于130,則該字符不

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

注意:部分源程序已給出。

原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)WriteDat()的內(nèi)容。

試題程序:

#include<stdlib.h>

#include<stdio.h>

include<string.h>

#include<ctype.h>

unsignedcharxx[50][801;

intmaxline=0;/*文簟的總行數(shù)7

intReadDat(void);

voidWriteDat(void);

voidencryptChar()

inti,j;

intstr;

charch;

for(i=0;i<maxline;i++)

(

str=strlen(xx[i]);

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

(

ch=xx[i][j]*11%256;

if(ch<=32||ch>130)

continue;

else

xx[i][j]=ch;

)

}

voidmain()

sCcLS

訐ysemDauD

.(Read

printf("數(shù)據(jù)文件ENG4.IN不能打開!\n\007");

return;

encryptChar();

WriteDat();

intReadDat(void)

FILE*fp;

inti=0;

unsignedchar*p;

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

while(fgets(xx[i],80,fp)!=NULL)

^=)strchr^xx[i],'\n');

i++;

maxline=i;

fclose(fp);

return0;

voidWriteDat(void)

.LtEE*fp

Ini=;f=openc

i<Jn

fpo;+w

f.or(i)+

printf("%s\n",xx[il);

fprintf(fp,"%s\n",xx[i]);

:close(fp);

函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件IN5.DAT中讀取一篇英文文章存入到字符

串?dāng)?shù)組xx中。請(qǐng)編制函數(shù)ConvertCharA(),該函數(shù)的功能是:以行為單位把字符串

中的所有小寫字母改寫成該字母的下一個(gè)字母,如果是字母z,則改寫成字母a。大

寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變。把已處理的字符串

仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat。把結(jié)果xx輸出到文件

OUT5.DAT中。

例如,原文:Adb.Bcdza

abck.LLhj

結(jié)果:Aec.Bdeab

bcdl.LLik

原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。

注意:部分源程序已給出。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)WriteDat。的內(nèi)容。

試題程序:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

charxx[50][801;

intmaxline=0;/*文章的總行數(shù)*/

intReadDat(void);

voidWriteDat(void);

voidConvertCharA(void)

inti,j;

intstr;

for(i=0;i<maxline;i++)

(

str=strlen(xx[i]);

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

if(xx[i][j]>='a'&&xx[i][j]<='z')

if(xx[i]U]=='z')

xx[i]U]='a';

else

xx[ilU]+=1;

}

voidmain()

(systemC'CLS");

if(ReadDat())

(printf("數(shù)據(jù)文件IN5.DAT不能打開!\n\007");

return;

ConvertCharA();

WriteDat();

intReadDat(void)

(FILE*fp;

inti=0;

char*p'

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

while(fgets(xx[i],80,fp)!=NULL)

^=)strchr^xx[i],'\n');

i++;

)「.

maxhne=i;

fclose(fp);

return0;

voidWriteDat(void)

.LE

Inti;fpwcx

sypZdLs仇"kDAT

ysten5.

fp=foivmUTHne;,+

for(i=axI+?

printf("%s\n",xx[i]);

fprintf(fp,"%s\n",xx[i]);

lclose(fp);

)

6

在文件IN6.DAT中有200個(gè)正整數(shù),且每個(gè)數(shù)均在1000至9999之間。函數(shù)

readDat()的功能是讀取這200個(gè)數(shù)存放到數(shù)組aa中。請(qǐng)編制函數(shù)jsSort(),該函數(shù)的

功能是:要求按每個(gè)數(shù)的后3位的大小進(jìn)行降序排列,將排序后的前10個(gè)數(shù)存入數(shù)

組b中,如果數(shù)組b中出現(xiàn)后3位相等的數(shù),則對(duì)這些數(shù)按原始4位數(shù)據(jù)進(jìn)行升序排列。

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

例如:處理前90125099601270258088

處理后50998088702560129012

注意:部分源程序已給出。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat()和寫函數(shù)whteDat()的內(nèi)容。

試題程序:

#include<stdio.h>

#include<string.h>

#include<stdlio.h>

intaa[200],bb[10];

voidreadDatQ;

voidwriteDatQ;

voidjsSort()

inti,j;

inttemp;

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

for(j=i+1;j<200;j++)

(

if(aa[i]%1000<aa[j]%1000)

(

temp=aa[i];

aa[i]=aa[j];

aa[j]=temp;

}

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

if(aa[i]>aa[j])

(

temp=aa[i];

aa[i]=aa[j];

aa[j]=temp;

}

}

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

bb[i]=aa[i];

voidmain()

readDat();

jsSort();

writeDat();

voidreadDat()

1FILE*in;

inti;

in=fopen("IN6.DAT","r");

for(i=0;i<200;i++)fscanf(in,"%d,",&aa[i]);

fclose(in);

voidwriteDat()

{FILE*out;

inti;

out=fopenCOUT6.DAT","w");

systemrCLS");

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

printf("i=%d,%d\n",i+1,bb[i]);

fprintr(out,"%d\n",bb[i]);

)

fclose(out);

7

函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件IN7.DAT中讀取一篇英文文章存入到字符

串?dāng)?shù)組xx中。請(qǐng)編制函數(shù)SortCharD(),該函數(shù)的功能是:以行為單位對(duì)字符按從

大到小的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用

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

例如,原文:dAe,BfC

CCbbAA

結(jié)果:fedCBA,

bbCCAA

原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。

注意:部分源程序已給出。

請(qǐng)勿改動(dòng)主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)WriteDat()的內(nèi)容。

試題程序:

#include<stdio.h>

#include<string.h>

#include<stdlio.h>

charxx[50][80];

intmaxline=0;

intReadDat(void);

voidWriteDat(void);

voidSortCharD()

inti,j,k;

intstr;

chartemp;

for(i=0;i<maxline;i++)

(

str=strlen(xx[i]);

for(j=0;j<str-1;j++)

for(k=j+1;k<str;k++)

if(xx[i][j]<xx[i][k])

(

temp=xx[i][j];

xx[i][j]=xx[i][k];

xx[i][k]=temp;

}

}

voidmain()

(system("CLS");

if(ReadDat())

phntf("數(shù)據(jù)文件IN7.DAT不能打開!\n\007");

return;

^ortCharD();

WriteDat();

intReadDat(void)

(FILE*fp;

inti=0;

char*n*

if((fp=fopen("IN7.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()

(FILE*fp;

inti;

system("CLS");

fp=fopen("OUT7.DAT","w");

for(i=0;i<maxline;i++)

(printf("%s\n",xx[i]);

fprintf(fp,"%s\n';xx[i]);

lclose(fp);

8

對(duì)10個(gè)候選人進(jìn)行選舉,現(xiàn)有一個(gè)100條記錄的選票數(shù)據(jù)文件IN8.DAT,其數(shù)據(jù)

存放的格式是每條記錄的長(zhǎng)度均為10位,第一位表示第一個(gè)人的選中情況,第二位

表示第二個(gè)人的選中情況,依次類推。每一位內(nèi)容均為字符0或1,1表示此人被選

中,0表示此人未被選中,若一張選票選中人數(shù)小于等于5個(gè)人時(shí)則被認(rèn)為是無效的

選票。給定函數(shù)ReadDat()的功能是把選票數(shù)據(jù)讀入到字符串?dāng)?shù)組xx中。請(qǐng)編制函

數(shù)CountRs()來統(tǒng)計(jì)每個(gè)人的選票數(shù)并把得票數(shù)依次存入yy[O]到y(tǒng)y[9]中,最后調(diào)用

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

注意:部分源程序已給出。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)WriteDat。的內(nèi)容。

試題程序:

#include<stdio.h>

#include<memory.h>

charxx[100][11];

intyy[10];

intReadDat(void);

voidWriteDat(void);

voidCountRs(void)

inti,j;

intent;

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

yy[i]=o;

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

(

cnt=0;

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

if(xx[i][j]=='1')

cnt++;

if(cnt>5)

(

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

if(xx[i]U]=='1')

yy[j]++;

}

}

voidmain()

inti;

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

yy[i]=0;

if(ReadDat())

{printf("選票數(shù)據(jù)文件IN8.DAT不能打開!\007\n");

return;

LountRs();

WriteDatQ;

intReadDat(void)

(FILE*fp;

inti;

chartt[13];

if((fp=fopen("IN8.DAT","r"))==NULL)

return1;

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

{if(fgets(tt,13,fp)==NULL)

return1;

memcpy(xx[i],tt,10);

lclose(fp);

return0;

voidWnteDat(void)

.LEtE*fp

In

i=;fo=pe0UT8.DAT","w";

fpo;10;i++)

fo.r(i

fprintfffp,"%d\n",yy[i]);

printf9第%d個(gè)人隨嬲數(shù)=%d\n",i+1,yy[i]);

fclose(fp);

)

9

下列程序的功能是:利用以下所示的簡(jiǎn)單迭代方法求方程:

cos(x)-x=0的一個(gè)實(shí)根。

Xn+1=COS(Xn)

迭代步驟如下:

(1)取x1初值為0.0。

(2)x0=x1,把x1的值賦給x0。

(3)x1=cos(x0),求出一個(gè)新的x1。

(4)若x0-x1的絕對(duì)值小于0.000001,執(zhí)行步驟(5),否則執(zhí)行步驟(2)。

(5)所求x1就是方程cos(x卜x=0的一個(gè)實(shí)根,作為函數(shù)值返回。

請(qǐng)編寫函數(shù)countvalue()實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)wiiteDAT()把結(jié)果輸出

到文件out9.dat中。

注意:部分源程序已給出。

請(qǐng)勿改動(dòng)主函數(shù)main。和寫函數(shù)whteDAT()的內(nèi)容。

試題程序:

include<stdlib.h>

#include<math.h>

include<stdio.h>

voidwriteDAT();

floatcountValue()

floatx0,x1=0.0;

while(1)

(

x0=x1;

x1=cos(x0);

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

}

returnx1;

)

voidmain()

(system("CLS");

'$tR=%f\n",countValue());

'%An",cos(countValue())-countValue());

}aAT();

voidwriteDAT()

(FILE*wf;

wf=fopen("out9.dat","w");

fprintt\wf/%f\n",countValue());

fclose(wf);

)

10

請(qǐng)編寫函數(shù)voidcountValue(int*a,int*n),它的功能是:求出1到1000之內(nèi)能

被7或11整除但不能同時(shí)被7和11整除的所有整數(shù)并存放在數(shù)組a中,并通過n返回這

些數(shù)的個(gè)數(shù)。

注意:部分源程序已給出。

請(qǐng)勿改動(dòng)主函數(shù)main。和寫函數(shù)writeDAT()的內(nèi)容。

試題程序:

#include<stdlib.h>

#include<stdio.h>

voidwriteDAT();

voidcountValue(int*a,int*n)

inti;

*n=0;

for(i=1;i<=1000;i++)

if((i%7==0&&i%11!=0)||(i%7!=0&&i%11==0))

*a=i;

*n=*n+1;

a++;

)

)

voidmain()

(intaa[1000],n,k;

system("CLS");

countValue(aa,&n);

for(k=0;k<n;k++)

if((k+1)%10==0)

(printf("%5d",aa[k]);

printf("\n");

else,printf("%5d",aa[k]);

writeDAT();

)

voidwriteDAT()

intaa[1000],n,k;

FILE*fp;

fp=fopen("out10.dat","w");

countValue(aa,&n);

for(k=0;k<n;k++)

if((k+1)%10==0)

(fprintf(fp,"%5d",aa[k]);

fprintf(fp,"\n");

elsefprintf(fp,"%5d",aa[k]);

fclose(fp);

)

11

已知在文件IN11.DAT中存有若干個(gè)(個(gè)數(shù)<200)4位數(shù)字的正整數(shù),函數(shù)

ReadDat()的功能是讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請(qǐng)編制函數(shù)CalValue(),

其功能要求:(1)求出該文件中共有多少個(gè)正整數(shù)totNum;(2)求這些數(shù)右移1

位后,產(chǎn)生的新數(shù)是偶數(shù)的數(shù)的個(gè)數(shù)totCnt,以及滿足此條件的這些數(shù)(右移前的

值)的算術(shù)平均值totPjz,最后調(diào)用函數(shù)WriteDat()把所求的結(jié)果輸出到文件

OUT11.DAT中。

注意:部分源程序已給出。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)ReadDat。和寫函數(shù)WriteDat。的內(nèi)容。

試題程序:

include<stdio.h>

include<stdlib.h>

#defineMAXNUM200

intxx[MAXNUMl;

inttotNum=0;A文件IN11.DAT中共有多少個(gè)正整數(shù)*/

inttotCnt=0;/*符備條件的正整數(shù)的個(gè)數(shù)*/

doubletotPjz=0.0;/*—值*/

intReadDat(void);

voidWriteDat(void);

voidCalValue(void)

inti;

intdata;

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

if(xx[i]>0)

(

totNum++;

data=xx[i]?1;

if(data%2==0)

(

totCnt++;

totPjz+=xx[i];

}

}

totPjz/=totCnt;

m

cX1

temiS'AXNUM

sy/S耨<M++

Ko

fwo=u

.RavD

printf("數(shù)據(jù)文件IN11.DAT不能打開!\007\n");

return;

CalValueQ;

printf("文柞IN11.DAT中共有正整數(shù)=%d個(gè)\n",totNum);

phntf"符合條件的正整數(shù)的個(gè)數(shù)=%d個(gè)\n",totCnt);

printf^平均值=%.2lf\n",totPjz);

乎WriteDat();

intReadDat(void)

(FILE*fp;

inti=0;

if((fp=fopen("IN11.DAT","r"))==NULL)

return1;

while(!feof(fp))

{fscanf(fp,"%d,",&xx[i++]);

lclose(fp);

return0;

)

voidWriteDat(void)

{FILE*fp;

fp=fopen("OUT11.DAT","w");

fprintf(fp,"%d\n%d\n%.2lf\n",totNum,totCnt,totPjz);

fclose(fp);

)

12

已知數(shù)據(jù)文件IN12.DAT中存有300個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些

數(shù)存入數(shù)組a中。請(qǐng)編制函數(shù)jsValue(),其功能是:求出千位數(shù)上的數(shù)加個(gè)位數(shù)上

的數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個(gè)數(shù)ent,再把所有滿足此條件的4位數(shù)依

次存入數(shù)組b中,然后對(duì)數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用寫函

數(shù)writeDat。把數(shù)組b中的數(shù)輸出到OUT12.DAT文件中。

例如:6712,6+2=7+1,則該數(shù)滿足條件,存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+10

8129,8+9R1+2,則該數(shù)不滿足條件,忽略。

注意:部分源程序已給出。

程序中已定義數(shù)組:a[300],b[300],已定義變量:ent。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函薪readDat()和寫函數(shù)writeDat。的內(nèi)容。

試題程序:

include<stdio.h>

inta[300],b[300],cnt=O;

voidreadDatQ;

voidwriteDat();

voidjsValue()

inti,j;

inta1,a2,a3,a4;

inttemp;

for(i=0;i<300;i++)

(

a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if(a4+a1==a3+a2)

(

b[cnt]=a[i];

cnt++;

)

)

for(i=0;i<cnt-1;i++)

for(j=i+1;j<cnt;j++)

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

(

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

)

voidmain()

inti;

readDat();

jsValue();

writeDati);

printfC'cnt=%d\n",ent);

for(i=0;i<cnt;i++)

}printf("b[%d]=%d\n",i,b[i]);

voidreadDat()

(FILE*fp;

inti;

fp=fopen("IN12.DAT","r");

for(i=0;i<300;i++)

fscanf(fp,"%d,",&a[i]);

fclose(fp);

voidwriteDat()

(FILE*fp;

inti;

fp=fopenCOUT12.DAT","w");

fprintf(fp,"%d\n",cnt);

for(i=0;i<cnt;i++)

fprintf(fp,"%d,\n",b[i]);

fclose(fp);

)

已知數(shù)據(jù)文件IN13.DAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些

數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:如果4位數(shù)各位上的數(shù)字均是0

或2或4或6或8,則統(tǒng)計(jì)出滿足此條件的數(shù)的個(gè)數(shù)ent,并把這些4位數(shù)按從大到小的

順序存入數(shù)組b中,最后調(diào)用寫函數(shù)writeDat。把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)

輸出到OUT13.DAT文件中。

注意:部分源程序已給出。

程序中已定義數(shù)組:a[200],b[200],已定義變量:ent。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函薪readDat()和寫函數(shù)writeDat。的內(nèi)容。

試題程序:

#include<stdio.h>

#defineMAX200

inta[MAXLb[MAX],ent=0;

voidwriteDat();

voidjsVal()

inti,j;

inta1,a2,a3,a4;

inttemp;

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

(

a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if(a4%2==0&&a3%2==0&&a2%2==0&&a1%2==0)

(

b[cnt]=a[i];

cnt++;

)

)

for(i=0;i<cnt-1;i++)

for(j=i+1;j<cnt;j++)

if(b[i]<b[j])

temp=b[i];

b[i]=b[j];

b[j]=temp;

)

)

voidreadDat()

{inti;

FILE*fp;

fp=fopen("IN13.DAT","r");

for(i=0;i<MAX;i++)fscanf(fp,"%d",&a[i]);

fclose(fp);

voidmain()

(inti;

readDat();

品湍“滿足條件的數(shù)=%d\n",ent);

for(i=0;i<ent;i++)printf("%d",b[i]);

printfpn");

乎writeDat();

voidwriteDat()

{FILE*fp;

inti;

fp=fopen("OUT13.DAT","w");

fprintf(fp,"%d\n",ent);

for(i=0;i<ent;i++)fprintf(fp,"%d\n",b[i]);

fclose(fp);

)

14

已知數(shù)據(jù)文件IN14.DAT中存有300個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat。把這些

數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsValue(),其功能是:求出千位數(shù)上的數(shù)加百位數(shù)

上的數(shù)等于十位數(shù)上的數(shù)加個(gè)位數(shù)上的數(shù)的個(gè)數(shù)ent,再把所有滿足此條件的4位數(shù)

依次存入數(shù)組b中,然后對(duì)數(shù)組b的4位數(shù)從大到小進(jìn)行排序,最后調(diào)用寫函數(shù)

writeDat()把數(shù)組b中的數(shù)輸出到OUT14.DAT文件。

例如:7153,7+1=5+3,則該數(shù)滿足條件,存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+1。

8129,8+1#2+9,則該數(shù)不滿足條件,忽略。

注意:部分源程序已給出。

程序中已定義數(shù)組:a[300],b[300],已定義變量:ent。

請(qǐng)勿改動(dòng)主函數(shù)main。、原函赤eadDat()和寫函數(shù)writeDat。的內(nèi)容。

試題程序:

#include<stdio.h>

inta[3001,b[300],cnt=O;

voidreadDatQ;

voidwriteDatf);

voidjsValue()

inti,j;

inta1,a2,a3,a4;

inttemp;

for(i=0;i<300;i++)

(

a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if(a4+a3==a2+a1)

(

b[cnt]=a[i];

cnt++;

)

}

for(i=0;i<cnt-1;i++)

for(j=i+1;j<cnt;j++)

if(b[i]<b[j])

(

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

)

voidmain()

{inti;

readDat();

jsValue();

writeDati);

printf("cn(=%d\n",ent);

for(i=0;i<ent;i++)

乎printf("b[%d]=%d\n",i,b[i]);

voidreadDat()

{FILE*fp;

inti;

fp=fopen("IN14.DAT","r");

for(i=0;i<300;i++)

fscanf(fp,"%d,",&a[i]);

}fclose(fp);

voidwriteDat()

(FILE*fp;

inti;

fp=fopen("OUT14.DAT","w");

fprintf(fp,"%d\n",cnt);

for(i=0;i<ent;i++)

fprintf(fp,"%d,\n",b[i]);

fclose(fp);

)

15

已知數(shù)據(jù)文件in15.dat中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)

存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:若一個(gè)4位數(shù)的千位數(shù)字上的值小

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

上的值小于等于個(gè)位數(shù)字上的值,并且此4位數(shù)是偶數(shù),則統(tǒng)計(jì)出滿足此條件的數(shù)

的個(gè)數(shù)ent并把這些4位數(shù)按從小到大的順序存入數(shù)組b中,最后調(diào)用寫函數(shù)

writeDat()把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出到out15.dat文件中。

注意:部分源程序已給出。

程序中已定義數(shù)組:a[200],b[200],已定義變量:ent。

請(qǐng)勿改動(dòng)主函數(shù)main()、讀函藪readDat()和寫函數(shù)writeDat()的內(nèi)容。

試題程序:

#include<stdio.h>

#defineMAX200

inta[MAXLb[MAX],cnt=O;

voidwriteDat();

voidjsVal()

inti,j;

inta1,a2,a3,a4;

inttemp;

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

(

a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if((a4<=a3)&&(a3<=a2)&&(a2<=a1)&&(a1%2==0))

(

b[cnt]=a[i];

cnt++;

}

}

for(i=0;i<cnt-1;i++)

for(j=i+1;j<cnt;j++)

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

(

temp=b[i];

b[i]=bU];

b[j]=temp;

)

*"

fp;崛d

in日

open.

fF+

fp=ol<XId

foscanM?,&a

fclose(J

voidmam()

inti;

readDat();

sVal();

brintfq滿足條件的數(shù)=%d\n",cnt);

:or(i=0;i<cnt;i++)

printf("%d\n\b[i]);

}writeDat();

voidwriteDat()

(FILE*fp;

inti;

fp=fopen("out15.dat","w");

fprintf(fp/%d\n",cnt);

for(i=0;i<cnt;i++)

fprintf(fp,"%d\n",b[i]);

}fclose(fp);

16

已知數(shù)據(jù)文件IN16.DAT中存有300個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些

數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsValue(),其功能是:求出千位數(shù)上的數(shù)減百位數(shù)

上數(shù)減十位數(shù)上的數(shù)減個(gè)位數(shù)上的數(shù)大于零的數(shù)的個(gè)數(shù)ent,再把所有滿足此條件的

4位數(shù)依次存入數(shù)組b中,然后對(duì)數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)

用寫函數(shù)writeDat()把數(shù)組b中的數(shù)輸出到0UT16.DAT文件中。

例如:9123,9-1-2-3>0,則該數(shù)滿足條件,存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+1。

9812,9-8-1-2<0,則該數(shù)不滿足條件,忽略。

注意:部分源程序已給出。

程序中已定義數(shù)組:a[300],b[300],已定義變量:ent。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。和寫函數(shù)writeDat。的內(nèi)容。

試題程序:

#include<stdio.h>

inta[300],b[300],cnt=0;

voidreadDat();

voidwriteDat();

jsValue()

inti,j;

inta1,a2,a3,a4;

inttemp;

for(i=0;i<300;i++)

(

a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if(a4-a3-a2-a1>0)

(

b[cnt]=a[i];

cnt++;

)

)

for(i=0;i<cnt-1;i++)

for(j=i+1;j<cnt;j++)

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

(

temp=b[i];

b[i]=b[j];

b[j]=temp;

)

)

voidmain()

(

inti;

readDat();

jsValue();

printf("cnt=%d\n",cnt);

writeDat();

for(i=0;i<cnt;i++)

printf("b[%d]=%d\n",i,b[i]);

voidreadDat()

(

FILE*fp;

inti;

fp=fopen("IN16.DAT","r");

for(i=0;i<300;i++)

fscanf(fp,"%d,",&a[i]);

fclose(fp);

)

voidwriteDat()

FILE*fp;

inti;

fp=fopen("OUT1e.DAr/'w");

fprintf(fp,"%d\n",cnt);

for(i=0;i<cnt;i++)

fprintf(fp,"%d\n",b[i]);

fclose(fp);

已知數(shù)據(jù)文件IN17.DAT中存有300個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些

數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsValue(),其功能是:求出個(gè)位數(shù)上的數(shù)減千位數(shù)

上數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)大于零的個(gè)數(shù)ent,再把所有滿足此條件的4位

數(shù)依次存入數(shù)組b中,然后對(duì)數(shù)組b的4位數(shù)按從大到小的順序進(jìn)行排序,最后調(diào)用

函數(shù)writeDat。把數(shù)組b中的數(shù)輸出到OUT17.DAT文件中。

例如:1239,9-1-2-3>0,則該數(shù)滿足條件,存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+1。

8129,9-8-1-2<0,則該數(shù)不滿足條件,忽略。

注意:部分源程序已給出。

程序中已定義數(shù)組:a[300],b[300],已定義變量:ent。

請(qǐng)勿改動(dòng)主函數(shù)main。、讀函或readDat。和寫函數(shù)writeDat。的內(nèi)容。

試題程序:

include<stdio.h>

inta[300],b[300],cnt=0;

voidreadDatQ;

voidwriteDat();

voidjsValue()

inti,j;

inta1,a2,a3,a4;

inttemp;

for(i=0;i<300;i++)

(

a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if(a1-a3-a2-a4>0)

(

b[cnt]=a[i];

cnt++;

for(i=0;i<cnt-1;i++)

for(j=i+1;j<cnt;j++)

if(b[i]<b[j])

temp=b[i];

b[i]=b[j]

溫馨提示

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

評(píng)論

0/150

提交評(píng)論