C语言复习重点:从基础到实战
需积分: 3 177 浏览量
更新于2024-09-21
收藏 91KB DOC 举报
"这是一份针对华夏学院C语言期末复习的资料,包含了填空、选择、问答和编程等多种题型,旨在帮助学生全面复习C语言的基础知识和编程技能。"
详细知识点说明:
1. **变量命名规则**:
- C语言中的变量名必须以字母或下划线开头,后面可以跟字母、数字或下划线,不允许包含标点符号或特殊字符。因此,合法的变量名如`TomB3a6b`和`C_6a7b`,而不合法的有`AB.C`(包含非法字符`.`)、`D$ABC`(包含非法字符`$`)。
2. **C语言标识符**:
- 正确的C语言标识符不能以数字开头,例如`_123`是合法的,而`%d`和`\n`不是,因为它们是预定义的宏和转义序列。
3. **程序执行流程**:
- C语言程序的执行始于`main()`函数,经过编译和链接后才能运行。一个C源程序只能有一个`main()`函数。
4. **文件扩展名**:
- C源程序文件的扩展名通常是`.c`,编译后生成的中间文件是`.OBJ`,最终链接生成的可执行文件是`.EXE`。
5. **语句分隔符**:
- C语言中,语句之间用分号`;`进行分隔。
6. **C语言程序开发步骤**:
- 包括编辑源代码、编译源文件、链接生成可执行文件以及运行程序。
7. **注释语法**:
- C语言的多行注释以`/*`开始,以`*/`结束。
**第二章知识点**:
1. **实型常量**:
- 实型常量的正确格式为带有小数点或指数形式的浮点数,例如`2.607e-1`、`0.8103e`和`-77.77`,而`456e-2`因缺少小数点或等号前的0而非法。
2. **整型常量**:
- `12`、`-20`和`456`是正确的整型常量,但`1,000`中的逗号不是合法的分隔符。
3. **表达式计算**:
- 在C语言中,`x=(x=1+2,x*2)`的结果是6,`x=y>2?6:5`的结果也是6,`x=8-(--y)-(--y)`的结果取决于`y`的初始值,可能不等于6。`x=y*4.8/2`的结果会根据浮点数的精度可能不等于6,通常会四舍五入。
4. **int类型常数**:
- `32768`对于int类型来说可能超出其表示范围,具体取决于平台的int类型大小,`037`是八进制表示,`0Xaf`是十六进制表示。
5. **逗号表达式**:
- `(a=3*5,a*4),a+15`的值取决于逗号表达式的求值顺序,最后的表达式是`a+15`,其值取决于`a`的值,因此结果可能是15。
6. **字符型常量**:
- 字符型常量在内存中存储的是ASCII代码。
7. **数据类型与大小**:
- `sizeof(x)`和`sizeof(float)`都是正确的,它们分别返回变量`x`和`float`类型的大小。
8. **类型转换与赋值**:
- 表达式`x=(float)(y*3+((int)y)%4)`将`y`转换为整数,再进行运算,结果为17。
9. **取模运算符**:
- `%`运算符只适用于整型操作数。
10. **逻辑与赋值运算**:
- `x=(a=1,b=2)`的结果是2,因为`a=1`和`b=2`都进行了赋值操作,且`b=2`的值被赋给`x`。
11. **C语言特性**:
- 大写字母和小写字母在C语言中被视为不同的字符,因此`A`和`a`是不同的标识符。
12. **等价的表达式**:
- `x*=y+2`等同于`x=x*(y+2);`,都是对`x`的值进行乘法和加法运算。
13. **复杂表达式计算**:
- `y+=(y-=m*=y)`的计算过程中,`y`的值会变为-16。
14. **程序结构**:
- 结构化程序设计的三种基本结构是顺序结构、分支结构(if...else)和循环结构(for, while, do...while)。
15. **三元运算符**:
- `(--a==++c)?--a:c++`的值是5,因为先自增`c`,然后自减`a`,条件成立,`c`的值最终为6。
16. **条件表达式**:
- `x>(y+x)?10:(12.5>y)`的计算取决于`x>(y+x)`的结果,这里没有给出完整表达式,但根据条件判断,10会被赋值给表达式的结果,而`y`的值会因后续操作而改变。
以上是对C语言复习资料中涉及的主要知识点的详细解释和解析,涵盖了变量命名、数据类型、表达式计算、程序结构等多个方面,有助于理解和复习C语言的基础概念。
2018-06-24 上传
点击了解资源详情
点击了解资源详情
2022-11-15 上传
wangjishangxin
- 粉丝: 0
- 资源: 1
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析