计算机二级考试

解析:请编写函数fun(),该函数的功能是将M行N列的二维数组中的数据,按列

来源:网考网计算机二级 所有评论

【分析解答题】请编写函数fun(),该函数的功能是将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。 例如:二维数组中的数据为 33333333 44444444 55555555 则一维数组中的内容应是 334455334455334455334455。 注意:部分源程序以存在文件test_2.cpp中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 文件test39_2.cpp的内容如下: #include<stdio.h> #include<iostream.h> void fun(int(*s) [10],int *b, int *n,int mm,int nn) { } void 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; cout<<"The matrix:\n" for(i=0; i<3; i++) { for(j=0; j<4; j++ cout<<w[i] [j]; cout<<endl; } fun(w, a, &n, 3, 4); cout<<"The
A、array:\n"; for(i=0; i<n; i++) cout<<a[i]; cout<<"\n\n"; }
网考网解析:
试题答案: 答案解析:void fun (int(*s)[10],int *b, int *n, int mm, int nn) { int i,j; for(j=0;j<nn;j++) for(i=0;i<mm;i++) {b[*n]=*(*(s+i)+j);*n=*n+1; } } [解析] 一个二维数组的存储可以理解为按行进行存储的—个—维数组,但本题中的二维数组要求按列进行存储。根据在主函数中的调用情况,可以看出,指针数组s[10]实质上是用来存放二维数组中各行的首地址,b是用来存放最终二维数组按列处理完毕后的一个一维数组,第3个参数之所以要用“&n”,目的是为了能在函数中直接改变其值。 document.getElementById("warp").style.display="none"; document.getElementById("content").style.display="block"; 查看试题解析出处>>

相关推荐

发布评论 查看全部评论