第二章 数据类型、运算符和表达式

第二章 数据类型、运算符和表达式,第1张

第二章 数据类型、运算符和表达式

%c  字符     %d  整数    %f小数

 2.1   引例

#include
int main(void)
{
 printf("programming is fun.");
return 0
}

运行结果:
programming is fun.

球体积和表面积 

#include
#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,表面积为:%fn",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
int main()
{    char b,c,d,e;
    b='43';
    c='103';
    d='x2a';
    e='x41';
    printf("b=%c,c=%c,d=%c,e=%cn",b,c,d,e);
    printf(""good40morning!b"!n");
    prinf("123456");
    return 0;
}

双引号表示字符串,单引号表示字符 

4、字符串常量

字符串:空格字符、转义字符、其他字符和汉字等文字符号

2.3.2  符号常量

#define 是一条编译预处理命令,称为宏定义命令

                                                        利用符号常量计算价格

#include
#define PRICE 20
int main()
{    int num,total;
    num=10;
    total=num*PRICE;
    printf("总价格为:%dn",total);
    return 0;
}

运行结果:
总结果为:200

 符号常量的优点

1、增加程序的可读性

2、提高程序的可维护性

3、简化程序代码

4、方便数组的定义

2.4  c语言的变量

2.4.1  变量的定义

变量名一般使用小写字母

变量的使用时,应该先赋值,后引用

变量使用示例

#include
int main()
{    int a,b,c;
     char ch='A';
     a=10;
     b=a+ch;
     scanf("%d",&c);
     printf("%d,%d,%d,%dn",a,b,c,ch);
     return 0;
}

运行结果:
10,75,10,A

 2.4.2   整型变量

整型数据关键字、字节数和取值范围

 不同类型整型变量的定义与使用示例

#include
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=%dn",c,d);
     return 0;
}

运行结果:
c=15,d=16

短整型变量的溢出

#include
int main()
{    short int a,b;
     a=327667;
     b=a+1;
     printf("a=%d,b=%dn",a,b);
     return 0;
}

运行结果:
a=32767,b=-32768

 2.4.3  实型变量

实型数据关键字、字节数和取值范围

 实型变量的使用示例

#include
int main()
{    float a=1234.56789;
     double b=1234.567895678;
     printf("a=%f,b=%fn",a,b);
     return 0;
}

运行结果:
a=1234.567871,b=1234.567896

 单精度浮点型有效数字位数位7,双精度小数后最多保留6位

2.4.4  字符变量

                                                        字符变量的使用示例

#include
int main()
{    char c1,c2;
     c1='A';
     c2=65;
     printf("%c,%cn",c1,c2);
     printf("%d,%dn",c1,c2);
     return 0;
}

运行结果:
A,A
65,65

把大写字母装换位小写字母

#iinclude
int main()
{    char c1,c2;
     c1='A';
     c2='B';
     C1=C1+32;
     C2=C2+32;
     printf("%c,%cn",c1,c2);
     printf("%d,%dn",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
int main()
{    int number,a,b,c;
     number=123;
     printf("输入的3位数为:%dn",number);
     a=number/100;
     b=(number-a*100)/10;
     c=number%10
     printf("反序数是:%d%d%dn",c,b,a);
     return 0;
}

运行结果:
输入的3位数为:123
反序数:321

2.5.3   逗号运算符和逗号表达式

逗号表达式应用示例

#include
int main()
{    int i,j=7;
     float k=5,
     i=(j=j+2,j/k);
     printf("i=%dn",i);
     return 0;
}

运行结果:
i=1

 2.5.4   求字节数运算符

不同数据类型字节数示例

#include
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
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
int main()
{    int a=3,b=4;
     float c;
     c=(float)(a+b)/2;
     printf("c=%fn",c);
     return 0;
}

运行结果:
c=3.500000

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存