C程序设计实验报告(二)
♦实验项目:2.3.3字符与ASCII码;2.3.4运输符与表达式的应用;2.3.5顺序结构应用程序;3.3.1数学函数的算法;3.3.2鸡兔同笼的算法;3.3.3坐标的算法
♦ 姓名:聂石燕
♦实验地点:家中
♦实验时间:2020.03.10
一、实验目的与要求
1、掌握自增++、自减--运算符的正确使用。
2、掌握基本的输入/输出函数的基本功能、调用方法、输入/输出格式控制规定等。
3、掌握结构化程序的算法描述方法。
4、熟练掌握C语言的运算符,即运算符的优先级和结合性、运算规则、运算对象类型等。
二、实验内容
1、实验练习:2.3.3字符与ASCII码
1问题的简单描述:输出错误
2实验代码:
#include
main()
{
char c,d,e,f;
printf("请输入一个大写字母:\n");
scanf("%c",&c);
d=c+31;
e=c+32;
f=c+33;
printf("小写字母为%c,%c,%c\n",d,e,f);
printf("ASCII值为%d,%d,%d\n",d,e,f);
}
3问题分析:字符型变量用char,格式符用%c; ASCII值为整型;大小写字母的ASCII码值相差32 。
2、实验练习:2.3.4运输符与表达式的应用
1问题的简单描述:一个3 位的正整数,不知道怎样去表达其十位数数字。
2实验代码:
1 #include
2 main()3 {4 int a,b,c,x,y;5 printf("请输入一个3位的正整数:\n",x);6 scanf("%d",&x);7 a=x/100;8 b=(x/10)%10;9 c=x%10;10 y=c*100+b*10+a;11 printf("%d: %d\n",x,y);12
13 }
3问题分析:% 代表取余数,/ 表示取整。
3、实验练习:2.3.5顺序结构应用程序
1问题的简单描述:无
2实验代码:
#include
main()
{
float x,j,c1,c2,g,h,yf,sf,zh;/*x代表西药费,j代表检查费,c1材料费,c2代表床位费,g代表观察费,h代表护理费,yf代表应付款,sf代表病人付款,zh代表找回的金额;*/printf("请输入西药费,检查费,材料费,床位费,观察费,护理费:\n");
scanf("%f,%f,%f,%f,%f,%f",&x,&j,&c1,&c2,&g,&h);
yf=x+j+c1+c2+g+h;
printf("应付款(元):%.2f\n”,yf);
printf("病人付款(元):\n");
scanf("%f",&sf);
zh=sf-yf;
printf("计算结果:\n");
printf("病人付款=%6.2f元\n 应付款=%6.2f元,应找回=%6.2f元\n",sf,yf,zh);
}
3问题分析:变量比较多,注意中英文的切换,每个语句结束后不要漏掉;
4、实验练习:3.3.1数学函数的算法
1问题的简单描述:if else语句不太会用。输入-1,得到的是0。
2实验代码:
#include
main()
{
fioat x,y;
printf("请输入x的值:");
scanf("%f",&x);if(x<1)
y=x;else
if(x>=1&&x<10)
y=2*x-1;elsey=3*x-1;
printf("y的值为%.2f\n",y);
}
流程图:
3问题分析:刚开始条件语句表达错误;当if体的语句为一条简单的语句时,可以省略{ },多于一条时,要用{ }把这些语句括起来。
5、实验练习:3.3.2鸡兔同笼的算法
1问题的简单描述:没有得到x,y ;输出提示输入有误。
2实验代码:
#include
main()
{
int h,f,x,y;
printf("鸡兔总头数,鸡兔总脚数:");
scanf("%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);
}elseprintf("输入有错误!\n");
}
流程图:
3问题分析:h 和f都要大于0 ;4*h 写成了4h ,漏掉了*
6、实验练习:3.3.3坐标的算法
1问题的简单描述:根号和平方怎么表示。
2实验代码:
#include#include
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):\n");
scanf("%f,%f",&x,&y);
d1=sqrt(pow(x-x1,2)+pow(y-y1,2));
d2=sqrt(pow(x-x2,2)+pow(y-y2,2));
d3=sqrt(pow(x-x3,2)+pow(y-y3,2));
d4=sqrt(pow(x-x4,2)+pow(y-y4,2));if(d1>1&&d2>1&&d3>1&&d4>1)
h=0;elseh=10;
printf("该塔的高度为%d",h)
}
3问题分析:开方用sqrt( )函数,x的y次方用pow(x,y)表示。
三、实验小结
这是本学期的的第四周,也是第二次实验课,学习C语言已经有四个周了,我对C语言的学习也越来越有感觉了。 通过本次实验基本掌握了简单的算法描述;用流程图的表达算法思想;运算符的优先级、运算规则、运算对象;算法的结构等。同时,在实验的过程中也暴露出很多的问题,如漏掉乘号* 、if 语句不熟悉、课后缺少练习等,查漏补缺、循序渐进。
原文:https://www.cnblogs.com/nsy-2019/p/12466266.html