文档库 最新最全的文档下载
当前位置:文档库 › 习题3

习题3

1.分析并写出下列程序运行的结果。
(1)
#include
main()
{
int a = 12, b = 3;
float x = 18.5,y = 4.6;
printf("%d\n",float(a*b)/2);
printf("%d\n",(int)x %(int)y);
}
——运行结果:
0
2
(2)
#include
main()
{
int x = 32, y = 81,p,q;
p = x++;
q = --y;
printf("%d %d\n",p,q);
printf("%d %d\n",x,y);
}
——运行结果:
32 80
33 80

2参考例一程序,从键盘任意输入一个3位整数,编程计算输出它的逆序数(忽略整数前的正负号)。
例如,输入-123,则负略负号,由123分离出其百位1、十位2、个位3,然后计算3*100+2*10+1=321,并输出321.

——答案:
#include
#include
main()
{
int m,n,a,b,c; /*定义变量*/
printf("input m:"); /*提示用户输入值*/
scanf("%d",&m); /*数据读取*/
m=fabs(m); /*用fabs()/*定义m的绝对值*/
a=m / 100;
b=(m-a*100) / 10;
c=m-a*100-b*10;
n=c*100+b*10+a;
printf("n=%d*100+%d*10+%d=%d",c,b,a,n);
}

3.设银行定期存款的年利率rate为2.25%,已知存款期为n年,存款本金为captial元,试编程计算并输出n年后的本利之和deposit。
————这里的本金、存款期由用户输入
————程序如下:
#include
#include
main()
{
float rate,n,captial,deposit;
double m;
printf("input captial,years");
scanf("%f,%f",&captial,&n);
rate=1.025;
m=pow(rate,n);
deposit=captial*m;
printf("deposit=%f",deposit);
}

4编程计算并输出一元二次方程ax2+bx+c=0的两个实根,-b+-sqrt(b*b-4ac)/2a,其中a,b,c的值由用户输入,假设a,b,c的值能保证
方程有两个不相等的实根(即b*b-4ac>0)
——程序如下
#include
#include"math.h"
main()
{
float a,b,c,m,n;
float x1,x2;
printf("input a,b,c then Calculate ax2+bx+c=0\n");
scanf("%f,%f,%f",&a,&b,&c);

if(b*b-4*a*c<=0)
{
printf("input data error");
}

if(b*b-4*a*c>0)
{

n=sqrt(b*b-4*a*c);
x1=(-b+n)/2*a;
x2=(-b-n)/2*a;
printf("x1=%f\nx2=%f",x1,x2);
}


}

____________________________________________________实验题_____________________________________________
参考教材3.4和3.5程序,分别使用宏定义和const常量定义PI的值,编程计算并输出球的体积和表面积,球的半径r
的值由用户输入。
实验目的:熟悉简单的算术运算、宏定义和const常量的使用。
————程序如下:
#include
const double PI=3.014159;
main()
{
int r;
float v,area;
printf("inout r");
scanf("%d",&r);
v=(4/3)*PI*r*r*r;
area=(4/3)*PI*r*r;
printf("v=%f\narea=%f",v,area);

}

相关文档