




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C程序设计,第二讲,调课通知,第4周周二 早上1-2节 C语言程序设计 调至 第3周周三 下午6-7节,课室不变,教3-206,例1:已知有变量a=12,变量b=14, 将 a+b的结果赋值给一个变量sum,编写程序求变量 sum的值 。,程序: 求两数之和,#include “stdio.h“ int main() int a,b, sum; /定义三个整型变量 a = 12; /给变量赋值 b = 14; sum = a+b; /求和 printf(“sum=a+b=%d“, sum); /输出显示 return 0; ,修改程序如下,运行结果sum=?,#include “stdio.h“ int main() int a,b, sum; a = 12.50 ; b = 14.50; sum = a+b; printf(“a+b= %d “, sum); return 0; ,再修改程序如下,运行结果sum=?,#include “stdio.h“ void main() float a,b, sum; /定义三个浮点型变量 a = 12.50 ; b = 14.50; sum = a+b; printf(“a+b= %f “, sum); ,本节学习内容,变量名的命名规则是什么,是否可以随便命名? 数据的类型有何作用?,2.1 语言的字符集,字符是组成语言的最基本的元素。 语言字符集有四类: 1. 字母 小写字母az 大写字母AZ 2. 数字 09 3. 空白符 空格符、制表符、换行符等统称为空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出现时,只起间隔作用。 4. 标点和特殊字符,2.2 语言词汇 在语言中使用的词汇分为六类:标识符,关键字,运算符,分隔符,常量,注释符等。 1.标识符 在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。 标识符只能是字母(AZ,az)、数字(09)、下划线(_)组成的字符串,并且其第一个字符必须是字母或下划线。,用于 变量名 和 函数名 由英文字母、数字和下划线组成,大小写敏感 不可以是数字开头 直观,见名知意,便于记忆和阅读 最好使用英文单词或其组合 切忌使用汉语拼音 下划线和大小写通常用来增强可读性 variablename variable_name VariableName, variableName,标识符命名,在使用标识符时还必须注意以下几点: (1)标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。 定义标识符最好不要超过8个。 (2)在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。 最好全部用小写 (3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。命名应尽量作到“顾名思义”。,以下标识符是合法的: a, x, x3, BOOK_1, sum5 以下标识符是非法的: 3s 以数字开头 U.S 中间有非法字符. s*T 出现非法字符* -3x 以减号开头 bowy-1 出现非法字符-(减号) Good bye 中间有空格,在以下各组标识符中,合法的标识符是。 (1)A)B01 B)table_1 C) 0_t D) k% (2)A)Fast_06 B) vod() C)pbl D) (3)A)xy_ B)lon-double C)p*1 D)Char (4) A) sj% B) Int C) _xy D)w_y23,2.关键字 关键字是由语言规定的具有特定意义的字符串,通常也称为保留字。用户定义的标识符不应与关键字相同。语言的关键字分为以下几类: (1)类型说明符 用于定义、说明变量、函数或其它数据结构的类型。如int, double (2)语句定义符 用于表示一个语句的功能。如if 就是条件语句的语句定义符。,标准ANSI C一共只有32个关键字 p378,C99中新增:inline restrict _bool _complex _imaginary,(1) 数据类型说明符 (14个) 长短双正负 long short double unsigned singned 无值整型浮点字符(指针)void int float char 联合枚举结构(数组) union struct enum (2) 变量类型(4个): 外部 静态 自动 寄存器 extern static auto register (3)常量(1个): const,(2)程序结构语句定义符 (10个) 判断: if 循环: for do while 转移:goto 跳出: break continue 返回:return 开关:switch case,3、其它关键字 sizeof 大小 typedef 类型定义 default 默认 volatile 可变的 变量,数据为什么要区分类型? 不同类型的数据代表不同的 数据表示形式 合法的取值范围 占用内存空间大小 可参与的运算种类,数据类型(Data Type) p42,语言的数据类型,数据类型:对数据分配存储单元的安排,包括存储单元的长度(所占字节数),以及数据的存储形式。 不同的类型分配不同的长度和存储形式。 在语言中,数据类型可分为:基本类型,枚举类型,空类型,派生类型四大类 p43。,基本类型,派生类型,枚举类型 (enum),空类型(void),基本整型 (int) 长整型 (long) 短整型 (short) *双长整型 (long long int) 字符型 (char) *布尔型 (bool),数据类型,单精度浮点型 (float) 双精度浮点型 (double) 复数浮点型,数组类型 ( ),结构体类型 (union),共用体类型 (stuct),数据类型(p43),指针类型 ( * ),函数,计算机中的数据单位: bit, Byte, KB, MB, GB, TB,bit,位 Byte,字节 Kilo byte(KB), K Mega byte(MB),兆 Giga byte(GB),G Tera byte(TB),T,1 TB = 1,024 GB,1 GB = 1,024 MB,1 MB = 1,024 KB,1 KB = 1,024 B,1 B = 8 b,为什么每增加一个量级是1024而不是更容易计算的1000?,为什么我们家里的ADSL的2M网络下载速度只有两百多K?,常量和符号常量 (p39) 在程序运行过程中,其值不能被改变的量称为常量 常量区分为不同的类型:,整型 100,012,0xFF 浮点型 3.14 , 1.23E2 字符型 a, 2,72 字符串 “a”, “ab”,“1232” 符号常量 #define PRICE 30,变量 (p41),变量的值存放在特定存储单元中的数据,在程序运行期间,变量的值是可以改变的。 变量名对应着内存空间中的某个地址,在对程序编译连接时由编译系统给每一个变量名分配对应的内存地址。从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。,int 整数,在目前绝大多数机器上占4个字节。TC2.0中是2个字节 int a=64 ; float 浮点数 单精度浮点数,一般是4个字节长 float b=64.0 ; char 字符 字符,一般是1个字节长 用来表示256个ASCII字符,或者0-255的整数。 char=a ;,基本数据类型,short int,短整型,4 (VC)或2 (TC)个字节。简写为short long int,长整型, 8 (VC)或4个字节。 简写为long signed 用来修饰char、int、short和long,说明他们是有符号的整数(正整数、0和负整数)。一般缺省都是有符号的,所以这个修饰符通常省略 unsigned 用来修饰char、int、short和long,说明他们是无符号的整数(正整数和0),整型数据类型修饰符,不同类型数据所占字节数,#include “stdio.h“ void main() printf(“char : %dn“, sizeof(char); printf(“int : %dn“, sizeof(int); printf(“long : %dn“, sizeof(long); printf(“float : %dn“, sizeof(float); printf(“double : %dn“, sizeof(double); ,各类整型量所分配的内存字节数及数的表示范围。 p45,以13为例:其二进制数为:1101 在TC3.0中, int型占两个字节:,short int型:,long int型:,unsigned int型:,unsigned short int型:,unsigned long int型:,浮点数:用来表示具有小数点的实数 以指数的形式存放在存储单元中,float 单精度浮点数 4 字节(VC) double 双精度浮点数 8 字节(VC) long double 长双精度 8字节(VC),浮点型数据,浮点型变量 (1)浮点型数据在内存中的存放形式 一个浮点型数据一般在内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。 系统把一个浮点型数据分成小数部分和指数部分,分别存放。指数部分采用规范化的指数形式。,浮点型数据,2.4.1浮点型常量的表示方法,两种表 示形式,小数 指数,0.123 1.23e-3,注意:字母e(或E)之前必须有数字,且e后面的指数必须为整数,1e3, 1.8e-3, -123e-6, -.1e-3 E3,2.1e3.5, .e3, e,规范化的指数形式: 在字母e(或E)之前的小数部分中,小数点左边 应有一位(且只能有一位)非零的数字. 例如: 123.456可以表示为: 123.456e0, 12.3456e1, 1.23456e2, 0.123456e3, 0.0123456e4, 0.00123456e 其中的1.23456e3称为“规范化的指数形式”。,浮点数在内存中的存放形式 p50 浮点数一般占4个字节(32位)内存空间。按指数形式存储。浮点数3.14159在内存中的存放形式如下:,数符 小数部分 指数,小数部分占的位(bit)数愈多,有效数字愈多,精度愈高。 指数部分占的位数愈多,则能表示的数值范围愈大。 一般单精度浮点数,小数部分占三个字节,指数占一个字节,0.314159 * 101= 3.14159,计算机中用二进制表示浮点数,使用二进制表示只有0和1,那么对于小数就只能用下面的方式来表示: a12-1+a22-2+a32-3+an2-n 其中a1等数可以是0或者1,从理论上将,使用这种表示方法可以表示一个有限的小数。,float型数据提供7位有效数字 double型数据提供16位有效数字 使用不当导致舍入误差,#include main() float a; double b; a = 123456.789e4; b = 123456.789e4; printf(“%fn%fn“,a,b); ,浮点数提供的有效数字位数,程序执行结果: 123457888.000000 1234567890.000000,TC2中int的范围是-3276832767 如果我们给它一个小于-32768或者大于32767的数会如何呢?,小蛇能吞下大象吗?,超出取值范围会怎样?,一台安装了Windows 95/98的机器,如果连续运行49.7天没有重新启动,可能死机 原因: Windows自启动时刻起,有一个计数器,记录系统已经运行了多少毫秒。这个计数器是个unsigned long 类型的变量 unsigned long 的最大值是:4294967295(232-1) 一天有 24*60*60*1000 = 86400000毫秒 4294967295 / 86400000 = 49.71026961805 当49.7天的时候,此计数器会溢出,引起死机,溢出(Overflow)造成的危害,整型常数 18、-31 长整型常量 123l、123L、123456l、123456L 无符号型常量 123u、 123U 浮点常数 十进制小数形式 123.45、456.78 指数形式 1e-2、4.5e3 单精度浮点型常量 123.45f、 456.78F、1e-2f、4.5e3F 长双精度浮点型常量 123.45l、 456.78L、1e-2l、4.5e3L (没有长单精度的说法),常数(Constant),整型常数缺省被看作int类型,如果超出int的范围,就自动被看作long。可以在数字后面加上l或者L强制其为long。 浮点常数缺省为double,后缀f或F为float,后缀l或L为long double。 因为字母l和数字1容易混淆,所以当用l做后缀时,常使用大写形式。,以数字“0”开始的整型常数是八进制数 022、-037 010和10大小不一样 因为八进制并不常用,所以此种表示法比较少见 以“0x”或者“0X”开始的整型常数是十六进制 A-F和a-f用来表示十进制的10-15 十六进制的形式比较常用,尤其在进行位一级的控制的时候 0x12、-0x1F, -0x1f,八进制与十六进制常数,练习,下列哪些数是合法的16进制数,0X2A 0XA0 5A 0XFFFF 0X3H,字符常数的表示方法 a, A , 5 , % , $ 单引号内只能有一个字符,除非用开头! 单引号内不能没有字符! 字符常数是一个普通整数,可参与各种运算 每个字符具有一个0-255之间的数值,可从ASCII表查出 注意: 5 和整数5的区别 字符的数学运算在密码学内用得比较多,字符(Character)常数,转义字符 (p40) 一些特殊字符(无法从键盘输入或者另有它用)用转义字符表示,字符常数,小写字母转换为大写字母,#include main() char ch = b; ch = b - 32; printf(“%c, %dn“, ch, ch); ,#include main() char ch = a; /*定义 ch 为字符型变量*/ printf(“%c, %dn”, ch, ch);/*分别以字符形式、整数形式输出ch */ ,Char 型与 int 型之间的关系,以字符型和整数型两种格式输出字符变量。,用双引号括住的由0个或多个字符组成的字符序列 “I am a string“ “表示空字符串 转义字符也可以在字符串中使用 引号只作为字符串开始和结束的标志 C语言内部用 0 表示字符串的结束 除注释外,是唯一可以出现中文的地方 “x“和x是不同的 里定义了一系列专门的字符串处理函数,字符串(String)常数,宏常量 也称符号常量 一般采用大写字母表示 #define 标识符 字符串 不是语句,而是一种编译预处理命令 宏替换(Macr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中铁安全员及答案
- 2025案例:合同无效的争议解决
- 2025外汇代客理财服务合同协议
- 2025外贸代理销售合同
- 薪资结算和经济补偿合同5篇
- 无证房屋转让合同(标准版)
- 石材开采合同(标准版)
- 汽车周期性生产计划考试题
- 机械安全故障诊断考试题
- 直管用工试题及答案
- 托育园厨师安全工作责任书
- GB/T 3810.2-2016陶瓷砖试验方法第2部分:尺寸和表面质量的检验
- 《编程猫系列》第1课-Hello-编程猫(课件)
- GB 16899-2011自动扶梯和自动人行道的制造与安装安全规范
- 非典型骨折课件
- 封闭区倒塌围墙修复施工方案
- 户口本翻译样本-Word范文-Word范文
- 企业融资计划书2022
- 99S203 消防水泵接合器安装图集
- 多发性大动脉炎
- 光纤损耗测试记录
评论
0/150
提交评论