5、 给定程序modi.c中,函数fun的功能是:求出a所指数组中最大数和次最大数(规定最大数和次最大数不在a[0]和a[1]中,依次和a[0]、a[1]中的数对调。
例如数组中原有的数为:7、10、12、0、3、6、9、11、5、8,
输出的结果为:12、11、7、0、3、6、9、10、5、8。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
评析:
本题的考核点是循环语句和常用算法。
本题要求将最大数和a[0]中的数对调,把次最大数和a[1]中的数对调。题目给程序fun函数定义了变量t作为中间元素,因此对调过程应如下:t = a;a = b;b = t;然而fun函数中两次对调均没有形成三角型赋值,是错误的。应该把" t= a[0]; a[m1]=a[0]; a[m1] = t;"语句 和"t= a[1]; a[m2]=a[1]; a[m2] = t;"语句改为"t = a[0]; a[0] = a[m1]; a[m1] = t; "和"t= a[1]; a[1]=a[m2]; a[m2] = t;"语句或相同作用的语句。
本评析仅作参考。
知识点:知识点/C程序修改
答案解析
相关题目
86、以下程序的输出结果是_______。
#define N 20
void fun( )
{ int i;
for( )
a[i+1]=a[i]; }
main( )
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,3,8);
for(i=0;i<6;i++)
printf( ); }
85、以下程序的输出结果是_______。
#define N 20
void fun( )
{ int i;
for( )
a[i+1]=a[i]; }
main( )
{ int i,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a ,2 ,9);
for(i=0;i<5;i++)
printf( ); }
84、以下程序的输出结果是_______。
main()
{ char h[]="america",*q;
q=h+2;
printf( );
printf( );
}
83、以下程序的输出结果是_______。
main()
{ char t[]="student",*p;
p=t+1;
printf( );
printf( );
}
82、以下程序的输出结果是_______。
main()
{ char s[]="159",*p;
p=s;
printf( );
printf( );
}
81、下面程序的输出结果是_______。
main( )
{ extern int m;
m+=2;
f( );
printf( );}
int m=7;
f( )
{ printf( ); m+=m;}
80、下面程序的输出结果是_______。
main( )
{ extern int m;
m-=2;
f( );
printf( );}
int m=7;
f( )
{ printf( ); m+=m;}
79、下面程序的输出结果是_______。
main( )
{ extern int a;
a-=1;
f( );
printf( );}
int a=4;
void f( )
{ printf( ); a+=a;}
78、下面程序的输出结果是_______。
main( )
{ extern int a;
a+=3;
f( );
printf( );}
int a=2;
void f( )
{ printf( ); a+=a;}
77、下面程序的输出结果是_______。
m1( )
{ int y;
y=x*x;
return( );}
m2( )
{ int l;
l=m1( );
return( );}
main( )
{ int p=2,q=4,t;
t=m2( );
printf( );}
