有以下程序: #include #include struct A { int a; char b[10]; double c; }; void f(struet A t);

admin2021-02-25  21

问题 有以下程序:
    #include
    #include
    struct  A
    {
    int a;
    char b[10];
    double c;
    };
    void f(struet A t);
    main( )
    {
    struet A a={1001,"ZhangDa",1098.0};
    f(a);
    printf("%d,%s,%6.1f\n",a.a,a.b,a.c);
    }
    void f(struet A t)
    {
    t.a=1002:
    strcpy(t.b,"ChangRong");
    t.c=1202.0:
    }
    程序运行后的输出结果是(    )。

选项 A、1002,ZhangDa,1202.0
B、1002,ChangRong,1202.0
C、1001,ChangRong,1098.0
D、1001,ZhangDa,1098.0

答案D

解析 本题考查结构体的相关操作以及传值、传址的区别。该题中调用f函数后,会生成参数a的一个副本,而不会改变a的值,所以a值维持原值,故选项D正确。
转载请注明原文地址:https://kaotiyun.com/show/2ntp777K
0

最新回复(0)