C 程序设计实验报告
实验项目: 1, 字符与 ASCII 码
2, 运算符与表达式的应用
3, 顺序结构应用程序
4, 数学函数的算法描述
5, 鸡兔同笼的算法描述
6, 确定坐标的算法描述
姓名: 徐瑾琳
实验地点: 家
实验时间: 2020.3.11
一, 实验目的与要求
1, 掌握自增 ++, 自减 -- 运算符的正确使用.
2, 掌握基本的输入 / 输出函数的基本功能, 调用方法, 输入 / 输出格式控制规定等.
3, 掌握结构化程序的算法描述方法.
4, 熟练掌握 C 语言的运算符, 即运算符的优先级和结核性, 运算规则, 运算对象类型等.
二, 实验内容
1, 实验练习: 2.3.3 字符与 ASCALL 码
1 问题的简单描述: 输入一个大写字母, 转换为小写字母并输出, 同时输出小写字母相邻的两个字母及 ASCALL 值
2 实验代码:
- #include<stdio.h>
- main()
- {
- char a,b,c,d;
- printf("请输入一个大写字母:\n");
- scanf("%c",&a);
- b=a+31;
- c=a+32;
- d=a+33;
- printf("小写字母为:%c,%c,%c\n",b,c,d);
- printf("ASCLL 值为:%d,%d,%d",b,c,d);
- }
3 问题分析: 要记住大小写字母 ASCALL 值的转换
2, 实验练习: 2.3.4 运算符与表达式的应用
1 问题的简单描述: 输入一个三位数, 要求输出逆序数
2 实验代码:
- #include <stdio.h>
- int main()
- {
- int a,b,c,x,y;
- printf("请输入一个 3 位正整数:\n");
- scanf("%d",&x);
- c=x%100%10;
- b=x%100/10;
- a=x/100;
- y=c*100+b*10+a;
- printf("%d: %d\n",x,y);
- return 0;
- }
3 问题分析: 需清楚数据中每位数的表示方法
3, 实验练习: 2.3.5 顺序结构运用程序
1 问题的简单描述: 编写程序方便医院收费处出纳算账
2 实验代码:
- #include <stdio.h>
- int main()
- {
- float x,j,c,cw,g,f,hj,fk,zh;
- /* 其中, x 代表西药费; j 代表检查费; c 代表床位费; g 代表观察费;
- f 代表护理费; hj 代表应付款; fk 代表病人付款额; zh 代表应找回的金额;*/
- printf("请输入西药费, 检查费, 材料费, 床位费, 观察费, 护理费:\n");
- scanf("%f,%f,%f,%f,%f,%f",&x,&j,&c,&cw,&g,&f);
- hj=x+j+c+cw+g+f;
- printf("应付款 (元):%.2f",hj);
- printf("病人付款 (元):");
- scanf("%f",&fk);
- zh=fk-hj;
- printf("计算结果:\n");
- printf("病人付款 =%6.2f 元 \ n 应收款 =%6.2f 元, 应找回 =%6.2f 元 \ n",fk,hj,zh);
- return 0;
- }
3 问题分析: 注意中英文输入法的切换
4, 实验练习: 3.3.1 数学函数的算法描述
1 问题的简单描述: 输入 x 的值, 然后输出满足关系式的 y 的值
2 实验代码:
- #include <stdio.h>
- void main()
- {
- float x,y;
- printf("请输入 x 的值:");
- scanf("%f",&x);
- if(x<1)
- y=x;
- else
- if(x>=1&&x<10)
- y=2*x-1;
- else
- y=3*x-1;
- printf("y 的值为 %.2f",y);
- }
3 问题分析: 数值与字母相乘中间用 * 连接
4 算法流程图:
5, 实验练习: 3.3.2 鸡兔同笼的算法描述
1 问题的简单描述: 用算法流程图解决鸡兔同笼问题的算法
2 实验代码:
- #include <stdio.h>
- main()
- {
- int x,y,h,f;
- printf("鸡兔总数, 鸡兔脚总数:");
- scanf("%d,%d",&h,&f);
- if(h>0&&f>0)
- {
- y=(f-2*h)/2;
- x=(4*h-f)/2;
- printf("鸡有 %d, 兔有 %d\n",x,y);
- }
- else
- printf("输入错误!\n");
- }
3 问题分析: if 函数中判断的条件变量应为输出时的变量 h,f
4 流程图:
6, 实验练习: 3.3.3 确定坐标的算法描述
1 问题的简单描述:
2 实验代码:
- #include <stdio.h>
- #include <math.h>
- main()
- {
- int h;
- float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
- printf("请输入一个点 (x,y):");
- scanf("%f,%f",&x,&y);
- d1=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
- d2=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
- d3=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3));
- d4=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4));
- if(d1>1&&d2>1&&d3>1&&d4>1)
- {
- h=0;
- printf("圆塔的高度为 %d",h);
- }
- else
- {
- h=10;
- printf("圆塔的高度为 %d",h);
- }
- }
3 问题分析: 使用 sqrt 函数前应调用数学函数
三, 实验小结
通过此次实验, 我现在可以编写简单的 C 语言程序以及基本的算法流程图, 进一步掌握了变量的定义, 输入输出函数的使用以及运算符的使用.
来源: http://www.bubuko.com/infodetail-3457251.html