设有定义:struct person{ int ID;char name[12];}p;请将 scanf("%d", 【 1 2 】 ); 语句补充完整,使其能够为结构体变量 p 的成员 ID 正确读入数据。

题目

设有定义:

struct person

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

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


相似考题

4.使用VC6打开考生文件夹下的工程test4_3。此工程包含一个源程序文件test4_3.cpp,其对一个学校的教师和考生情况进行了描述。由于教师和考生之间有相同的信息,如姓名、年龄等,所以可抽象出一个基类person,考生类student和教师类teacher作为person类的派生类。请按要求完成下列操作,将程序中的类定义补充完整。(1)定义基类person的私有数据成员name和age,分别用于表示姓名和年龄,name为字符指针,age为血型的数据。请在注释“//**1**”之后添加适当的语句。(2)完成基类person的重载构造函数person(char *mint a)的定义,把数据成员name,age分别初始化为参数n,a的值,请在注释“//**2**”之后添加适当的语句。(3)根据主函数main中对s1的声明,定义派生类student的构造函数。在注释“//**3**”之后添加适当的语句。(4)完成派生类teacher成员函数void setinf(ehar *n,int a,char *d,char *1)的定义,其功能为记录教师的姓名、年龄、院,系与职称信息。请在注释“//**4**”之后添加适当的语句。输出结果如下:刘雷(45)destructor蒋军(23)destructor注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。源程序文件test4_3.cpp清单如下:include<iostream.h>class person{//**1**public:person(){}person(char *n,int a){//**2**}void setname(char *n){name=n;)void setage(int a){age=a;}~person(){cout<<name<<"("<<age<<")destructor"<<endl;)};class student:public person{char *department;int code;public://**3**{department=d;code=c;}};class teacher:public person{char *department;char *level;public:teacher(){}void setinf(char *n,int a,char *d,char *1){//**4**department=d;level=1;}};void main(){student s1("蒋军",23,"计算机学院",2);teacher t1;t1.setinf("刘雷",45,"计算机学院","教授");}

参考答案和解析
正确答案:
更多“设有定义:struct person{ int ID;char name[12];}p;请将 scanf("%d", 【 1 2 】 ); 语句补 ”相关问题
  • 第1题:

    设有定义:

    struct person

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

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


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

  • 第2题:

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

    A.scanf("%d",&(*p).age);

    B.scanf("%s",&std.name);

    C.scanf("%c",&std[0],sex)

    D.scanf("%c",&(p->sex));


    正确答案:B
    解析:选项A中&(*p).age代表的是std[0].age的地址,是正确的,选项C也是正确的,选项D先用指针变量引用结构型的成员sex,然后取它的地址,也是正确的,选项B中的std.name是错误的引用,因为std是数组名,代表的是数组的首地址,地址没有成员name。所以B选项为所选。

  • 第3题:

    【填空题】设有定义:int a, *p=&a; 以下语句将利用指针变量p读写变量a中的内容,请将语句补充完整。 scanf("%d", ___(1)____ ); printf("%dn", ___(2)____ ); 请使用指针p完成填空。


    int b=1,c=2; a[b][c]=3;

  • 第4题:

    若有定义“char, *p2,*p3,*p4,ch;”,则不能正确赋值的程序语句为 ( )

    A.p1=& ch;scanf("%c",p1);

    B.p2=(char*)malloc(1);scanf("%c",p2);

    C.p3=getchar( );

    D.p4=& ch;*p4=getchar( );


    正确答案:C

  • 第5题:

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

    A.scanf("%d",&(*p).age);

    B.scanf("%s",&std.name);

    C.scanf("%c",&std[0].sex);

    D.scanf("%c",&(p->sex));


    正确答案:B
    解析:在C语言中,结构体变量的引用有三种等价方式:
      1、结构体变量成员名;2、(*p).成员名;3、p->成员名。
      因为std.name是字符数组名,本身代表地址,其前面不应该使用“&”符号,所以选项B错误。