有下列程序: #include<stdi0.h> voidmain( ) {stuctSTU{charname[9];charsex;double score[2];}; stuctSTUa={"Zha0",m,85.0,90.0),b={" Qian",f,95.0,92.0}; b=a: printf("%S,%C,%2.0,%2.0\n”,b.name,b.sex, score[O],bscore[1]); 程序的运行结果是( )。A.Qian,f,95,92B.Oian,m,85,90C.Zha0

题目

有下列程序: #include<stdi0.h> voidmain( ) {stuctSTU{charname[9];charsex;double score[2];}; stuctSTUa={"Zha0",m,85.0,90.0),b={" Qian",f,95.0,92.0}; b=a: printf("%S,%C,%2.0,%2.0\n”,b.name,b.sex, score[O],bscore[1]); 程序的运行结果是( )。

A.Qian,f,95,92

B.Oian,m,85,90

C.Zha0,f,95,92

D.Zha0,m,85,90


相似考题
更多“有下列程序: #include&lt;stdi0.h&gt; voidmain( ) {stuctSTU{charname[9];charsex;double sc ”相关问题
  • 第1题:

    有以下程序 include main() { struct STU{char name[9];char sex;double

    有以下程序 #include <stdio.h> main() { struct STU{char name[9];char sex;double score[2];}; sturt STU a={"Zhao" ,'m',85.0,90.0},b={"Qian" ,'f,95:0,92.0}; b=a; printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]); } 程序的运行结果是______。

    A.Qian,f,95,92

    B.Qian,85,90

    C.Zhao,f,95,92

    D.Zhao,m,85,90


    正确答案:D
    解析:本题定义了两个结构体变量a和b,并将结构体变量a的内容赋给了结构体变量b。对于结构体的赋值,意味这将其中的每一个元素都进行赋值,所以输出的结构体变量b中的内容即为结构体变量a中的各项内容。另外本题需要注意的是输出格式的控制,其中“%2.0f”指的是输出的数据共占2列,其中有0位小数。

  • 第2题:

    有下列程序: #include<stdi0.h> #include”strin9.h” typedefstruct{charname[9];charsex;floatscore [2];}STU; voidf(STUa) { STUb={"Zha0",m,85.0,90.0);inti; strcpy(a.name,b.name); sex=b.sex; for(i=0;i<2;i++)a.score[i]=b.score[i]; } voidmain( ) { STUc={"Qian",f,95.0,92.0); f(c); printf("%s,%c,%2.Of,%2.Of\n",C.name,C.sex, score[O],C.score[1]); } 程序的运行结果是( )。

    A.Qian,f,95,92

    B.Qian,m,85,90

    C.Zha0,f,95,92

    D.Zha0,m,85,90


    正确答案:A
    A。【解析】本题考查在结构体中函数的调用,主函数调用f(c)后,实参传向形参,但程序中没有返回语句,故形参不能将值传回实参,实参之间值的传递具有不可逆性,所以printf输出的还是c中实参的值。

  • 第3题:

    有以下程序:includeincludetypedef struct{char name[9];char sex;float s

    有以下程序: #include <stdio.h> #include <string.h> typedef struct{char name[9];char sex;float score[2]}STU; STU f(STU A) {STU b={"Zhao",'m',85.0,90.0}; int i; strcpy(a.name,b.namC) ; a.sex=b.sex; for(i=0;i<2;i++) a.score[i]=b.score[i]; return a; } main() {STU c={"Qian",'f',95.0,92.0},d; d=f(C) ; pintf("%s,%c,%2.of.%2.of\n",d.name,d.sex,d.score[0],&score[1]); } 程序的运行结果是( )。

    A.Qian,f,95,92

    B.Qian,m,85,90

    C.Zhao,m,85,90

    D.Zhao,C95,92


    正确答案:C
    解析:本题的f()函数中,首先定义了一个STU结构体变量b并初始化为{"Zhao",'m',85.0,90.0},然后分别通过strcpy()库函数、赋值语句和for循环,将b中所有成员分别赋给形参a的相应成员,最后返回a。所以,无论传递给函数fun()的参数是什么,结果返回的都会是函数中定义的STU结构体b的内容{"Zhao",'m',85.0,90.0}。故最终输出结果为:Zhao,m,85,90;应该选择C。

  • 第4题:

    下面程序的运行结果是typedef union student{ char name[10]; long sno; char sex; float score[4];}STU;main(){ STU a[5]; printf("%d\n",sizeof(a));}


    正确答案:80
    根据共用体变量的特点可知,共用体变量所占的内存长度等于最长的成员的长度,所以变量STU所占的字节数等于其成员score[4]所占的字节数,即为16个字节,最终打印出共用体数组a[5]的长度为16´5=80。

  • 第5题:

    有以下程序 include include typedef stmct{ char name[9];char sex;flo

    有以下程序

    #include <stdio.h>

    #include <string.h>

    typedef stmct{ char name[9];char sex;float score[2];}STU;

    void f(STU a)

    { STU b={"Zhao",'m',85.0,90.0}; int i;

    strcpy(a.name,b.name) ;

    a.sex=b.sex;

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

    main( )

    { STU c={"Qian",'f',95.0,92.0};

    f(c);printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]) ;

    }

    程序的运行结果是

    A.Qian,f,95,92

    B.Qian,m,85,90

    C.Zhao,f,95,92

    D.Zhao,m,85,90


    正确答案:A
    解析:本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个副本,函数f的所有操作只是针对这个数据副本进行的修改,这些都不会影响变量c的值。