*\
76%

C语言设计实验报告(第二次)


C程序设计实验报告


一、实验目的与要求

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

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

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

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

二、实验内容


1、实验练习:字符与ASCLL码

1.问题的简单描述:字符的输入输出写法与数值的输入输出不同

2.实验代码:

#include<stdio.h>
int main()
{
	//第一种写法 
	char ch;
	printf("请输入一个大写字母"); 
	ch=getchar();
	printf("小写字母为\n") ;
	putchar(ch+31);
	putchar(ch+32);
	putchar(ch+33);
	
	//第二种写法 
	scanf("%c",&ch);
	printf("%c,%c,%c\n",ch+31,ch+32,ch+33);
	
	//程序改进:计算平均值并输出 
	printf("%c",(ch+31+ch+32+ch+33)/3) ;
}

3.问题分析:字符的输入输出可以采用sacnf("%c",&字符变量)+printf("%c",&字符变量)的写法;也可以采用ch=getc(stdin)``ch=getch()``ch=getchar()输入、putc()``putch()``putchar()输出。


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

1.问题的简单描述:原始数据被破坏

2.实验代码:

#include<stdio.h>
int main()
{
	int i,j,k;
	printf("请输入一个三位数");
	scanf("%d",&i) ;
	//第三位 
	k=i%10;
	//第二位
	j=(i%100-k)/10;
	//第一位 
	i/=100;
	printf("%d %d %d",k,j,i);
	
	return 0;
}

3.问题分析:在对数据处理的时候,有时候会破坏数据,那么接下来使用到该数据就会出现问题;

解决方法1:定义一个变量存储该数据,当破坏的时候再用该变量取回;

解决方法2:先使用最后破坏。


3、实验练习:计算医药费

1.问题的简单描述:无

2.实验代码:

#include<stdio.h>
int main()
{
	float i,j,k,x,y,z; 
	printf("请输入西药费,检查费,材料费,床位费,观察费,护理费:\n");
	scanf("%f,%f,%f,%f,%f,%f",&i,&j,&k,&x,&y,&z);
	float sum;
	sum=i+k+j+x+y+z;
	printf("应付款(元):%.2f病人付款(元):",sum);
	int pay;
	scanf("%d",&pay) ;
	printf("计算结果:\n病人付款=%d元\n应收款=%.2f元,应找回%.2f元",pay,sum,pay-sum);
	return 0;
}

3.问题分析:无


4、实验练习:数学函数

1.问题的简单描述:表达式变量数字混合计算

2.实验代码:

#include<stdio.h>
int main()
{
	float x;
	float 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",y);
	return 0;
}

流程图

3.问题分析:在计算y=2x-1的时候输入代码应该是y=2*x-1,*不能漏掉!


5、实验练习:鸡兔同笼

1.问题的简单描述:和第四个实验同样问题

2.实验代码:

#include<stdio.h>
int 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");
	}
	return 0;
}

流程图

3.问题分析:同实验4.


6、实验练习:确定坐标

1.问题的简单描述:表达距离

2.实验代码:

#include<stdio.h>
int main()
{
	float x,y;
	printf("请输入一个点(x,y):");
	scanf("%f,%f",&x,&y);
	if(x<0) {
		x=-x;
	}
	if(y<0) {
		y=-y;
	}
	if(((x-2)*(x-2)+(y-2)*(y-2))<1){
		printf("10");
	}else{
		printf("0");
	}
	
	return 0;
}

流程图

3.问题分析:这个实验最复杂的就是在if判断条件,一开始我用的是计算原点到圆心的距离,要使用到#include<math.h>中的sqrt表示根号。但是有弊端,所以用了第二种方法:写出圆的方程,<R就是圆内的点。但是要注意把负数都转正。


三、实验小结

本次实验当中主要是巩固了C语言基本写法,对一些细枝末节的错误加深了印象。

与此同时还自学了markdown的写法(本篇博文就是用markdown写的):

标题:

# 一级标题
## 二级标题
### 三级标题

样式:

*斜体* 

**粗体** 

==高亮==

~~删除线~~

等等

回到顶部

posted @ 2020-03-10 14:50  洋葱gz  阅读(437)  评论(2编辑  收藏  举报