【参考代码】
long int s=0,t=0; int i;
for(i=1;i<=n;i++) { t=t+d; s=s+t; d=d*10; }
return s;
===============
五、程序改错
1./*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
功能:删除 w 数组中下标为k的元素中的值。程序中,调用了 getindex、arrout和arrdel三个函数,getindex用以输入 所删元素的下标,函数中对输入的下标进行检查,若越界, 则要求重新输入,直到正确为止。arrout用以输出数组中 的数据,arrdel进行所要求的删除操作。
------------------------------------------------------*/
#include \#include \#define NUM 10
/**********ERROR**********/ void arrout ( int w, int m ) {
int k;
/**********ERROR**********/ for (k = 1; k < m; k++)
/**********ERROR**********/ printf (\ printf (\}
int arrdel ( int *w, int n, int k ) {
int i;
for ( i = k; i < n-1; i++ ) w[i] = w[i+1]; n--;
return n; }
int getindex( int n ) { int i; do
{ printf(\scanf (\
} while( i < 0 || i > n-1 ); return i; }
main( )
{ int n, d, a[NUM]={21,22,23,24,25,26,27,28,29,30}; n = NUM;
printf (\d = getindex( n ); n = arrdel ( a, n, d );
printf (\}
【改错1】 【参考答案】
void arrout ( int *w, int m ) void arrout ( int w[], int m )
============================================================
【改错2】 【参考答案】
for (k = 0; k < m; k++)
============================================================
【改错3】 【参考答案】
printf (\
============================================================
2 /*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:编写函数fun生成一个对角线元素为5,上三角元素为0, 下三角元素为1的3*3的二维数组。
------------------------------------------------------*/
#include \void fun(int arr[][3]) {
/**********ERROR**********/ int i,j
/**********ERROR**********/ for(i=1;i<3;i++) for(j=0;j<3;j++)
/**********ERROR**********/ if(i=j)
arr[i][j]=5; else if(j>i) arr[i][j]=0; else
arr[i][j]=1; }
main() {
int a[3][3],i,j; fun(a);
for(i=0;i<3;i++) {
for(j=0;j<3;j++)
printf(\ printf(\ } }
【改错1】 【参考答案】 int i,j;
============================================================
【改错2】 【参考答案】
for(i=0;i<3;i++)
============================================================
【改错3】 【参考答案】 if(i==j)
============================================================
六、程序填空
1./*------------------------------------------------------- 【程序填空】
---------------------------------------------------------
功能:函数fun的功能是:有N×N矩阵,以主对角线为对称线, 对称元素相加并将结果存放在左下三角元素中,右上三角 元素置为0。请用下标法访问数组元素。 例如:若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9
计算结果为 1 0 0 6 5 0 10 14 9
注意:请在下划线处填入正确的内容并把下划线删除。 不得增行或删行,也不得更改程序的结构! -------------------------------------------------------*/ #include
void fun(int (*t)[N]) {
int i,j;
for(i=1;i /***********FILL***********/ for(j=0;_______;j++) { /***********FILL***********/ _________=t[i][j]+t[j][i]; /***********FILL***********/ _________=0; } } } main() { int t[][N]={1,2,3,4,5,6,7,8,9},i,j; printf(\ for(i=0;i for(j=0;j fun(t); printf(\ for(i=0;i for(j=0;j 【空1】 【参考答案】 jj ============================================================ 【空2】 【参考答案】 t[i][j]=t[i][j]+t[j][i]; ============================================================ 【空3】 【参考答案】 t[j][i] ============================================================ 2./*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:根据整型参数m,计算如下公式的值