第3章 最简单的C程序设计——顺序程序设计

以下是例题:

【例1】:从键盘输入a和b的值,计算(a+b)的值并输出至屏幕.
【例3.1】有人用温度计测量出用华氏法表示的温度(如 64华氏摄氏度),今要求把它转换为以摄氏法表示的温度(如 17.8摄氏度)。
【例3.2】:计算存款利息,有1000元,想存一年。有三种方法可选
【例3.3.1】:给定一个大写字母,要求用小写字母输出。
【例3.3.2】:从键盘输入一个整数,经过计算后,将它的结果强制转换为(double)类型。
【例3.4】: 给出三个数判断能否构成三角形,若能,求三角形的面积,若不能,输出不能构成三角形。
【例3.5】:求ax²+bx+c=0的根。a,b,c由键盘输入,设b²-4ac>0。
【例3.6】:用%f输出实数,只能得到6位小数。
【例3.8】:先后输出BOY三个字符。
【例3.9】:从键盘输入BOY三个字符,然后把它们输出到屏幕。
【例3.10】:改写例3.3程序,使之可以适用于任何大写字母。从键盘输入一个大写字母,在显示屏上显示对应的小写字母

用"scanf"函数将数据输入,用"printf"将结果输出至屏幕;

例如下面的这个例子。

【例1】:从键盘输入a和b的值,计算(a+b)的值并输出至屏幕.

代码如下:

#include <stdio.h>
int main ()
{
	int a,b,sum;
	printf("请输入a和b的值:\n");
	scanf("%d %d",&a,&b);
	sum = a + b;
	printf("输出的值是:%d",sum);
	return 0;
}

运行结果如下:
在这里插入图片描述

3.1 顺序程序设计举例

【例3.1】:有人用温度计测量出用华氏法表示的温度(如 64华氏摄氏度),今要求把它转换为以摄氏法表示的温度(如 17.8摄氏度)。

提示:解题的关键在于找到两者的转换表达式。表达式是c = 5/9(f - 32)其中f代表华氏温度,c代表摄氏温度。据此可以写下如此代码:

#include <stdio.h>
int main ()
{
	float f,c;
	f = 64;
	c = (5.0/9)*(f-32);
	printf("经过奕佳的计算得出:\n");
	printf("f=%f\nc=%f\n",f,c);
	return 0; 
}

运行结果如下
在这里插入图片描述

【例3.2】 计算存款利息,有1000元,想存一年。有三种方法可选

  1. 活期,年利率为r1;
  2. 一年期定期,年利率为r2;
  3. 存两次半年定期,年利率为r3.

请分别计算出一年后按三种方法所得到的本息和。
以下是运行代码

#include <stdio.h>
int main ()
{
	float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3;//定义变量;
	p1=p0*(1+r1);										 //计算活期本息和;
	p2=p0*(1+r2);										 //计算一年定期本息和;
	p3=p0*(1+r3/2)*(1+r3/2);							 //计算存两次半年定期的本息和;
	printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3);			 //输出结果;
	return 0;
}

以下是运行结果
在这里插入图片描述

3.2 数据的表现形式及其运算

3.2.1 常量和变量
1.常量
(1)整型常量 如1000,12345,0,-345等都是整型常量。
(2)实型常量 有两种表现形式:
1.十进制小数形式:由数字和小数点组成。如123.456,0.456,-3.1415等。
2.指数形式:如12.34e3(代表12.34*10^3)还有用“E”表示的。由于在计算机输入或输出的时候无法表示上角或下角,故规定以字母e或E代表以10为底的指数。但应注意:E或e之前必须有数字,且e或E后面必须为整数。
3.字符常量:用单撇号括起来的一个字符,如’z’,‘x’,‘c’,‘3’,’!’,’#’,‘a’等,不能写成’ab’,‘12’。字符常量只能是一个字符,不包括单撇号。一般来说,字符在计算机存储单元中是以ASCII代码形式存储的。
以下是转义字符表:
在这里插入图片描述

3.3 运算符和表达式.

【例3.3.1】:给定一个大写字母,要求用小写字母输出。

以下是代码:

#include<stdio.h>
int main ()
{
	char c1,c2;
	c1='A';						//将字符'A'的ASCII代码放到c1变量中;
	c2=c1+32;					//得到字符'a'的ASCII代码,放在c2变量中;
	printf("%c\n",c2);			//输出c2的值,是一个字符;
	printf("%d\n",c2);			//输出c2的值,是字符'a'的ASCII代码;
	return 0;
}

接下来是运行结果
在这里插入图片描述
’a’与’A’的ASCII代码就相差32,在ASCII代码表中,所有的小写字母和大写字母都相差32.
接下来说一下强制转换(其一般形式表现为(类型名)(表达式))

【例3.3.2】:从键盘输入一个整数,经过计算后,将它的结果强制转换为(double)类型。

代码如下:

