找回密码
 注册

QQ登录

只需一步,快速开始

查看: 923|回复: 0

大工20春《c&c 语言程序设计》十三

[复制链接]
发表于 2021-2-25 11:24:23 | 显示全部楼层 |阅读模式
C/C++语言程序设计辅导资料十三
一、主题:自定义数据类型二、学习时间:2020年6月22日-6月28日“不忘初心、牢记使命”主题理论学习:
担使命,就是要牢记我们党肩负的实现中华民族伟大复兴的历史使命,勇于担当负责,积极主动作为,用科学的理念、长远的眼光、务实的作风谋划事业;保持斗争精神,敢于直面风险挑战,知重负重、攻坚克难,以坚忍不拔的意志和无私无畏的勇气战胜前进道路上的一切艰难险阻;在实践历练中增长经验智慧,在经风雨、见世面中壮筋骨、长才干。
摘选自《在“不忘初心、牢记使命”主题教育工作会议上的讲话》三、知识脉络:
第9章 自定义数据类型
9.0 导学
9.1 定义结构体
9.2 应用结构体四、学习要求:
理解结构体
掌握声明结构体的方法
掌握结构体变量的定义、初始化及使用方法
掌握结构体数组的定义、初始化及使用方法
掌握结构体指针的定义、初始化及使用方法
掌握声明嵌套结构体的方法
理解向函数传递结构体变量及数组的方法
了解链表的特点五、重点难点:
结构体的定义
结构体变量
结构体数组
结构体指针
结构体嵌套
函数与结构体六、主要内容:
1.理解结构体 struct
用户自定义的新数据类型   
在结构体中可以包含若干个不同数据类型和不同意义的数据项,即若干数据项的一个聚合。
2.定义结构体类型
定义一个结构体类型的一般形式为:
struct  结构体名
{
     数据类型 成员名1;
     数据类型 成员名2;
      。 。 。
     数据类型 成员名n;
} ;
结构体声明并不分配空间!
结构体类型声明是在说明一种数据类型。3.结构体变量
先定义结构体类型,再定义变量名,在定义类型的同时定义变量。
访问方式:结构体变量名 . 成员名
可以同类型的结构体变量进行整体的赋值运算,不能对结构体变量进行整体输入/输出/比较运算!  4.结构体数组
具有相同结构体类型的结构体变量组成的数组。
结构体数组的每个元素都是结构体类型的数据,它们都分别包括各个成员项。
struct student stu[3];

结构中可以包含其他结构作为成员

struct Date { int year , month , day ;}
struct Student
{       int iNum;
        char cArrName[20];
        char cSex;
        struct Date birthday;
};5.结构体指针
指针变量的值是结构体变量的起始地址,即第一个成员的地址。
定义与初始化
struct 结构体名 *结构指针名;
struct Student *pstu  = &stu ;
结构体指针的使用
结构体指针名 -> 成员名
(*结构体指针名). 成员名
结构体数组指针:指向结构体数组或数组元素的指针
结构成员不能是自身的结构变量,但可用一个指向自身结构的指针 作为成员。七、习题:
1.在说明一个结构体变量时系统分配给它的存储空间是(  )。
A.该结构体中第一个成员所需的存储空间
B.该结构体中最后一个成员所需的存储空间
C.该结构体中占用最大存储空间的成员所需的存储空间
D.该结构体中所有成员所需存储空间的总和。
答案:D2.设有以下说明语句,则以下叙述不正确的是(    ) 。
struct stu
{int a;float b;}stutype;
A.struct 是结构体类型的关键字
B.struct stu 是用户定义的结构体类型
C.stutype 是用户定义的结构体类型名
D.a 和 b 都是结构体成员名
答案:C3.以下对结构体变量stu1中成员age的合法引用是(  )。
#include<string.h>
struct student
{
        int age;
        int num;
}stu1,*p;
p=&stu1;
A.stu1->age
B.student.age
C.p->age
D.p.age
答案:C4.有如下定义:
Struct date
{
        int year,month,day;
};
Struct worklist
{
Char name[20];
Char sex;
Struct date birthday;
}person;
对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是(  ) 。
A.worklist .birthday.year=1978
B.birthday.year=1978
C.person.birthday.year=1958
D.person.year=1958
答案:C5.以下程序运行的结果是(  ) 。
#include<stdio.h>
  struct date
   { int year , month , day ;
   } ;
main()
  {
  printf(“%d\n”,sizeof(struct date));
  }
A.6
B.8
C.10
D.12
答案:D6.在32位系统中,对于时间结构体
   struct date
   { int year , month , day ;
      char week[5];
   }
  则执行 printf(“%d\n”,sizeof(struct date))的输出结果为(  ) 。 
A.12
B.17
C.18
D.20
答案:D7.设有以下语句:
  struct st
{  int n ;
   char name[10]
  } ;
  struct st a[3]={ 5 , “li” , 7 , “wang” , 9 ,”zhao”} , *p ;
  p= a;
  则以下表达式的值为6的是(   ) 。
A.p++ ->n
B.p->n++
C.(*p) . n++
D.++p ->n
答案:D8.设有以下语句,则输出结果是(   ) 。
struct List
{int data ;
struct List *next;
};
int main{
struct List a[3]={1,&a[1],2,&a[2],3,&a[0]}, * p;
p=&a[1] ;
printf("%d\n",--p->data);
printf("%d\n",p->next->data);
printf("%d\n",p--->data);
}
A.1 2 1
B.3 1 1
C.1 3 2
D.2 1 3
答案:A9.下若有以下语句,则下面表达式的值为(   ) 。
struct complx{int x; int y;}
cnum[2]={1,3,2,7};
cnum[0].y/cnum[0].x*cnum[1].x;
A.0
B.1
C.3
D.6
答案:D10.线性表采用链式存储结构时,要求内存中可用存储单元的地址(    )。
A.必须是连续的
B.部分地址必须是连续的   
C.一定是不连续的
D.连续或不连续都可以。
答案:D南开答案可以联系QQ 761296021

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-5-4 11:26

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表