程序中若有以下的说明定义和语句: #include<stdio.h> #include<string.h> struct STR {char hum[10];int s;}; main() {struct STR t,*p; p=&t; 则不能给变量t的

admin2021-07-09  27

问题 程序中若有以下的说明定义和语句:
#include<stdio.h>
#include<string.h>
struct STR
{char hum[10];int s;};
main()
{struct STR t,*p;
p=&t;

则不能给变量t的s成员赋整数99,给num成员赋空串的语句组是(  )。

选项 A、(*p).s=99;(*p).num=" ";
B、p->s=99;p->num[0]=0;
C、 (*p).s=99;p->num[0]=’\0’;
D、p->s:99;strcpy((*p).num," ");

答案A

解析 结构体变量使用“.”运算符引用结构体成员变量,结构体指针使用“->”运算符引用结构体成员变量,main函数中声明结构体STR变量t,和结构体STR指针*p,许将t的地址赋给p,所以使用p访问成员变量时,使用“->”运算符;使用*p访问成员变量时,使用“.”运算符。另外,由于成员变量num是字符数组,所以不能直接进行赋值,若要对num赋空字符串值,可以把num中第一个元素赋值为0或’\0’,或者使用strcpy复制函数将审字符串“”复制到num中,故选项B、C、D正确,选项A错误,因此答案为A。
转载请注明原文地址:https://jikaoti.com/ti/Lsz0FFFM
0

最新回复(0)