若有以下定义,则能打印出字母M的语句是()。 struct person { char name[12]; int num; }; struct person class[8]={"Linan",20,"zhanghai",18,"Maming",23,"wanghua",25,"chenqi",17};A.printf("%c",class[3].name);B.printf("%c",class[3].name[1]);C.printf("%c",class[2].name[1]);D.printf(

题目

若有以下定义,则能打印出字母M的语句是()。 struct person { char name[12]; int num; }; struct person class[8]={"Linan",20,"zhanghai",18,"Maming",23,"wanghua",25,"chenqi",17};

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

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

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

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


相似考题
更多“若有以下定义,则能打印出字母M的语句是()。 struct person { char name[12]; int num; }; struct person class[8]={"Linan",20,"zhanghai",18,"Maming",23,"wanghua",25,"chenqi",17};”相关问题
  • 第1题:

    有以下程序:

    #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。

  • 第2题:

    下列对结构及其变量定义错误的是( )。

    A.struct My Struct

    B.struct MyStruct{ {int num; int num;char ch; char ch;} }My;

    C.strut

    D.struct{ {int num; int num;char ch; char ch;}My; };


    正确答案:D

  • 第3题:

    有以下定义和语句: struct students {int num;char name[20];char c; struct {int grade1;int grade2;}s; }; struct students w,*pw; *pw=w; 下列赋值语句不正确的是( )。

    A.w.num=1002;

    B.w.grade1=85;

    C.pw->num=1002;

    D.w.s.grade2=85;


    正确答案:B

  • 第4题:

    根据下面的定义,能打印出字母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是正确答案。

  • 第5题:

    设有定义:

    struct person

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

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


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

  • 第6题:

    若有如下定义: 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}。

  • 第7题:

    以下程序的输出结果是______。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

  • 第8题:

    根据下述定义,能输出字母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

  • 第9题:

    下列对结构及其变量定义错误的是( )。

    A.struct My Struct { int num; char ch; }

    B.struct MyStruct { int num; char ch; }My;

    C.strut { int num; char ch; }My;

    D.struct { int num; char ch; };


    正确答案:D

  • 第10题:

    若有定义和语句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);输出结果是1。( )

    此题为判断题(对,错)。


    正确答案:×

  • 第11题:

    单选题
    有以下函数:#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选项。

  • 第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题:

    有以下程序includestruct STU{char name[10];int num;};void f(char*name, intnum){s

    有以下程序 #include <string.h> struct STU { char name[10]; int num; }; void f(char *name, int num) { struct STU s[2]={{"SunDan",20044},{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() { struct STU s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p; p=&s[1]; f(p->name,p->num); printf("%s %d\n",p->name,p->num); } 程序运行后的输出结果是

    A.SunDan 20042

    B.SunDan 20044

    C.LiSiGuo 20042

    D.YangSan 20041


    正确答案:A
    解析:题目中定义的函数f()包含两个参数,一个字符指针,—个整型变量。当修改参数指针所指向的内容的时候,实参所指的内容也被修改,即传址调用;但只是修改参数变量的内容,则实奉不受影响,即传值调用。因此,主函数调用f()函数后,第1个参数被修改成函数中s[0]的name成员,第2个参数不受影响,还是主函数中s[1]的num成员。故最终输出SunDan20042。应该选择A。

  • 第14题:

    有以下程序: include struct STU (char name[10]; int num; };

    有以下程序: #include <string.h> struct STU (char name[10]; int num; }; void f(char *name, int num) {struct STU s[2]={{"SunDan",20044}.{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() {struct STU s[2]={{"YangSall",20041},{"LiSiGao",20042}},*p;p=&s[1]; f(p->name,p->num); printf("%s%d\n",p->name,p->num); } 程序运行后的输出结果是 ______。

    A.SunDan 20042

    B.SunDan 20044

    C.LiSiGuo 20042

    D.YangSan 20041


    正确答案:A
    解析:本题主函数中定义了结构体类型的指针变量p,并使其指向了结构体类型的数组s[1],并通过调用函数f改变了指针变量p所指向的结构体中成员变量name的值,但并未改变其num的值。这是因为函数f中的形参name是一个字符型指针变量,它指向了主函数中指针变量p所指向的结构体的成员变量name,所以对函数f中的形参*name的改变也就是刘主函数中p->name的改变,而函数f中对形参num的改变并不会影响主函数中p->num的值,因为此时传递给num的是一个值,而不是地址。

  • 第15题:

    有如下定义: 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

  • 第16题:

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

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

    B.struct SS是结构体类型

    C.PERSON是结构体类型名

    D.name是结构体成员名


    正确答案:C

  • 第17题:

    有以下说明和定义语句struct student{ int age; char num[8];};struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是A.(p++)->num B.p->num C.(*p).num D.stu[3].age


    正确答案:D
    引用形式有以下三种:①结构体变量.成员名;②(*p).成员名;③p→成员名。所以A、B、C答案都是正确的。故本题答案为D。

  • 第18题:

    有以下程序: #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。

  • 第19题:

    某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”。

  • 第20题:

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

    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,语法上没有错误。

  • 第21题:

    根据下列的定义,能打印出字母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]的值。

  • 第22题:

    数据结构里,struct student { char name[20]; char sex[10]; int age; int score; }; 定义结构体后,定义变量、数组赋值正确的是()。

    • A、struct student s={"张三","男",18,100};
    • B、struct student stu[3]={{"张三","男",18,100},{"李四","男",19,90},{"王五","男",23,97}};
    • C、struct student s={"李四";"女";18;100};
    • D、struct student stu[3]={{"张三",18,"男",100},{"李四",19,"男",90},{"王五",23,"男",97}};

    正确答案:A,B

  • 第23题:

    单选题
    有如下定义:struct{  int num;  char name[10];  struct {  int y;  int m;  int d; }birth; }s,*ps=&s;以下对内嵌结构体成员的引用形式错误的是(  )。
    A

    ps.birth.y

    B

    s.birth.y

    C

    ps->birth.y

    D

    (*ps).birth.y


    正确答案: C
    解析:
    使用结构体指针对结构体成员进行访问时,形式为:结构指针名->结构成员名,或者(*结构指针名).结构成员名,题目中ps为结构体指针,答案选择A选项。

  • 第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选项。