- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章基本词法语法规则与程序元素-C语言要点
C语言与程序设计The C Programming Language ;主要内容;第2章 基本词法语法规则 与程序元素;2.1 字符及词法元素 ;三字符序列;2.1.2 词法元素;词法分析举例;2.2 语法规则 ; BNF范式的符号;BNF范式示例--标识符的BNF范式;2.2.2 EBNF ;2.2.3 语法图 ;2.3 标识符、关键字及分隔符 ;注意;2.3.2 关键字;2.3.3 分隔符;2.4 基本数据类型;2.4.2 基本类型的名字;2.4.3 字符类型char;2.4.4 整型类型;;2.4.5 浮点类型;;;浮点数溢出的处理;2.5 常量与变量;整型常量可以带有后缀,用以指定其类型:;2. 浮点型常量 ;;3. 字符常量 ;转义序列;;4. 字符串常量 ;如何将一个较长的字符串写成多行?;;2.5.2 符号常量 ;1.用#define定义符号常量 ;例2.6 打印华氏和摄氏温度对照表, 温度转换公式为:℃=(5/9)(℉-32) ;2.用const定义符号常量 ;用const和#define定义的符号常量的区别?;2.5.3 变量定义 ;;2.6 运算符和表达式 ;2.6.1 C运算符简介;;2.6.2 运算符的优先级和结合性;;2.6.3 算术运算;注:;【例2.7】 求出所有的水仙花数。;2.6.4 关系运算 ;; 举例; 注意 ;常见的C语言编程错误; 2.6.5 逻辑运算;; 和 || 的真值表;! 的真值表; 注意;熟练掌握C语言的关系运算符和逻辑运算符后,可以巧妙地表示一个复杂的条件。;2.6.6 自增和自减运算 ;注意前缀与后缀的区别;【例2.11】 统计输入正文的字符数和行数;【例2.12】计算1+2+3+…+n,n从键盘输入; 序列点;【例2.13】后缀式++(或--)表达式举例;几点注意:;2.6.7 赋值运算 ;赋值表达式的值和类型; 赋值运算符的结合性; 2. 复合的赋值运算 ; 2.6.8 条件运算; 举例; 2.6.9 逗号运算 ; 举例; 扩展形式; 注意;【例2.14】 输入一串数字字符,将其转换为一个十进制整数赋值给x(模拟scanf(%d,x)的功能)。; 2.6.10 sizeof运算; 举例; sizeof是一个常量表达式 ;2.7 位运算符和位表达式 ;2.7.1 按位求反(~);2.7.2 按位与、或、加运算(,|,^ );2.7.3 左移和右移运算( 和 ) ;移位运算符的例子 ;【例2.15】写一个表达式,取一个整数x从第m位开始向右的n位,并使其向右端靠齐。一个整数的各个二进制位从右至左依次编号为第0位、第1位、第2位、……。;2.7.4 位运算符应用举例;分析:
可以把表示21世纪日期的日、月和年3个整数压缩成1个16位的整数,因为日有31个值,月有12个值,年有100个值,所以可以在一个整数中用5b表示日,用4b表示月,用7b表示年.;【例2.17】 简单加密示例。 ;(1)设计4个逻辑尺,分别用于取出A、B、C和D 4个部分。A的逻辑尺应设计成:高3位全为1,其余全为0,即0xE000;B的逻辑尺应设计成:第8~12位全为1,其余全为0,即0x1F00;同理C和D的逻辑尺分别为0x00F0和0x000F。
(2)取出A、B、C和D,再移到新位置。将x分别和逻辑尺进行运算,可取出每一部分。用每部分第1位的初始位置减去其新位置得到移位数,正数右移,负数左移。
(3)将各部分重新组装在一起。
得到表达式为:
(x0xE000)4 | (x0x1F00)8 | (x0xF0)8 | (x0xF)5;2.7.5 打印整数各位的软件工具 ;2.8 类型转换;2.8.1 整数提升 ;2.8.2 一般算术转换;2.8.3 赋值转换;2.8.4 强制类型转换;2.9 枚举类型 ;enum week { SUN, MON, TUE, WED, THU, FRI, SAT };;2.9.2 用枚举类型定义符号常量 ;2.9.3. 枚举变量的声明 ;一个枚举变量的值是int型整数,但值域仅限于列举出来的范围。枚举变量值的输入和输出都只能是整数。
c1=BLUE;
/* 等价于 c1=2; 使用有意义的标识符??助于读者理解程序 */
printf(“%d”,c1); /* 输出2,而不是BLUE */
scanf(“%d”,c2); /* 输入0,不能输入RED */
下面的语句是错误的:
c1=3; /* 变量c1的值域为:0、1和2 */
printf(“%s”, GREEN );
/* 输出
您可能关注的文档
最近下载
- 2026人教版小学一年级上学期语文期末综合试卷精选3套(含答案解析)(1).docx
- 天鹅(选自圣-桑《动物狂欢节》,总谱) 高清钢琴谱五线谱 .pdf VIP
- 实用化工产品配方与制备(6).doc VIP
- 提高外窗塞缝防渗漏一次验收合格率(陈启威).docx VIP
- 生存分析中的Cox模型比例风险假设检验.docx VIP
- ISO 9001(DIS)-2026《质量管理体系——要求》之6:“领导作用-5.1.2以顾客为关注焦点”专业深度解读和应用指导材料(编写2025A0).docx VIP
- 提高外窗塞缝防渗漏一次验收合格率(陈启威).pdf VIP
- 六年级数学上册第9讲甜甜咸咸就是我思维突破苏教版202106071121.pdf VIP
- 台州市椒江区2023-2024学年六年级数学第一学期期末调研模拟试题含答案.doc VIP
- 有限空间作业专项施工方案.docx VIP
原创力文档


文档评论(0)