第9章 结构体
第九章细胞骨架

体外实验表明,微丝正极与负极都能组装,组 装快的一端为正极,慢的一端为负极;去组装 时,同样正极比负极快。
在微丝组装时,若G-actin 添加到F-actin上的速率正 好等于G-actin 从F-actin失 去的速率时,微丝净长度 没有改变,这种过程称为 踏车行为。它是由G-actin 单体的临界浓度决定的。
七、细胞内依赖于微管的物质运输
有规则地沿微管运输货物的分子马达主要有驱动蛋
细胞中能利用水解 ATP将化学能转变为机械能, 白(kinesin)和胞质动力蛋白(cytoplasmic dynein)。
驱动蛋白及其功能:通常朝微管的正极运动
驱动蛋白沿微管运动的分子机制
胞质动力蛋白及其功能:朝微管的负极运动
八、纤毛和鞭毛的结构与功能
九、纺锤体和染色体运动
微管的类型
单管:大部分细胞质微管是单管微管,它在低温、Ca2+ 和秋水仙素作用下容易解聚,属于不稳定微管。 二联管:是构成纤毛或鞭毛的轴丝微管,是运动类型的 微管,它对低温、Ca2+和秋水仙素都比较稳定。 三联管:存在于中心粒和基体,它对低温、Ca2+和秋水
微管组装是一个动态不稳定的过程
微管组装的动力学不稳定性是指微管组装生长与快 速去组装的交替变换现象。
动力学不稳定性产生的原因
决定微管正端是GTP帽还是GDP帽,又受两种因素
影响,一是结合GTP的游离微管蛋白二聚体的浓度,
二是GTP帽中GTP水解的速度。 当一端组装的速度和另一端解聚的速度相同时,微 管的长度保持稳定,即所谓的踏车行为。
微丝的组装及动力学特性
MF是由G-actin单体形成的多聚体,肌动蛋白单体具有极性, 装 配时呈头尾相接, 故微丝具有极性,有正极与负极之分。 组装可分为成核反应、延长期和稳定期三个阶段。
c程序设计 第九章 结构体

一、概念题二、判断题1. 结构体中的成员不可以单独使用(F)。
2. 成员名可以与程序中的变量名相同,二者不代表同一对象(T)。
3. 不能将一个结构体变量作为一个整体进行输入输出(T)。
4. 结构体变量所占内存长度是各成员占的内存长度之和(T)。
5. 结构体中的成员不可以单独使用(F )。
9. 一个结构体变量的指针就是该变量所占内存段的起始地址(T)。
10. 用结构体变量作实参,形参也必须是同类型的结构体变量(T )。
三、单选题1. 设变量定义如下,则对其中的结构分量num正确的引用是( )。
struct student {int num ;char name[20];float score;} stud[10];A. stud[1].num=10;B. student.stud.num=10;C. struct.stud.num=10;D. struct student.num=10;2. 已知职工记录描述如下,设变量w中的“生日”是“1993年10月25日”,下列对“生日”的正确赋值方式是()。
struct worker{int no;char name[20];char sex;struct birth{ int day; int month; int year;}a;};struct worker w;A day=25;month=10;year=1993;B w.birth.day=25; w.birth.month=10; w.birth.year=1993;C w.day=25; w.month=10; w.year=1993;D w.a.day=25; w.a.month=10; w.a.year=1993;3. 对于以下的变量定义,语句( )在语法和语义上都是正确的。
struct node {float x,y;char s[10];} point={1,2,”abc”},*p;A. *p=point;B. p=&point;C. point=p;D. p->x=point.y;4. 设有以下语句typedef struct S{ int g;char h;} T;则下面叙述中正确的是()。
C语言数据结构-第9章 结构体共用体与枚举

"Shang Hai","13901000003"}}; int i; for(i=0;i<3;i++) { printf("%s,%d,%s,%s,",stud[i].name,stud[i].age,stud[i].sex,stud[i].xh); printf("%d,%d,%d,",stud[i].birthday.year,stud[i].birthday.month, stud[i].birthday.day); printf("%s,%s,%s\n",stud[i].nation,stud[i].address,stud[i].tel); } }
成员运算符“.”的优先级最高,在表达式中的结构体变量成员不 需要加括号。例如:
wang.age++;
相当于
(wang.age)++;
注意
13
结构体变量的成员名可以相同,但必须处在不同的层次。 例如:
sturct student { int no;
char name[20]; struct { int no; char classname[20]; }class; struct { int no; char groupname[20]; }group; }wang;
定义结构体类型名的同时定义结构体数组,例如:
struct student{…} stud[50];
C语言 第九章 结构体数据类型期末测试习题与答案

