機(jī)試時間:9月23日20:15
機(jī)試試題:南開82( 素?cái)?shù)題)
已知數(shù)據(jù)文件in.dat中存有300個四位數(shù),并已調(diào)用讀函數(shù)ReadDat()把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsValue(),其功能是:求出所有這些四位數(shù)是素?cái)?shù)的個數(shù)cnt,再求出所有滿足此條件的四位數(shù)平均值pjz1,以及不滿足此條件的四位數(shù)平均值pjz2,最后調(diào)用寫函數(shù)writeDat()把結(jié)果cnt,pjz1,pjz2輸出到out.dat文件。
例如:5591是素?cái)?shù),則該數(shù)滿足條件計(jì)算平均值pjz1,且個數(shù)cnt=cnt+1。
9812是非素?cái)?shù),則該數(shù)不滿足條件計(jì)算平均值pjz2。
部分源程序存在文件prog1.c中。
程序中已定義數(shù)組:a[300],已定義變量:cnt,pjz1,pjz2
請勿改動主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)writeDat()的內(nèi)容。
答案內(nèi)容:
{int i;
for(i=0;i<300;i++)
if(isP(a)) {pjz1+=a;cnt++;}
else pjz2+=a;
if(cnt==0) pjz1=0;
else pjz1/=cnt;
if(300-cnt==0) pjz2=0;
else pjz2/=(300-cnt);
}
試題5:
機(jī)試時間:9月24日9:20
機(jī)試題目:南開59題。
考號尾數(shù):915
題目59函數(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,ab必須是奇數(shù)且不能被5整除,cd必須是偶數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的四位數(shù)的個數(shù)cnt。
void jsVal()
{int i,thou,hun,ten,data,j;
int ab,cd;
for(i=0;i<MAX;i++)
{thou=a/1000; hun=a/100%10;
ten=a%100/10; data=a%10;
ab=10*thou+ten; cd=10*data+hun; if(((ab-cd)<0&&ab%2==1&&ab%5!=0)&&cd%2!=1&&ab>=10&&cd>=10)
{b[cnt]=a;cnt++;} }
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b<b[j]) {data=b;b=b[j];b[j]=data;}}
試題6 :
機(jī)試時間:9月24日9:20
機(jī)試題目:南開59題。
考號尾數(shù):915
題目59函數(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,ab必須是奇數(shù)且不能被5整除,cd必須是偶數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的四位數(shù)的個數(shù)cnt。
void jsVal()
{int i,thou,hun,ten,data,j;
int ab,cd;
for(i=0;i<MAX;i++)
{thou=a/1000; hun=a/100%10;
ten=a%100/10; data=a%10;
ab=10*thou+ten; cd=10*data+hun; if(((ab-cd)<0&&ab%2==1&&ab%5!=0)&&cd%2!=1&&ab>=10&&cd>=10)
{b[cnt]=a;cnt++;} }
for(i=0;i<cnt-1;i++)
for(j=i+1;j<cnt;j++)
if(b<b[j]) {data=b;b=b[j];b[j]=data;}}