第五次课堂作业

来源:互联网 发布:手机视频制作软件排名 编辑:程序博客网 时间:2024/04/27 18:56

NO 1

    1.1C语言标准库的目的是什么?编写一个小程序,说明如何使用标准库里的数学函数;

        C语言标准库的目的就是实现了一些常用的子程序功能,方便编程人员直接使用。


 

#include<stdio.h>#include<math.h>void main(){double a,b;printf("请输入一个数字求平方\n");scanf("%lf",&a);b=pow(a,2);printf("b=%lf",b);}


 

作业1.2:用一个程序计算下面两个表达式的值;
.

#include<stdio.h>#include<math.h>void main(){double a,b,c,d;a=234.00/(1.00+257.00);b=1065.00/(24.00+13.00);                       //数字计算要转换成相应类型c=log(sqrt(2.00*3.14))/log(5.00);      d=exp(sqrt(3.14+1.00));    printf("a=%lf,b=%lf,c=%lf,d=%lf",a,b,c,d);}


 

 

NO 2


 

#include<stdio.h>#include<math.h>void main(){int a,i,sum;char ch='Y';loop1:printf("请输入一个整数\n");    scanf_s("%d",&a);if(a>0){for(i=0,sum=0;i<=a;i++){sum=sum+i;}printf("sum=%d\n",sum);}else{for(i=0,sum=0;i>=a;i--){sum=sum+i;}printf("sum=%d\n",sum);}printf("是否继续:Y OR N\n");getchar();ch=getchar();if(ch=='Y')goto loop1;}

 

 

NO 3

作业3.1:下面例子有两个if,请说明 else 部分属于哪个 if ? 为什么?
if (x > 0)
if (y > 1) z = 1;
else z = 2; 

  

 

else属于第二个if..就近原则。

作业3.2:


 

if (x > 0) {if (y > 1) z = 1; else z = 2;}


NO 4

    请根据你对循环的理解,在一个程序中先写一段while循环代码;再用for语句重写“while循环”代码;


 

#include<stdio.h>#include<math.h>void main(){int a=0,sum=0;while(a<=10){sum=sum+a;a++;}printf("sum=%d\n",sum);for(;a<=10;a++)sum=sum+a;printf("sum=%d\n",sum);}


 

 

NO 5

  作业5.1:定义一个计算圆面积的函数,并在主函数中调用两次,从而分别计算两个不同圆的面积;

#include<stdio.h>#include<math.h>double area(double x);void main(){double a,b;printf("请输入俩个圆半径\n");scanf("%lf %lf",&a,&b);printf("a=%lf\nb=%lf\n",area(a),area(b));}                                                               //被调函数的值要返回主函数。要定义一个新参数 double area(double x){x=3.14*pow(x,2);return x;}


 

 

作业5.2:下面的例子程序可以正常通过编译,但执行时却得不到正确结果。也就是说,这个程序有语义错误。为什么呢?

#include <stdio.h>    #include <math.h>    int main () {       printf("%f\n", sin(1) + sin(1/2) + sin(1/3) + sin (1/4) );       return 0;   } 


主函数定义输出整形,实际上是单精度型。

 

作业6:定义一个三角形面积函数,在主函数中调用5次,要求程序运行类似下图:

#include <stdio.h>      #include <math.h>      double area(double x,double y,double z); double area(double x,double y,double z){double s;s=x*y*sin(z/180.00*3.14)/2.00;return s;} void main() { int i; double a,b,c,s; for(i=1;i<=5;i++) { printf("请输入第%d组三角形的参数(两边长和双边夹角):",i);  scanf("%lf %lf %lf",&a,&b,&c); s=area(a,b,c); printf("第%d组三角形的实参为:边长A %.2lf  边长B %.2lf  夹角 %.2lf\n",i,a,b,c);               printf("第%d组的面积为:%.2lf\n",i,s);     printf("------------------分割线------------------\n");          }      }