C程序设计实验报告
C程序设计实验报告
实验项目:
1、if语句的应用
2、switch/case语句的应用
3、switch/case语句嵌套if语句的应用
4、switch/case语句的嵌套应用
5、分析程序
姓名:伍臣林 实验地点:514教室 实验时间:4月3日
一、实验目的与要求
实验一:if语句的应用
-
掌握C语言逻辑运算和关系运算的规则;
-
学会正确地使用关系表达式和逻辑表达掌握if-else语句的使用方法。
-
实验二:switch/case语句的应用
-
掌握算术运算符和运算规则 ;
-
掌握switch/case语句的使用方法
-
实验三:switch/case语句嵌套if语句的应用
- 学会正确的使用关系表达式和逻辑表达式;
- 掌握switch/case 语句语法和使用方法。注意switch语句的控制流程,在switch语句中的break语句的用法;
- switch/case结构与if/else嵌套结构之间的转换。
-
4、switch/case语句的嵌套应用
- switch/case结构的嵌套使用。
- break语句与continue语句的用法
-
二、实验内容
实验4.3.1:if语句的应用。
1、 问题描述:读入3个分别表示箱子长、宽、高的整数值,并判断输出该箱子是正方体还是长方体。
2、实验代码如下:
-
#include<stdio.h> int main() { int l,w,h; printf("请输入箱子的长 宽 高; "); scanf("%d%d%d",&l,&w,&h); if (l=w&&w=h) printf("该箱子是正方体。 "); else printf("该箱子是长方体。 "); return 0; }
3、问题分析:对于这个题目 由于一开始输入的是l=w=h;导致输出错误。其实我是漏掉了“与”的符号,应该写成l=w&&w=h; 实验4.3.2:switch/case语句的应用
-
1、 问题描述:编一程序实现如下功能:商店有打印纸(18元/本)、墨盒(132元/盒)、光盘(4.5元/片)出售,商店进行优惠酬宾活动。
-
具体做法如下:顾客购买商品的总额达到100元,优惠5%;达到200元 以上,优惠6%;达到300元以上,优惠7%;达到
了400元以上,优惠8%;达到1000元以上,优惠10%。根据不同的购买量,打印应付款。
2、实验代码如下:
-
#include<stdio.h> main() { int x,y,z,n; float sum; printf("请输入打印纸,墨盒,光盘的数量 "); scanf("%d%d%d",&x,&y,&z); sum=18*x+132*y+4.5*z; n=sum/100; switch(n) { case 1:sum=0.95*sum;break; case 2:sum=0.94*sum;break; case 3:sum=0.93*sum;break; case 4:sum=0.92*sum;break; default:sum=0.9*sum;break; } printf("sum=%.2f ",sum); }
3、问题分析:一定要记得break!!
-
实验4.3.4:switch/case语句的嵌套应用
1、问题描述:
编写一个自动售货机的程序。该程序应具有以下功能:二级菜单,一级菜单是商品类型的选择;
二级菜单是具体商品的选择(商品价格和品种可以自拟)。顾客选择商品类型,输入购买数量。
自动售货机根据选择的商品类型与数量,计算并显示所选商品总金额。
2、实验代码如下:
-
#include<stdio.h> int main() { int x,y,n; float sum=0.0; printf("请选择:1 日用品 2 文具 3 食品 "); scanf("%d",&x); switch(x) { case 1:printf("请选择:1.牙刷 2.牙膏 "); printf("3.肥皂 4.毛巾"); 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.笔 2.笔记本 "); printf("3.文件夹 4.文具盒"); 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.白糖 2.盐 "); printf("3.餠 4.方便面"); 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); }
3、问题分析:这个问题相对复杂,自己在写的时候对于一级菜单和二级菜单下的变量选定比较模糊,思路模糊。在老师和同学们的梳理下我运行出来了!
4.3.5 程序分析
程序 <一>
1、运行下列程序,分析输出结果
2、实验代码:
include <stdio.h> int main () { double x=1000/3.0; double y=x-333.0; double z=3*y-1.0; printf("x=%lf ",x); printf("y=%lf ",y); printf("z=%lf ",z); if (z==0) printf("z==o. "); else printf("z不等于0. "); }
程序运行
1、运行下列程序,分析错误原因,请修改程序,使其输出正确结果,并写入实验报告,掌握C语言表达式与数学表达式的区别。
2、实验代码:
include <stdio.h> int main () { int num=20; if (5<num<10) printf("%d in range (5,10)! ",num); else printf("%d out of range (5,10)! ",num); }
3、问题分析:该运行结果出错原因和我第一个实验原因一样,应将5<num<10改成5<num&&num<10;!
-
三、实验总结 对于运行输入过程一定得小心,这节实验课遇见的问题还是“与”逻辑运算,应当注意,对于难以理解的可以养成注释的好习惯!自主解决问题有待提高!