C语言笔试重点:函数调用与参数传递
需积分: 22 131 浏览量
更新于2024-08-16
收藏 455KB PPT 举报
"这篇资源主要涵盖了计算机二级考试中的笔试知识点,特别是关于C语言的部分,包括函数的调用、参数传递方式、表达式计算、逻辑运算符的短路特性、指针操作、数组以及预处理指令等内容。"
在C语言中,函数是实现代码重用的重要工具。函数的调用涉及到形参和实参的概念。形参(形式参数)是在函数定义时使用的参数,它们是函数内部使用的临时变量;实参(实际参数)是在调用函数时提供的具体值,这些值被用来初始化形参。函数调用时,有两种主要的参数传递方式:
1. **传值(Pass by Value)**:在这种方式下,实参的值被复制到形参中,形参的改变不会影响到实参。这意味着在函数内部对形参的修改不会反映到调用函数的地方。
2. **传址(Pass by Reference)**:实参的地址被传递给形参,形参通过这个地址直接访问实参的内存。因此,函数内部对形参的修改会影响到调用函数的地方。在C语言中,通常通过指针来实现传址调用。
举例来说,以下代码展示了传值和传址的区别:
```c
void incrementByValue(int num) {
num++; // 形参num是局部变量,增加不会影响到实参
}
void incrementByReference(int *ptr) {
(*ptr)++; // 通过指针访问实参,实参会被修改
}
int main() {
int x = 10;
incrementByValue(x); // x不会变
incrementByReference(&x); // x会变
return 0;
}
```
函数的返回值是函数执行完毕后返回的结果,可以通过函数调用表达式获取。例如,`int func()`表示函数返回整型值,`double getAverage(int arr[], int size)`则表示返回数组平均值的双精度浮点数。
在表达式计算方面,C语言支持多种运算符,包括算术运算符、比较运算符、逻辑运算符等。`switch`语句用于根据不同的条件执行相应的代码块,而`sizeof`运算符可以获取变量或数据类型的大小(以字节为单位)。指针是C语言的一个重要特性,它允许直接操作内存地址。变量的作用域决定了变量在何处可见和可使用,宏定义和`typedef`则提供了预处理和类型别名的功能。结构体和共用体允许我们组合多种数据类型,链表是一种动态数据结构,文件操作则涉及输入/输出。
对于题目中提到的具体例子:
1. 在第一个例子中,逻辑与运算符`&&`的短路特性使得在第一个表达式`++a<0`为假(即a不小于0)时,第二个表达式`!(b--<=0)`不会被执行,因此输出结果不受b的递减影响,答案是C,10。
2. 第二个例子中,`*p++`先访问然后递增,所以数组a[2]的值为原来a[1]的值,即6。答案是A,6。
3. 第三个例子中,`func`函数的参数传递是传值,所以`x`和`y`的递减只影响到局部变量,而`x+y`的计算发生在递减之前。同时,逗号运算符`x--,y--,x+y`的优先级是左到右,所以`r`的值为19。答案是C,19。
4. 最后一个例子的输出未给出,但显然涉及了格式化输出,可能需要根据`printf`的格式控制符来填写正确答案。
理解并掌握这些知识点对于通过计算机二级考试,尤其是C语言部分,至关重要。
2024-03-25 上传
2021-09-30 上传
2021-10-28 上传
2021-11-01 上传
2021-10-27 上传
2021-10-27 上传
2021-11-01 上传
2021-10-31 上传
2021-11-02 上传
eo
- 粉丝: 34
- 资源: 2万+
最新资源
- vcworks 5.4 技术文档
- TCP-IP Sockets in Java - Practical Guide for Programmers [Academic-Press 2002, Scan].pdf
- PHP实战(英文高清版)
- 大型网站架构演变和知识体系.pdf
- PHP面向对象编程(英文原版高清)
- C语言设计.第三版.谭浩强.
- IT 管理需求分析说明书
- flex 中文开发文档,基本原理和应用
- 网络教程(服务器)服务器
- Keil实例教程.pdf
- Linux内核结构详解教程.pdf
- CSS+DIV布局大全
- DWR基本原理、编程方法和例子
- 报表工具 xx x
- MYSQL中文乱码 xx
- 基于数码相机的三维物体空间几何位置的摄影测量