您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > xin3 第三章 C程序设计基础
北京理工大学计算机学院2020/1/191第三章C程序设计基础李书涛list37@sina.com第三章C程序设计基础–数据类型与运算符1常量与变量2整型数据类型3实型数据类型4字符型数据类型5不同类型数据间的混合运算6运算符与表达式7算术运算符与算术表达式8关系运算符与关系表达式9逻辑运算符与逻辑表达式10赋值运算符与赋值表达式11逗号运算符和逗号表达式12常用数学函数13变量初始化14本章小节北京理工大学计算机学院2020/1/193目录§1基本数据类型§2运算符和表达式§3常用数学函数§4变量初始化§5本章小节第三章C程序设计基础北京理工大学计算机学院2020/1/194§1基本数据类型§1基本数据类型2.1.1C语言的数据类型数据类型构造类型指针类型空类型(无值类型)void枚举类型enum数组类型结构类型struct联合类型union基本类型整型int字符型char实型(浮点型)单精度实型float双精度实型double北京理工大学计算机学院2020/1/195数据的描述数据的操作数据结构算法程序的任务是对数据进行处理,数据是程序处理的对象,而运算符是施加给这些数据的操作,数据和运算符是表达式的基本元素。1.程序与数据类型§1基本数据类型北京理工大学计算机学院2020/1/1961.不同类型数据采取不同的存储形式;2.不同类型数据在内存中占有不同的存储空间;3.不同类型数据对应不同的取值范围;4.不同类型数据确定了允许对其进行不同的操作类型。2.数据类型的含义§1基本数据类型北京理工大学计算机学院2020/1/197按照数据在程序中的取值分为两类:值保持不变-----常量x=2+y值随程序运行变化-----变量3.C语言的基本数据类型§1基本数据类型基本类型整型int字符型char实型单精度float双精度double常量变量基本类型北京理工大学计算机学院2020/1/1981.在程序运行中,其值保持不变2.表示方法:整型100,125,-100实型3.14,0.125字符型‘a’,‘b’字符串常量“string”3.符号常量:#definePI3.14159宏定义:给常量定义一个标识符,称宏名,大写。2.1.2常量与变量一、常量北京理工大学计算机学院2020/1/1993.变量通过变量名来标识。1.在程序运行中,值发生变化;2.必须先定义,再使用;inta,b;类型变量名表memorya82563变量名和内存中的存储单元相对应。编写程序时通过变量名来存、取存储单元。二、变量变量北京理工大学计算机学院2020/1/1910(1)以字母或下划线开头(2)不能用系统中的关键字作为变量名inta,b,A123,_b;inta;…..A=5;(3)变量名中的字母是区分大小写的。sum、stu_name、_age、Lts_1_2、a232c、x.y、start+9、c2.0非法NAMEname表示两个不同的标识符。不提倡大小写混合使用4.有关变量名的规定北京理工大学计算机学院2020/1/1911有三种表示形式十进制八进制十六进制1234加前导001234,0125加前导0x如0x123,0xffff整型数据包括整型常量和整型变量,整型数据以二进制补码形式存储。例100、-8、0;010、024;0x38、0X1F2.1.3整型数据一、整型常量北京理工大学计算机学院2020/1/1912掌握要点1.有几种定义形式;2.每种形式占存储空间的大小不同;3.取值范围不同;4.输入输出格式不同。二、整型变量北京理工大学计算机学院2020/1/1913六种形式基本整型短整型长整型无符号整型无符号短整型无符号长整型intshortintlongintunsignedint占存储空间一个变量2242unsignedshortunsignedlong241.定义形式北京理工大学计算机学院2020/1/1914类型说明符长度数的范围基本型int2字节-32768~32767短整型short2字节-215~215-1长整型long4字节-231~231-1无符号整型unsigned2字节0~65535无符号短整型unsignedshort2字节0~65535无符号长整型unsignedlong4字节0~232-12.整型变量的取值范围类型说明符长度数的范围基本型int2字节-32768~32767无符号整型unsigned2字节0~65535有符号与无符号整型数的区别int最高位为符号位1为负数补码unsigned最高位为数值位=215=327681111111111111111a=则:unsigneda=216-1=65535,而inta=-11000000000000000a=则:unsigneda=215=32768,而inta=-32768北京理工大学计算机学院2020/1/1916int型数存储长度为16位二进制(2Byte)0000000000000001=215-1=32767000000000000001101111111111111111000000000000000=1=3上面的数再加1是多少?=-215=-32768例补码表示int型表示数的范围:-32768~327673.输入输出形式:%d,%ld,%x,%o,%uint型数的表示范围北京理工大学计算机学院2020/1/19171.求法:正数的补码与原码相同;负数的补码对原码除符号位外,按位变反,末位加1,即得补码。或者由反码加1也可求得补码。[+0]补=[-0]补=0[0]补的两种表示是什么?数的补码表示2.补码的表示范围当n=8时,补码的表示范围是:[+最大数]补=01111111[-最大数]补=10000000-128~+127由此可得补码表示范围的公式是–2n–1~(2n–1–1)北京理工大学计算机学院2020/1/1918数的补码举例已知:a=4,b=16,设n=8计算4-16根据[a]补+[b]补=[a+b]补有:[a+b]补=[+4]补+[–16]补1111010000000100+11110000结果为负时得到负数的补码,需再求补得原码:10001100[–16]原=10010000连同符号一起运算解答[4]补=00000100[–16]反=11101111[–16]补=11110000北京理工大学计算机学院2020/1/1919包括实型常量和实型变量两种表示形式小数指数0.123123e-3实型常量只能用十进制形式表示,不能用八进制和十六进制1e3、1.8e-3、-123e-6、-.1e-3e5、1e-3.2、e、.e-032.1.4实型数据一、实型常量非法指数格式:数符尾数e阶符阶码北京理工大学计算机学院2020/1/19201.定义形式三种形式单精度双精度长双精度floatdoublelongdouble2.占存储空间一个变量4816实型常量不区分单精度和双精度二、实型变量北京理工大学计算机学院2020/1/19214.输入输出形式%f,%lf3.变量的取值范围类型长度数的范围有效数字单精度float410-38~10386~7位双精度double810-308~1030815~16位长双精度longdouble1610-4931~10493218~19位实型数据在计算机中以指数形式存储,单精度float变量占四个字节。一个字节存放指数部分,三个字节存数值部分。2-23=|尾数|=1-2-23float型数的表示范围000000000000000000000001最小尾数=2-23二进制7位二进制23位单精度实型数符尾数阶码阶符最大尾数=1-2-23011111111111111111111111北京理工大学计算机学院2020/1/19232.1.5字符型数据一、字符型常量字符型常量字符型变量1.用单引号包含的一个字符是字符型常量2.只能包含一个字符‘a’,’A’,‘1’‘abc’“a”北京理工大学计算机学院2020/1/1924有些以“\”开头的特殊字符称为转义字符\n换行\t横向跳格\r回车\\反斜杠\dddddd表示1到3个八进制数字\xhhhhhh表示1到3个十六进制数字printf(“%d\t%d\t”,a,b);printf(“%d\n%d\n”,a,b);若:a为1,b为0,则3.转义字符输出:1010转义字符表示法北京理工大学计算机学院2020/1/1926\ddd表示1到3个八进制数字对应ASCII字符\xhhh表示1到3个十六进制数字对应ASCII字符\101\141\60\x41\x61\x30printf(“%c,%c,%c\n”,a,b,c);printf(“%c,%c,%c\n”,x,y,z);若:a=‘\101’,b=‘\141’,c=‘\60’;若:x=‘\x41’,y=‘\x61’,z=‘\x30’;转义字符举例课堂作业输出:A,a,0输出:A,a,0表示‘A’表示‘a’表示‘0’表示‘A’表示‘a’表示‘0’北京理工大学计算机学院2020/1/19271.定义形式:2.占存储空间一个字节char变量表一个字符变量只能包含一个字符3.输入输出形式%c‘a’ASCII值为97内存中存储形式011000014.字符型数据在内存中以相应的ASCII值存储二、字符型变量北京理工大学计算机学院2020/1/1928main(){charc;c=‘c’;printf(“%c”,c);}c题目中有几个c,哪些是等价的?运行结果:字符型数据的特点北京理工大学计算机学院2020/1/19291.双引号内的一串字符“china”2.n个字符组成的字符串常量,在内存中占空间为n+1个字节。china\0字符串结束标记3.C中没有专用的字符串变量。“ThisisCstring”串长16“a”串长1“”(空格)串长1“”(不含空格)串长0三、字符串常量北京理工大学计算机学院2020/1/1930变量是存放在内存上的,内存的每一个字节成为一个单元,每个单元有一个编号,这个编号就是地址。定义变量:intk;编译系统根据类型为k分配内存输入变量的值:scanf(“%d”,&k);&k就代表了变量k在内存中的地址。通过变量名对变量的访问,这种操作称为直接访问:intk;scanf(“%d”,&k);printf(“%d\n”,k);2.1.6指针型数据北京理工大学计算机学院2020/1/1931C提供了另一种方式,将变量k的地址存放在另一个变量处(假定为pk),通过访问pk,就可以间接地访问变量k,这种方式称为间接访问。变量intk;变量pk中存放k在内存中的地址变量pk就是一个指针变量,指向变量k,存放k的地址。因此:指针就是地址。100intk=100&k&kint*pk间接访问的概念北京理工大学计算机学院2020/1/1932inta=10,c=5;floatb=3.5;charstr;int*pa;float*pb;pa=&a;pb=&b;间接访问举例100010041002102310acb53.51000pa内存分配a的地址a的内容指针a的地址str10081004pbb的地址北京理工大学计算机学院2020/1/1933让变量使用之前有值方法inta=5;inta,b,c=5;inta=b=c=5;初始化不是在编译时进行,而是在程序运行时完成的。2.1.7变量的初始化定义变量的同时为其赋值称初始化北京理工大学计算机学院2020/1/1934C语言的基本数据类型小结类型说明符长度数的范围字符型char(ASCII码)1字节0~127整型int(-215~215-1)2字节-32768~32767长整型long4字节-231~231-1单精度float4字节10-38~1038双精度double8字节10-308~10308长双精度longdouble16字节10-4931~104932北京理工大学计算机学院2020/1/1935一、运算符运算符运算分量x=5+b*c对数据进行运算的符号被加工的数据表达式算术运算符
本文标题:xin3 第三章 C程序设计基础
链接地址:https://www.777doc.com/doc-3172372 .html