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

%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字符集中的任意字符

                                                                     转义字符

转义字符转义功能ASCII码值
\0空字符0
\a响铃7
\b退格(Backsqace)8
\t水平制作表(即横向挑格)9
\n回车换行(Enter)10
\v竖向跳格11
\f换页12
\r回车13
\"双引号(")

34

\'单引号(')39
\?问号(?)63
\\反斜线字符(\)92
\ddd1~3位八进制所代表的字符
\xhh1~2位十六进制所代表的字符

 转义字符形式上由多个字符组成,但它是一个字符常量,只代表一个字符

转义字符使用示例

#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   整型变量

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

关键字类型占用字节取值范围
short int短整型2-32768~32767
int整形4-2147483648~2147483647
long int长整型4-2147483648~2147483647
unsigned short无符号短整型20~65535
unsigned int无符号整型40~42949667295
unsigned long无符号长整形40~4294967295

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

#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  实型变量

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

关键字类型占用字节数取值范围
float单精度型43.4E-38~3.4E+38
double双精度型81.7E-308~1.7E+308

实型变量的使用示例

#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    赋值运算符和赋值表达式

复合算术赋值运算符

运算符应用举例等价形式
+=a+=xa=a+(x)
-=a-=xa=a-(x)
*=a*=xa=a*(x)
/=a/=xa=a/(x)
%=a%=xa=a%(x)

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值