糯米文學吧

位置:首頁 > 計算機 > 計算機三級

計算機三級網絡技術臨考強化訓練

下面是本站小編搜索整理的計算機三級網絡技術臨考強化訓練題,更多計算機三級考試信息請關注應屆畢業生考試網。

計算機三級網絡技術臨考強化訓練

1.已知數據文件中存有300個4位數,並已調用函數readDat()把這些數存入數組a中,請編制一函數jsValue(),其功能是:求出千位數上的數加個位數上的數等於百位數上的數加十位數上的數的個數cnt,再求出所有滿足此條件的4位數平均值pjz1,以及所有不滿足此條件的4位數的平均值pjz2,最後調用函數writeDat()把結果cnt,pjz1,pjz2,輸出到文件中。

例如:6712,6+2=7+1,則該數滿足條件,計算平均值pjz1,且個數cnt=cnt+1。

8129,8+9≠1+2,則該數不滿足條件,計算平均值pjz2。

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

程序中已定義數組:a[300],b[300],已定義變量:cnt,pjz1,pjz2。

請勿改動主函數main()、讀函數readDat()和寫函數writeDat()的內容。

#include

int a[300], cnt=0;

double pjz1=0.0,pjz2=0.0;

void readDat();

void writeDat();

void jsValue()

{

int i,n=0; /*定義循環變量和計數器變量*/

int a1,a2,a3,a4; /*定義變量保存4位數的每位數字*/

for(i=0;i<300;i++) /*逐個取每一個4位數*/

{

a4=a[i]/1000; /*求4位數的千位數字*/

a3=a[i]00/100; /*求4位數的百位數字*/

a2=a[i]0/10; /*求4位數的十位數字*/

a1=a[i]; /*求4位數的個位數字*/

if(a4+a1==a3+a2) /*如果千位數加個位數等於百位數加十位數*/

{

cnt++; /*則統計滿足條件的數的個數*/

pjz1+=a[i]; /*將滿足條件的數求和*/

}

else

{

n++; /*否則統計不滿足條件的數的個數*/

pjz2+=a[i]; /*將不滿足條件的數求和*/

}

}

pjz1/=cnt; /*求滿足條件的數的平均值*/

pjz2/=n; /*求不滿足條件的數的平均值*/

}

void main()

{

readDat();

jsValue();

writeDat();

printf("cnt=%dn滿足條件的平均值pjz1=%7.2lfn不滿足條件的平均值pjz2=% 7.2lfn",cnt,pjz1,pjz2);

}

void readDat()

{

FILE *fp;

int i;

fp=fopen( "","r");

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

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

fclose(fp);

}

void writeDat()

{

FILE *fp;

fp=fopen("","w");

fprintf(fp,"%dn%7.2lfn%7.2lfn",cnt ,pjz1,pjz2);

fclose(fp);

2.已知數據文件中存有200個4位數,並已調用讀函數readDat() 把這些數存入數組a中。請編制函數jsVal(),其功能是:依次從數組a中取出一個4位數,如果該4位數連續小於該4位數以後的5個數且該數是偶數(該4位數以後不滿5個數,則不統計),則統計出滿足此條件的數的個數cnt,並把這些4位數按從小到大的順序存入數組b中,最後調用寫函數writeDat()把結果cnt及數組b中符合條件的4位數輸出到文件中。

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

程序中已定義數組:a[200],b[200],已定義變量:cnt。

請勿改動主函數main()、讀函數readDat()和寫函數writeDat()的'內容。

#include

#define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void readDat();

void writeDat();

void jsVal()

{

int i,j; /*定義循環控制變量*/

int temp; /*定義數據交換是的暫存變量*/

for(i=0;i<="" p="">

if(a[i]%2==0) /*如果當前數是偶數*/

for(j=i+1;j<=i+5;j++) /*取該數後面的5個數進行比較*/

{

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

break; /*如果當前數不滿足比後面5個數都小的條件,則跳出循環*/

else if(j==i+5) /*如果當前數比後面的五個數都小*/

{

b[cnt]=a[i]; /*將滿足條件的數存入數組b中*/

cnt++; /*並統計滿足條件的數的個數*/

}

}

for(i=0;i<="" p="" *利用選擇法對b數組中的元素進行從小到大的排序*="">

for(j=i+1;j< p=""><>

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

{

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

void readDat()

{

int i ;

FILE *fp ;

fp = fopen("", "r") ;

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

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

fclose(fp) ;

}

void main()

{

int i ;

readDat() ;

jsVal() ;

printf("滿足條件的數=%dn", cnt) ;

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

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

printf("n") ;

writeDat() ;

}

void writeDat()

{

FILE *fp ;

int i ;

fp = fopen("", "w") ;

fprintf(fp, "%dn", cnt) ;

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

fprintf(fp, "%dn", b[i]);

fclose(fp) ;

}