1 C 语言第二次作业(选择结构)参考答案语言第二次作业(选择结构)参考答案 1、某年如果能被某年如果能被 4 整除整除,,但不能被但不能被 100 整除整除,,或者能被或者能被 400 整除的整除的 年是闰年。判断从键盘输入的年份是否为闰年。年是闰年。判断从键盘输入的年份是否为闰年。 #include int main() { intyear; printf(“请输入年: “); scanf(“%d“, if(year%4==0 else printf(“%d 年不是闰年。\n“,year); return 0; } 2、某个自动加油站有某个自动加油站有 ‘‘a’’ ,, ‘‘b’’ ,, ‘‘c’’三种汽油品种,单价分别三种汽油品种,单价分别 为为 6.92,,7.37,,7.64(元元/公升公升),,也提供了也提供了““自己加自己加””或或““协助加协助加”” 两个服务等级,这样用户可以得到两个服务等级,这样用户可以得到 5%或或 10%的优惠,请编程的优惠,请编程 序针对用户输入加油量序针对用户输入加油量 m,,汽油品种汽油品种 y 和服务类型和服务类型 z(( ‘‘f’’—自自 动加动加,, ‘‘m’’—自己加自己加,, ‘‘e’’—协助加协助加)) ,, (注(注:: ‘‘f’’—自动加无自动加无 优惠优惠)) ,计算应付款,计算应付款 pay。。 (请用多分支选择(请用多分支选择 switch 语句语句)) 。。 2 #include int main() { double r1,r2,m,pay; char y,z; printf(“请输入用户输入加油量,汽油品种和服务类 型: “); scanf(“%lf %c %c“, switch(y) { case 'a':r1=6.92;break; case 'b':r1=7.37;break; case 'c':r1=7.64;break; } switch(z) { case 'f':r2=0;break; case 'm':r2=0.05;break; case 'e':r2=0.1;break; } pay=m*r1*(1-r2); printf(“pay=%.2lf\n“,pay); } 3、输入三角形三边输入三角形三边,,判断该三角形是什么三角形判断该三角形是什么三角形((等边等边,,等腰等腰,,普普 通和直角)通和直角) 3 #include int main() { float a,b,c; printf(“请输入三角型三边: “); scanf(“%f %f %f“, if(a+bc else if(a==b||a==c||b==c) printf(“等腰三角形\n“); else if((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a)) printf(“直角三角形\n“); else printf(“一般三角形\n“); else printf(“不能组成三角形\n“); return 0; } 4. 编写一个菜单程序编写一个菜单程序,,输入输入 1~3 以进入相应的选择项以进入相应的选择项。。 ((请用请用 switch 语句)语句) 1、、FindNum 2、、Diamond 4 3、、Goodbye! Input 1-3: #include int main() { int a; printf(“1、FindNum\n“); printf(“2、Diamond\n“); printf(“3、Goodbye\n“); printf(“Input 1-3: \n“); scanf(“%d“, switch(a) { case 1: printf(“FindNum\n“); break; case 2: printf(“Diamond\n“); break; case 3: printf(“Goodbye!\n“); break; } 5 return 0; } 5.输入输入 4 个整数,要求按由小到大的顺序输出个整数,要求按由小到大的顺序输出 #include intmain() { int a,b,c,d,t; printf(“请输入 4 个整数: “); scanf(“%d,%d,%d,%d“, if(ab) { t=a;a=b;b=t;} if(ac) {t=a;a=c;c=t;} if(ad) {t=a;a=d;d=t;} if(bc) {t=b;b=c;c=t;} if(bd) {t=b;b=d;d=t;} if(cd) {t=c;c=d;d=t;} printf(“由小到大排序结果是:“); printf(“%d,%d,%d,%d\n“,a,b,c,d); 6 return 0; } 6.求一元二次方程求一元二次方程 ax2+bx+c=0 的根。的根。 当当 b2-4ac0 为不相等的两实根,为不相等的两实根, 当当 b2-4ac=0 时为两相等的实根,时为两相等的实根, 当当 b2-4ac #include intmain() { double a,b,c,d,x1,x2,real,imag; printf(“请输入 a,b,c:“); scanf(“%lf,%lf,%lf“, if(a==0) printf(“不是二次方程\n“); else { d=b*b-4*a*c; if(d==0) printf(“有两个相等的实根是:%.4lf\n“,-b/(2*a)); else if(d0) {x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf(“两个不相等实根是:x1=%.4lf,x2=%.4lf\n“,x1,x2); 7 } else { real=-b/(2*a); imag=sqrt(-d)/(2*a); printf(“两个复根是:\n “); printf(“x1=%.4lf+%.4lfi\n“,real,imag); printf(“x2=%.4lf-%.4lfi\n“,real,imag); } } return 0; } 7、编制程序要求输入整数编制程序要求输入整数 a 和和 b,若若 a2+b2大于大于 100,则输出则输出 a2+b2 百位以上的数字,否则输出两数之和百位以上的数字,否则输出两数之和 #include int main() { int a,b,x,y; printf(“请输入两个整数: “); scanf(“%d %d“, x=a*a+b*b; if(x100){y=x/100;printf(“%d\n“,y);} else printf(“%d\n“,a+b); return 0; 8 } 8、、有三个整数有三个整数 a,b,c,由键盘输入,输出其中最大的数。由键盘输入,输出其中最大的数。 #include intmain() { int a,b,c,t,max; printf(“请输入 a,b,c:“); scanf(“%d,%d,%d“, t=(ab)?a:b; max=(tc)?t:c; printf(“%d,%d,%d 中最大数是%d。\n“,a,b,c,max); return 0; } 9、有一个函数:、有一个函数:y= 写程序,输入写程序,输入 x 的值,输出的值,输出 y 相应的值。相应的值。 #include intmain() { float x,y; printf(“请输入 x:“); scanf(“%f“, x (x=10) 9 if(x1) y=x; else if(x10) y=2*x-1; else y=3*x-11; printf(“x=%f,y=%f\n“,x,y); return 0; }
展开阅读全文