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

3.1 顺序程序设计举例

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

编写程序

#include<stdio.h>
int main ()
{
	float f,c;
	f=64.0;
	c=(5.0/9)*(f-32);
	printf("f=%f\nc=%f\n",f,c);
	return 0;
}

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

【例3.2】计算存款利息。

有1000元想存一年。有3种方法可选:(1)活期,年利率为r1;(2)一年期定期,年利率为r2;(3)存两次半年定期,年利率为r3。请分别算出一年后按3种方法所得到的本息和。

编写程序

#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 数据的表现形式及其运算

转义字符表

转义字符字符值输出结果
\'一个单撇号(’)输出单撇号字符’
\''一个双撇号(’’)输出双撇号字符’’
\?一个问号(?)输出问号字符?
\\一个反斜线(\)输出反斜线字符\
\a警告(alert)产生声音或视觉信号
\b退格(backspace)将光标当前位置后退一个字符
\f换页(form feed)将光标当前位置移到下一页的开头
\n换行将光标当前位置移到下一行的开头
\r回车(carriage return)将光标当前位置移到本行的开头
\t水平制表符将光标当前位置移到下一个Tab位置
\v垂直制表符将光标当前位置移到下一个垂直制表对齐点
\o、\oo或\ooo其中o代表一个八进制数字与该八进制码对应的ASCII字符与该八进制对应的字符
\xh[h···]其中h代表一个十六进制数字与该十六进制码对应的ASCII字符与该十六进制对应的字符

符号常量与常变量

 &emsp;常变量与常量的异同:常变量具有变量的基本属性:有类型,占储存单元,只是不允许改变其值。可以说,常变量是有名字的不变量,而常量是没有名字的不变量。有名字就便于在程序中被引用。

# define Pi 3.1415926               //定义符号常量
const float pi=3.1415926;           //定义常变量

符号常量Pi和常变量pi都代表3.1415926,在程序中都能使用。但二者性质不同:定义符号常量用# define指令,它是预编译指令,它只是用符号常量代表一个字符串,在预编译时仅进行字符替换,在预编译后,符号常量就不存在了(全部置换成 3.1415926 了),对符号常量的名字是不分配储存单元的。而常变量要占用储存单元,有变量值,只是该值不改变而已。从使用的角度看,常变量具有符号常量的优点,而且使用更方便。有了长变量以后,可以不必多用符号常量。

数据类型

数据类型
基本类型
整型类型
基本整形 int
短整型 short int
长整型 long int
*双长整型 long long int
字符型 char
*布尔型 bool
浮点类型
单精度浮点型 float
双精度浮点型 double
复数浮点型 float_complex,double_complex,long long_complex
枚举类型 enum
空类型 void
派生类型
指针类型 *
数组类型
结构体类型 struct
共用体类型 union
函数类型

3.3 运算符和表达式

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

编写程序:

#include<stdio.h>
int main()
{
	char c1,c2;c1='A';
	c2=c1+32;
	printf("%c\n",c2);
	printf("%d\n",c2);
	return 0;
}

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

强行类型转换

(double)a            //将a转换成double型
(int)(x+y)           //将x+y的值转换成int型
(float)(5%3)         //将5%3的值转换成float型

3.4 C语句

【例3.4】给出三角形的三边长,求三角形面积。

编写程序:

#include<stdio.h>
#include<math.h>
int main()
{
	double a,b,c,s,area;
	a=3.67;
	b=5.43;
	c=6.21;
	s=(a+b+c)/2;
	area=sqrt(s*(s-a)*(s-b)*(s-c));
	printf("a=%f\tb=%f\t%f\n",a,b,c);
	printf("area=%f\n",area);
	return 0;
}

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

3.5 数据的输入输出

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

编写程序:

#include<stdio.h>
#include<math.h>
int main()
{
	double a,b,c,disc,x1,x2,p,q;
	scanf("%lf%lf%lf",&a,&b,&c);
	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;
}

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

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

编写程序:

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

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

【例3.7】float型数据的有效位数。

编写程序:

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

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

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

编写程序:

#include<stdio.h>
int main()
{
	char a='B',b='O',c='Y';
	putchar(a);
	putchar(b);
	putchar(c);
	putchar('\n');
	return 0;
}

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

【例3.9】从键盘输入BOY3个字符,然后把它们输出到屏幕。

编写程序

#include<stdio.h>
int main()
{
	char a,b,c;
    a=getchar();
    b=getchar();
    c=getchar();
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
    return 0;
}

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

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

编写程序:

#include<stdio.h>
int main()
{
	char c1,c2;
	c1=getchar();
	c2=c1+32;
	putchar(c2);
	putchar('\n');
	return 0;
}

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

  本章完:)

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值