%c 字符 %d 整数 %f小数
2.1 引例
/* output: "programming is fun." */
#include<stdio.h>
int main(void)
{
printf("programming is fun.");
return 0
}
运行结果:
programming is fun.
球体积和表面积
#include<stdio.h>
#define PI 3.14159
void main()
{ int r;
float v,f;
r=2;
v=4.0*PI*r*r*r/3.0;
f=4.0*PI*r*r;
printf("体积为:%f,表面积为:%f\n",v,f);
}
运行结果:
体积为:33.510292,表面积:50.265442
2.2 c语言的数据类型
数据类型包括以下
基本类型:整型、字符型、实型【浮点型】
构造类型:数组类型、结构体类型 、共用体类型、枚举类型
指针类型
空类型
2.3 c语言的常量
2.3.1 直接常量
1、整型常量
十进制:由数字0到9组成
八进制:以0为前缀,由数字0到7组成
十六进制:以ox或OX为点缀,由数字0到9和字母A到F组成
注意:
1.在一个整型常量后面加一个字母u或U,认为是unsigned int型
2.在一个整型常量后面加一个字母l或L,认为是long nt
2.实型常量
1.小数形式:由整数部分、小数点和小数部分组成,当整数部分和小数部分为0时,可以省略不写,但是小数点不可省略
2.指数形式:由尾部、字母E或e和指数部分组成,格式为:正负尾部E指数
注意:
1、以小数形式表示形式时,必须有小数,并且小数点的前、后至少一边要有数字
2、以指数形式表示实数时,字母E的前后必须有数字,并且指数部分只能是整数
3、字符型常量
1.字符常量只能用单引号括起来,不能用双引号或其它括号
2.字符常量只能是单字符,不能是字符串
3.字符可以是ASCll字符集中的任意字符
转义字符
转义字符形式上由多个字符组成,但它是一个字符常量,只代表一个字符
转义字符使用示例
#include<stdio.h>
int main()
{ char b,c,d,e;
b='\43';
c='\103';
d='\x2a';
e='\x41';
printf("b=%c,c=%c,d=%c,e=%c\n",b,c,d,e);
printf("\"good\40morning!\b\"!\n");
prinf("\123456");
return 0;
}
双引号表示字符串,单引号表示字符
4、字符串常量
字符串:空格字符、转义字符、其他字符和汉字等文字符号
2.3.2 符号常量
#define 是一条编译预处理命令,称为宏定义命令
利用符号常量计算价格
#include<stdio.h>
#define PRICE 20
int main()
{ int num,total;
num=10;
total=num*PRICE;
printf("总价格为:%d\n",total);
return 0;
}
运行结果:
总结果为:200
符号常量的优点
1、增加程序的可读性
2、提高程序的可维护性
3、简化程序代码
4、方便数组的定义
2.4 c语言的变量
2.4.1 变量的定义
变量名一般使用小写字母
变量的使用时,应该先赋值,后引用
变量使用示例
#include<stdio.h>
int main()
{ int a,b,c;
char ch='A';
a=10;
b=a+ch;
scanf("%d",&c);
printf("%d,%d,%d,%d\n",a,b,c,ch);
return 0;
}
运行结果:
10,75,10,A
2.4.2 整型变量
整型数据关键字、字节数和取值范围
不同类型整型变量的定义与使用示例
#include<stdio.h>
int main()
{ int a,b,c,d;
unsigned long e;
a=5;b=6;e=10;
c=a+e;
d=b+e;
printf("c=%d,d=%d\n",c,d);
return 0;
}
运行结果:
c=15,d=16
短整型变量的溢出
#include<stdio.h>
int main()
{ short int a,b;
a=327667;
b=a+1;
printf("a=%d,b=%d\n",a,b);
return 0;
}
运行结果:
a=32767,b=-32768
2.4.3 实型变量
实型数据关键字、字节数和取值范围
实型变量的使用示例
#include<stoid.h>
int main()
{ float a=1234.56789;
double b=1234.567895678;
printf("a=%f,b=%f\n",a,b);
return 0;
}
运行结果:
a=1234.567871,b=1234.567896
单精度浮点型有效数字位数位7,双精度小数后最多保留6位
2.4.4 字符变量
字符变量的使用示例
#include<stdio.h>
int main()
{ char c1,c2;
c1='A';
c2=65;
printf("%c,%c\n",c1,c2);
printf("%d,%d\n",c1,c2);
return 0;
}
运行结果:
A,A
65,65
把大写字母装换位小写字母
#iinclude<sttdio.h>
int main()
{ char c1,c2;
c1='A';
c2='B';
C1=C1+32;
C2=C2+32;
printf("%c,%c\n",c1,c2);
printf("%d,%d\n",c1,c2);
return 0;
}
运行结果:
a,b
97,98
2.5 运算符和表达式
2.5.1 赋值运算符和赋值表达式
复合算术赋值运算符
2.5.2 算术运算符和算术表达式
1、基本的算术运算符
双目运算符:加减乘除和求余
% :是进行求余数的运算,只能用于整数之间的取值
2、自增、自减运算符
++ 自增运算符,为单目运算符,其功能是使变量的值自加1
前缀方式:用于变量前面,如“int a=++x;”它是‘先计算,后使用’
后缀方式:用于变量后面,如“int a=x++;”它是“先使用,后计算”
减号则相反
3、算术运算符的优先级和结合性·
单目运算符的优先级高于双目运算符,双目算术符中*、/、%、的优先级高于+、-。在优先级相同的情况下,按规定的“结合性”进行处理
4、算术表达式
输入一个3位的正整数,输出其反序数
#include<stdio.h>
int main()
{ int number,a,b,c;
number=123;
printf("输入的3位数为:%d\n",number);
a=number/100;
b=(number-a*100)/10;
c=number%10
printf("反序数是:%d%d%d\n",c,b,a);
return 0;
}
运行结果:
输入的3位数为:123
反序数:321
2.5.3 逗号运算符和逗号表达式
逗号表达式应用示例
#include<stdio.h>
int main()
{ int i,j=7;
float k=5,
i=(j=j+2,j/k);
printf("i=%d\n",i);
return 0;
}
运行结果:
i=1
2.5.4 求字节数运算符
不同数据类型字节数示例
#include<studio.h>
int main()
{ printf("char类型占%d字节\n",sizeof(char));
printf("short int类型占%d字节\n",sizeof(short int));
printf("int类型占%d字节\n",sizeof(int));
printf("float类型占%d字节\n",sizeof(float));
printf("double类型占%n",sizeof(double));
return 0;
}
运行结果:
char类型占1字节
short int类型占2字节
int类型占4字节
float类型占4字节
double类型占8字节
求字节数运算符示例
#include<stdio.h>
int main()
{ int a,b;
a=sizeof(3+5.0);
b=sizeof 3+5.0;
printf("%d%d%d\\",a,b,sizeof("china"));
return 0;
}
运行结果:
8,9,6
2.6 数据类型转换
2.6.1 自动类型转换
进行自己转换的规则是:把占用内存空间的低级类型向占用空间多的高级类型转换
注意:不能有高到低【避免数据流失】
2.6.2 强制类型转换
类型说明符功能:把表达式的运算结果强制转换成类型说明符指定的类型
强制类型转换示例
#include<stdio.h>
int main()
{ int a=3,b=4;
float c;
c=(float)(a+b)/2;
printf("c=%f\n",c);
return 0;
}
运行结果:
c=3.500000