程序运行后的输出结果是( )。
A.SunDan 20044
B.YangSan 20041
C.SunDan 20042
D.LiSiGuo 20042
参考答案:D
3、以下程序运行的结果是_( )。
#nclude”stdio.h
main()
{
struct date
{
int year , month , day ;
D.struct color
{ int red;
int green;
int blue;
} c l;
参考答案:B
7、有以下程序:
struct stu
{
char[10];
float score[3];
};
main( )
{
struct stu s[3]={{"20021",90,95,85},
{"20022",95,80,75},
} today ;
printf(“%d\n”,sizeof(struct date));
}
A.10
B.6
C.8
D.12
参考答案:D
4、设有如下说明
typedef struct ST
{
long a;
int b;
char c[2];
} NEW;
则下面叙述中正确的是______。
A.ST是一个结构体类型
B.NEW是一个结构体类型
A.typedef struct
{ int red;
int green;
int blue;
} COLOR;
COLOR cl;
B.struct color cl
eda技术实用教程(第四版)课件9

实验与设计
9-1 乐曲硬件演奏电路设计
(1)实验目的: (2)实验原理:
实验与设计
9-1 乐曲硬件演奏电路设计
(1)实验目的: (2)实验原理:
实验与设计
9-1 乐曲硬件演奏电路设计
(3)实验内容1: (4)实验内容2: (5)实验内容3: (6)实验内容4: (7)实验内容5: (8)实验内容6: (9)实验内容7: (10)实验报告:5E+系统的演示文件: /KX_7C5EE+/EXPERIMENTs/EXP4_Music/。
EDA技术实用教程
第9章 VHDL结构与要素
9.1 实
体
9.1.1 实体语句结构
9.1 实
体
9.1.2 参数传递说明语句
9.1 实
体
9.1.2 参数传递说明语句
9.1 实
体
9.1.2 参数传递说明语句
9.1 实
体
9.1.3 参数传递映射语句
9.1 实
体
9.1.3 参数传递映射语句
9.1 实
3. WORK库
4. VITAL库
9.4 VHDL库
9.4.2 库的用法
9.5 VHDL程序包
9.5 VHDL程序包
9.5 VHDL程序包
C程序设计第四版Chap9(新)-谭浩强

21
结构体数组
struct student s[ ] = { {10001001,"张三",20, "M",{1985,1,1},"XXX",123456 }, {……}, {……} };
2013 - 2014 Lu & Xiao. All rights reserved.
2013 - 2014 Lu & Xiao. All rights reserved.
25
结构体指针
指针的基类型可以是一个结构体类型。 例如: struct student s1,*ps; …… ps = &s1;
2013 - 2014 Lu & Xiao. All rights reserved.
2013 - 2014 Lu & Xiao. All rights reserved.
15
第9章
9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8
结构体
结构体类型 结构体变量定义及成员引用 结构体变量的初始化 结构体数组 结构体指针 单向链表概念 单向链表建立、查找、遍历、插入、删除 typedef定义类型别名
1
第 9章
结构体
2013 - 2014 Lu & Xiao. All rights reserved.
2
第9章
9.1 9.2 9.3 9.4 9.5 9.6 9.7 9.8
结构体
结构体类型 结构体变量定义及成员引用 结构体变量的初始化 结构体数组 结构体指针 单向链表概念 单向链表建立、查找、遍历、插入、删除 typedef定义类型别名
C语言程序设计教程(电子教案)

学习目标
对C语言有一个概括的了解, 能够编写包含键盘输入、计算和 显示输出等操作的简单C程序。
4
主要内容
• C语言的产生与特点 • 简单C程序的组成 • C语言应用程序开发的基本步骤
5
1.1 C语言的产生及特点
C语言是为了编写系统程序而在1968年开始 研发的计算机高级语言
C语言表达能力强,使用灵活,程序结构清 晰,紧凑,可移植性好
指针 类型
17
基本数据类型说明符
整型:int long
字符型:char 实型:float
double long double
18
2.2 常 量
常量∶在程序运行过程中,其值不能被改 变的量。
一. 不同数制整型常量的表示
例如: 12 :十进制数 12
012 :八进制数 12(等于十进 制数10,用前导符0表示八进制数常量)
计算x+y+z,并将结 8果赋给变量sum
显示变量 sum的值
主函数 main()
一般C程序的组成
【例1-2】采用模块结构,改写例1-1的程序。 add(int x,int y,int z )
{ return(x+y+z);
}
函数add()
调用函数 add()
main() { int x,y,z; printf("Please Input Three Integers:\n "); scanf("%d,%d,%d ",&x,&y,&z);
4. 用‘\’ ’表示字符’ ,‘\”’表示字符”, ‘\\ ’表示字符\ 。
5. 用双引号括起来的字符序列表示字符串常量,其 中最后一个字符是字符串结束符‘\0’,不显式 地表示出来。如:“English” 。
C语言各章节单元测试题及答案——结构体与共用体

第9章结构体与共用体9.1典型考试题剖析9.1.1选择题【例1】若指针p已经正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是。
A) p=2*(int *)malloc(sizeof(int)); B) p=(int*)malloc(2*sizeof(int));C) p=(int *)malloc(2*2); D) p=(int*)calloc(2,sizeof(int));✧考点:动态存储分配函数。
✧分析:根据动态存储分配函数malloc和calloc的函数原型可以知道,calloc函数的调用形式为:void * calloc(unsigned n,unsigned size);表示在动态存储区中分配n个长度为size的连续空间,函数返回一个指向分配域起始地址的指针,因此答案D是正确的。
malloc函数的调用形式为:void * malloc(unsigned int size);表示是在内存的动态存储区分配一个长度为size的连续空间,并返回一个指向分配域起始地址的指针,答案B和C中malloc的参数分别为:2*(sizeof(int))和2*2,都是整型数,因此调用形式正确。
答案A中(int *)malloc(sizeof(int))的返回值为一个地址值,将地址的值乘以2是没有意义的。
✧答案:A【例2】若有以下说明和定义:struct test{ int m1; char m2; float m3;union uu{ char u1[5]; int u2[2]; }ua;}myaa;则sizeof(struct test)的值是。
A) 12 B) 16 C) 14 D) 9✧考点:结构体类型和共用体类型所占内存的字节数。
✧分析:sizeof(struct test)的功能是求结构体类型test所占用的内存字节数。
它应该等于结构体每个成员所占的字节数之和。
m1为int型,占2字节,m2为char型,占1字节,m3为float型,占4字节,接下来是一个共用体类型uu,共用体所占的字节数应该等于成员中最长者所占的字节数,u1占5字节,u2占4字节,那么该共用体类型应该占用5字节,所以2+1+4+5=12。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组std num score
std[0]
std[1] std[2]
9001
9002 9003
89
87 90
9.2.1 结构体数组的定义
(1)先定义结构体类型标识符,然后用该标识 符 定义数组。
struct student {
定义有n个成员的结构体类型的一般形式:
struc 结构体类型标识 t 符 { 类型标识符1 成员名1;
类型标识符2 ….. 类型标识符n };
成员名2; ……. 成员名n;
说明:1、用{ }将成员扩起来。 2、成员的类型可以是任意类型。
9.1.2
结构体类型变量的定义
定义变量的步骤:先定义一个结构体类型,再定义变量。 struct 结构体类型标识符 变量名列表;
结构体变量student { (student.score>max.score) int num; if 和max,用来存放成 相当于 float score; 绩最好的那个学生的 max=student; 信息。 max.num=student.num; } student, max; sum=sum+student.score; max.score=student.score; i 用来控制循环 } int i; float sum; sum用来存放总成绩
指针变量p指向结构体变量student
赋值语句 p=&student;
p
student
引用结构体中的成员变量: (*p).成员名 相当于 student . 成员名 或 p->成员名
说明: 和成员运算符一样, “->”为指向运算符,是运算 优先级最高的运算符。 由于成员运算符“.”的运算优先级高于运算符“*”, 因此(*p).成员名中( ) 不能少。 *p.成员名 p=&student.score;
结构体类型变量的内存占用
结构体的各成员在内存 中是按顺序连续存放的,所 以结构体变量的内存占用为 例: 各成员所占内存的长度之和, struct note { 如右例,结构体变量txl1所 char name[20]; 占内存长度为20+1+20+8=49 char sex; 个字节。可用求类型长度运 char addr[20]; 算符求出 char tel[8]; sizeof(类型名) } txl1, txl2; 如:sizeof(int)为2; sizeof(struct note)为49;
p->name; p->num; p->score; 代表的信 息发生了 变化
p 结构体数组std 李红 9001 89 王建 9002 87 赵明 9003 90
std[0]
p
std[1]
p
std[2]
注意:以下赋值语句都是错误的:
p=&std[1].score; (不能指向数组元素的成员变量)
第九章 结构体、共用体
目 录
¤9.1 结构体的定义及引用 ¤9.2 结构体数组 ¤9.3 结构体与指针 ¤9.4 位段的概念 ¤9.5 共用体的概念 ¤9.6 枚举类型 ¤9.7 类型标识符的自定义
结构体
9.1.1 结构体类型标识符的定义 9.1.2 结构体类型变量的定义 9.1.3 结构体变量的使用
注:关键字struct 与结构体类型标识符一起使用。
例:
关键字
变量
struct note txl1,txl2;
已经定义的结构体类型名
还可以用如下方法定义结构体变量:
(1)定义类型的同时,直接定义结构体变量:
形 如: struct { 类型标识符1 成员名1; 类型标识符2 成员名2; …… …… 类型标识符n 成员名n; } 变量名表; 例: struct { char name[20]; char sex; char addr[20]; char tel[8]; } txl1, txl2;
第三节 结构体与指针
9.3.1 指向结构体变量的指针
9.3.2 指向结构体数组的指针
9.3.3 结构体指针作为函数参数
9.3.1 指向结构体变量的指针
一个结构体变量的指针就是该变量所占据 的内存段的首地址。
指向结构体指针的定义, 与结构体变量的定义 完全类似。 如:
struct struct_name { char name[10]; int num; float score; }; struc struct_name student, *p;
注意: 定义数组的同时为数组初始化时, 数组元素 的个数可以不指定, 系统会根据初值的个数 来确定数组元素的个数。 (2) 数组中各元素的初值用花括号{ }括起来, 同一数组元素的各个成员变量的初值用逗 号分隔。
如: struct student { int num; float score; } std[]={{9001, 89},{9002,87},{9003,90}}; 系统自动确定数组std共有3个元素。 每个元素的初值用一对{ }括起来。
不能用指向某个结构体变量的指针指向该结构 体变量的某个成员。
9.3.2用指针访问结构体数组
对结构体数组及其元素可以用指针来指向。 例如: struct struct_name { char name[10]; int num; float score; }; /*定义结构体类型标识符*/ struct struct_name std[30], *p;
int num; float score; }; struct student
std[3];
ቤተ መጻሕፍቲ ባይዱ
直接定义结构体数组: struct { int num; float score; } std[3];
在定义结构体类型标识符的同时 定义数组 struct student { int num; float score; } std[3];
结构体变量的一般用法: (1) 在定义结构体变量的同时, 对结构体变量初始 化 struct stu { int num; 说明:{ }和,一一对应 char name[8]; float score; } student1={10, “宋 红”, 89};
相当于: student1.num=10; strcpy(, “宋 红”); student1.float=89; 思考:是否可以写成=“宋 红”;
9.1.3
结构体变量的使用
只有在对结构体变量赋值或作为参数 传递给函数等特殊情况下可以直接对一个 结构体变量整体操作。 其他情况只能对结构体变量的各个 成员分别引用。
成员的引用形式为:
成员运算符
结构体变量名.成员名
例: 定义两个变量 struct note txl1,txl2; 引用 ; txl1.sex; gets(); txl1.sex=„M‟; …… printf(“%s”, txl1.addr);
(3) 一般来说, 在程序设计中不直接引用结构体变量, 而是引用 结构体变量的某个成员变量。
如:student1.num的用途同任何整型变量,如:
student1.num=2*student2.num+1; student2.num++; sum=student1.score+student2.score;
p=&std; (数组名本身就代表该数组 的首地址,因此不能使用地 址运算符&)
9.1.1
结构体类型标识符的定义
所谓结构体的定义,是指定义相 应的数据结构及相应的变量。
先定义一个结构体类型标识符 再定义相应的变量 例如: 要求定义关于学生通讯录的结构体类型note, 其中包括以下数据:name(长度为10的字符数 组)、sex(字符型)、addr(长度为20的数 组)、tel(长度为8的字符数组)
(2) 在某些情况下可以对结构体变量的整体进行操 作
例如: struct stu { int num; float score; } student1, student2; 如果student1已被赋值,则可以: student2=student1; 相当于: student2.num=student1.num; student2.score=student1.score;
[例9.1] 输入某班32名学生的学号和考试成绩, 求 成绩最好的学生的学号和成绩及总成绩。
分析:定义结构体, 包含两个成员: 学号和成绩。 学号为整型,成绩为实型,如下: struct stu { int num; float score; }
程
序
Ex9-1.c
main() i<=32; i++) for (i=1; 定义结构体类型struct_name { scanf(“%d,%f”, &student.num, &student.score); { struct stu
结构体描述:
note
姓 名 性 别 char char name[10] sex
地 址 电 话 char char addr[20] tel[8]
结构体定义:
关键字
自己定义的结 struct note 构体名
{ char char sex; char
数据项 (成员) 名称
name[10];
addr[20];
9.2.2 结构体数组的初始化
对结构体数组初始化,即为数 组中的各个元素赋初值。
一般形式: struct 结构体类型标识符 { 类型标识符1 成员名1; 类型标识符2 成员名2; …… …… 类型标识符n 成员名n; } 结构体数组[]={{数组元素1的各个初值}, {数组元素2的各个初值}, …………… };