胡一阳

导航

C程序设计实验报告二

C程序设计实验报告二

实验项目:2.3.3字符与ASCII码;2.3.4运输符与表达式的应用;2.3.5顺序结构应用程序;3.3.1数学函数的算法;3.3.2鸡兔同笼的算法;3.3.3坐标的算法

姓名:胡一阳

实验地点:家中

实验时间:2020.03.13

一、实验目的与要求

1、掌握自增++、自减--运算符的正确使用。

2、掌握基本的输入/输出函数的基本功能、调用方法、输入/输出格式控制规定等。

3、掌握结构化程序的算法描述方法。

4、熟练掌握C语言的运算符,即运算符的优先级和结合性、运算规则、运算对象类型等。


 

二、实验内容

1、实验练习:2.3.3字符与ASCII码

1问题的简单描述:输出的时候西文半角会搞错

2实验代码:

#include<stdio.h>
main()
{
char a,b,c,d;
printf("请输入一个大写字母:");
scanf("%c",&a);
b=a+31;
c=a+32;
d=a+33;
printf("小写字母为%c,%c,%c\n",b,c,d);
printf("ASCLL为%d,%d,%d",b,c,d);
}

 

3问题分析:字符型变量用char,格式符用%c ; 大小写字母的ASCII码值相差32;

ASCII值为整型。

 


 

2、实验练习:2.3.4运输符与表达式的应用

1问题的简单描述:一个3 位的正整数去表达其各个位数数字。

2实验代码:

#include <stdio.h>
main()
{
int a,b,c,x,y;
printf("请输入一个3位数整数:\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);
}

 3问题分析:% 代表取余数, / 表示取整,再用乘法运算去表示。       


 

3、实验练习:2.3.5顺序结构应用程序

1问题的简单描述:西文半角的切换

2实验代码:

#include<stdio.h>
main()
{
float a,b,c,d,e,f,g,h,i;
/*其中,a西药费;b检查费;c材料费;d床位费;e观察费;f护理费;g应付款;h病人付款额;i应找回的金额;*/
printf("请输入西药费,检查费,材料费,床位费,观察费,护理费:\n");
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) ;
i=h-g;
printf("计算结果:\n");
printf("病人付款=%6.2f元\n应收款=%6.2f元,应找回=%6.2f元\n",h,g,i);
}

3问题分析:注意中英文的切换


 

4、实验练习:3.3.1数学函数的算法

1问题的简单描述:if  else语句不太会用,不知道要不要大括号,

2实验代码:

#include<stdio.h>
main()
{
float a,b;
printf("请输入a的值:");
scanf("%f",&a);
if (a<1)
{
printf("a的值为%.2f\n",a);
}
else
{
if (a<10)
{b=2*a-1;}
else
{b=3*a-1;}
printf("b的值为%.2f\n",b);
}
}

 流程图:

3问题分析:当if体的语句为一条简单的语句时,可以省略{ },多于一条时,要用{ }把这些语句括起来。


 

5、实验练习:3.3.2鸡兔同笼的算法

1问题的简单描述:注意不要漏掉了分号

2实验代码:

#include <stdio.h>
main()
{
int a,b,c,d;
printf("鸡兔总数,鸡兔脚总数:\n");
scanf("%d,%d",&a,&b);
if(a>0&&b>0)
{
c=(4*a-b)/2;
d=(b-2*a)/2;
printf("鸡有%d 兔有%d\n",c,d);
}
else
printf("输入错误!\n");
}

 

 流程图:

3问题分析:很容易漏掉乘号


 

6、实验练习:3.3.3坐标的算法

1问题的简单描述:根号和平方怎么表示。

2实验代码:

#include <stdio.h>
#include <math.h>
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((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;
printf("该塔的高度为%d\n",h);
}
else
{
h=10;
printf("该塔的高度为%d\n",h);
}
}

 3问题分析:要认真审题,根号要用sqrt。

 


 

三、实验小结

            这是第二次实验课,学习C语言已经有一个多月了。 通过本次实验基本掌握了简单的算法描述;用流程图的表达算法思想;运算符的优先级、运算规则、运算对象;算法的结构等。同时,在实验的过程中也有很多的问题,如if 语句不熟悉,经常在输出的时候没有注意西文半角。

posted on 2020-03-14 14:18  胡一阳  阅读(239)  评论(0编辑  收藏  举报