请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#define N 20
void fun(int *a)
{int i, x, n=0;
x=rand() ;
/**********found**********/
while (n<__1__)
{for(i=0; i /**********found**********/ if(x==a[i]) __2__; /**********found**********/ if(i==__3__){a[n]=x; n++;} x=rand() ; } } main() {int x[N]={0} ,i; fun(x); printf("The result : \n"); for(i=0; i {printf("M",x[i]); if((i+1)%5==0)printf("\n"); } printf("\n\n"); } 解题答案: /**********第一空**********/ while (n /**********第二空**********/ if(x==a[i]) break; /**********第三空*********/ if(i==n){a[n]=x; n++;} ****************************************** [NextPage] 二、改错题:给定程序MODI1.C中函数fun的功能是: 先从键盘上输入一个3行3列矩阵的各个元素的值, 然后输出主对角线元素之和。 请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include void fun() { int a[3][3],sum; int i,j; /*********found**********/ ______; printf("Input data:"); for (i=0;i<3;i++) {for (j=0;j<3;j++) /*********found**********/ scanf("%d",a[i][j]); } for (i=0;i<3;i++) sum=sum+a[i][i]; printf("Sum=%d\n",sum); } main() { fun(); } 解题答案: /*********found**********/ sum=0;5 /*********found**********/ scanf("%d,",&a[i][j]);} ****************************************** [NextPage] 三、程序题:编写程序, 实现矩阵(3行3列)的转置(即行列互换) 例如, 输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include void fun(int array[3][3]) { } main() { int i,j;void NONO (); int array[3][3]={{100,200,300},{400,500,600},{700,800,900}}; for (i=0;i<3;i++) {for (j=0;j<3;j++) printf("}",array[i][j]); printf("\n"); } fun(array); printf("Converted array:\n"); for (i=0;i<3;i++) {for (j=0;j<3;j++) printf("}",array[i][j]); printf("\n"); } NONO(); } void NONO () { /* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */ int i,j, array[3][3]; FILE *rf, *wf ; rf = fopen("in.dat","r"); wf = fopen("out.dat","w"); for (i=0;i<3;i++) for (j=0;j<3;j++) fscanf(rf, "%d", &array[i][j]); fun(array); for (i=0;i<3;i++) {for (j=0;j<3;j++) fprintf(wf, "}", array[i][j]); fprintf(wf, "\n"); } fclose(rf); fclose(wf); } 参考答案: int fun(int array[3][3]) { int i,j,arr[3][3] ; memcpy(arr, array, 9*sizeof(int)) ; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < 3 ; j++) array[i][j] = arr[j][i] ; }
| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|