当前位置: 首页 > 自学考试 > 自学考试模拟试题 > 2013自考“高级语言程序设计”习题答案详解(37)

2013自考“高级语言程序设计”习题答案详解(37)

更新时间:2012-12-06 09:49:53 来源:|0 浏览0收藏0

自学考试报名、考试、查分时间 免费短信提醒

地区

获取验证 立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

  6.4 程序设计题

  1.编一个名为root的函数,求方程ax*x + bx + c=0的b*b-4ac,并作为函数的返回值。其中的a、b、c作为函数的形式参数。

  「解」该函数应设3个形参,分别表示一元二次方程的三个系数。函数按公式求出结果返回即可:

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

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

  }

  2.编一个函数,若参数y为闰年,则返回1;否则返回0.

  「解」由每四年一个闰年,但每100年少一个闰年,每400年又增加一个闰年的约定。记年份为y,则y年是闰年的条件是:

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

  用逻辑表达式可描述如下:

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

  写成函数为:

  int isLeap(int y)

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

  }

  3.编一个无返回值,名为root2的函数,要求如下:

  形式参数: a,b,c单精度实型,root单精度实型数组名。

  功能:计算ax*x +bx+c=0的两个实根(设b*b-4ac> 0)存入数组root[2]中。

  「解」函数根据形参。a,b,c的值,首先计算d=b*b-4*a*c.考虑到实数运算时的计算误差,两个几乎相等的数相减有效位数也几乎全部丢失的情况,应先求出绝对值大的根,然后利用报与系数之间的关系,再求绝对值小的根。函数定义如下:

  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) { /*有两个实根,先求绝对值大的根*/

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

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

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

  }

  }

  4.编一个无返回值,名为trus的函数,要求如下:

  形式参数:数组s1[2][3]和s2[3][2] 是整型数组。

  功能:将s1数组转置后存入s2数组中。

  「解」为实现问题要求,可用两重循环,按行按列的顺序遍历数组s1的元素,将它们分别复制到数组s2的对位位置即可。

  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];

  }

?2013年高教自考网络辅导课程招生简章

?2013年1月自考报名 

更多信息请访问:自学考试频道    自学考试论坛

分享到: 编辑:环球网校

资料下载 精选课程 老师直播 真题练习

自学考试资格查询

自学考试历年真题下载 更多

自学考试每日一练 打卡日历

0
累计打卡
0
打卡人数
去打卡

预计用时3分钟

自学考试各地入口
环球网校移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载

返回顶部