C语言机试模拟试题
一、改错题:(30分)
1、求一维数组a中的值为偶数的元素之和。
#include
sum ( int arr[ ],int n )
{ int i,s;
s = 0;
for ( i=0; i
if (arr[i] % 2 == 0)
/************found************/
s=s+i;改为:s = s + arr[i];
return (s);
}
void main()
{ int a[10]={10,4,2,7,3,12,5,34,5,9},i,s;
/************found************/
s = sum( a ,2 ); 改为:s = sum( a ,10 );
printf("The result is: %d\n", s);
}
2、求一维数组a中的值为奇数的元素之和。
#include
#include
int sum( int b[ ],int n )
{ int i,s = 0;
for ( i=0; i
if (b[i] % 2 == 1)
/************found************/
s = s + b[i] 改为:
return (s);
}
void main()
{ int a[12]={10,4,2,7,3,12,5,34,5,9,21,19},n;
/************found************/
n = sum(a,2); 改为:
printf("The result is :%d\n",n );
}
3、求二维数组a中的最大值和最小值。
#include
void main()
{ int a[3][3]={4,4,34,37,3,12,5,6,5},i,j,max,min;
//clrscr();
max = min = a[0][0];
for ( i=0; i<3; i++)
/************found************/
for ( j=1; j<3; j++)改为:for ( j=0; j<3; j++)
{ if ( max < a[i][j] )
max = a[i][j];
/************found************/
if (min < a[i][j]) 改为:if (min > a[i][j])
min = a[i][j];
}
printf("The max is: %d\n", max);
printf("The min is: %d\n", min);
}
4、求一维数组a中的最大元素及其下标。
#include
void main()
{ int a[10]={1,4,2,7,3,12,5,34,5,9},i,max,pos;
//clrscr();
max = a[0];
pos = 0;
for ( i=1; i<10; i++)
/************found************/
if (max > a[i]) 改为:if (max< a[i])
{
max = a[i];
/************found************/
i = pos; 改为:pos = i;
}
printf("The max is: %d ,pos is: %d\n", max , pos);
}
5、猴子吃桃的问题,求第一天的桃子数。
#include
#include
void main()
{ int i,j,x,p;
//clrscr();
x=1;
/************found************/
j=12; 改为:j=11;
while(j>=1)
{ p=(x+1)*2;
/************found************/
p=x; 改为:x = p;
j--;
}
printf("