1、1高级语言程序设计实验报告实验二 选择结构程序设计班级 计算机科学与技术 学号 201320818 姓名 张润萌 一、实验目的1、 熟 悉 VC6.0 编 程 环 境 。2、 进 一 步 熟 悉 用 VC6.0 调 试 C 语 言 源 程 序 的 过 程 。3、 熟 练 使 用 关 系 表 达 式 和 逻 辑 表 达 式 作 为 if 语 句 的 条 件 判 断 。4、 熟 练 掌 握 if 语 句 和 switch 语 句 的 使 用 方 法 。二、实验内容及步骤1、身高预测 每 个 做 父 母 的 都 关 心 自 己 孩 子 成 人 后 的 身 高 , 据 有 关 生 理 卫 生 知 识
2、与 数 理 统 计 分 析表 明 , 影 响 小 孩 成 人 后 身 高 的 因 素 有 遗 传 、 饮 食 习 惯 与 坚 持 体 育 锻 炼 等 。 小 孩 成 人 后 身高 与 其 父 母 身 高 和 自 身 性 别 密 切 相 关 。设 faHeight 为 其 父 身 高 , moHeight 为 其 母 身 高 , 身 高 预 测 公 式 为 :男 性 成 人 时 身 高 = (faHeight + moHeight) * 0.54(cm)女 性 成 人 时 身 高 = (faHeight * 0.923 + moHeight) / 2(cm)此 外 , 如 果 喜 爱 体 育 锻
3、 炼 , 那 么 可 增 加 身 高 2%, 如 果 有 良 好 的 卫 生 饮 食 习 惯 ,那 么 可 增 加 身 高 1.5%。编 程 从 键 盘 输 入 小 孩 的 性 别 ( 用 字 符 型 变 量 sex 存 储 , 输 入 字 符 F 表 示 女 性 ,输 入 字 符 M 表 示 男 性 ) 、 父 母 身 高 ( 用 实 型 变 量 存 储 , faHeight 为 其 父 身 高 ,moHeight 为 其 母 身 高 ) 、 是 否 喜 爱 体 育 锻 炼 ( 用 字 符 型 变 量 sports 存 储 , 输 入 字 符Y 表 示 喜 爱 , 输 入 字 符 N 表 示
4、 不 喜 爱 ) 、 是 否 有 良 好 的 饮 食 习 惯 等 条 件 ( 用 字 符 型 变量 diet 存 储 , 输 入 字 符 Y 表 示 喜 爱 , 输 入 字 符 N 表 示 不 喜 爱 ) , 利 用 给 定 公 式 和 身高 预 测 方 法 对 小 孩 的 身 高 进 行 预 测 。 程序代码:#includeint main()int fh,mh;double H,H1,H2;char sex,st,diet;printf(“请输入孩子性别:n“);scanf(“%c“,getchar();printf(“请输入父亲,母亲身高:n“);scanf(“%d %d“, getc
5、har();if(sex=F) H1=(fh+mh)*0.54;else if(sex=M) H1=(fh*0.923+mh)/2;2printf(“是否喜欢运动(Y/N):n“);scanf(“%c“,getchar();if(st=Y) H2=H1*1.02;else if(st=N) H2=H1;printf(“是否良好饮食(Y/N):n“);scanf(“%c“,getchar();if(diet=Y) H=H2*1.015;else if(diet=N) H=H2;printf(“孩子的身高是:%.2lfn“,H);return 0;运行结果:2、使用 switch 语句实现下面程序
6、。输入一个学生的两门课成绩(百分制),计算该生的总分并要求输出成绩等级A、B、C、D 、E 。总分在 180 分以上为 A,160179 分为B ,140159 分为C ,120139 分为D,120 分以下为 E。具体要求:学生的两门课成绩通过键盘输入,成绩应该都为整数,输入之前要有提示信息。若输入的成绩不是百分制成绩,则给出错误提示信息,并且不再进行下面的等级评价;若输入的成绩是百分制成绩,则计算总分,并根据要求评价等级。按下面形式输出结果:总分- 等级如: 186-A把正确的程序源代码写在下面。程序代码:#includeint main()int x,y,sum;3char score;
7、printf(“input two records:n“);scanf(“%d%d“,sum=x+y;if(x100|y100) printf(“the record is error!an 不能进行等级评价!n“);else if(sum=180printf(“%d-%cn“,sum,score);return 0;设计多组测试数据对程序进行测试,并观察运行结果。将程序的运行情况写在下面。运行结果:【选作】给一个不多于 5 位的正整数,要求:求出它是几位数;分别打印出每一位数字;按逆序打印出各位数字,例如原数为 321,应输出 123。 #include 4int main() int i=
8、0,n,m;int wan,qian,bai,shi,ge;printf(“请输入不多于五位正整数:n“);scanf(“%d“,wan=n/10000;qian=n/1000%10;bai=n/100%10;shi=n%100/10;ge=n%10;printf(“该整数各位数字依次为:n“);if (n9999) printf(“%d %d %d %d %dn“,wan,qian,bai,shi,ge);else if(n999) printf(“%d %d %d %dn“,qian,bai,shi,ge);else if(n99) printf(“%d %d %dn“,bai,shi,ge);else if(n9) printf(“%d %dn“,shi,ge);else printf(“%dn“,ge);printf(“逆序输出各位数字依次为:n“);while(n)m=n%10; n=n/10;i+;printf(“%d “,m);printf(“n 共%d 个数字!n“,i);return 0;运行结果如下:3、实验心得通过本此实验我了解了选择结构的程序设计,学习了关系运算符,逻辑运算符,条件运算符及其表达式的使用,并学会使用 if 语句,switch 语句处理选择结构程序,及选择结构的嵌套,使我即学习了新知识,又巩固了前面所学的 C 基本知识。