更多“有以下程序 #include<stdio.h>struct ord {int x,y;} dt[2]={1,2,3,4};main(){ struct ord ”相关问题
  • 第1题:

    有以下程序includestruct ord{ int x,y;} dt[2]={1,2,3,4};mare(){struct ord*p=dt; p

    有以下程序 #include<stdio.h> struct ord { int x,y;} dt[2]={1,2,3,4}; mare() { struct ord*p=dt; printf("%d,",++p->x); printf("%d\n",++p->y); } 程序的运行结果是______。

    A.1,2

    B.2,3

    C.3,4

    D.4,1


    正确答案:B
    解析:本题主要考查了结构体变量成员的引用,有三种形式来引用结构体变量中的成员:(1)结构体变量名.成员名:(2)指针变量名->成员名;(3)(*指针变量名).成员名。其中点号“.”称为成员运算符;箭头“->”称为结构指向运算符。由于p->x指向了结构体的的成员x,而结构体中x的值为1,因此自增后变为2,p->y指向了结构体的成员y,而结构体中y的值为2,因此自增后变为3,因此,选项B是正确的。

  • 第2题:

    以下程序的输出结果是( )。 union myun { struct {int x,y,z;)u; int k: }a; main { a.u.x=4;a.u.y=5;a.u.z=6; k=0; printf(%d\n",a.u.x); }

    A.4

    B.5

    C.6

    D.0


    正确答案:D
    因为a是结构体变量,最后一次输入的值为结构体中的值,即a中的任何一个值都为0。

  • 第3题:

    (37)有以下程序

    #include <stdio.h>

    struct ord

    { int x,y;}dt[2]={1,2,3,4};

    main()

    {

    struct ord *p=dt;

    printf("%d,",++(p->x)); printf("%d\n",++(p->y));

    }

    程序运行后的输出结果是

    A)1,2

    B)4,1

    C)3,4

    D)2,3


    正确答案:D

  • 第4题:

    有以下程序: #include<stdio.h> struct ord {int X,y;)dt[2]={1,2,3,4}; main( ) { struct ord*p=dt; printf("%d,",++(p->x));printf("%d\n",++(p->y)); } 程序运行后的输出结果是( )。

    A.1,2

    B.4,1

    C.3,4

    D.2,3


    正确答案:D
    p一>x的值为1,++(p->x)作用是取p->x的值加1作为表达式的值即值为2,同理++(p->y)的值为3。所以选D。

  • 第5题:

    有以下程序 union myun { struct {int x,y,z;}u; int k; }a; main() { a.u.x=4;a.u.y=5;a,u.z=6; a.k=0; printf("%d\n",a.u.x); } 程序运行后的输出结果是( )

    A.4

    B.5

    C.6

    D.0


    正确答案:D