第九章 习题及答案

昆明理工大学楚雄应用技术学院第九章 习题
一、选择题
1.背景值以下选项中不能正确把cl定义结构变量的是( )
  A)typedef struct          B)struct color cl
    { int red;                  { int red;
    int green;                  int green;
    int blue;                   int blue;
    } COLOR; COLOR cl;          };
  C)struct color            D)struct
  { int red;                 { int red;
    int green;                 int green;
    int blue;                  int blue;
    } cl;                      } cl;
2.有以下说明和定义语句
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
3.有以下结构体说明、变量定义和赋值语句
  struct STD
  {char name[10];
  int age;
  char sex;
  }s[5],*ps;
  ps=&s[0];
 则以下scanf函数调用语句中错误引用结构体变量成员的是( )。
 A)scanf(“%s”,s[0].name); B)scanf(“%d”,&s[0].age);
 C)scanf(“%c”,&(ps->sex)); D)scanf(“%d”,ps->age);
4.以下叙述中错误的是( )
  A)可以通过typedef增加新的类型
  B)可以用typedef将已存在的类型用一个新的名字来代表
  C)用typedef定义新的类型名后,原有类型名仍有效
  D)用typedef可以为各种类型起别名,但不能为变量起别名
5.有以下程序段( )
      typedef struct node { int data; struct node *next; } *NODE;
      NODE p;
     
以下叙述正确的是(C)
      A)p是指向struct node结构变量的指针的指针
      B)NODE p;语句出错
      C)p是指向struct node结构变量的指针
      D)p是struct node结构变量
6.若有以下定义和语句
  union data
  { int i; char c; float f;}x;
  int y;
  则以下语句正确的是( )。
  A)x=10.5; B)x.c=101;  C)y=x; D)printf(“%d\n”,x);
7.有以下程序
main()
  { union { unsigned int n;
  unsigned char c;
  }u1;
  ul.c=`A`;
  printf("%c\n",u1.n);
  }
    执行后输出结果是()
A) 产生语法错  B) 随机值  C) A  D) 65
8.有以程序
#include <stdio.h>
#include <string.h>
typedef struct { char name[9]; char sex; float score[2]; } STU;
void f( STU a)
{ STU b={“Zhao” ,’m’,85.0,90.0} ; int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++) a.score[i]=b.score[i];
}
main()
{ STU c={“Qian”,’p’,95.0,92.0};
f(c); printf(“%s,%c,%2.0f,%2.0f\n”,c.name,c.sex,c.score[0],c.score[1]);
}
程序的运行结果是
A)Qian,p,95,92 B) Qian,m,85,90
C)Zhao,p,95,92 D) Zhao,m,85,90
9.现有以下结构体说明和变量定义,如图所示,指针p,q,r分别指向一个链表中连续的三个结点。
  struct node
      {
      char data;
      struct node *next;
      }*p,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是
         A)q->next=r->next; p->next=r; r->next=q;
    B) p->next=r; q->next=r->next; r->next=q;
    C) q->next=r->next; r->next=q; p->next=r;
    D) r->next=q; p->next=r; q-next=r->next;
10.有以下程序段
      struct st
      { int x; int *y;}*pt:
      int a[]={1,2},b[]={3,4};
      struct st c[2]={10,a,20,b};
      pt=c;
  以下选项中表达式的值为11的是( )
A) *pt->y  B) pt->x  C) ++pt->x  D) (pt++)->x
二、填空题
1.设有说明
      struct DATE{int year;int month; int day;};
  请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day 依次赋初值2006、10、1
2.已有定义如下:
struct node雪崩危情
  { int data;长江学者新规定
  struct node *next;
公共住宅  } *p;
  以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。
  p = (struct node *)malloc(    );

本文发布于:2024-09-21 04:39:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/361340.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:变量   语句   结构   类型   定义
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议