c语言 第二章 数据存储与运算

c语言 第二章 数据存储与运算,第1张

c语言 第二章 数据存储与运算

文章目录
  • 数据类型、常量与变量
    • 数据类型
      • 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语言数据类型的分类:
  1. 基本类型:
    标准整数类型,以及扩充的整数类型
    实数浮点类型,以及复数浮点类型
  2. 枚举类型
  3. void类型
  4. 派生类型
    指针类型
    数组类型
    结构类型
    联合类型
  5. 函数类型
    函数类型描述了函数接口,(该类型既指定了函数返回值的类型,又指定了在调用函数时,传递给函数的所有参数的类型。)
    ····················································································································································································
    数据在计算机以二进制的形式存储,1个二进制数称为1位(bit),它是计算机储存中的最小单元。由于用位做单元太小,大多计算机采用字节(Byte)作为计算机存储单元,1B=8bit。
    字(wrod)是设计计算机时给定的自然存储单元。
    计算机的字越长,其数据处理的速度就越快,允许的访问就越多
    任何数值计算,都必须把计算机仅有的固定数值表示最后一个重要的事实考虑在内。
变量

程序处理的数据一般先放入内存,内存的值是可以变化的。编程的本质就是对内存中数据的访问和修改。
变量可以理解为有名称的容器,该容器可以装载不同类型的数据。
一个数据的类型决定了这个数据在内存中所占用空间的大小,以及它的值所采用的编码方式。

2-2计算1到n的和(理解什么是变量)
#include  

int 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

#include 

int 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 不同进制数的输出

#include 

int 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 字符变量

#include 
int 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 浮点类型

#include  

int 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 运算符优先级示例

#include 

int main(void)
{
	printf("%dn", 4 & 2 + 5 );       //因为运算符+优先级高于运算符& 
	printf("%dn", ( 4 & 2 ) + 5 );  //用括号改变计算顺序 
	
	return 0;
}

2-10 云悬浮结合律

#include 

int main(void)
{
	int  a = 4,b = 3,c = 2; 
	printf("%dn",a / b % c);  //结合律从左到右 
	printf("%un",a = b = c);  //结合律从右到左 
	
	return 0;
}

2-11 应用整除和求模运算分隔4位整数

#include
int 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 自增运算符

#include
int 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 赋值运算符

#include 

int 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 关系运算符

#include 

int main(void)
{
    int x = 10,y = 20;
    printf("x=%d,y=%d,所以:n",x,y);
	printf("xy的值是:%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 关系运算符

#include 

int main(void)
{
    int x = 10,y = 20;
    printf("x=%d,y=%d,所以:n",x,y);
	printf("xy的值是:%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,所以:
xy的值是:0
x>=y的值是:0
x==y的值是:0
x!=y的值是:1

--------------------------------
Process exited after 0.0295 seconds with return value 0
请按任意键继续. . .

2-15 逻辑运算符

#include 

int 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运算符

#include 

int main(void)
{
	int a;
	printf("%dn",sizeof(int));       //第1种方式
	printf("%dn",sizeof(a));         //第2种方式
	printf("%dn",sizeof a);           //第3种方式
    
   	return 0;
}

2-17 类型转换

#include 

int 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 条件运算符

#include 

int main(void)
{
	int x = 5,y = 7;
	int distance = x					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5593767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存