#include <stdio.h>
int main ()
{
	int a,sum,i;
	printf("请输入两个数:\n");
	scanf("%d,%d",&a,&i);						//从键盘输入两个数;
	printf("输入的数是%d,%d\n",a,i);				//显示输入的两个数;
	sum = a/i;									//进行两个数的除法运算;
	printf("输出的数是:%f\n",(double)sum);		//最后输出结果;
	return 0;
}

运行结果如下
在这里插入图片描述
最后,sum实现了强制转换,由原来的(int)型变为了(double)型。

3.4 C 语 句

【例3.4】: 给出三个数判断能否构成三角形,若能,求三角形的面积,若不能,输出不能构成三角形。

代码如下:

#include<math.h>
#include<stdio.h>
int main()
{
	float a,b,c,p,s;
	printf("请输入一个三边:\n");
	scanf("%f,%f,%f",&a,&b,&c);

	if(a+b>c&&a+c>b&&b+c>a)
	
	{
	p=(a+b+c)/2;
	s=sqrt(p*(p-a)*(p-b)*(p-c));
	printf("能构成三角形,面积为:%f\n",s);
}
	else
	printf("不能构成三角形");
	return 0;
	 
	
}

运行结果如下:
在这里插入图片描述

3.5 数据的输入和输出

【例3.5】求ax²+bx+c=0的根。a,b,c由键盘输入,设b²-4ac>0。

解题思路:首先要知道求根的方法。有数学只是已知:如果b²-4ac≥0,则一元二次方程有两个实根。
代码如下:

#include <stdio.h>
#include <math.h>								//程序中要调用求平方根的函数sqrt
int main ()
{
	double a,b,c,disc,x1,x2,p,q;				//disc用来存放判别式(b * b-4ac)的值
	printf("请输入三个数:\n");
	scanf("%lf%lf%lf",&a,&b,&c);				//输入双精度型变量的值要用格式声明“%lf”
	disc = b*b-4*a*c;
	p=-b/(2.0*a);
	q=sqrt(disc)/(2.0*a);
	x1 = p+q;									
	x2=p-q;										//求出方程的两个根
	printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);		//输出方程的两个根
	return 0;
}

运行结果如下:
在这里插入图片描述
要 注 意 的 是 , 在 输 入 数 据 时 , 1 , 2 , 3 这 三 个 数 之 间 用 空 格 分 隔 , 最 后 按 “ 回 车 ” 键 。 要注意的是,在输入数据时,1,2,3这三个数之间用空格分隔,最后按“回车”键。 1,2,3

用“printf”输出一个数

【例3.6】:用%f输出实数,只能得到6位小数。

代码如下:

#include <stdio.h>
int main ()
{
	double a=1.0;
	printf("%f\n",a/3);
	return 0;
}

运行结果如下:
在这里插入图片描述

【例3.8】:先后输出BOY三个字符。

以下是代码:

#include <stdio.h>
int main ()
{
	char a='B',b='O',c='Y';						//定义三个字符变量并初始化
	putchar(a);									//向显示器输出字符B
	putchar(b);									//向显示器输出字符O
	putchar(c);									//向显示器输出字符Y
	putchar('\n');								//向显示器输出一个换行符
	return 0;
}

运行结果如下:
在这里插入图片描述

【例3.9】:从键盘输入BOY三个字符,然后把它们输出到屏幕。(用getchar函数输入)

代码如下:

#include <stdio.h>
int main ()
{
	char a,b,c;									//定义三个字符变量
	a=getchar();								//从键盘输入一个字符,送给字符变量a
	b=getchar();								//从键盘输入一个字符,送给字符变量b
	c=getchar();								//从键盘输入一个字符,送给字符变量c
	putchar(a);									//将变量a的值输出
	putchar(b);									//将变量b的值输出
	putchar(c);									//将变量c的值输出
	putchar('\n');								//向显示器输出一个换行符
	return 0;
}

运行结果如下:
在这里插入图片描述

【例3.10】:改写例3.3程序,使之可以适用于任何大写字母。从键盘输入一个大写字母,在显示屏上显示对应的小写字母

代码如下:

#include <stdio.h>
int main ()
{
	char c1,c2;
	c1=getchar();			//从键盘输入一个大写字母,赋给字符变量c1
	c2=c1+32;				//求对应小写字母的ASCII代码,放在字符变量c2中
	putchar(c2);			//输出c2的值,是一个字符
	putchar('\n');
	return 0;
}

运行结果如下:
在这里插入图片描述
或者是这样

#include <stdio.h>
int main ()
{
	char c1,c2;
	c1=getchar();			//从键盘输入一个大写字母,赋给字符变量c1
	c2=c1+32;				//求对应小写字母的ASCII代码,放在字符变量c2中
	putchar(c2);			//输出c2的值,是一个字符
	printf("大写字母是:%c\n小写字母是:%c\n",c1,c2);//输出c1,c2的值
	return 0;
}

运行结果如下:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值