niusouti.com

有以下程序#include <stdio.h>struct tt{ int x;struct tt *y;} *p;struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};main(){ int i;p=a;for(i=1;i<=2;i++) {printf("%d,",p->x); p=p->y;}}程序的运行结果是A)20,30,B)30,17C)15,30,D)20,15,

题目

有以下程序

#include <stdio.h>

struct tt

{ int x;struct tt *y;} *p;

struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};

main()

{ int i;

p=a;

for(i=1;i<=2;i++) {printf("%d,",p->x); p=p->y;}

}

程序的运行结果是

A)20,30,

B)30,17

C)15,30,

D)20,15,


相似考题
更多“有以下程序#include &lt;stdio.h&gt;struct tt{ int x;struct tt *y;} *p;struct tt a[4]={ ”相关问题
  • 第1题:

    下列给定程序中,函数fun()的作用是:将字符串tt中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入“edS,dAd”,则输出“EDS,DAD”。

    请改正程序中的错误,使它能得到正确结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

    试题程序:

    include <stdio.h>

    include <string.h>

    include <conlo.h>

    /*************found*************/

    char fun(char tt[ ])

    {

    int i;

    for(i=0;tt[i];i++)

    {

    /*************found*************/

    if((tt[i]>='A')&&(tt[i]<='2'))

    tt[i]-=32;

    }

    return(tt);

    }

    main()

    {

    int i;

    char tt[81];

    clrscr();

    printf("\nPlease enter a string:");

    gets(tt);

    printf("\nThe result string iS:/n%s", fun(tt));

    }


    正确答案:(1)错误:char fun(char tt[]) 正确:char*fun(char tt[ ]) (2) 错误:if((tt[i]>=‘A’)&&(tt[i]=‘Z’)) 正确:if((tt[i]>=‘a’)&&(tt[i]=‘z’))
    (1)错误:char fun(char tt[]) 正确:char*fun(char tt[ ]) (2) 错误:if((tt[i]>=‘A’)&&(tt[i]=‘Z’)) 正确:if((tt[i]>=‘a’)&&(tt[i]=‘z’)) 解析:错误1:函数的返回值是字符串的首地址,是指针类型,所以在函数名前要加'*'号。错误2:题目要求将小写字母改为大写字母,所以if语句的判断条件是小写字母。

  • 第2题:

    下列语句段中,正确的是( )。

    A.struct {int x; float y; int a[2]; unsigned b[3]; char name[10]; };

    B.structstu { unsigneda[3]; unsigned b[4]; }x; int*p=&x.a;

    C.struc tsu { int a; float x[4]; }y={1,1.0}; floatdat a=y.x;

    D.stmct nd {int a,b; unsigned c[2]=5; };


    正确答案:A
    解析:本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式是:
      struct 结构类型名称
      { 数据类型 成员名1;
      数据类型 成员名2;
      数据类型 成员名n;
      };
      struct为关键字,是结构的标识符;{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

  • 第3题:

    下列语句段中,正确的是( )。

    A.struct { int x; float y; int a[2]; unsigned b[3]; char name[ 10]; };

    B.struct stu { unsigned a[3]; unsigned b[4]; }x; int *p=& x.a;

    C.street stu { int a; float x[4]; }y={1,1.0}; float data=y.x;

    D.struct nd {int a,b; unsigned c[2]=5; };


    正确答案:A
    解析:本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式是:struct结构类型名称{数据类型成员名1;数据类型成员名2;…数据类型成员名n;};struct为关键字,是结构的标识符:{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

  • 第4题:

    设有以下语句:typedef struct TY{char C;int a{4 1;}CIN;

    则下面叙述中正确的是( )。

    A.CIN是struct Tr类型的变量

    B.TT是struct类型的变量

    C.可以用,lr定义结构体变量

    D.可以用CIN定义结构体变量


    正确答案:D
    本题考查typcdef重新声明一种结构体类型,其中CIN为结构体类型名,而不是结构体变量,所以D选项正确。

  • 第5题:

    设有以下语句: typedef struct TT {char c; int a[4];}CIN; 则下面叙述中正确的是( )。

    A.可以用TT定义结构体变量

    B.TT是struct类型的变量

    C.可以用CIN定义结构体变量

    D.CIN是struct TT类型的变量


    正确答案:C
    解析:将题目中的定义语句去掉前面的typedef和后面的CIN(分号保留),就是一条完整的结构体定义语句,其中struct是说明符,TT是结构体名,大括号里面的是结构体成员的定义。此时要声明该结构体变量时需要使用struct加结构体名一起来声明,structTT一起构成一个结构体类型,就好像字符类型char。若只去掉前面的typedef,就是一条结构体定义同时声明个结构体变量CIN的语句,因为CIN的前面部分是structTT的完整写法,可以看作是structTT。C语言允许用typedef说明一种新类型名,其语法格式为:typedef类型名标识符;以后就可以用该标识符来代替被说明的类型名了。因此,当前面存在typedef时,该语句就变成了给structTT的定义一个新的名称CIN。所以,此时的CIN是一个结构体类型,它相当于structTT,即可以和char一样单独用来声明该结构体变量,而TT只是一个结构体名,不能单独用来声明变量。所以,4个选项中C符合题意。

  • 第6题:

    对于以下的变量定义,表达式______是不正确的。 struct { float x, y; } point, *p=&point;

    A.p->x=2.0

    B.(*p).y=3.0

    C.point.x=2.0

    D.*p->y=3.0


    char ch='m';