显示序号:5
题号:253
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:输入10个数,要求输出这10个数的平均值
------------------------------------------------------*/
float average(float array[10])
{
int i;
float aver,sum=array[0];
/***********FOUND***********/
for(i=0;i<10;i++)
sum=sum+array[i];
aver=sum/10.0;
return(aver);
}
main( )
{
/***********FOUND***********/
int score[10],aver ;
int i;
printf("input 10 scores:\n");
for(i=0;i<10;i++)
/***********FOUND***********/
scanf("%f", score);
printf("\n");
/***********FOUND***********/
aver=average(score[10]);
printf("average score is %5.2f",aver);
}
答案:
1). for(i=1;i<10;i++) 或for(i=1;i<=9;i++)
2). float score[10],aver; 或float aver,score[10];
3). scanf("%f", &score[i]); 或scanf("%f", score+i);
4). aver=average(score);
显示序号:6
题号:258
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:判断整数x是否是同构数。若是同购数,函数返回1;否则返回0。说明:所谓“同构数”是指这个数出现在它的平方数的右边。
例如:输入整数25,25的平方数是625,25是625中右侧的数,所以25是同构数。
注意:x的值由主函数从键盘读入,要求不大于1000。
------------------------------------------------------*/
#include "stdio.h"
int fun(int x)
{
/**********FOUND**********/
int k
/**********FOUND**********/
k=x;
/**********FOUND**********/
if((k%10==x)&&(k%100==x)&&(k%1000==x))
return 1;
else
return 0;
}
main()
{
int x,y;
clrscr();
printf("\nPlease enter a integer numbers:");
scanf("%d",&x);
if(x>100){printf("data error!\n");exit(0);}
y=fun(x);
if(y)
printf("%d YES\n",x);
else
printf("%d NO\n",x);
getch();
答案:
1). int k;
2). k=x*x;
3). if((k%10==x)||(k%100==x)||(k%1000==x))
显示序号:7
题号:352
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:根据整型形参m,计算如下公式的值:y=1+1/3+1/5+1/7+...+1/(2m-1)
------------------------------------------------------*/
#include "stdio.h"
double fun(int m)
{
/**********FOUND**********/
double y=1
int i;
/**********FOUND**********/
for(i=2; i/**********FOUND**********/
y+=1.0/(2i-1);
return(y);
}
main()
{
int n;
clrscr();
printf("Enter n: ");
scanf("%d", &n);
printf("\nThe result is %1f\n", fun(n));
getch();
}
答案:
1). double y=1;
2). for(i=1; i<=m; i++)
3). y+=1.0/(2*i-3);
显示序号:8
题号:355
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。------------------------------------------------------*/
#include
#include
int fun(int m)
{
/**********FOUND**********/
int i;k;
for(i=m+1;;i++)
{
for(k=2;k
/**********FOUND**********/
if(i%k!=0)
break;
/**********FOUND**********/
if(k=i)
return(i);
}
}
main()
{
int n;
clrscr();
printf("\nPlease enter n:");
scanf("%d",&n);
printf("%d\n",fun(n));
getch();
}
答案:
1). int i,k; 或int i; int k; 或int k,i; 或int k; int i;
2). if(i%k==0) 或if(!(i%k))
3). if(k==i) 或if(i==k)
显示序号:9
题号:364
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:用选择法对数组中的n个元素按从小到大的顺序进行排序。------------------------------------------------------*/
#include
#define N 20
void fun(int a[], int n)
{
int i, j, t, p;
for (j = 0 ;j < n-1 ;j++)
{
/**********FOUND**********/
p = j
for (i = j;i < n; i++)
/**********FOUND**********/
if(a[i] >a[p])
/**********FOUND**********/
p=j;
t = a[p] ;
a[p] = a[j] ;
a[j] = t;
}
}
main()
{
int a[N]={9,6,8,3,-1},i, m = 5;
printf("排序前的数据:") ;
for(i = 0;i < m;i++)
printf("%d ",a[i]);
printf("\n");
fun(a,m);
printf("排序后的数据:") ;
for(i = 0;i < m;i++)
printf("%d ",a[i]);
printf("\n");
getch();
}
答案:
1). p = j;
2). if(a[i] < a[p]) 或if(a[p] > a[i])
3). p = i;
显示序号:10
题号:367
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:用插入排序法将n个字符进行排序(降序)。
提示:插入法排序的思路是:先对数组的头两个元素进行排序,然后根据前两个元素的情况插入第三个元素,再插入第
四个元素…)。
------------------------------------------------------*/
#define N 81
#include
#include
void fun(char *aa, int n)
{
/**********FOUND**********/
int a ,b;t;
for( a = 1; a{
t = aa[a]; b = a-1;
/**********FOUND**********/
while((b>=0) and (t>aa[b]))
{
aa[b+1]=aa[b]; b--; }
/**********FOUND**********/
aa[b+1] = t
}
}
main()
{ char a[N];
int i;
printf("\nEnter a string: ");gets( a);
fun(a , strlen(a));
printf("\nThe string: ");puts(a);
}
答案:
1). int a ,b,t;
2). while((b>=0)&&(t>aa[b]))
3). aa[b+1]=t;
显示序号:11
题号:374
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:读入一个整数k(2≤k≤10000),打印它的所有质因子(即所有为素数的因子)。
例如:若输入整数:2310,则应输出:2、3、5、7、11。
请改正程序中的语法错误,使程序能得出正确的结果。------------------------------------------------------*/
#include "conio.h"
#include "stdio.h"
/**********FOUND**********/
IsPrime(integer n )
{
int i, m;
m = 1;
for ( i = 2; i < n; i++ )
/**********FOUND**********/
if ( n%i )
{
m = 0;
break;
/**********FOUND**********/
return ( n );
}
main( )
{
int j, k;
clrscr();
printf( "\nPlease enter an integer number between 2 and 10000: " );
scanf( "%d", &k );
printf( "\n\nThe prime factor(s) of %d is( are ):", k );
for( j = 2; j <= k; j++ )
if((!( k%j))&&( IsPrime(j))) printf( "\n %4d", j );
printf("\n");
}
答案:
1). IsPrime(int n)
2). if(!(n%i))
3). return ( m );
显示序号:12
题号:375
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:根据整型形参m,计算某一数据项的值。
y = 1/(100*100)+1/(200*200)+1/(300*300)+ ……+1/(m*m) 例如:若m = 2000,则应输出:0.000160。
------------------------------------------------------*/
#include
#include
/**********FOUND**********/
fun ( int m )
{
double y = 0, d ;
int i ;
/**********FOUND**********/
for( i = 100, i <= m, i += 100 )
{
d = (double)i * (double)i ;
/**********FOUND**********/
y += 1.0 \ d ;
}
return( y ) ;
}
main( )
{
int n = 2000 ;
clrscr( ) ;
printf( "\nThe result is %lf\n", fun ( n ) ) ;
}
答案:
1). double fun ( int m )
2). for( i = 100; i <= m; i += 100 )
3). y += 1.0 / d ;
显示序号:13
题号:376
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:根据整型形参n,计算某一数据项的值。
A[1]=1, A[2]=1/(1 + A[1]), A[3]=1/(1 + A[2]), …,
A[n]=1/(1 + A[n-1])
例如:若n=10,则应输出:a10=0.617977。
------------------------------------------------------*/
#include
#include
/**********FOUND**********/
int fun ( int n )
{
float A=1; int i;
/**********FOUND**********/
for (i=2; i/**********FOUND**********/
A = 1.0\(1+A);
return A ;
}
main( )
{
int n ;
clrscr( ) ;
printf("\nPlease enter n: ") ;
scanf("%d", &n ) ;
printf("A%d=%f\n", n, fun(n) ) ;
}
答案:
1). float fun(int n)
2). for (i=2; i<=n; i++)
3). A = 1.0/(1+A);
显示序号:14
题号:377
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
功能:求广义菲玻那契级数的第n项。广义菲玻那契级数的前n 项为:1,1,1,3,5,9,17,31,……
项值通过函数值返回main ( )函数。
例如:若n = 15,则应输出:The value is: 2209。
------------------------------------------------------*/
#include
#include
long fun ( int n )
{
long a=1, b=1, c=1, d=1, k;
/**********FOUND**********/
for (k=4; k{
d = a+b+c;
/**********FOUND**********/
a=b
b=c;
c=d;
}
/**********FOUND**********/
return k;
}
main( )
{
int n = 15;
clrscr( );
printf( "The value is: %ld\n", fun ( n ) );
}
答案:
1). for (k=4; k<=n; k++)
2). a=b;
3). return d;
显示序号:15
题号:384
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积。
例如:输入圆的半径值:19.527 输出为:s = 598.950017。
------------------------------------------------------*/
#include
#include
/**********FOUND**********/
float fun( r)
{
float s;
/**********FOUND**********/
s=1/2*3.14159* r * r;
/**********FOUND**********/
return r;
}
main()
{
float x;
clrscr( );
printf ( "Enter x: ");
scanf ( "%f", &x );
printf (" s = %f\n ", fun ( x ) );
getch();
}
答案:
1). float fun(float r)
2). s=1.0/2*3.14159* r * r;
3). return s;
显示序号:16
题号:387
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:求出数组中最大数和次最大数,并把最大数和a[0]中的数对调、次最大数和a[1]中的数对调。
------------------------------------------------------*/
#include
#include
#define N 20
int fun ( int * a, int n )
{
int i, m, t, k ;
for(i=0;i<2;i++)
{
/**********FOUND**********/
m=0;
/**********FOUND**********/
for(k=1;k/**********FOUND**********/
if(a[k]>a[m]) k=m;
t=a[i];a[i]=a[m];a[m]=t;
}
}
main( )
{
int x, b[N]={11,5,12,0,3,6,9,7,10,8}, n=10, i;
clrscr( );
for ( i=0; iprintf("\n");
fun ( b, n );
for ( i=0; iprintf("%d ", b[i]);
printf("\n");
}
答案:
1). m=i;
2). for(k=i;k3). if(a[k]>a[m]) m=k;
显示序号:17
题号:392
科目:Turbo C
题型:程序改错
题干:
/*------------------------------------------------------ 【程序改错】
--------------------------------------------------------
功能:根据整型形参m,计算如下公式的值:y=1/2+1/8+1/18+...+1/2m*m
------------------------------------------------------*/
#include "stdio.h"
double fun(int m)
{
/**********FOUND**********/
double y=0
int i;
/**********FOUND**********/
for(i=1; i{