当前位置:文档之家› C语言第二次作业(选择结构)

C语言第二次作业(选择结构)

C语言第二次作业.要求写出:一、实验目的:1.了解C语言表示逻辑量的方法。

2.学会正确使用逻辑运算符和逻辑表达式。

3.熟练掌握if语句的使用。

4.熟练掌握多分支选择语句—switch语句。

5.结合程序掌握一些简单的算法。

6.进一步学习调试程序的方法。

二、实验内容:(程序代码及调试结果)1.某年如果能被4整除,但不能被100整除,或者能被400整除的年是闰年。

判断从键盘输入的年份是否为闰年。

#include <stdio.h>int main (){int x;printf("请输入年份:\n");scanf("%d",&x);if(x%400==0){printf("该年是闰年");}else{if(x%4==0){printf("该年是闰年");}else{printf("该年不是闰年");}}}2、某个自动加油站有‘a’,‘b’,‘c’三种汽油品种,单价分别为6.92,7.37,7.64(元/公升),也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠,请编程序针对用户输入加油量m,汽油品种y和服务类型z(‘f’—自动加,‘m’—自己加,‘e’—协助加),(注:‘f’—自动加无优惠),计算应付款pay。

(请用多分支选择switch语句)。

#include <stdio.h>int main(){double x,z,pay;char y,l;printf("请选择汽油品种\n");scanf(" %c",&y);switch(y){case 'a':z=6.92;break;case 'b':z=7.37;break;case 'c':z=7.64;break;default:printf("选择错误\n");}printf("请输入汽油量\n");scanf("%lf",&x);printf("请选择服务等级\n");scanf(" %c",&l);switch(l){case 'f':pay=x*z;break;case 'm':pay=x*z*0.95;break;case 'e':pay=x*z*0.9;break;default:printf("选择错误\n");}printf("%lf\n",pay);return 0;}3、输入三角形三边,判断该三角形是什么三角形(等边,等腰,普通和直角)#include<stdio.h>int main(){int a,b,c;printf("请输入三角形的三边长:\n");scanf("%d,%d,%d",&a,&b,&c);if (a+b<=c||a+c<=b||b+c<=a)printf("无法构成三角形\n");else if(a==b&&b==c)printf("这个三角形是等边三角形");else if(a==b||b==c||a==c)printf("这个三角形是等腰三角形");else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) printf("这个三角形是直角三角形");elseprintf("这个三角形是普通三角形");return 0;}4. 编写一个菜单程序,输入1~3以进入相应的选择项。

(请用switch 语句)1、FindNum2、Diamond3、Goodbye!Input 1-3:#include<stdio.h>int main(){int x;printf("请输入选项:\n");scanf("%d",&x);switch(x)printf("FindNum\n");break;case 2:printf("Diamond\n");break;case 3:printf("Goodbye!\n");break;default :printf("输入错误\n");}return 0 ;}5.输入4个整数,要求按由小到大的顺序输出#include<stdio.h>{int a,b,c,d,t;printf("请输入四个数\n");scanf("%d,%d,%d,%d",&a,&b,&c,&d); if (a>b){t=a;a=b;b=t;}if (a>c){t=a;a=c;c=t;}if (a>d){t=a;a=d;d=t;}if (b>c){t=b;b=c;c=t;}if (b>d){t=b;b=d;d=t;}if (c>d){t=c;c=d;d=t;}printf("%d,%d,%d,%d\n",a,b,c,d); return 0;}6.求一元二次方程ax2+bx+c=0的根。

当b2-4ac>0为不相等的两实根,当b2-4ac=0时为两相等的实根,当b2-4ac<0为两复根。

#include<stdio.h>#include<math.h>int main(){double a,b,c,x1,x2,m,n;printf("请输入方程的三个系数。

\n");scanf("%lf,%lf,%lf",&a,&b,&c);if(b*b-4*a*c>=0){x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);printf("%lf,%lf\n",x1,x2);}else{m=-b/(2*a);n=sqrt(4*a*c-b*b)/(2*a);printf("x1=%lf+%lfi,x2=%lf-%lfi\n",m,n,m,n); }return 0;}7、编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和#include <stdio.h>int main(){i nt a,b,c;p rintf("请输入a,b\n");s canf("%d,%d",&a,&b);c=a*a+b*b;i f(c>100)printf("%d\n",c);e lsep rintf("%d\n",a+b);r eturn 0;}8、有三个整数a,b,c,由键盘输入,输出其中最大的数。

#include <stdio.h>int main (){int a,b,c,max;printf("请输入三个数"); scanf("%d,%d,%d",&a,&b,&c);if(a>=b){max=a;}else{max=b;}if(c>max)printf("max=%d\n",c);elseprintf("max=%d\n",max);return 0;}9、有一个函数:y=x (x<1) 2x-1 (1<=x<1)03x-11 (x>=10)写程序,输入x的值,输出y相应的值。

#include <stdio.h>int main (){double x,y;printf("请输入X的值\n");scanf("%lf",&x);if (x<1){printf("%lf\n",x);}else if(x<10){y=2*x-1;printf("%lf\n",y);}else{y=3*x-11;printf("%lf\n",y);}return 0;}。

相关主题