实验项目:
1、if语句的应用
2、switch/case语句的应用
3、switch/case语句嵌套if语句的应用
4、switch/case结构的嵌套应用
5、分析程序
姓名:李儿龙 地点:514教室 时间:4月3日
一、实验目的与要求
1.if语句的应用
- 掌握C语言的逻辑运算和关系运算的规则;
- 学会正确的使用关系表达式和逻辑表达式;
- 掌握if-else语句的使用方法。
-
#include<stdio.h> int main() { int l,w,h; printf("请输入箱子的长,,宽,高: "); scanf("%d,%d,%d",&l,&w,&h); if(l==w==h) printf("该箱子为正方体。 "); else printf("该箱子为长方体。 "); return 0; }
问题分析:无
2.switch/case语句的应用
- 掌握算术运算符和运算规则;
- 掌握switch/case语句的使用方法。
-
#include<stdio.h> #include<math.h> main() { int a,b,c; double s,d; printf("请输入打印纸,墨盒,光盘的数量: "); scanf("%d%d%d",&a,&b,&c); s=a*18+b*132+c*4.5; if(s<100) d=s; else if(s>=100&&s<200) d=s*0.95; else if(s>=200&&s<300) d=s*0.94; else if(s>=300&&s<400) d=s*0.93; else if(s>=400&&s<500) d=s*0.92; else if(s>=500) d=s*0.90; printf("应付款数=%.2f ",d); }
#include<stdio.h> #include<math.h> main() { int a,b,c,x; double s,d; printf("请输入打印纸,墨盒,光盘的数量: "); scanf("%d%d%d",&a,&b,&c); s=a*18+b*132+c*4.5; if(s<100) d=s; else x=s/100 switch(x) case 1:d=s*0.95;break; case 2:d=s*0.94;break; case 3:d=s*0.93;break; case 4:d=s*0.92;break; case 5:d=s*0.90;break; printf("应付款=%。2f ",d); }
问题:switch(x)报错,未解决。
3.switch/case语句嵌套if语句的应用
- 学会正确的使用关系表达式和逻辑表达式;
- 掌握switch/case语句的使用方法。注意switch的控制流程,在switch语句中的break语句的用法。
- switch/case结构与if-else嵌套结构之间的转换。
-
#include<stdio.h> main() { int year,month,days; printf("Please enter year and month: "); scanf("%d%d",&year,&month); switch(month) { case 2:if(year%4==0||(year%400==0&&year%100!=0)) days=29; else days=28; break; case 1: case 3: case 5: case 7: case 8: case 10: case 12:days=31; case 4: case 6: case 9: case 11:days=30;break; } printf("%d年%d月有%d天 ",year,month,days); }
问题:无
4.switch/case结构的嵌套应用
- switch/case结构的嵌套使用;
- break语句与continue语句的用法。
#include <stdio.h> int main() { int x,n,y; float sum; printf("请选择:1.日用品 2.文具 3.食品 "); scanf("%d",&x); switch(x) { case 1:printf("请选择:1.牙刷(3.5支) 2.牙膏(6.2元支) "); printf(" 3.肥皂(2元支) 4.毛巾(8.6元条) "); scanf("%d",&y); printf("数量?"); scanf("%d",&n); switch(y) { case 1:sum=3.5*n;break; case 2:sum=6.2*n;break; case 3:sum=2*n;break; case 4:sum=8.6*n;break; } break; case 2:printf("请选择:1.笔(3支) 2.笔记本(1.2元个) "); printf(" 3.文件夹(12元个) 4.文具盒(8.6元个) "); scanf("%d",&y); printf("数量?"); scanf("%d",&n); switch(y) { case 1:sum=3*n;break; case 2:sum=1.2*n;break; case 3:sum=12*n;break; case 4:sum=8.6*n;break; } break; case 3:printf("请选择:1.白糖(3.6包) 2.盐(1元包) "); printf(" 3.饼(2元个) 4.方便面(3.6元包) "); scanf("%d",&y); printf("数量?"); scanf("%d",&n); switch(y) { case 1:sum=3.6*n;break; case 2:sum=1*n;break; case 3:sum=2*n;break; case 4:sum=3.6*n;break; } break; } printf("总计:%.2f元 ",sum); }
问题分析:无
5.分析程序
原代码:
#include<stdio.h> #include<math.h> main() { int num=20; if(5<num<10) printf("%d in range (5,10)! ",num); else printf("%d out of range (5,10)! ",num); }
修改后代码:
#include<stdio.h> #include<math.h> main() { int num=20; if(5<num&&num<10) printf("%d in range (5,10)! ",num); else printf("%d out of range (5,10)! ",num); }