最新C语言必背的典型程序设计题目--选择、循环--答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择结构必背经典程序(参考答案)1、输入3个整数,排序后输出。
#include
void main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /*交换x,y的值*/
if(x>z)
{t=z;z=x;x=t;} /*交换x,z的值*/
if(y>z)
{t=y;y=z;z=t;} /*交换z,y的值*/
printf("small to big: %d %d %d\n",x,y,z);
}
2、求解一元二次方程ax2+bx+c=0。
#include
#include
void main()
{
double a,b,c,deta,x1,x2;
printf("Enter a,b,c:");
scanf("%lf%lf%lf",&a,&b,&c);
if(fabs(a)>1e-6)
{
deta=b*b-4*a*c;
if(deta>0)
{
x1=-b/(2*a)+sqrt(deta)/(2*a);
x2=-b/(2*a)-sqrt(deta)/(2*a);;
printf("有两个不同的实根:x1=%.2f ,x2=%.2f\n",x1,x2);
}
else if(deta==0)
{
x1=x2=-b/(2*a);
printf("有两个相同的根:x1=x2=%.2f\n",x1);
}
else
{
x1=-b/(2*a);
x2=sqrt(-deta)/(2*a);
printf("有两个虚根:x1=%.2f + %.2f*i,x2=%.2f - %.2f*i\n",x1,x2,x1,x2);
}
}
else
printf("二次项系数为0,不是一元二次方程!");
}
3、已知银行整存整取存款不同期限的月息利率分别为:
0.315% 期限一年
0.330% 期限二年
0.345% 期限三年
0.375% 期限五年
0.420% 期限八年
要求输入存钱的本金和期限,求到期时能从银行得到的利息与本金的合计。
#include
void main()
{
double capital,total,interest;
int deadline;
printf("Enter a capital and deadline:");
scanf("%lf%d",&capital,&deadline);
if(deadline>=8)
{
interest=0.00420*capital*12*deadline;
total=capital+interest;
printf("Interest : %.3f , Total: %.3f\n",interest,total);
}
else if(deadline>=5 && deadline<8)
{
interest=0.00375*capital*12*deadline;
total=capital+interest;
printf("Interest : %.3f , Total: %.3f\n",interest,total);
}
else if(deadline>=3 && deadline<5)
{
interest=0.00345*capital*12*deadline;
total=capital+interest;
printf("Interest : %.3f , Total: %.3f\n",interest,total);
}
else if(deadline==2)
{
interest=0.00330*capital*12*deadline;
total=capital+interest;
printf("Interest : %.3f , Total: %.3f\n",interest,total);
}
else if(deadline==1)
{
interest=0.00315*capital*12*deadline;
total=capital+interest;
printf("Interest : %.3f , Total: %.3f\n",interest,total);
}
else
printf("score input error!\n");
}
4、给一个不多于5位的正整数,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数是321,应输出123。
#include
void main( )
{
long a,b,c,d,e,x;
scanf("%ld",&x);
a=x/10000; /*分解出万位*/
b=x%10000/1000; /*分解出千位*/
c=x%1000/100; /*分解出百位*/
d=x%100/10; /*分解出十位*/
e=x%10; /*分解出个位*/
if (a!=0) printf("there are 5, %ld %ld %ld %ld %ld\n",e,d,c,b,a);
else if (b!=0) printf("there are 4, %ld %ld %ld %ld\n",e,d,c,b);
else if (c!=0) printf(" there are 3,%ld %ld %ld\n",e,d,c);
else if (d!=0) printf("there are 2, %ld %ld\n",e,d);