姓名:游山
实验地点:家
实验时间:2020.3.9
实验项目:2.3.3 字符与ASCLL码
2.3.4 运算符与表达式的运用
2.3.5 顺序结构应用程序
3.3.1 数学函数的算法描述
3.3.2 鸡兔同笼的算法描述
3.3.3 确定坐标的算法描述
二、实验内容
1、实验练习:2.3.3 字符与ASCLL值
1、问题的简单描述:任意输入一个大写字母,要求转化成小写字母输出,并输出这个小写字母相邻的两个字母以及它们的ASCII码
2、实验代码:
#includemain() { char x; printf("请输入一个大写字母: \n"); scanf("%c",&x); printf("小写字母为: %c,%c,%c\n",x+31,x+32,x+33); printf("ASCII码值为: %d,%d,%d\n",x+31,x+32,x+33); }
3、一开始没有加上scanf()导致无法输入
2、实验练习:2.3.4 运算符与表达式的应用
1、问题描述:从键盘输入一个三位正整数,要求输出该数的逆序数。
2、实验代码:
#includeint main() { int a,b,c,x,y; printf("输入一个三位整数: \n"); scanf("%d",&x); a=x/100; b=(x%100)/10; c=(x%100)%10; y=c*100+b*10+a; printf("%d:%d,\n",x,y); return 0; }
3、问题分析:参与除法(/)运算的连个变量均为整型,结果为整数取整,而不是四舍五入。
3、实验练习:2.3.5 顺序结构应用程序
1、问题描述:编写一个程序,以方便医院算账,要求输入病人在医院的各项支出费用(西药费、检查费、材料费、床位费、观察费、护理费),计算出应付款数,在输入病人所付款数,打印出应找还的金额。
2、实验代码:
#includeint main() { float x,j,c,hj,fk,zh,cw,g,f; 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、问题分析:f与%f之间一开始没有打逗
4、实验练习:3.3.1数学函数的算法描述
1、问题描述:
用C语言程序编写
2、实验代码:
#includeint main() { float x,y; printf("输入x的值: "); scanf("%f",&x); if(x<1) printf("y的值为: %.1f\n",x); else if(x>=1&&x<10) printf("y的值为: %.0f\n",2*x-1); else printf("y的值为: %.0f\n",3*x-1); }
3、问题分析:没问题
5、实验练习:3.3.2 鸡兔同笼的算法描述
1、问题描述:在if后面的括号x>0&&y<0,结果输入错误
2、实验代码:
#includeint main() { int h,f,x,y; printf("鸡兔总数,鸡兔脚总数: "); scabf("%d,%d",&h,&f); if(h>0&&f>0) { x=(4*h-f)/2; y=(f-2*h)/2; printf("鸡:%d兔: %d\n",x,y); } else printf("输入错误! \n"); }
3、问题分析:scanf("")里&后面的字母要与先if()里的字母相同
6、实验练习:3.3.3确定坐标的算法描述
1、问题描述:有4个圆塔,圆心分别为(2,2)、(-2,2)、 (2,-2)、(-2,- 2), 圆半径为1,如图3-3所示。这4个塔的高度,均为10m,塔以外无建筑物。现输入任意-一点的坐标,若该点坐标在任意-个圆塔内,则输出圆塔的高度;若该点不在圆塔内,则输出0。
2、实验代码:
#include#include main() { int h=10; float x1=2,y1=2,x2=-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) printf("该点的高度为:0"); else printf("该点的高度为:10"); }
3、问题分析:不懂