更多“设有定义:struct person{int ID;char name[12];}P;请将scanf(“%d”,【】);语句补充完整,使其能够为 ”相关问题
  • 第1题:

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

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

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

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

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


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

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

  • 第3题:

    定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。 scanf(“%d, ” ); printf(“%dn”, );


    k*k scanf()函数有两个参数,第一个参数是格式控制部分(格式控制部分是字符串,主要由%号和格式字符组成)第二个参数是一地址列表(地址列表是由多个地址组成,可以是变量的地址,也可以是字符串的首地址)。而第一个空位于scanf()函数的第二个参数处,所以,第一个空应该填地址k。printf()函数有两个参数,第一个参数是输出格式字符串(输出格式字符串是由控制输出格式的字符和非格式字符组成,通常是字符常量。非格式字符作为输出数据的间隔,输出时原样输出)第二个参数为一输出表达式表(输出表达式表是由若干个需要计算和输出的表达式组成的,表达式之间用逗号分隔开)。而第二个空位于printf()函数的第二个参数处,所以应该填*k。

  • 第4题:

    设有如下定义: 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选项为所选。

  • 第5题:

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


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