第三章 数据类型、运算符与表达式 (答案)
来源:互联网 发布:apache 监控 插件 编辑:程序博客网 时间:2024/04/20 05:15
【例3.1】符号常量的使用。
#define PRICE 30main(){ int num,total;num=10;total=num* PRICE;printf(“total=%d”,total);}
n 用标识符代表一个常量,称为符号常量。
n 符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。
n 使用符号常量的好处是:
Ø 含义清楚;
Ø 能做到“一改全改”。
下表列出了Turbo C中各类整型量所分配的内存字节数及数的表示范围。
类型说明符
数的范围
字节数
int
-32768~32767 即-215~(215-1)
2
unsigned int
0~65535 即0~(216-1)
2
short int
-32768~32767 即-215~(215-1)
2
unsigned short int
0~65535 即0~(216-1)
2
long int
-2147483648~2147483647即-231~(231-1)
4
unsigned long
0~4294967295 即0~(232-1)
4
以13为例:
int型:
00
00
00
00
00
00
11
01
short int型:
00
00
00
00
00
00
11
01
long int型:
00
00
00
00
00
00
00
00
00
00
00
00
00
00
11
01
unsigned int型:
00
00
00
00
00
00
11
01
unsigned short int型:
00
00
00
00
00
00
11
01
unsigned long int型:
00
00
00
00
00
00
00
00
00
00
00
00
00
00
11
01
【例3.2】整型变量的定义与使用
main(){int a,b,c,d;unsigned u;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%d\n”,c,d);}
【例3.3】整型数据的溢出。
main(){ int a,b; a=32767; b=a+1; printf("%d,%d\n",a,b); }
32767:
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
-32768
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
【例3.4】
main(){ long x,y; int a,b,c,d; x=5; y=6; a=7; b=8; c=x+a; d=y+b; printf("c=x+a=%d,d=y+b=%d\n",c,d); }
【例3.6】实型数据的舍入误差。
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){double a,b;//此处为 doublea=123456.789e5;b=a+20; printf ("%f\n",a);printf("%f\n",b);}
常用的转义字符及其含义
转义字符
转义字符的意义
ASCII代码
\n
回车换行
10
\t
横向跳到下一制表位置
9
\b
退格
8
\r
回车
13
\f
走纸换页
12
\\
反斜线符"\"
92
\'
单引号符
39
\”
双引号符
34
\a
鸣铃
7
\ddd
1~3位八进制数所代表的字符
\xhh
1~2位十六进制数所代表的字符
3.8.1 C运算符简介
C语言的运算符可分为以下几类:
1. 算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2. 关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、 大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3. 逻辑运算符:用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4. 位操作运算符:参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
5. 赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6. 条件运算符:这是一个三目运算符,用于条件求值(?:)。
7. 逗号运算符:用于把若干表达式组合成一个表达式(,)。
8. 指针运算符:用于取内容(*)和取地址(&)二种运算。
9. 求字节数运算符:用于计算数据类型所占的字节数(sizeof)。
10. 特殊运算符:有括号(),下标[],成员(→,.)等几种。
1. 自增、自减运算符
自增1,自减1运算符:自增1运算符记为“++”,其功能是使变量的值自增1。
自减1运算符记为“--”,其功能是使变量值自减1。
自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式:
++i i自增1后再参与其它运算。
--i i自减1后再参与其它运算。
i++ i参与运算后,i的值再自增1。
i-- i参与运算后,i的值再自减1。
在理解和使用上容易出错的是i++和i--。 特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。
【例3.16】
//尼玛的炫耀技巧有木有,没有可读性的有木有,实际中这样写-i--会被人骂娘的有木有。#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){int i=8;printf("%d\n",++i); //9 8+1=9printf("%d\n",--i); //8 9-1=8printf("%d\n",i++); //8 输出8后,i+1 此时内存中i=9printf("%d\n",i--); //9 输出内存中的 9,i再-1,此时内存中i=8printf("%d\n",-i++); //-8 先执行-,输出-i=-8,再++,此时i=囧printf("%d\n",-i--); //-9 尼玛 囧RZ}/*i的初值为8,第2行i加1后输出故为9;第3行减1后输出故为8;第4行输出i为8之后再加1(为9);第5行输出i为9之后再减1(为8) ;第6行输出-8之后再加1(为9)第7行输出-9之后再减1(为8)。*/
【例3.18】
char c1='k',c2;......printf("%d,%f,%d,%c",a,x,a,c2);
例子中这种算法不具有可读性,现实中绝对不可使用,了解即可,无需深究,所以本文不予采纳为答案。
1. 复合的赋值运算符
在赋值符“=”之前加上其它二目运算符可构成复合赋值符。如+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。
构成复合赋值表达式的一般形式为:
变量 双目运算符=表达式
它等效于
变量=变量 运算符 表达式
例如:
a+=5 等价于a=a+5
x*=y+7 等价于x=x*(y+7)
r%=p 等价于r=r%p
+= 加法赋值-= 减法赋值*= 乘法赋值/= 除法赋值%= 模运算赋值<<= 左移赋值>>= 右移赋值&= 位逻辑与赋值|= 位逻辑或赋值^= 位逻辑异或赋值
复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效率并产生质量较高的目标代码。
【例3.19】改
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){int a=2,b=4,c=6,x,y,z;y=(x=a+b),z=(b+c);printf("y=%d,x=%d,z=%d",y,x,z);}
3.1 小结
3.1.1 C的数据类型
基本类型,构造类型,指针类型,空类型
3.1.2 基本类型的分类及特点
类型说明符
字节
数值范围
字符型
char
1
C字符集
基本整型
int
2
-32768~32767
短整型
short int
2
-32768~32767
长整型
long int
4
-214783648~214783647
无符号型
unsigned
2
0~65535
无符号长整型
unsigned long
4
0~4294967295
单精度实型
float
4
3/4E-38~3/4E+38
双精度实型
double
8
1/7E-308~1/7E+308
3.1.3 常量后缀
L或l 长整型
U或u 无符号数
F或f 浮点数
3.1.4 常量类型
整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。
3.1.5 数据类型转换
·自动转换:在不同类型数据的混合运算中,由系统自动实现转换,由少字节类型向多字节类型转换。不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。
·强制转换:由强制转换运算符完成转换。
3.1.6 运算符优先级和结合性
一般而言,单目运算符优先级较高,赋值运算符优先级低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。
3.1.7 表达式
表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类型。表达式求值按运算符的优先级和结合性所规定的顺序进行。
- 第三章 数据类型、运算符与表达式 (答案)
- 第三章:数据类型、运算符与表达式-笔记总结
- 第三章 运算符、表达式与语句
- 第三章:表达式与运算符
- 第三章运算符与表达式
- 第三章 Shell表达式与运算符
- 数据类型、运算符与表达式
- 数据类型、运算符与表达式
- 第三章 运算符 表达式
- (谭版)3 数据类型、运算符与表达式
- C语言数据类型、运算符与表达式
- C语言数据类型,运算符与表达式
- c语言教程 第三章 基本运算符与表达式
- python 教程 第三章、 运算符与表达式
- python 教程 第三章、 运算符与表达式
- 3.第三章,算术运算符与算术表达式
- 数据类型、运算符、表达式
- 数据类型、运算符、表达式
- 犀利的 oracle 注入技术
- 送给程序员的一句话
- "#"在英语中的意义
- 关于list的一个例子
- 贪多嚼不烂
- 第三章 数据类型、运算符与表达式 (答案)
- VC++多线程编程
- JQuery表格插件之Datatables
- 提取Launcher中的WorkSapce,可以左右滑动切换屏幕页面的类
- 让我弄了一晚上!Oracle遇到了这ora-01033问题
- flex AdvancedDataGrid 高级表格 介绍 教程
- linux上ln命令详细说明
- jxls导出excel,long 转换double,两个Integer数进行比较
- android之AlertDailog使用