- 数据类型、常量与变量
- 数据类型
- C语言数据类型的分类:
- 变量
- 2-2计算1到n的和(理解什么是变量)
概述:计算机能且只能做两件事情:执行计算与保存计算结果。c语言提供了大量的运算符,用于各种计算,参与计算的是数据,数据需要保存在计算机内存中。数据是分类型的,如整数,实数,字符,字符串等。不同类型的数据需要的存储空间大小不同,支持的运算也不同。运算主要涉及算术运算,关系运算和逻辑运算等。
2-1计算圆的面积
#include数据类型、常量与变量 数据类型int main(void) { double radius,area; //声明变量(双精度的浮点类型【占8个字节】) printf("请输入一个圆的半径:n") ; scanf("%lf",&radius) ;//scanf库函数用于读取来自键盘的输入 area = 3.14159 * radius * radius; //计算圆的面积 printf("半径为%.2f的圆的面积是:%.2fn",radius,area) ;//%.2f说明输出的浮点数有两位小数 return 0; } //运算结果
c语言可以处理多重类型的数据,如整数、字符和浮点数。把变量定义为整形、字符类型或浮点类型,计算机才能正确的存储、读取和解析数据。
C语言数据类型的分类:- 基本类型:
标准整数类型,以及扩充的整数类型
实数浮点类型,以及复数浮点类型 - 枚举类型
- void类型
- 派生类型
指针类型
数组类型
结构类型
联合类型 - 函数类型
函数类型描述了函数接口,(该类型既指定了函数返回值的类型,又指定了在调用函数时,传递给函数的所有参数的类型。)
····················································································································································································
数据在计算机以二进制的形式存储,1个二进制数称为1位(bit),它是计算机储存中的最小单元。由于用位做单元太小,大多计算机采用字节(Byte)作为计算机存储单元,1B=8bit。
字(wrod)是设计计算机时给定的自然存储单元。
计算机的字越长,其数据处理的速度就越快,允许的访问就越多
任何数值计算,都必须把计算机仅有的固定数值表示最后一个重要的事实考虑在内。
程序处理的数据一般先放入内存,内存的值是可以变化的。编程的本质就是对内存中数据的访问和修改。
变量可以理解为有名称的容器,该容器可以装载不同类型的数据。
一个数据的类型决定了这个数据在内存中所占用空间的大小,以及它的值所采用的编码方式。
#includeint main(void) { int s,n; //声明变量 n = 10; //给整型变量n赋整数10 s = (n+1)*n/2; //利用求和公式计算1~10的和 printf("s = %dn",s); //输出求和结果 n = 100; //给整型变量n赋整数100 s = (n+1)*n/2; //利用求和公式计算1~100的和 printf("s = %dn",s); //输出求和结果 return 0; }
2-3
#includeint main(void) { int x = 5; //声明整型变量并赋初值 int y; y = 6; int z = x + y; printf("z = %dn",z); printf("int类型数据占的字节数: %d",sizeof(int)); //输出int类型占的字节数 return 0; }
2-4 不同进制数的输出
#includeint main(void) { int x = 1000; printf("dec = %d;octal = %o;hex = %x;hex = %xn",x,x,x,x); printf("dec = %d;octal = %#o;hex = %#x;hex = %#Xn",x,x,x,x); return 0; }
2-5 整数类型所占类型大小
#include#include //该文件包含了CHAR_MIN、INT_MIN等宏 int main(void) { printf("signed char所占字节数:%d,数据范围:[%d,%d]n" ,sizeof(signed char),SCHAR_MIN,SCHAR_MAX); printf(" short所占字节数:%d,数据范围:[%d,%d]n" ,sizeof(short),SHRT_MIN,SHRT_MAX); printf(" int所占字节数:%d,数据范围:[%d,%d]n" ,sizeof(int),INT_MIN,INT_MAX); printf(" long所占字节数:%d,数据范围:[%ld,%ld]n" ,sizeof(long),LONG_MIN,LONG_MAX); printf(" long long所占字节数:%d,数据范围:[%lld,%lld]n" ,sizeof(long long),LLONG_MIN,LLONG_MAX); return 0; }
2-6 字符变量
#includeint main(void) { char grade = 'A'; char level = 'F'; int x = 'F'; char ch = 97; printf("grade = %c level = %c ch = %c x = %xn",grade,level,ch,x); printf("%d",sizeof('A') ); return 0; }
2-7 数据溢出示例
#include#include int main(void) { int a, b; a = INT_MAX; b = a + 1; printf("a = %dnb = %dn", a, b); return 0; }
2-8 浮点类型
#includeint main(void) { float x = 320.0f; double y = 2.14e9; long double z = 8.8L; printf("%f也可以写成%en",x,x); printf("y的值是 %en",y); printf("z的值是 %Lfn",z); return 0; }
2-9 运算符优先级示例
#includeint main(void) { printf("%dn", 4 & 2 + 5 ); //因为运算符+优先级高于运算符& printf("%dn", ( 4 & 2 ) + 5 ); //用括号改变计算顺序 return 0; }
2-10 云悬浮结合律
#includeint main(void) { int a = 4,b = 3,c = 2; printf("%dn",a / b % c); //结合律从左到右 printf("%un",a = b = c); //结合律从右到左 return 0; }
2-11 应用整除和求模运算分隔4位整数
#includeint main(void) { int x ; printf("请输入一个四位整数; "); scanf("%d", &x); printf(" %d的每一位数的值是:%d %d %d %dn",x, x/1000, x%1000/100, x%100/10, x%10); return 0; }
2-12 自增运算符
#includeint main(void) { int a, b, c, d, g, y, m, n; a =7; b = 7; g =4; y =8; c = a++; d = ++b; printf("a=%d,b=%d,c=%d,d=%dn", a, b, c, d); m = g--; n = --y; printf("m=%d, n=%d, g=%d, y=%dn",m, n, g, y); return 0; }
2-13 赋值运算符
#includeint main(void) { int a = 5; int ans = a /2 + 5*(1+a); printf("ans=%dn",ans); int b,c,d; b = c = d = a; //赋值运算符是右结合的 printf("a=%d,b=%d,c=%d,d=%dn",a,b,c,d); ans *= c+d ; //复合赋值:右值与左值相加后赋值给左值 printf("ans=%dn",ans); return 0; }
2-14 关系运算符
#includeint main(void) { int x = 10,y = 20; printf("x=%d,y=%d,所以:n",x,y); printf("x y的值是:%dn",x>y); printf("x>=y的值是:%dn",x>=y); printf("x==y的值是:%dn",x==y); printf("x!=y的值是:%dn",x!=y); return 0; }
2-14 关系运算符
#includeint main(void) { int x = 10,y = 20; printf("x=%d,y=%d,所以:n",x,y); printf("x y的值是:%dn",x>y); printf("x>=y的值是:%dn",x>=y); printf("x==y的值是:%dn",x==y); printf("x!=y的值是:%dn",x!=y); return 0; } x=10,y=20,所以: x y的值是:0 x>=y的值是:0 x==y的值是:0 x!=y的值是:1 -------------------------------- Process exited after 0.0295 seconds with return value 0 请按任意键继续. . .
2-15 逻辑运算符
#includeint main(void) { int i=1,j=2,k=3; printf( "%dn", k||i++&&j-3 ); //逻辑或运算符短路 printf( "%dn", i<=j&&(k=!k) ); //逻辑与运算符未短路 printf( "%dn", i==5&&(j=8) ); //罗辑与运算符短路 printf( "i=%d,j=%d,k=%dn", i, j ,k ); return 0; }
2-16 sizeof运算符
#includeint main(void) { int a; printf("%dn",sizeof(int)); //第1种方式 printf("%dn",sizeof(a)); //第2种方式 printf("%dn",sizeof a); //第3种方式 return 0; }
2-17 类型转换
#includeint main(void) { double f = 9.14; //f是双精度浮点类型变量 int n = (int) f ; //把f显式强制转换成整数 f = n / 2 ; //整除结果是整数4,类型转换自动转换成双精度类型 printf("f = %f n = %dn",f,n); f = (double) n / 2 ; //把n显式强制转换成双精度类型 printf("f = %f n = %dn",f,n); return 0; }
2-18 条件运算符
#includeint main(void) { int x = 5,y = 7; int distance = x 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)