給定程序MODI1.C中函數(shù)fun的功能是: 交換主函數(shù)中兩個變量的值。例如: 若變量a中的值原為8,b中的值為3。程序運(yùn)行后a中的值為3, b中的值為8。
請改正程序中的錯誤, 使它能計(jì)算出正確的結(jié)果。
注意: 不要改動 main 函數(shù), 不得增行或刪行, 也不得更改程序的結(jié)構(gòu)!
給定源程序:
#include
int fun(int x,int y)
{
int t;
t=x;x=y;y=t;
}
main()
{
int a,b;
a=8;b=3;
fun(&a,&b);
printf("%d, %d\n",a,b);
}
解題思路:
第一處:函數(shù)形參定義不正確,在定義第2個形參時(shí),也應(yīng)加上int。由于通過該函數(shù)實(shí)現(xiàn)兩數(shù)交換,在C語言中,必須交換地址中的值,所以應(yīng)定義為int *x,int *y。
第二處:要交換地址中的值,不能交換地址,必須指定地址中的值,因此應(yīng)改為
t=*x;*x=*y;*y=t;。
***************************************************
相關(guān)推薦:
2014計(jì)算機(jī)二級C語言知識點(diǎn)復(fù)習(xí)匯總
2014年9月計(jì)算機(jī)二級《C語言》模擬試題匯總
2014年計(jì)算機(jī)二級C語言考試上機(jī)沖刺試題及答案集