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

2016年3月計算機三級上機題庫及答案

計算機三級 閱讀(2.66W)

1.已知資料檔案中存有200個四位數, 並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是: 把千位數字和十位數字重新組成一個新的十位數ab(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字), 以及把個位數字和百位數字組成另一個新的十位數cd (新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的百位數字), 如果新組成的兩個十位數ab-cd>=10且ab-cd<=20且兩個數均是偶數,同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入陣列b中, 並要計算滿足上述條件的四位數的個數cnt。最後main()函式呼叫寫函式writeDat( )把結果cnt以及陣列b中符合條件的四位數輸出到檔案中。

2016年3月計算機三級上機題庫及答案

注意: 部分源程式存在檔案PROG1.C檔案中。

程式中已定義陣列: a[200], b[200], 已定義變數: cnt

請勿改動資料檔案中的任何資料、主函式main()、讀函式readDat()和寫函式writeDat()的內容。

-------------------------

PROG1.C

#include

#define MAX 200

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

void jsVal()

{int I,thou,hun,ten,data,j;

int ab,cd;

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

{thou=a[I]/1000; hun=a[I]%1000/100;

ten=a[I]%100/10; data=a[I]%10;

ab=10*thou+ten; cd=10*data+hun;

if ((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0)

{b[cnt]=a[I];cnt++;}

}

for(I=0;I

for(j=I+1;j

if(b[I]

{data=b[I]; b[I]=b[j];b[j]=data;}

}

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

system("pause");

}

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

}

7153 8129 5795 2896 3019 7747 7607 8145 7090 4140

8626 7905 3735 9620 8714 9496 3640 5249 7671 5925

4687 2982 9387 6478 2638 2793 8298 8246 5892 9861

9110 2269 6951 9800 2439 5339 1064 9994 6762 5752

1001 1030 7989 2845 2958 3820 3010 9486 9798 4014

2783 1604 1628 6466 4101 4128 7127 3262 6332 2076

1860 5834 4580 9057 2614 7852 3789 2897 9194 6317

6276 4285 5610 6945 9137 8348 5434 9162 4303 6779

5025 5137 4630 3535 4048 2697 2438 9791 3903 3650

4899 1557 4745 2573 6288 5421 1563 9385 6545 5061

3905 1074 7840 4596 7537 5961 8327 2104 1055 8317

1282 5368 6571 5440 8274 1919 6789 4542 3570 1500

7044 9288 5302 7577 4018 4619 4922 2076 3297 5898

1699 9276 4439 2729 8725 7507 2729 6736 2566 3227

7901 2973 2353 4805 2546 3406 4824 2060 8645 5886

7549 9279 3310 5429 6344 4100 9604 1146 9234 6202

3477 1492 4800 2194 9937 1304 3454 5477 9230 5382

4064 8472 8262 6724 7219 9968 3398 4952 4130 6953

1791 4229 5432 8147 5409 4275 5091 2278 6192 4898

6808 8866 3705 3025 2929 1503 5298 2233 5483 3635

4

9288

8866

8626

3262

2.已知資料檔案中存有200個四位數, 並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是: 把千位數字和十位數字重新組成一個新的十位數ab(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字), 以及把個位數字和百位數字組成另一個新的十位數cd (新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的'百位數字), 如果新組成的兩個十位數ab-cd>=0且ab-cd<=10且兩個數均是奇數, 同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入陣列b中, 並要計算滿足上述條件的四位數的個數cnt。最後main()函式呼叫寫函式writeDat( )把結果cnt以及陣列b中符合條件的四位數輸出到檔案中。

注意: 部分源程式存在檔案PROG1.C檔案中。

程式中已定義陣列: a[200], b[200], 已定義變數: cnt

請勿改動資料檔案中的任何資料、主函式main()、讀函式readDat()和寫函式writeDat()的內容。

-------------------------

PROG1.C

#include

#define MAX 200

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

void jsVal()

{int I,thou,hun,ten,data,j;

int ab,cd;

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

{thou=a[I]/1000; hun=a[I]%1000/100;

ten=a[I]%100/10; data=a[I]%10;

ab=10*thou+ten; cd=10*data+hun;

if ((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0)

{b[cnt]=a[I];cnt++;}

}

for(I=0;I

for(j=I+1;j

if(b[I]

{data=b[I]; b[I]=b[j];b[j]=data;}

}

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

system("pause");

}

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

}

7153 8129 5795 2896 3019 7747 7607 8145 7090 4140

8626 7905 3735 9620 8714 9496 3640 5249 7671 5925

4687 2982 9387 6478 2638 2793 8298 8246 5892 9861

9110 2269 6951 9800 2439 5339 1064 9994 6762 5752

1001 1030 7989 2845 2958 3820 3010 9486 9798 4014

2783 1604 1628 6466 4101 4128 7127 3262 6332 2076

1860 5834 4580 9057 2614 7852 3789 2897 9194 6317

6276 4285 5610 6945 9137 8348 5434 9162 4303 6779

5025 5137 4630 3535 4048 2697 2438 9791 3903 3650

4899 1557 4745 2573 6288 5421 1563 9385 6545 5061

3905 1074 7840 4596 7537 5961 8327 2104 1055 8317

1282 5368 6571 5440 8274 1919 6789 4542 3570 1500

7044 9288 5302 7577 4018 4619 4922 2076 3297 5898

1699 9276 4439 2729 8725 7507 2729 6736 2566 3227

7901 2973 2353 4805 2546 3406 4824 2060 8645 5886

7549 9279 3310 5429 6344 4100 9604 1146 9234 6202

3477 1492 4800 2194 9937 1304 3454 5477 9230 5382

4064 8472 8262 6724 7219 9968 3398 4952 4130 6953

1791 4229 5432 8147 5409 4275 5091 2278 6192 4898

6808 8866 3705 3025 2929 1503 5298 2233 5483 3635

4

8317

7577

5795

1791