有如下程序 #include <stdio.h> void change(int* array, int len) { for (; len>=0; len--) array[len] += 2; } main() { i

admin2021-04-28  31

问题 有如下程序
#include <stdio.h>
void change(int* array, int len)
{
    for (; len>=0; len--)
        array[len] += 2;
}
main()
{
    int i, array[5] = {1,2};
    change(array, 4);
    for (i=0; i<4; i++)
        printf("%d,", array);  
    printf("\n");
}
程序运行后的输出结果是

选项 A、2,3,4,5,
B、3,4,5,6,
C、3,4,2,2
D、1,2,0,0,

答案C

解析 在对一维数组初始化时,如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值0。本题程序执行过程为:调用change函数,将数组array={1,2,0,0,0}首地址传入函数,函数实现将数组每个元素加2,arrray={3,4,2,2,2}。依次输出数组前4个元素为3,4,2,2。C选项正确。
转载请注明原文地址:https://jikaoti.com/ti/9Nz0FFFM
0

最新回复(0)