C语言程序设计2023章节测试答案
A、(*p).data.a
B、(*p).a
C、p->data.a
D、p.data.a
我的答案:B
16、若有以下定义语句: struct student { int num,age;}; struct student stu[3]={{101,20},{102,19},{103,18}},*p=stu; 则以下错误的引用是( )
A、(p++)->num
B、p++
C、(*p).num
D、p=&stu.age
我的答案:D
17、设有一结构体类型变量定义如下: struct date { int year; int month; int day; }; struct worker { char name[20]; char sex; struct date birthday; }w1; 若对结构体变量w1的出生年份进行赋值,下面正确的赋值语句是( )
A、year=1976
B、birthday.year=1976
C、w1.birthday.year=1976
D、w1.year=1976
我的答案:C
18、已知: struct person { char name[10]; int age; }class[10]={"LiMing",29,"ZhangHong",21,"WangFang",22}; 下述表达式中,值为72的一个是( )
A、class[0]->age + class[1]->age+ class[2]->age
B、class[1].name[5]
C、person[1].name[5]
D、clase->name[5]
我的答案:A
19、若已经定义: struct stu { int a, b; } student ; 则下列输入语句中正确的是( )
A、scanf("%d",&a);
B、scanf("%d",&student);
C、scanf("%d",&stu.a);
D、scanf("%d",&student.a);
我的答案:D
20、已知: struct st { int n; struct st *next; }; static struct st a[3]={1,&a[1],3,&a[2],5,&a[0]},*p; 如果下述语句的显示是2,则对p的赋值是( ) printf("%d",++(p->next->n));
A、p=&a[0];
B、p=&a[1];
C、p=&a[2];
D、p=&a[3];
我的答案:C
21、有如下定义: struct person { char name[9];int age;}; struct person class[10]={"John",17, "Paul",19, "Mary",18, "Jack",19}; 根据上述定义,能输出字母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
22、链表不具有的特点是( )
A、插入、删除不需要移动元素
B、可随机访问任一元素
C、不必事先估计存储空间
D、所需空间与线性长度成正比
我的答案:B
23、设有以下链表,则不能将q所指的结点插入到链表末尾的是( )
A、q->next=NULL;p=p->next;p->next=q;
B、p=p->next;q->next=p->next;p->next=q;
C、p=p->next;q->next=p;p->next=q;
D、p=(*p).next;(*q).next=(*p).next;(*p).next=q;
我的答案:C
24、在单链表指针为p的结点之后插入指针为 s的结点, 正确的操作是 ( )
A、p->next=s;s->next=p->next;
★《布宫号》提醒您:民俗信仰仅供参考,请勿过度迷信!