自考“高級(jí)語(yǔ)言程序設(shè)計(jì)”習(xí)題答案詳解(37)

  • 發(fā)布時(shí)間:2024-09-15 16:21:23
  • 來(lái)源:本站整理
  • 閱讀:
導(dǎo)讀:
  6.4 程序設(shè)計(jì)題
  1.編一個(gè)名為root的函數(shù),求方程ax*x + bx + c=0的b*b-4ac,并作為函數(shù)的返回值。其中的a、b、c作為函數(shù)的形式參數(shù)。
  「解」該函數(shù)應(yīng)設(shè)3個(gè)形參,分別表示一元二次方程的三個(gè)系數(shù)。函數(shù)按公式求出結(jié)果返回即可:
  double root(double a,double b,double c)
  {&#3

6.4 程序設(shè)計(jì)題

1.編一個(gè)名為root的函數(shù),求方程ax*x + bx + c=0的b*b-4ac,并作為函數(shù)的返回值。其中的a、b、c作為函數(shù)的形式參數(shù)。

「解」該函數(shù)應(yīng)設(shè)3個(gè)形參,分別表示一元二次方程的三個(gè)系數(shù)。函數(shù)按公式求出結(jié)果返回即可:

double root(double a,double b,double c)

{ return b*b+4.0*a*c;

}

2.編一個(gè)函數(shù),若參數(shù)y為閏年,則返回1;否則返回0.

「解」由每四年一個(gè)閏年,但每100年少一個(gè)閏年,每400年又增加一個(gè)閏年的約定。記年份為y,則y年是閏年的條件是:

(y能被4整除,但不能被100整除)或(y能被400整除)

用邏輯表達(dá)式可描述如下:

(y%4==0 y0) ||y@0==0

寫(xiě)成函數(shù)為:

int isLeap(int y)

{ return( y% 4==0 y% 100) || y@0== 0;

}

3.編一個(gè)無(wú)返回值,名為root2的函數(shù),要求如下:

形式參數(shù): a,b,c單精度實(shí)型,root單精度實(shí)型數(shù)組名。

功能:計(jì)算ax*x +bx+c=0的兩個(gè)實(shí)根(設(shè)b*b-4ac 0)存入數(shù)組root[2]中。

「解」函數(shù)根據(jù)形參。a,b,c的值,首先計(jì)算d=b*b-4*a*c.考慮到實(shí)數(shù)運(yùn)算時(shí)的計(jì)算誤差,兩個(gè)幾乎相等的數(shù)相減有效位數(shù)也幾乎全部丟失的情況,應(yīng)先求出絕對(duì)值大的根,然后利用報(bào)與系數(shù)之間的關(guān)系,再求絕對(duì)值小的根。函數(shù)定義如下:

void root2( float a,float b,float c, float root[])

{ float re,im,d=b*b-4.0*a*c;/*求判別式*/

re=-b/(2.0*);

if(d =0.0) { /*有兩個(gè)實(shí)根,先求絕對(duì)值大的根*/

im=(float)sqrt((double)d)/(2.0*a) ;

root[0] =re+(b 0.0? im:-im);

root[1]=c/(a*root[0]);

}

}

4.編一個(gè)無(wú)返回值,名為trus的函數(shù),要求如下:

形式參數(shù):數(shù)組s1[2][3]和s2[3][2] 是整型數(shù)組。

功能:將s1數(shù)組轉(zhuǎn)置后存入s2數(shù)組中。

「解」為實(shí)現(xiàn)問(wèn)題要求,可用兩重循環(huán),按行按列的順序遍歷數(shù)組s1的元素,將它們分別復(fù)制到數(shù)組s2的對(duì)位位置即可。

void trus(int sl[][3], int s2[][2])

{ int i,j ;

for(i=0; i 2; i++)

for(j= 0;j 3; j++)

s2[j] =s1[j];

}

相關(guān)閱讀

熱門(mén)標(biāo)簽

關(guān)于自考“高級(jí)語(yǔ)言程序設(shè)計(jì)”習(xí)題答案詳解(37)文章

2021年自學(xué)考試報(bào)考入口 2021年自學(xué)考試報(bào)考入口

熱門(mén)文章