第 1 頁(yè):填空題 |
第 2 頁(yè):改錯(cuò)題 |
第 3 頁(yè):程序題 |
例如, 二維數(shù)組中的數(shù)據(jù)為:
33 33 33 33
44 44 44 44
55 55 55 55
則一維數(shù)組中的內(nèi)容應(yīng)是:
33 44 55 33 44 55 33 44 55 33 44 55。
注意:部分源程序在文件PROG1.C中。
請(qǐng)勿改動(dòng)主函數(shù)main和其它函數(shù)中的任何內(nèi)容, 僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。
給定源程序:
#include
void fun(int s[][10], int b[], int *n, int mm, int nn)
{
}
main()
{int w[10][10]={{33,33,33,33},{44,44,44,44},{55,55, 55,55}},i,j;
int a[100]={0}, n=0;void NONO ();
printf("The matrix:\n");
for(i=0; i<3; i++)
{for(j=0;j<4; j++)printf("%3d",w[i][j]);
printf("\n");
}
fun(w,a,&n,3,4);
printf("The A array:\n");
for(i=0;i NONO(); } void NONO () {/* 請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(shù)據(jù),調(diào)用 fun 函數(shù),輸出數(shù)據(jù),關(guān)閉文件。 */ FILE *rf, *wf ; int i, j, k ; int w[10][10], a[100], n = 0, mm, nn ; rf = fopen("in.dat","r"); wf = fopen("out.dat","w"); for(k = 0 ; k < 5 ; k++) { fscanf(rf, "%d %d", &mm, &nn); for(i = 0 ; i < mm ; i++) for(j = 0 ; j < nn ; j++) fscanf(rf, "%d", &w[i][j]); fun(w, a, &n, mm, nn); for(i = 0 ; i < n ; i++) fprintf(wf, "%3d", a[i]); fprintf(wf, "\n"); } fclose(rf); fclose(wf); } 參考答案: void fun(int (*s)[10], int *b, int *n, int mm, int nn) { /* 以下代碼僅供參考 */ int i,j,np=0; /* np用作b數(shù)組下標(biāo) */ for(i = 0 ; i < nn ; i++) for(j = 0 ; j < mm ; j++) { b[np] = s[j][i] ; np = i * mm + j + 1; } *n=np; }
2011年計(jì)算機(jī)等級(jí)考試二級(jí)C語(yǔ)言上機(jī)題庫(kù)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |