3.1 分析并写出下列程序的运行结果。
//(1)
#include<stdio.h>
main()
{
int a=12,b=3;
float x=18.5,y=4.6;
printf("%f\n",(float)(a*b)/2);
printf("%d\n",(int)x%(int)y);
}
//(2)
#include<stdio.h>
main()
{
int x=32,y=81,p,q;
p=x++;
q=--y;
printf("%d%d\n",p,q);
printf("%d%d\n",x,y);
}
3.2 参考例3.1程序,从键盘任意输入一个3位整数,编程计算机并输出它的逆序数(忽略整数前的正负号)。例如,输入-123,则忽略负号,由123分离出其中百位1、十位2、个位3,然后计算3100+210+1=321,并输出321。
#include<stdio.h>
main()
{
int j,k;
int a,b,c;
printf("请输入一个3位整数 :");
scanf("%d",&j);
a=j/100;
b=j/10%10;
c=j%10;
k=c*100+b*10+a;
printf("%d",k);
}
3.3 设银行定期存款的年利率rate为2.25%,已知存款期为n年,存款本金为capital元,式编程计算并输出n年的本利之和deposit。
#include<stdio.h>
#include<math.h>
main()
{
int n;
float capital,deposit;
float rate=0.0225;
printf("请输入您的本金,存期年数:");
scanf("%f,%d",&capital,&n);
deposit=capital+capital*rate*n;
printf("您的本利之和为%f",deposit);
}
3.4 编程计算并输出一元二次方程ax²+bx+c=0(a≠0)的两个实根,x=[-b±√(b²-4ac)]/2a,其中a/b.c的值由用户从键盘输出,假设a,b,c的值能保证方程有两个不相等的实根(即b²-4ac>0)。
#include<stdio.h>
#include<math.h>
main()
{
int a,b,c;
int x1,x2,d;
printf("请输入a,b,c的值:");
scanf("%d,%d,%d",&a,&b,&c);
d=b*b-4*a*c;
if(b*b-4*a*c>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("方程两个根为x1=%d,x2=%d\n",x1,x2);
}
else
printf("方程不是两个不相等的实数根或方程没有实数根");
}