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

@toc

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;
}

运行结果
第三章 最简单的C程序设计——顺序程序设计

【例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;
}

运行结果第三章 最简单的C程序设计——顺序程序设计

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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

强行类型转换

(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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

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

编写程序:

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

运行结果:
第三章 最简单的C程序设计——顺序程序设计

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

编写程序:

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

运行结果:
第三章 最简单的C程序设计——顺序程序设计

【例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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

【例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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

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

编写程序:

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

运行结果:
第三章 最简单的C程序设计——顺序程序设计

  本章完:)

@[toc](第三章 最简单的C程序设计——顺序程序设计) # 3.1 顺序程序设计举例 ## 【例3.1】有人用温度计测量出用华氏法表示的温度(如64℉),今要求把它转换为以摄氏法表示的温度(如17.8℃)。 **编写程序** ```c #include

编写程序

#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;
}

运行结果第三章 最简单的C程序设计——顺序程序设计

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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

强行类型转换

(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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

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

编写程序:

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

运行结果:
第三章 最简单的C程序设计——顺序程序设计

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

编写程序:

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

运行结果:
第三章 最简单的C程序设计——顺序程序设计

【例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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

【例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;
}

运行结果:
第三章 最简单的C程序设计——顺序程序设计

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

编写程序:

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

运行结果:
第三章 最简单的C程序设计——顺序程序设计

  本章完:)