有以下程序: #include #include struct S { char name[10]; }; void change(struct S*data,int value) {

admin2019-01-11  18

问题 有以下程序:
    #include
    #include
    struct S
    {
    char name[10];   
    };
    void change(struct S*data,int value)
    {   
    strcpy(data一>name,"#");
    value=6;
    }
    main()
    {
    struct S input;
    int Bum=3;
    strcpy(input.name,"OK");
    change(&input,num);
    printf("%s,%d\n",input.name,num);
    }
    程序运行后的输出结果是(    )。

选项 A、OK,6
B、#,6
C、OK,3
D、#,3

答案D

解析 声明结构类型s中有一个字符数组name,在main()函数中,定义了一个结构变量input,为input中成员name初始化“ok”后,调用change()函数。chang()执行功能是把“#”赋值给name,由于change()函数的形参为结构体指针,因此change()函数改变形参指针data指向的name值的同时,也改变了实参input的成员name值;而形参value为整型变量,是num的一个副本,修改了num的副本,对num本身不产生影响,所以输出为#,3。答案为D选项。
转载请注明原文地址:https://jikaoti.com/ti/O0a0FFFM
0

相关试题推荐
最新回复(0)