C语言题目的几道问题

关于填空改错设计的问题,总共有十八道。百度一次不能发太多,我会分几次发上来,争取每次都把分满上,答得好还有加分。

/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

题目:以下函数用于求一个2*3矩阵中的最小元素值。

-------------------------------------------------------*/
minvalue(array)
int array[ ][3];
{
int i, j, min;
min=array[0][0];
for(i=0; i<2 ; i++)
for(j=0; j<3; j++)
/***********SPACE***********/
if(【?】)
/***********SPACE***********/
【?】;
return min;
}
main()
{
int a[2][3]={1,3,4,5,8,9},s;
s=minvalue(a);
printf("s=%d",s);
}

/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

功能:计算并输出high以内最大的10个素数之和,high由主函数传
给fun函数,若high的值为100,则函数的值为732。

-------------------------------------------------------*/
#include "stdio.h"
#include "math.h"
int fun( int high )
{
int sum = 0, n=0, j, yes;
/***********SPACE***********/
while ((high >= 2) && (【?】))
{
yes = 1;
for (j=2; j<=high/2; j++ )
/***********SPACE***********/
if (【?】)
{
yes=0;
break;
}
if (yes)
{
sum +=high;
n++;
}
high--;
}
/***********SPACE***********/
【?】;
}

main ( )
{
printf("%d\n", fun (100));
}

/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:求1到20的阶乘的和。

------------------------------------------------------*/
#include "stdio.h"
void fun()
{
int n,j;
float s=0.0,t=1.0;
for(n=1;n<=20;n++)
{
/**********FOUND**********/
s=1;
for(j=1;j<=n;j++)
/**********FOUND**********/
t=t*n;
/**********FOUND**********/
s+t=s;
}
/**********FOUND**********/
printf("jiecheng=%d\n",s);
}

main()
{
fun();
}

/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

题目:该函数用于交换两个变量的值。

--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include "stdio.h"
void change(int *pa,int *pb)
{
int temp;
/**********FOUND**********/
*temp=pa;
*pa=*pb;
*pb=temp;
}

main()
{ int x, y;
x=10; y=20;
/**********FOUND**********/
change(x,y);
printf("%d %d", x, y);
}

第1个回答  2010-03-24
*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

题目:以下函数用于求一个2*3矩阵中的最小元素值。

-------------------------------------------------------*/
minvalue(array)
int array[ ][3];
{
int i, j, min;
min=array[0][0];
for(i=0; i<2 ; i++)
for(j=0; j<3; j++)
/***********SPACE***********/
if(array[i][j+1]<array[i][j])
/***********SPACE***********/
min=array[i][j+1];
return min;
}
main()
{
int a[2][3]={1,3,4,5,8,9},s;
s=minvalue(a);
printf("s=%d",s);
}

/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------

功能:计算并输出high以内最大的10个素数之和,high由主函数传
给fun函数,若high的值为100,则函数的值为732。

-------------------------------------------------------*/
#include "stdio.h"
#include "math.h"
int fun( int high )
{
int sum = 0, n=0, j, yes;
/***********SPACE***********/
while ((high >= 2) && (n < 10))
{
yes = 1;
for (j=2; j<=high/2; j++ )
/***********SPACE***********/
if ((high % j) == 0)
{
yes=0;
break;
}
if (yes)
{
sum +=high;
n++;
}
high--;
}
/***********SPACE***********/
return sum;
}

main ( )
{
printf("%d\n", fun (100));
}

/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

功能:求1到20的阶乘的和。

------------------------------------------------------*/
#include "stdio.h"
void fun()
{
int n,j;
float s=0.0,t=1.0;
for(n=1;n<=20;n++)
{
/**********FOUND**********/
s=1;//去掉【修改】
for(j=1;j<=n;j++)
/**********FOUND**********/
t=t*n;
/**********FOUND**********/
s+t=s;//s+=t;【修改】
}
/**********FOUND**********/
printf("jiecheng=%d\n",s);
}

main()
{
fun();
}

/*------------------------------------------------------
【程序改错】
--------------------------------------------------------

题目:该函数用于交换两个变量的值。

--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include "stdio.h"
void change(int *pa,int *pb)
{
int temp;
/**********FOUND**********/
*temp=pa;//temp = *pa;【修改】
*pa=*pb;
*pb=temp;
}

main()
{ int x, y;
x=10; y=20;
/**********FOUND**********/
change(x,y);//change(&x,&y);【修改】
printf("%d %d", x, y);
}
第2个回答  2010-03-24
填空
第一题:
1.array[i][j]<min
2.min=array[i][j]
第二题:
1.(没想出来)
2.high%j==0
3.return sum
改错
第一题:
1.s=1应该放在第一个for前边
2.s+t=s;应该改成s+=t;
第二题:
1.*temp=pa;应该改成temp=*pa;2.该函数接受为指针变量,可是x,y定义为普通的整型变量,我觉得这个应该也有问题,要改就得从x,y定义开始改,都改成指针变量
第3个回答  2010-03-24
1、
if(array[i][j]<min)
min=array[i][j];
2、
while ((high >= 2) && (high%2))
if (high%j==0)
return sum;
3、
float s=0.0,t=1.0;
改 long s=0,t=0;
s=1;去掉
s+t=s;
改: s+=t;
4、
*temp=pa;
改: temp=*pa;
change(x,y);
改: change(&x,&y);

解释就不写了
不明白的话
百度hi 我吧
[email protected]
第4个回答  2010-03-24
1.
min > a[i][j]
min = a[i][j]
2.
n < 10
high % j == 0
return sum
3.
s=1;
for(j=1;j<=n;j++)
t=t*n;
s+t=s;
改成
t=1;
for(j=1;j<=n;j++)
t=t*n;
s=s+t;
4.
改成
#include "stdio.h"
void change(int *pa,int *pb)
{
int temp;
temp=pa;//去掉*
*pa=*pb;
*pb=temp;
}

main()
{ int x, y;
x=10; y=20;
change(&x,&y);//参数是地址
printf("%d %d", x, y);
}
第5个回答  2010-03-24
程序填空1. min>array[i][j] min=array[i][j]
2.n<10 high%j==0 return sum
程序改错1.t=1 t=t*j s+=t printf("jiecheng=%f\n",s)
2.*temp=*pa change(&x,&y);本回答被提问者采纳