C程序设计实验报告(第二次)
姓名:熊毅
实验地点:家
实验时间:2020.03.10
实验项目:字符与ASCII码;运算符与表达式的应用;顺序结构应用程序;数学函数;鸡兔同笼;确定坐标
一、实验目的与要求
1、掌握自增++、自减--运算符的正确使用。
2、掌握基本的输入/输出函数的基本功能、调用方法、输入/输出格式控制规定等。
3、掌握结构化程序的算法描述方法。
4、熟练掌握C语言的运算符,即运算符的优先级和结核性、运算规则、运算对象类型等。
二、实验内容
1、实验练习:实验2.3.3 字符与ASCII码
1问题的简单描述:从键盘输入一个大写字母,要求将其转换成小写字母并输出,同时输出这个小写字母相邻的两个字母,以及它们的ASCLL值。
2实验代码:
#include<stdio.h>
main()
{
int a,b,c,d;
printf("请输入一个大写字母:
") ;
scanf("%c",&a);
b=a+32;
c=b-1;
d=b+1;
printf("小写字母为:%c,%c,%c
",c,b,d);
printf("ASCII码值为:%d,%d,%d",c,b,d);
}
3问题分析:要注意字母大小写的转换,以及中间的差值。
2、实验练习:实验2.3.4 运算符与表达式的应用
1问题的简单描述:从键盘输入一个3位正整数,要求输出该数的逆序数。
2实验代码:
#include<stdio.h>
int main()
{
int a,b,c,x,y;
printf("请输入一个3位正整数:
");
scanf("%d",&x);
a=x/100; //个位
b=x%100/10; //十位
c=x%10; //百位
y=c*100+b*10+a;
printf("%d: %d
",x,y) ;
return 0;
}
3问题分析:注意%和/的使用和要区分%和/所表示的意义,用“/”表示除法,用“%”表示整数相除,取余数。
3、实验练习:2.3.5 顺序结构应用程序
1问题的简单描述:编写出一个程序,方便医院收费处利用此程序出纳算账。
2实验代码:
#include<stdio.h>
int main()
{
float a,b,c,d,e,f,g,h,j; //其中,a代表西药费;b代表检查费;c代表材料费;d代表床位费;e代表观察费;f代表护理费;g代表应付款;h代表病人付款额,j代表应找回的金额//
printf("请输入西药费,检查费,材料费,床位费,观察费,护理费:
");
scanf("%f,%f,%f,%f,%f,%f",&a,&b,&c,&d,&e,&f);
g=a+b+c+d+e+f;
printf("应付款:%.2f",g);
printf("病人付款:");
scanf("%f",&h);
j=h-g;
printf("计算结果:
");
printf("病人付款=%6.2f元
应收款=%6.2f元,应找回=%6.2f元
",g,h,j);
return 0;
}
3问题分析:在输入代码的过程中,注意中英文输入法的切换,以及注意printf(),scanf()语句的应用。
4、实验练习:实验3.3.1 数学函数的算法描述
1问题的简单描述:
,请用算法流程图表示该函数的算法。
2实验代码:
#include<stdio.h>
main()
{
float x,y;
printf("请输入x的值:
");
scanf("%f",&x);
if(x<1) y=x;
if(1<=x<10) y=2*x-1;
if(x>=10) y=3*x-1;
printf("y的值为%.2f
",y);
}
3问题分析 :在进行代码编译的前,需要先分析问题中各个条件之间的关系
4流程图
5、实验练习:实验3.3.2 鸡兔同笼的算法描述
1问题的简单描述:用算法流程图描述求解鸡兔同笼问题的算法。
2实验代码:
#include<stdio.h>
int 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
",x,y);
}
else
{
printf("输入错误!
");
}
return 0;
}
3问题分析:整型变量注意用int,if else的使用以及在出现多个函数时{}的使用。
4流程图:
6、实验练习:实验3.3.3 确定坐标的算法描述
1问题的简单描述:圆塔位置如图所示,现输入任意坐标,该点坐标在任意一个圆塔内,则输出圆塔的高度;若该点不在圆塔内,则输出0。
2实验代码:
#include<stdio.h>
#include<math.h>
main()
{
int h=10;
float x1=1,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;
else h=10;
printf("该塔高度为%d",h);
}
3问题分析:#include<math.h>的使用,和sqrt()的使用,以及平方的表示。
三、实验小结
1、学习了markdown的使用方法,以及发现了自己对博客园不熟悉的地方比较多,要多加练习和理解。
2、在本次实验中对#include<math.h>使用更加加深,两次实验都运用了#include<math.h>头文件,对数学函数的程序理解更加深刻。
3、在实验分享,共享屏幕分析代码时,发现自己只会使用课本上的实验代码,课外的方法一概不知,说明课外拓展不够充实。