C语言第二次实验

C程序设计实验报告

姓名:陈英卉 实验地点:一教522 实验时间:2021.4.15
一、实验目的与要求
(1)掌握结构化程序的算法描述方法。
(2)了解C语言的基本语法要素,能熟练地将算法描述转化为C语言程序。
(3)熟练掌握C语言运算符的优先级、结合性、运算规则、运算对象类型等。
(4)掌握C语言逻辑值的表示方法(0代表“假”,1代表“真”)。
(5)学会正确的使用逻辑表达式和关系表达式。
(6)掌握各种形式的if语句语法和使用方法。注意if语句中if和else的匹配关系,以及if语句的嵌套。
(7)掌握switch语句的语法和使用方法。注意在switch语句中break语句的语法及switch语句的嵌套。
(8)能独立编写分支结构程序并测试通过。
(9)用if语句、switch语句解决简单的应用问题并上机实现。
二、实验内容
1、实验练习3.3.1
实验代码

main()
{
	float x,y;
	printf("请输入x的值:");
	scanf("%f",&x);
	if(x<1)
	y=x;
	else if(x<10)
	y=2*x-1;
	else
	y=3*x-1;
	printf("y的值为%.2f\n",y); 
}


心得体会:🏃要注意语句if else的就近原则
2、实验练习3.3.2
实验代码

main()
{
	int h,f,x,y;
	printf(" 请输入鸡兔总数,鸡兔脚总数:");
	scanf("%d,%d",&h,&f);
	if(x>0&&y>0)
	{
		x=(4*h-f)/2;
		y=(f-2*h)/2;
		printf("鸡有%d 兔有%d\n",x,y); 
	}
	else
	 printf ("输入错误!\n");
}


心得体会:🏃不知道为什么一直跳出错,经过反复检查调试还是出错,未搞明白问题在哪,所以上课的时候要认真听讲,然后去问同学
3、实验练习3.3.3

#include <math.h>
main()
{
	int h=10;
	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-x4)*(x-x4)+(y-y4)*(y-y4));
	d2=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
	d3=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
	d4=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3));
	if(d1>1&&d2>1&&d3>1&&d4>1)
	h=0;
	printf("该点高度为%d",h);
}


心得体会:🏃这个实验一定不能忘记math.h语句,然后这个经过实验发现有没有sqrt语句都不影响
4、实验练习4.3.1
实验代码

int main()
{
	int l,w,h;
	printf("请输入箱子的长、宽、高:\n");
	scanf("%d%d%d",&l,&w,&h);
	if(l>0&&w>0&&h>0)
	{
		l==w;
		l==h;
		h==w;
	printf("该箱子是正方形。\n");
    } 
	else
	printf("该箱子是长方形。\n");
	return 0;
}


心得体会:🏃这个代码要注意的就是不能忘记了l>0&&w>0&&h>0语句中的连等,要表达规范
5、实验练习4.3.2
实验代码

main()
{
	int a,b,c,f;
	float s;
	printf("请输入打印纸、墨盒、光盘的数量:\n");
	scanf("%d,%d,%d",&a,&b,&c);
	s=18*a+132*b+4.5*c;
	f=s/100;
	if(f>=5)
	f=5;
	switch(f)
	{
		case 0 : s=s;break;
		case 1 : s=0.95*s;break;
		case 2 : s=0.94*s;break;
		case 3 : s=0.93*s;break;
		case 4 : s=0.92*s;break;
		case 5 : s= 0.9*s;break;
		default : break;
	}
		printf("应付款=%.2f",s);
}


心得体会:🏃这个代码就是缺少了模板,刚开始的时候有点迷糊不知道怎么下手,后面看了4.3.3的代码自己就会了6、6
6、实验练习4.3.3

int main()
{
	int year,month,days;
	printf("Please enter year and month:\n");
	scanf("%d%d",&year,&month);
	switch (month)
	{
		case 2:if(year%4==0||(year%400==0&&year%100!=0))
			days=29;
			else
			days=28;
			break;
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:days=31;break;
		case 4:
		case 6:
		case 9:
		case 11:days=30;break;
	}
	printf("%d年%d月有%d天\n",year,month,days);
	return 0; 
}


心得体会:🏃这个实验代码就是不能过忽视闰年的条件year%4==0||(year%400==0&&year%100!=0)这个语句要齐全
三、实验小结
1、理解了if else语句的运用,加深了理解;
2、在if语句中理解运用了{}的作用,比理论课理解的更加深刻;
3、要多注意if语句中ifelse的匹配关系,以及if语句的嵌套;
4、理解并运用了在switch语句中break语句的语法及switch语句的嵌套;
5、能独立编写分支结构程序并测试通过,还能过完成if语句switch语句解决简单的应用问题
image

posted @ 2021-04-19 00:07  MeYiYan  阅读(100)  评论(0编辑  收藏  举报