选择题   有如下程序:
    #include <stdio.h>
    main()
    {
        int i,*ptr;
        int array[5] = {5,3,1};
        for(ptr=array, i=0; i<5; i++, ptr++)
        {
            if (*ptr == 0)
                putchar('X');
            else
                putchar('A'+*ptr);
        }
        printf('\n');
    }
    程序运行后的输出结果是______。
 
【正确答案】 A
【答案解析】 在对数组进行初始化时,如果对数组的全部元素赋以初值,定义时可以不指定数组长度,如果被定义数组的长度与初值个数不同,则数组长度不能省略;如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值,则array={5,3,1,0,0}。程序执行过程为:执行for循环,将数组首地址赋给指针ptr,依次遍历每一个元素,如果数组元素为0则输出‘X’,如果不为0则按照字母表输出字符‘A’后第array[i]个字符。程序运行后的输出结果为:FDBXX,故A选项正确。