NO 1
1.1:C语言标准库的目的是什么?编写一个小程序,说明如何使用标准库里的数学函数;
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");
}
}