根据下面的定义,能打印出字母P的语句是() struct person { char name[9]; int age;}; struct person classes[10]={"John",17, "Paul",19,"Mary",18, "Adam",16};A.printf("%cn",classes[2].name);B.printf("%cn",classes[2].name[1]);C.printf("%cn",classes[1].name[0]);D.printf("%cn",class

题目

根据下面的定义,能打印出字母P的语句是() struct person { char name[9]; int age;}; struct person classes[10]={"John",17, "Paul",19,"Mary",18, "Adam",16};

A.printf("%cn",classes[2].name);

B.printf("%cn",classes[2].name[1]);

C.printf("%cn",classes[1].name[0]);

D.printf("%cn",classes[1].name[1]);


相似考题
更多“根据下面的定义,能打印出字母P的语句是() struct person { char name[9]; int age;}; struct person classes[10]={"John",17, "Paul",19,"Mary",18, "Adam",16};”相关问题
  • 第1题:

    有如下定义

    struct person{char name[9];int age;};

    struct person class[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};

    根据上述定义,能输出字母M的语句是

    A.printf("%c\n",class[3].name);

    B.printf("%c\n",class[3].name[1]);

    C.printf("%c\n",class[2].name[1]);

    D.printf("%c\n",class[2].name[0]);


    正确答案:B

  • 第2题:

    有以下程序:

    #include<

    struct stu { int num;char name[10];int age;}

    void fun(struct stu*p)

    { printf("%s\n",(*p).name);}

    main

    { struct stu students[3]={{9801,"Zhang".20}, {9802,"Wang",19},{9803,"Zhao",1 8}}

    fun(students+2); }

    输出的结果是( )。

    A.Zhang

    B.Zhao

    C.Wang

    D.18


    正确答案:B
    从实参传递过去的是结构体系数组的第3个元素,所以输出的name为Zhao。

  • 第3题:

    有如下定义: struct person {char name[9];int age;} struct person class[10]={ "John",17, "Paul",19, "Mary",18, "Adam",16}; 能输出字母M的是( )

    A.printf("%c\n",class[3].name);

    B.printf("%c\n",class[3].name[1]);

    C.printf("%c\n",class[2].name[1]);

    D.printf("%c\n",class[2].name[0]);


    正确答案:D

  • 第4题:

    设有以下语句: struct SS { int no; char name[10];}PERSON; 则下面叙述中错误的是 ( )

    A.struct是结构体类型的关键字

    B.struct SS是结构体类型

    C.PERSON是结构体类型名

    D.name是结构体成员名


    正确答案:C

  • 第5题:

    有以下程序

    #include <stdio.h>

    struct stu

    { int num; char name [10];int age;};

    Void fun(struct stu *p)

    { printf("%s\n,p->name);}

    main( )

    { struct stu x[3]={ {01,”Zhang”,20},{02, ” Wang”,19},{03, ”zhao”,18} };

    fun(x+2);

    }

    程序运行后的输出结果是

    A)Zhang

    B)Zhao

    C)Wang

    D)19


    正确答案:B
    【答案】B
    【知识点】结构体数组与函数调用
    【解析】函数调用中 “x+2”即为结构体变量x[2]的地址,所以形参变量p指向x[2]的地址,所以打印输出成员name的值“zhao”。

  • 第6题:

    定义下列结构体(联合)数组: struct St { char name[15]; int age; }a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17}; 执行语句printf("%d,%c",a[2].age,*(a[3].name+2))的输出结果为( )。

    A.15,A

    B.16,H

    C.16,A

    D.17,H


    正确答案:C
    解析: 本题主要考查结构体数组。a[2].age为结构体a[2]的age成员,即16。a[3].name为指向结构体 a[3]的name成员的第一个元素的指针,即指向“Z”,(a[3].name+2)将指针后移两位指向第三个元素“A”, *(a[3].name+2))是取指针所指向地址的内容。

  • 第7题:

    若有如下定义: struct stu{char name[9];int age;float score;); struct stu class[10]={{"Li",17,67},{"Song",19,80}, {"guo",18,79},{"Zhao",16,69}}; 根据上面的定义,若执行“printf("%s:%d%f",class[3].name,class[3].age,class[3].score);"则输出的正确结果是( )。

    A.Song:19,80.000000

    B.Zhao:16,69.000000

    C.Li:17,67Song;19,80

    D.guo:18,79Zhao;16,69


    正确答案:B
    解析:class[10]是结构体型的数组,class[3]为{"Zhao",16,69}。

  • 第8题:

    有以下程序: #include<<stdio.h> struct stu { int num; char name[10]: int age;} void fun(struct stu*p) {printf("%s\n",(*p).name);} the main { struct stu students[3]={{9801,"Zhang".20}, {9802,"Wang",19},{9803,"Zhao",1 8}} fun(students+2); } 输出的结果是( )。

    A. Zhang

    B.Zhao

    C.Wang

    D.18


    正确答案:B
    从实参传递过去的是结构体系数组的第3个元素,所以输出的name为Zhao。

  • 第9题:

    某C语言结构体的定义如下。 struct date { int year, month, day; }; struct worklist { char name[20]; char sex; struct date birthday; }person; 若对变量person的出生年份进行赋值,正确的赋值语句是(33)。

    A.year=1976

    B.birthday. year=1976

    C.person. year=1976

    D.person. birthday. year=1976


    正确答案:D
    解析:本试题考查嵌套定义的结构体成员的引用。首先,直接使用结构体成员而无所属关系是一种典型错误,系统将认为它是普通变量而非结构体成员。其次,不论结构体嵌套的层次多少,只能从最外层开始,逐层用“.”运算符展开,注意展开时必须使用变量名而不是结构体名。事实证明,只有这种展开方式才能清楚地说明成员的所属关系。对于试题,若对变量person的出生年份进行赋值,正确的赋值语句是选项D的“person-birthday.year=1976”。

  • 第10题:

    设有如下定义 struct ss { char name[10]; int age; char sex; }std[3], * p=std; 下面各输入语句中错误的是

    A.cin>>(* p).age);

    B.cin>>std.name);

    C.cin>>std[0].sex);

    D.cin>>(p->.sex));


    正确答案:B
    解析:std是一个数组,其内可以存放三个结构体类型的数据。当std单独使用的时候表示一个指针,指向该数组首地址。因此不能直接用std和点操作符进行配对使用。指针操作符->只能和指针配对使用,点操作符只能和有名对象或变量配对使用。

  • 第11题:

    根据下列的定义,能打印出字母P的语句是( )。 struct stu {char name[10]; int age; }; struct sm s[10]={"John",11, "Pau1",12, "Mary",11, "adam",12 };

    A.printf("%c",s[3].name);

    B.printf("%c",s[3].name[1]);

    C.printf("%c",s[2].name[1]);

    D.printf("%c",s[1].name[0]);


    正确答案:D
    解析:本题主要考查按结构数组元素方式引用结构成员。字母P为“Paul”的第一个字母,是结构体s[1]的name成员的第一个元素的值,即s[1].name[0]的值。

  • 第12题:

    单选题
    有如下程序:#include struct person{ char name[10]; int age;};main(){ struct person room[4] = {{Zhang,19}, {Li,20}, {Wang,17}, {Zhao,18}}; printf(%s:%d,(room+2)->name, room->age);}程序运行后的输出结果是(  )。
    A

    Wang:19

    B

    Wang:17

    C

    Li:20

    D

    Li:19


    正确答案: B
    解析:
    可用以下3种形式来引用结构体变量中的成员:①结构体变量名.成员名;②指针变量名->成员名;③(*指针变量名).成员名。数组名room是指向数组首地址,也可以当做指向数组的指针来使用。room+2指向数组第三个元素,(room+2)->name为字符串Wang;room指向数组第一个元素,room->age=19。答案选择A选项。

  • 第13题:

    根据下面的定义,能印出字母m的语句是()根据下面的定义,能印出字母M的语句是()structperson{charname[9];intage;};structpersonclass[10]={“john”,17,“paul”,19,“mary”,18,“adam”,16};。

    A.printf(“%c\n”,class[3].name);

    B.printf(“%c\n”,class[3].name[1]);

    C.printf(“%c\n”,class[2].name[1]);

    D.printf(“%c\n”,clsaa[2].name[0]);


    正确答案:D

  • 第14题:

    有如下定义: struct person{char name[9];int age;}; struct person class[10]={"Johu",17,"Paul",19,"Mary",18,"Adam",16,};根据上述定义,能输出字母M的语句是______。

    A.printf("%c\n",class[3].name);

    B.printf("%c\n",class[3].name[1]);

    C.printf("%c\n",class[2].name[1]);

    D.printf("%c\n",class[2].name[O]);


    正确答案:D
    解析:该题主要考查C语言数组下标的概念,即C语言中数组的下标是从。开始的。

  • 第15题:

    根据下面的定义,能打印出字母M的语句是( )。 struct person { char name[9]; int age; }; struct person class[10]={"John",17,"Paul",19,"Mary",18,"Adam",16};

    A.printf("%c\n",class[3].name};

    B.printf("%c\n",class[2].name[0]);

    C.printf("%c\n",class[3].name[1]);

    D.printf("%c\n",class[2].name[1]);


    正确答案:B
    解析:在结构体数组class[10]的初始化列表中只有第5个初始值中包含大写字母M,而该结构体只有两个成员变量,所以每两个初始值初始化一个数组元素,故第5个初始值是属于第3个数组元素class[2]的前一个成员变量的,选项A和C不正确。又因为‘M’是“Mary”的第一个元素,所以应该输出class[2]的name[0],B是正确答案。

  • 第16题:

    设有定义:

    struct person

    {int ID;char name[12];}P;

    请将scanf(“%d”, 【 】);语句补充完整,使其能够为结构体变量P的成员ID正确读人数据。


    正确答案:&p.ID
    &p.ID 解析:结构体成员的引用通过符号“.”来表示,通过scard语句对变量进行赋值时,要用取地址符&。

  • 第17题:

    根据下列的定义,能打印出字母P的语句是( )。 struct stu { char name[10]; iht age; }; struct stu s[10]={"John",11, "Paul", 12, "Mary", 11, "adam",12 };

    A.printf("%c",s[3].name);

    B.printf("%c",s[3].name[1]);

    C.printf("%c",s[2].name[1]);

    D.printf("%c",s[1].name[0]);


    正确答案:D
    解析:本题主要考查按结构数组元素方式引用结构成员。字母P为“Paul”的第一个字母,是结构体s[1]的name成员的第一个元素的值,即s[1].name[0]的值。

  • 第18题:

    定义下列结构体(联合)数组: struct st { char name[15]; int age; }a[10]={"ZHA0",14,"WANG",15,"LIU",16," ZHANG",17); 执行语句printf("%d,%C",a[2].age,*(a[3].name+ 2))的输出结果为( )。

    A.15,A

    B.16,H

    C.16,A

    D.17,H


    正确答案:C
    本题考查结构体数组。a[2].age为结构体aEZ]的age成员,即a[3].name为指向结构体a[3]的name成员的第一个元素的指针,即指向“2”,(a[3].name+2)将指针后移两位指向第三个元素“A”,*(a[3].name+2)是取指针所指向地址的内容。

  • 第19题:

    定义下列结构体(联合)数组:struct st{ char name[15];int age;}a[10]={"ZHA0",14,&quo

    定义下列结构体(联合)数组:

    struct st

    { char name[15];

    int age;

    }a[10]={"ZHA0",14,"WANG",15,"LIU",16," ZHANG",17);

    执行语句printf("%d,%C",a[2].age,*(a[3].name+ 2))的输出结果为( )。

    A.A.15,A

    B.16,H

    C.16,A

    D.17,H


    正确答案:C
    本题考查结构体数组。a[2].age为结构体a[2]的age成员,a[3].name为指向结构体a[3]的name成员的第一个元素的指针,即指向“2”,(a[3].name+2)将指针后移两位指向第三个元素“A”,*(a[3].name+2)是取指针所指向地址的内容。

  • 第20题:

    以下程序的输出结果是______。includestruct stu{int num; char name[10]; int age;};v

    以下程序的输出结果是______。#include<stdio.h>struct stu{ int num; char name[10]; int age;};void fun(struct stu*p){ printf("%s\n",(*p).name);}main(){ struct stu students[3]={ {9801,"Zhang",20}, { 9802,"Wang",19}, { 9803,"Zhao",18} }; fun(students+2);}

    A.Zhang

    B.Zhao

    C.Wang

    D.18


    正确答案:B

  • 第21题:

    根据下述定义,能输出字母M的语句是( )。struct person { char name[9]; int age;}class[10]={"Johu",17,"Paul",19,"Mary",18,"Adam",16};

    A、prinft("%c\n",class[3].nane);

    B、pfintf("%c\n",class[3].name[1]);

    C、prinft("%c\n",class[2].name[1]);

    D、printf("%c\n",class[2].name[0])


    正确答案:D

  • 第22题:

    下列关于结构型变量的定义语句中,错误的是( )

    A.typedef struct CCC

    B.define GGG struct { char name[20];GGG CCC { char name[20]; int age; int age; }GGG; }; GGG abc ; GGG CCC abc;

    C.struct

    D.struct { char name[20]; { char name[20]; int age; int age; }ccc; }abc; CCC abc;


    正确答案:C
    分析备选答案A:利用“typedef”定义了用户自定义的数据类型符“GGG”,这个用户自定义的数据类型符是含有两个成员的结构型CCC,所以语句“GGGabc”是定义结构型CCC的变量abc,语法没有错误。分析备选答案B:利用“#define”定义了宏名“GGG”,这个宏名第一次出现是定义结构型CCC,第二次是定义了结构型CCC的变量allc,所以语法上没有错误。分析备选答案C:这是定义一个没有名称的结构型,同时定义了这种结构型的变量CCC,接着的语句“CCCabc;”显然是错误的,因为CCC是变量名,不是数据类型符,该答案符合题意。至于备选答案D:这是标准的通过定义没有名称的结构型来定义该结构型的变量abc,语法上没有错误。

  • 第23题:

    单选题
    有以下函数:#include struct stu{ int num; char name[10]; int age;};void fun(struct stu *p){ printf(%s, p->name);}main(){ struct stu x[3] = {{01,Zhang,20}, {02,Wang,19}, {03,Zhao,18}}; fun(x+2);}程序运行后的输出结果是(  )。
    A

    Zhang

    B

    Zhao

    C

    Wang

    D

    19


    正确答案: A
    解析:
    程序定义了结构体stu和结构体数组x,其中x就是数组首地址,即&x[0],x+2代表了指向第三个元素的指针,即&x[2],所以输出p->name为Zhao。答案选择B选项。

  • 第24题:

    单选题
    有如下程序:#include struct person{ char name[10]; int age;};main(){ struct person room[2] = {{Wang,19},{Li,20}}; printf(%s:%d,(room+1)->name, room->age);}程序运行后的输出结果是(  )。
    A

    Li:19

    B

    Wang:19

    C

    Li:20

    D

    Wang:17


    正确答案: A
    解析:
    room表示数组首地址,首地址+1,指向room数组中第二个元素,并将该元素的name信息进行输出,同理,对第一个元素中的age信息输出。答案选择A选项。