當前位置:才華齋>計算機>計算機三級>

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

計算機三級 閱讀(5.21K)

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

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

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) ;

}