C语言顺序结构及分支结构编程案例详解.docx
- 文档编号:10899487
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:24
- 大小:45.13KB
C语言顺序结构及分支结构编程案例详解.docx
《C语言顺序结构及分支结构编程案例详解.docx》由会员分享,可在线阅读,更多相关《C语言顺序结构及分支结构编程案例详解.docx(24页珍藏版)》请在冰豆网上搜索。
C语言顺序结构及分支结构编程案例详解
C语言顺序结构及分支结构编程案例(详解)
答案:
#include
#definemidu11340
voidmain()
{
doubler;
scanf("%lf",&r);
doublev,m;
v=4.0/3*3.141592657*(r/200)*(r/200)*(r/200);
m=v*midu;
printf("%lf",m);
}
7、铅密度为11340kg/m3,输入外直径(cm),内径(cm),求空心球有多kg?
输入格式:
输入格式:
两个小数(空格分隔)
输出格式:
输出格式:
一个小数
输入样例;输入样例:
9.8 5.1
输出样例:
输出样例:
4.800801
答案:
#include
#definepi3.141592657
intmain()
{
doubleR,r;
intp;
p=11340;
scanf("%lf%lf",&R,&r);
doubleM,m;
M=p*4.0/3*pi*R/2*0.01*R/2*0.01*R/2*0.01;
m=p*4.0/3*pi*r/2*0.01*r/2*0.01*r/2*0.01;
printf("%lf\n",M-m);
return0;
}
8、输入一个华氏温度,要求输出摄氏温度。
公式为c=5(F-32)/9输出要求有文字说明,取位2小数。
输入:
一个华氏温度,浮点数
输出:
c=摄氏温度,(保留两位小数)
输入样例:
-40
输出样例:
c=-40.00
答案:
#include
voidmain()
{
doublec,f;
scanf("%lf",&f);
c=5*(f-32)/9;
printf("c=%0.2lf\n",c);
}
9、从1到9任选一个你喜欢的数字,先乘以3,再加上3,再乘以3,最后把个位数和十位数相加,得到结果是什么?
输入:
3
结果:
9
答案:
#include
voidmain()
{
inta,b,c,d,e;
scanf("%d",&a);
b=((a*3)+3)*3;
c=b/10;
d=b%10;
e=c+d;
printf("%d",e);
}
10、输入三个数a,b,c,表示三角形的三个边长
输出三角形面积的平方值,结果保留2位小数
p(p-a)(p-b)(p-c),其中p=(a+b+c)/2;
例如,
输入:
3.1 4.1 5.1
输出:
40.38
注意:
printf("%.2lf",double)保留2位小数
答案:
#include
voidmain()
{
doublea,b,c,p,s;
scanf("%lf%lf%lf",&a,&b,&c);
p=(a+b+c)/2;
s=p*(p-a)*(p-b)*(p-c);
printf("%.2lf",s);
}
11、求一元二次方程ax2+bx+c=0的解。
a,b,c为任意实数。
输入:
输入数据有一行,包括abc的值
输出:
(保留2位小数)x1 x2实根,且要求x1>=x2输出
提示:
计算平方根用sqrt()函数,例如y=sqrt(x) 则y就得到x的平方根
例如输入:
1.0 4.0 1.0
输出:
-0.27 -3.73
答案:
#include
#include
voidmain()
{
doublea,b,c,x,d;
doublex1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=sqrt(b*b-4*a*c);
x1=(-b+d)/(2*a);
x2=(-b-d)/(2*a);
if(x1>=x2)
printf("%.2lf%.2lf",x1,x2);
else
printf("%.2lf%.2lf",x2,x1);
}
12、输出一个三位数,将它反向输出。
如输入:
127
输出:
721
提示:
需要求出这个数的个、十、百位上的数字
用到的技巧就是,整数相除还是整数的办法,比如235/100就等于2
答案:
#include
intmain()
{
inta,b,c,d,e;
scanf("%d",&a);
b=a/100;
c=(a/10)-b*10;
d=a%10;
e=d*100+c*10+b;
printf("%d\n",e);
}
分支结构
13、输入3个整数,判断第一个数是不是最大的数?
例如,
输入:
3 45
输出:
0
输入:
6 1 2
输出:
1
答案一:
#include
voidmain()
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a>b&&a>c)
printf("1");
else
printf("0");
}
答案二:
#include
voidmain()
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a
printf("0\n");
else
{
if(a printf("0\n"); else printf("1\n"); } } 14、输入两个实数,按由小到大的次序输出两数 输入两个单精度的实数,例如: 3.22.8 输出结果为从大到小排序,例如: 2.803.20 输出结果保留小数点后两位 答案: #include intmain() { doublea,b; scanf("%lf%lf",&a,&b); if(a printf("%0.2lf%0.2lf\n",a,b); else printf("%0.2lf%0.2lf\n",b,a); return0; } 15、输入两个整数,判断其是否相等。 例如: 1)输入: 35 输出: a! =b 2)输入: 44 输出: a==b 答案: #include voidmain() { inta,b; scanf("%d%d",&a,&b); if(a==b) printf("a==b"); else printf("a! =b"); } 16、编写一个程序,输入a、b两个,输出其中最大值。 输入: 两个小数 输出: ab其中最大的数 保留2位小数 输入样例: 10.220.3 输出样例: 20.30 答案: #include voidmain() { doublea,b; scanf("%lf%lf",&a,&b); if(a>b) printf("%.2lf",a); else printf("%.2lf",b); } 17、编写一个程序,输入a、b、c三个值,输出其中最大值。 输入: 一行数组,分别为abc 输出: abc其中最大的数 保留2位小数 输入样例: 102030 输出样例: 30.00 答案一: #include voidmain() { doublea,b,c; scanf("%lf%lf%lf",&a,&b,&c); if(a>b&&a>c) printf("%.2lf\n",a); elseif(b>a&&b>c) printf("%.2lf\n",b); else printf("%.2lf\n",c); } 答案二: #include voidmain() { inta,b,c; doubled,e; scanf("%d%d%d",&a,&b,&c); d=a*1.0>b*1.0? a*1.0: b*1.0; e=d*1.0>c*1.0? d*1.0: c*1.0; printf("%.2lf",e); } 18、输入一个年份,判断一个年份是否为闰年 输入: 一个正整数,比如2008 输出: 一个字母“y”或者“n”(引号不输出) 输入样例: 2008 输出样例: y 答案一: #include voidmain() { inta; scanf("%d",&a); if(a%4==0&&a%100! =0||a%400==0) printf("y"); else printf("n"); } 答案二: #include voidmain() { intn; scanf("%d",&n); if(n%100==0) { if(n%400==0) printf("y\n"); else printf("n\n"); } else { if(n%4==0) printf("y\n"); else printf("n\n"); } } 19、简单的计算器计算: 输入a+b能计算出其和,输入a-b能计算其差,同理乘除。 除法用"/"表示,但是若出现4/0则输出“error”, 建议使用数据类型使用float类型,“+-*/”使用char。 输出格式%.2f 输入: 1+2 输出: 3.00 输入: 1/0 输出: error HINT: floata; charb; floatc; scanf("%f%c%f",&a,&b,&c); 答案一: #include voidmain() { floata,b; charop; scanf("%f%c%f",&a,&op,&b); switch(op) { case'+': printf("%.2f",a+b);break; case'-': printf("%.2f",a-b);break; case'*': printf("%.2f",a*b);break; case'/': if(b! =0) printf("%.2f",a/b); else printf("error"); break; default: printf(""); } } 答案二: #include voidmain() { doublea,c,d; charb; scanf("%lf%c%lf",&a,&b,&c); if(b=='+') {d=a*1.0+c*1.0; printf("%.2lf",d);} elseif(b=='-') {d=a*1.0-c*1.0; printf("%.2lf",d);} elseif(b=='*') {d=a*1.0*c*1.0; printf("%.2lf",d);} elseif(b=='/'&&c! =0) {d=a*1.0/c*1.0; printf("%.2lf",d);} elseif(b=='/'&&c==0) printf("error"); } 20、看看你们的缘分! ! ! 计算出你和另一个人的关系,准的邪门了! 计算的方法很简单,将你们姓名笔划的总数作比较,以大的数字减小的 例如: 大雄想知道自己和叮当的关系是什,要将自己名字的笔划(共15划)和叮当名 字的笔划(共21划)相减(即21-15),得出的数字是6,「帮你的人」。 十分准确啊! 快来试试吧! 差值对照表: 0亲密无间 1永远和你在一起 2水火不相容 3知心朋友 4心上人 5帮你做事的人 6帮你的人 7面和心不合 8男女关系不正常 9情投意合 10关系马虎 11尊敬你的人 12爱你的人 13适合你的 14说你坏话的人 15克星 16救星 17忠心的人 18狼心狗肺的人 19单相思 20山盟海誓 21情敌 22服从你的人 23永远在一起 24伴终生 25恨你又爱你 比25大: 你俩缘分超出计算范围 答案: #include voidmain() { inta,b,c,d,e; scanf("%d%d",&a,&b); c=a>b? a: b; d=a a: b; e=c-d; switch(e) { case0: printf("亲密无间");break; case1: printf("永远和你在一起");break; case2: printf("水火不相容");break; case3: printf("知心朋友");break; case4: printf("心上人");break; case5: printf("帮你做事的人");break; case6: printf("帮你的人");break; case7: printf("面和心不合");break; case8: printf("男女关系不正常");break; case9: printf("情投意合");break; case10: printf("关系马虎");break; case11: printf("尊敬你的人");break; case12: printf("爱你的人");break; case13: printf("适合你的");break; case14: printf("说你坏话的人");break; case15: printf("克星");break; case16: printf("救星");break; case17: printf("忠心的人");break; case18: printf("狼心狗肺的人");break; case19: printf("单相思");break; case20: printf("山盟海誓");break; case21: printf("情敌");break; case22: printf("服从你的人");break; case23: printf("永远在一起");break; case24: printf("伴终生");break; case25: printf("恨你又爱你");break; Default: printf("你俩缘分超出计算范围"); } 21、求一元二次方程ax2+bx+c=0的解。 a,b,c为任意实数。 输入: abc 输出: 如果a为0同时b为0,则输出"Notanequation"(N大写,单词间一个空格) 如果a为0,退化一次方程,则只输出一个根的值既可以 a不为0则按以下格式输出方程的根x1和x2。 x1和x2之间有一个空格。 (1)如果x1和x2为实根,则以x1>=x2输出。 (2)如果方程是共轭复根,x1=m+ni,x2=m-ni,其中n>0。 其中x1,x2,m,n均保留2位小数。 样例输入: 123 样例输出: -1.00+1.41i-1.00-1.41i 提示: 两个根中间有一个空格 平方根用函数sqrt(x), 并同时需要#include 保留2位小数用printf("%.2f",..) 输出i的方法printf("%0.2lf+%0.2lfi%0.2lf-%0.2lfi",你的实部,你的虚部,你的实部,你的虚部) 答案: #include #include voidmain() { inta,b,c;//定义方程的三个参数// doublep,m,n,x1,x2,x,y;//定义实根和虚根以及b^2-4ac的值 以及用于交换最大最小值的x,y// scanf("%d%d%d",&a,&b,&c); p=(b*b-4*a*c)*1.0; if(a==0&&b==0) printf("Notanequation"); elseif(a==0&&b! =0) { x1=(c*1.0/b*1.0)*(-1); printf("%.2lf",x1); } elseif(a! =0) { if(p>=0) { x1=(-b+sqrt(p))/(2*a)*1.0; x2=(-b-sqrt(p))/(2*a)*1.0; x=x1>x2? x1: x2; y=x1 x1: x2; printf("%.2lf%.2lf",x,y); } else { m=(-b*1.0)/(2*a*1.0); n=sqrt(-p)*1.0/(2*a*1.0); if(n<0) n=-n; printf("%.2lf+%.2lfi%.2lf-%.2lfi",m,n,m,n); } } } 22、实现符号函数求解。 输入变量为大于0的实数时,输出 1 输入变量为小于0的实数时,输出 -1 输入变量为0时,输出0 答案: #include voidmain() { inta; scanf("%d",&a); if(a>0) printf("1"); elseif(a==0) printf("0"); else printf("-1"); } 23、输入一个双精度类型的分数,判断该分数属于哪个等级, 1)如果输入的分数不在0-100之间,输出: error! 2)输入分数大于等于90,小于等于100,输出: A 3)输入分数大于等于80,小于90,输出: B 4)输入分数大于等于70,小于80,输出: C 5)输入分数大于等于60,小于70,输出: D 6)输入分数小于60,输出: E 答案: #include voidmain() { floatscore; scanf("%f",&score); if(score<0||score>100)printf("error! "); elseif(score>=0&&score<60)printf("E"); elseif(score<70)printf("D"); elseif(score<80)printf("C"); elseif(score<90)printf("B"); elseprintf("A"); } 24、输入三个整数,按照由小到大顺序输出出来。 例如: 输入: 12 5 8 输出: 5 8 12 答案一: #include voidmain() { inta,b,c,d,e,f,g,h; scanf("%d%d%d",&a,&b,&c); d=a a: b; e=d d: c; f=a>b? a: b; g=f>c? f: c; if(a>e&&a {h=a; printf("%d%d%d",e,h,g);} elseif(b>e&&b {h=b; printf("%d%d%d",e,h,g);} elseprintf("%d%d%d",e,c,g); } 答案二: #include intmain() { inta,b,c; scanf("%d%d%d",&a,&b,&c); if(a! =b&&a! =c&&b! =c) if(a>b&&b>c) printf("%d%d%d\n",c,b,a); elseif(a>c&&c>b) printf("%d%d%d\n",b,c,a); elseif(b>a&&a>c) printf("%d%d%d\n",c,a,b); elseif(b>c&&c>a) printf("%d%d%d\n",a,c,b); elseif(c>a&&a>b) printf("%d%d%d\n",b,a,c); elseif(c>b&&b>a) printf("%d%d%d\n",a,b,c); else printf("%d%d%d\n",a,b,c); return0; } 25、输入1~12,对应: Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,如果不是上述内容,则输出error! 例如: 1) 输入: 3 输出: Mar 2) 输入: 13 输出: error! 答案: #include voidmain() { intm; scanf("%d",&m); switch(m) { case1: printf("Jan");break; case2: printf("Feb");break; case3: printf("Mar");break; case4: printf("Apr");break; case5: printf("May");break; case6: printf("Jun");break; case7: printf("Jul");break; case8: printf("Aug");break; case9: printf("Sep");break; case10: printf("Oct");break; case11: printf("Nov");break; case12: printf("Dec");break; default: printf("error! "); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 顺序 结构 分支 编程 案例 详解