单选题
1、第43题 (1.0分) 题号:669 若用数组名作为函数的实参,传递给形参的是()。
A
数组的首地址
B
数组第一个元素的值
C
数组中全部元素的值
D
数组元素的个数
答案解析
正确答案:A
解析:
**解析:**
在 C 语言(以及许多其他编程语言)中,数组名在大多数表达式中会被隐式转换为指向数组第一个元素的指针。
1. **传递机制**:当数组名作为函数的实参传递时,实际上传递的是数组在内存中的**起始地址**(即首地址),而不是复制整个数组的内容。
2. **效率考量**:如果传递全部元素的值(选项 C),对于大型数组来说,需要大量的内存拷贝操作,效率极低。通过传递地址,被调函数可以直接通过指针访问和修改原数组中的数据,既高效又节省内存。
3. **形参接收**:对应的形参通常声明为指针类型(如 `int *arr`)或数组形式(如 `int arr[]`),它们在函数内部本质上都是指针,指向实参数组的首地址。
**选项分析:**
* **A. 数组的首地址**:正确。这是数组名作为参数传递时的本质。
* B. 数组第一个元素的值:错误。这是传递单个变量时的行为,而非数组名。
* C. 数组中全部元素的值:错误。C 语言不支持直接通过值传递整个数组。
* D. 数组元素的个数:错误。数组长度不会自动传递给函数,通常需要额外传递一个表示长度的参数。
因此,正确答案是 **A**。
题目纠错
c语言选择判断题库
相关题目
单选题
1、第216题 (1.0分) 题号:166 下列定义数组的语句中不正确的是()。
单选题
1、第215题 (1.0分) 题号:162 设j和k都是int类型,则for循环语句 for(j=0,k=0;j<=9&&k!=876;j++) scanf(”%d”,&k);()。
单选题
1、第214题 (1.0分) 题号:192 下面选择中正确的赋值语句是(设char a[5],*p=a;)()。
单选题
1、第213题 (1.0分) 题号:600 若有说明语句:char c='\72';则变量c()。
单选题
1、第212题 (1.0分) 题号:688 若a=1,b=2则 a|b的值是()。
单选题
1、第211题 (1.0分) 题号:622 putchar函数可以向终端输出一个()。
单选题
1、第210题 (1.0分) 题号:493 C语言的注释定界符是()。
单选题
1、第209题 (1.0分) 题号:177 以下描述中,正确的是()。
单选题
1、第208题 (1.0分) 题号:577 在C语言中,int、char和short三种类型数据在内存中所占用的字节数()。
单选题
1、第207题 (1.0分) 题号:201 当定义一个结构体变量时,系统分配给它的内存是()。
