niusouti.com

有以下程序程序运行后的输出结果是( )。A.Zha0,m,85,90,Qian,f,95,92B.Zha0,m,85,90,Zha0,m,85,90C.Qian.f,95,92,Qian,f,95,92D.Qian,f,95,92,Zha0,m,85,90

题目

有以下程序

程序运行后的输出结果是( )。

A.Zha0,m,85,90,Qian,f,95,92

B.Zha0,m,85,90,Zha0,m,85,90

C.Qian.f,95,92,Qian,f,95,92

D.Qian,f,95,92,Zha0,m,85,90


相似考题
更多“有以下程序程序运行后的输出结果是( )。A.Zha0,m,85,90,Qian,f,95,92B.Zha0,m,85,90,Zha ”相关问题
  • 第1题:

    有以下程序:

    A.Qian,f,95,92

    B.Qian,m,85,90

    C.Zhao,m,85,90

    D.Zhao,f,95,92


    正确答案:C
    f()函数的功能是对形参a的各个成员用结构体变量b的各个成员进行赋值后,然后返回变量a。

  • 第2题:

    有以下程序:

    程序运行后的输出结果是( )。

    A.Zhao,m,85,90

    B.Qian,m,85,90

    C.Zhao,f,95,92

    D.Qian,f,95,92


    正确答案:D
    本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会生成参数C的一个副本,而不会改变c的值,所以c值维持原值,选项D正确。

  • 第3题:

    试题36

    有以下程序

    #include <stdio.h>

    #include <string.h>

    Typedef struct {char name[9]; char sex; int score[2];}STU;

    STU f(STU a)

    { STU b={“Zhao”, ‘m’, 85, 90};

    int i ;

    strcpy(a.name, b.name);

    a.sex=b.sex;

    for(i=0; i<2; i++) a.score[i]=b.score[i];

    return a;

    }

    main()

    {STU c={“Qian”, ‘f’, 95, 92},d;

    d=f(c);

    printf(“%s, %c, %d, %d,”, d.name, d.sex, d.score[0], d.score[1]);

    printf(“%s, %c, %d, %d\n”, c.name, c.sex, c.score[0], c.score[1]);

    }

    程序运行后的输出结果是()

    A.Zhao, m, 85,90, Qian, f, 95, 92

    B.Zhao, m, 85,90, Zhao, m, 85, 90

    C.Qian, f, 85,90, Qian, f, 95, 92

    D.Qian, f, 95, 92, Zhao, m, 85, 90


    正确答案:A
    试题36分析
    相当于传值调用,形参的值被改变了,但实参的值并没有改变。
    试题36答案
    A

  • 第4题:

    有以下程序: #include<stdio.h> struct STU{char name[9];char sex;int score[2];}; void f(struct STU a[]) { struct STU b={"Zhao",m,85,90); a[1]=b; } main( ) { struct STU c[2]={{"Qian",f,95,92},{"Sun",m 98,99}}; f(c); printf(”%s,%c,%d,%d,¨,c[o].name,c[o].sex,c[o].score[o],c[o].score[1]); printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[o],c[1].score [1]); } 程序运行后的输出结果是( )。

    A.Zhao,m,85,90,Sun,m,98,99

    B.Zhao,m,85,90,Qian,f,95,92

    C.Qian,f,95,92,Sun,m,98,99

    D.Qian,f,95,92,Zhao,m,85,90


    正确答案:D
    F函数是为结构体数组的第二个数赋值,数组的第一个数没有变化,所以正确答案应选D。

  • 第5题:

    有以下程序

    #include<stdio.h>

    #include<siring.h>

    typedef struct{char name[9];char sex;int score [2];}STU;

    STU f(STU a)

    { STU b={"Zhao",'m',85,90);

    int i;

    strcpy(a.name,b.name);

    a.sex=b.sex:

    for(i=0;i<2;i++) a.score [i]=b.score[i];

    return a;

    }

    main()

    STU c={"Qian",'f',95,92},d;

    d=f(c):

    printf("%s,%c,%d,%d,",d.name,d.sex,d.score[0],d.score[1]);

    prinff("%s,%c,%d,%d\n",c.name,c.sex,c.score[0],c.score[1]);

    }

    程序运行后的输出结果是

    A.Zhao,m,85,90,Qian,f,95,92

    B.Zhao,m,85,90,Zhao,m,85,90

    C.Qian,f,95,92,Qian,f,95,92

    D.Qian,f,95,92,Zhao,m,85,90


    正确答案:A
    解析:本题考察的是结构体知识和函数调用的参数传递知识点。通过函数调用把主函数中c变量的所有数据传给了子函数中的形参a,在子函数中将b中的数据均复制到了a中,所以返回a的值给d,使得d的值为zhao,m,85,90。但是主函数中c变量的值没有任何变化,所以选择A)。