例如,有下列矩阵:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
若k为2,程序执行结果为
3 4 5 1 2
3 4 5 1 2
3 4 5 1 2
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define M 3
#define N 5
void fun(int (*a)[N],int k)
{int i,j,p,temp;
/**********found**********/
for(p=1; p<= __1__; p++)
for(i=0; i {temp=a[i][0]; /**********found**********/ for(j=0; j< __2__ ; j++) a[i][j]=a[i][j+1]; /**********found**********/ a[i][N-1]= __3__; } } main() {int x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j; printf("The array before moving:\n\n"); for(i=0; i {for(j=0; j printf("\n"); } fun(x,2); printf("The array after moving:\n\n"); for(i=0; i {for(j=0; j printf("\n"); } } 解题答案: /**********第一空**********/ for(p=1; p<= k; p++) /**********第二空**********/ for(j=0; j< N-1 ; j++) } ****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数fun的功能是:根据形参m的值(2≤m≤9〕,在m行m 列的二维数组中存放如下所示规律的数据,由main函数输出。 例如,若输入 2 | 若输入 4 则输出: | 则输出: 1 2 | 1 2 3 4 2 4 | 2 4 6 8 | 3 6 9 12 | 4 8 12 16 请改正程序函数中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #define M 10 int a[M][M] = {0} ; /**************found**************/ void fun(int **a, int m) {int j, k ; for (j = 0 ; j < m ; j++) for (k = 0 ; k < m ; k++) /**************found**************/ a[j][k] = k * j ; } main () {int i, j, n ; printf (" Enter n : "); scanf ("%d", &n); fun (a, n); for (i = 0 ; i < n ; i++) {for (j = 0 ; j < n ; j++) printf ("M", a[i][j]); printf ("\n"); } } 解题答案: /**************found**************/ void fun(int a[][M], int m) /**************found**************/ a[j][k]=(k+1)*(j+1); ****************************************** [NextPage] 三、程序题:函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c 中。合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。 例如,当a=45,b=12。调用该函数后,c=5241。 注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include void fun(int a, int b, long *c) { } main() {int a,b; long c;void NONO (); printf("Input a, b:"); scanf("%d%d", &a, &b); fun(a, b, &c); printf("The result is: %ld\n", c); NONO(); } void NONO () {/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf, *wf ; int i, a,b ; long c ; rf = fopen("in.dat","r"); wf = fopen("out.dat","w"); for(i = 0 ; i < 10 ; i++) { fscanf(rf, "%d,%d", &a, &b); fun(a, b, &c); fprintf(wf, "a=%d,b=%d,c=%ld\n", a, b, c); } fclose(rf); fclose(wf); } 参考答案: void fun(int a, int b, long *c) { *c=(a)*1000+(b)*100+(a/10)*10+(b/10); }
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|