C程序设计实验报告
姓名:邹琼
实验地点:家
实验时间:2020年3月9日
实验项目:
- 2.3.3字符与ASCII码
- 2.3.4运算符与表达式的应用
- 2.3.5顺序结构应用程序
- 3.3.1数学函数的算法描述
- 3.3.2鸡兔同笼的算法描述
3.3.3确定坐标的算法描述
一、实验目的与要求
1.掌握自增++、自减--运算符的正确使用。
2.掌握基本的输入/输出函数的基本功能、调用方法、输入/输出格式控制规定等。
3.掌握结构化程序的算法描述方法。
4.熟练掌握C语言的运算符,即运算符的优先级和结合性、运算规则、运算对象类型等。二、实验内容
(1)2.3.3字符与ASCII码
1.问题的简单描述:换行符号打错,写成了/n,导致运行结果有点乱
2.实验代码:
#include<stdio.h>
main()
{
char ch=0;
printf("请输入一个大写字母:");
scanf("%c",&ch);
printf("%c,%c,%c\n",ch+31,ch+32,ch+33);
printf("%d,%d,%d\n",ch+31,ch+32,ch+33);
printf("%d\n",(ch+31+ch+32+ch+33)/3);
}
3.问题分析:没有注意到细节问题,平时练习不够,致使换行符号打错。
(2)2.3.4运算符与表达式的应用
1.问题的简单描述:一开始不清楚如何逆输出已输入的整数
2.实验代码:
#include<stdio.h>
main()
{
int a,b,c,d;
printf("请输入一个3位正整数:");
scanf("%d",&a);
b=a%10;
c=a%100/10;
d=a/100;
a=b*100+c*10+d;
printf("%d\n",a);
return 0;
}
3.问题分析:要用到%取余,/100、/10取整,,最后得出结果。
(3)2.3.5顺序结构应用程序
1.问题的简单描述:在文字之间逗号没有切换输入法
2.实验代码:
#include<stdio.h>
int main()
{
float x,j,c,cw,g,f,hj,fk,zh;
/*其中,x代表西药费;j代表检查费;c代表材料费;cw代表床位费;g代表观察费;
f代表护理费;hj代表应付款;fk代表病人付款额;zh代表应找回的金额;*/
printf("请输入西药费,检查费,材料费,床位费,观察费,护理费:\n");
scanf("%f,%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.问题的简单描述:无
2.实验代码:
#include<stdio.h>
int main()
{
float x,y;
printf("请输入x的值:");
scanf("%f",&x);
if(x<1)y=x;else if(1<=x&&x<10)y=2*x-1;else if(x>=10)y=3*x-1;
printf("y的值为%.2f",y);
return 0;
}
3.流程图
4.问题分析:无
(5)3.3.2鸡兔同笼的算法描述
1.问题的简单描述:if后面打了x、y,在运行时输入对应数字后,得到了输入错误!的结果。
2.实验代码:
#include<stdio.h>
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);
}
else
printf("输入错误!\n");
}
3.流程图:
4.问题分析:if后面应该是h、f,通过h、f的计算再赋值给x、y,再得出相应的正确答案。
(6)3.3.3确定坐标的算法描述
1.问题的简单描述:平方的输入问题
2.实验代码:
#include<stdio.h>
#include<math.h>
main()
{
float x,y;
printf("请输入一点(x,y):");
scanf("%f,%f",&x,&y);
if(pow((x-2),2)+pow((y-2),2)==1||pow((x+2),2)+pow((y+2),2)==1||
pow((x-2),2)+pow((y+2),2)==1||pow((x+2),2)+pow((y-2),2)==1)
{
printf("该塔的高度为10");
}
else
{
printf("该塔的高度为0");
}
}
3.问题分析:用到pow数学函数来表示平方,pow(a,b)表示a的b次方。
三、实验小结
在本次实验中,较充分地运用之前所学的知识,还在课外了解到了其他的知识点,有很大的收获。这次的实验告诉我练习还是要多做,这样才不会忘记一些细节的东西。