有如下程序 #include <stdio.h> main() { int i, *ptr; int array[5] = {5,3,1}; for (ptr=array, i=0; i<5; i++, ptr++) {

admin2021-06-15  25

问题 有如下程序
#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、FDBXX
B、FFFXX
C、FDBBB
D、ABCDE

答案A

解析 在对数组进行初始化时,如果对数组的全部元素赋以初值,定义时可以不指定数组长度,如果被定义数组的长度与初值个数不同,则数组长度不能省略;如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值,则array={5,3,1,0,0}。程序执行过程为:执行for循环,将数组首地址赋给指针ptr,依次遍历每一个元素,如果数组元素为0则输出’X’,如果不为0则按照字母表输出字符’A’后第array个字符。程序运行后的输出结果为:FDBXX,A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/xMtp777K
0

最新回复(0)