1. 实验目的
1. 掌握选择结构
2. 掌握三种if 语句。
3. 掌握多分支switch 语句。
2. 实验内容
1. 某年如果能被4整除,但不能被100整除,或者能被400整除的年是闰年。判断从键盘输入的年份是否为闰年。
程序代码:
# include int main() { int year; printf("请输入年份\n"); scanf("%d",&year); if((year%4 == 0 && year%100 != 0) || (year%400 == 0 )) printf("%d年是闰年\n",year); 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 语句)。
程序代码:
# include int main() { double n,d,p; char y,z; printf("请输入加油量,汽油品种(a,b,c ),服务类型(f-自动加,m-自己加,e-协助加)\n"); scanf("%lf,%c,%c",&n,&y,&z); switch(y) { case'a':d=6.92*n;break; case'b':d=7.37*n;break; case'c':d=7.64*n;break;
default:printf("输入错误\n"); }
switch(z) { case'f':p=d;break; case'm':p=0.95*d;break; case'e':p=0.9*d;break;
default:printf("输入错误\n"); } printf("加油量:%lf 汽油类型:%c 服务类型:%c 应付:%.2lf\n",n,y,z,p); return 0; }
调试结果:
3、输入三角形三边,判断该三角形是什么三角形(等边,等腰,普通和直角)
程序代码:
# include
# include
int main() { float a,b,c; printf("请输三角形三边长a,b,c\n"); scanf("%f,%f,%f",&a,&b,&c); if ((a+b>c) &&( b+c>a) && (c+a>b)) if(a==b||b==c||a==c) if(a==b&&b==c) printf("三角形为等边三角形\n"); else printf("三角形为等腰三角形\n"); else if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==b*b+a*a) printf("三角形为直角三角形\n"); else printf("三角形为普通三角形\n"); else
printf("数据错误"); return 0;
}调试结果:
4. 编写一个菜单程序,输入1~3以进入相应的选择项。(请用switch 语句) 1、FindNum 2、
Diamond
3、Goodbye! Input 1-3:
程序代码:
#include int main() {
int a;
char s='y'; while(s=='y')
{printf("菜单如下,请选择:\n"); printf("1、FindNum\n"); printf("2、Diamond\n"); printf("3、Goodbye!\n"); printf("请输入1-3: \n"); scanf("%d",&a); switch(a) { case 1:
printf("FindNum\n"); break; case 2: printf("Diamond\n"); break; case 3: printf("Goodbye!\n"); break; }
printf("还要继续吗(y/n):"); scanf(" %c",&s); if(s=='y')
continue; else
break; } return 0;
}调试结果:
5. 输入4个整数,要求按由小到大的顺序输出
程序代码:
#include int main() {
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("排序结果如下:\n"); printf("%d %d %d %d\n",a,b,c,d);
return 0; }
调试结果:
6. 求一元二次方程ax2+bx+c=0的根。 当b 2-4ac>0为不相等的两实根, 当 b 2-4ac=0时为两相等的实根,
当 b 2-4ac
程序代码:
#include #include int main( ) { double a,b,c,x1,x2,y,d,e; printf("请输入方程的a,b,c: "); scanf("%lf,%lf,%lf",&a,&b,&c); y = b*b-4.0*a*c; if (y
调试结果:
7、编制程序要求输入整数a 和b, 若a 2+b2大于100, 则输出a 2+b2
百位以上的数字,否则输出两数之和
程序代码:
# include int main() { int a,b,c,d,e; printf("请输两个整数a,b\n"); scanf("%d,%d",&a,&b); c=(a*a+b*b); if((a*a+b*b)>100) { d=c/100; printf("%d\n",d); } else { e=a+b; printf("%d\n",e); } return 0; }
调试结果:
8、有三个整数a,b,c, 由键盘输入,输出其中最大的数。
程序代码:
#include int main() { float a,b,c,t; printf("请输入三个数a,b,c\n"); scanf("%f,%f,%f",&a,&b,&c); if(a>b)
{t=a;a=b;b=t;} if(a>c)
{t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf("最大的数是:%f\n",c); return 0; }
调试结果:
9、有一个函数:y= x (x
2x-1
(1
3x-11
(x>=10)
写程序,输入x 的值,输出y 相应的值。 程序代码:
#include int main() { double x,y; printf("请输入x:\n"); scanf("%lf",&x); if(x
调试结果;
1. 实验目的
1. 掌握选择结构
2. 掌握三种if 语句。
3. 掌握多分支switch 语句。
2. 实验内容
1. 某年如果能被4整除,但不能被100整除,或者能被400整除的年是闰年。判断从键盘输入的年份是否为闰年。
程序代码:
# include int main() { int year; printf("请输入年份\n"); scanf("%d",&year); if((year%4 == 0 && year%100 != 0) || (year%400 == 0 )) printf("%d年是闰年\n",year); 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 语句)。
程序代码:
# include int main() { double n,d,p; char y,z; printf("请输入加油量,汽油品种(a,b,c ),服务类型(f-自动加,m-自己加,e-协助加)\n"); scanf("%lf,%c,%c",&n,&y,&z); switch(y) { case'a':d=6.92*n;break; case'b':d=7.37*n;break; case'c':d=7.64*n;break;
default:printf("输入错误\n"); }
switch(z) { case'f':p=d;break; case'm':p=0.95*d;break; case'e':p=0.9*d;break;
default:printf("输入错误\n"); } printf("加油量:%lf 汽油类型:%c 服务类型:%c 应付:%.2lf\n",n,y,z,p); return 0; }
调试结果:
3、输入三角形三边,判断该三角形是什么三角形(等边,等腰,普通和直角)
程序代码:
# include
# include
int main() { float a,b,c; printf("请输三角形三边长a,b,c\n"); scanf("%f,%f,%f",&a,&b,&c); if ((a+b>c) &&( b+c>a) && (c+a>b)) if(a==b||b==c||a==c) if(a==b&&b==c) printf("三角形为等边三角形\n"); else printf("三角形为等腰三角形\n"); else if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==b*b+a*a) printf("三角形为直角三角形\n"); else printf("三角形为普通三角形\n"); else
printf("数据错误"); return 0;
}调试结果:
4. 编写一个菜单程序,输入1~3以进入相应的选择项。(请用switch 语句) 1、FindNum 2、
Diamond
3、Goodbye! Input 1-3:
程序代码:
#include int main() {
int a;
char s='y'; while(s=='y')
{printf("菜单如下,请选择:\n"); printf("1、FindNum\n"); printf("2、Diamond\n"); printf("3、Goodbye!\n"); printf("请输入1-3: \n"); scanf("%d",&a); switch(a) { case 1:
printf("FindNum\n"); break; case 2: printf("Diamond\n"); break; case 3: printf("Goodbye!\n"); break; }
printf("还要继续吗(y/n):"); scanf(" %c",&s); if(s=='y')
continue; else
break; } return 0;
}调试结果:
5. 输入4个整数,要求按由小到大的顺序输出
程序代码:
#include int main() {
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("排序结果如下:\n"); printf("%d %d %d %d\n",a,b,c,d);
return 0; }
调试结果:
6. 求一元二次方程ax2+bx+c=0的根。 当b 2-4ac>0为不相等的两实根, 当 b 2-4ac=0时为两相等的实根,
当 b 2-4ac
程序代码:
#include #include int main( ) { double a,b,c,x1,x2,y,d,e; printf("请输入方程的a,b,c: "); scanf("%lf,%lf,%lf",&a,&b,&c); y = b*b-4.0*a*c; if (y
调试结果:
7、编制程序要求输入整数a 和b, 若a 2+b2大于100, 则输出a 2+b2
百位以上的数字,否则输出两数之和
程序代码:
# include int main() { int a,b,c,d,e; printf("请输两个整数a,b\n"); scanf("%d,%d",&a,&b); c=(a*a+b*b); if((a*a+b*b)>100) { d=c/100; printf("%d\n",d); } else { e=a+b; printf("%d\n",e); } return 0; }
调试结果:
8、有三个整数a,b,c, 由键盘输入,输出其中最大的数。
程序代码:
#include int main() { float a,b,c,t; printf("请输入三个数a,b,c\n"); scanf("%f,%f,%f",&a,&b,&c); if(a>b)
{t=a;a=b;b=t;} if(a>c)
{t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf("最大的数是:%f\n",c); return 0; }
调试结果:
9、有一个函数:y= x (x
2x-1
(1
3x-11
(x>=10)
写程序,输入x 的值,输出y 相应的值。 程序代码:
#include int main() { double x,y; printf("请输入x:\n"); scanf("%lf",&x); if(x
调试结果;