目录
1.例子
示例❶
华氏温度转化为摄氏温度
c=5/9(f-32)
#include<stdio.h>
int main()
{
float f,c; \\定义f和c为单精度浮点型变量
f=64.0;
c=(5.0/9)*(f-32);
printf("f=%f\nc=%f\n",f,c); \\输出c的值
return 0;
}
//运行结果
开始运行...
f=64.000000
c=17.777779
示例❷
计算在不同情况下计算存款P0=1000元能获得的利息
❶活期存款一年年利率R1,本息和为P1=P0(1+R1)
❷定期一年,利率为R2;本息和为P2=P0(1+R2)
❸两次半年定期存款,利率为R3;本息和为P3=P0(1+R3/2)(1+R3/2)
#include<stdio.h>
int main()
{ float P0=1000,R1=0.017,R2=0.019,R3=0.015,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;
}
//运行结果
开始运行...
P1=1016.999939
p2=1019.000061
p3=1015.056335
运行结束。
2.数据表现形式
转义字符
通过将“\”后的字符转义,使转义后的字符不在拥有原本代表的意义,只有转义后的意义。
3.数据类型
1.整型数据
整型数据常见的存储空间和值的范围(以Visual C++为例)
unsigned表示无符号整数类型,signed表示有符号类型。
在有些情况下,有些数据只有正值,这时;可将变量定义为无符号类型。
⚠️⚠️⚠️
1.只有整型数据才可以加signed或unsigned修饰符
2.将变量定义为无符号整数类型后,不能在赋给其一个负值;否则将引发错误。输出错误的结果
3.对于无符号整数类型要使用%u输出。%u表示用无符号十进制的格式输出。
2.字符型数据
字符按其代码形式存储,是整数类型的一种。但是使用上和整数类型又有些不同。
1.字符及其代码
大多数系统都采用ASCII字符集,也就是常说的ASCII码。
各种的字符集的基本集都包含了127个字符,包括:
☉大小写英文字母
☉数字0~9
☉专门符号:29个。! ‘’ # & ’ ( ) * + , - . / : ; < = > ? [ \ ] ^ _ ` { | } ~
☉空格符:空格、tab(水平制表符)、垂直制表符、换行、换页(from feed)。
☉不能显示的字符:空字符(‘\0’),警告(‘\a’),退格(‘\b’),回车(‘\r’)
字符以整数形式存放在内存单元中。
A的ASCII码——十进制(65),二进制(1000001)
a的ASCII码——十进制(97),二进制(1100001)
2.字符变量
字符变量使用类型符“char”定义字符变量。
#include<stdio.h>
int main()
{
char A='?';
printf("%d %c\n",A,A);
return 0;
}
//运行结果
开始运行...
63 ?
运行结束。
3.浮点型数据
表示具有小数点的实数
1.float型(单精度浮点型)
编译系统为每个float型变量分配四个字节,float型数据可以得到6位有效数字。
2.double型(双精度浮点型)
编译系统为每个double型变量分配八个字节,double型数据可以得到15位有效数字。
3.long double型(长双精度型)
不同的编译系统对long double型的处理方法不同。
Tuurbo C对long double型分配16个字节,有效数字为19位。Visual C++对long double型分配8个字节,有效数字为15位。
4.运算符和表达式
自增减运算符通常用于循环语句中。
1. i++和++i的不同
i++先执行i=i+1,再使用i的值。
++i先使用i的值,再执行i=i+1。
#include<stdio.h>
int main()
{
int i,j1,j2,c1,c2;
i=1;
j1=i++;
j2=(++i);
c1=i--;
c2=--i;
printf("%d",j1);
printf(" %d\n",j2);
printf("%d %d\n",c1,c2);
return 0;
}
//运行结果
开始运行...
1 3
3 1
运行结束。
2. 运算符的优先性和结合性
一般情况下,先乘除后加减。
在表达式中,按运算符的优先级依次执行。
一般情况下,算术运算符是自左至右的结合方向,即左结合性;赋值运算符是自右至左的结合方向,即右结合性。
3.混合运算
加减乘除运算的两个数中有一个数为float或double型,结果为double型。因为系统会将所有的float型数据转化为double型,在进行运算。
若是int型和float或double型数据进行运算,会先将int型和float型数据转化为double型;再运算。
char型数据和整型数据进行运算,就是把字符的ASCII码和整型数据进行运算。
#include<stdio.h>
int main()
{
char c1,c2;
c1='A';
c2=c1+32;
printf("%c\n",c2);
printf("%d\n",c2);
return 0;
}
//运行结果
开始运行...
a
97
运行结束。
4.强制转化符
例如:
(double)a (将a转化为double型)
(int)(x+y) (将x+y的值转化为int型)
(float)(5%3) (将5%3的值转化为float型)
一般形式:
(类型名)(表达式)
#include<stdio.h>
int main()
{
double x,y,Z,V;
x=2;
y=3;
Z=(int)x+y; //将x转化为int型
V=(int)(x+y); //将x+y转化为int型
printf("%f %f\n",Z,V);
return 0;
}
//运行结果
开始运行...
5.000000 5.000000
运行结束。
虽然结果相同,但执行的程序略有不同。