第 1 頁:填空題 |
第 2 頁:改錯題 |
第 3 頁:程序題 |
例如, 二維數(shù)組中的數(shù)據(jù)為:
33 33 33 33
44 44 44 44
55 55 55 55
則一維數(shù)組中的內(nèi)容應(yīng)是:
33 33 33 33 44 44 44 44 55 55 55 55。
注意:部分源程序在文件PROG1.C中。
請勿改動主函數(shù)main和其它函數(shù)中的任何內(nèi)容, 僅在函數(shù)fun的花括號中填入你編寫的若干語句。
給定源程序:
#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 < n ; i++) printf("%3d",a[i]);printf("\n\n");
NONO();
}
void NONO ()
{/* 請?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測試數(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, k ;
for(i = 0 ; i < mm ; i++)
for(j = 0 ; j < nn ; j++) {
k = i * nn + j ;
b[k] = s[i][j] ;
}
*n = mm * 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 ;
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 < n ; i++) printf("%3d",a[i]);printf("\n\n") ;
NONO() ;
}
相關(guān)推薦:2011年計(jì)算機(jī)等級考試二級C語言上機(jī)題庫
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |