当前位置:文档之家› 结构体与联合体习题(含答案)

结构体与联合体习题(含答案)

结构体与联合体习题(含答案)
结构体与联合体习题(含答案)

2013年结构体与联合体习题

选择题

1、若程序中有以下的说明和定义:

struct abc

{ int x;char y; } 花括号后少了分号。

struct abc s1,s2;

则会发生的情况是______。

A) 编译时错B) 程序将顺序编译、连接、

执行

C) 能顺序通过编译、连接、但不能执行D) 能顺序通过编

译、但连接出错

2、有以下程序段

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

3、有以下说明和定义语句

struct student

{ int age; char num[8];};

struct student

stu[3]={{20,"200401"},{21,"200402"},{19,"200403"}};

struct student *p=stu;

以下选项中引用结构体变量成员的表达式错误的是______。

A) (p++)->num B) p->num C) (*p).num D)

stu[3].age

4、设有如下枚举类型定义

enum language {Basic=3,Assembly=6,Ada=100,COBOL,Fortran};

枚举量Fortran的值为______。

A) 4 B) 7 C) 102 D) 103

5、以下叙述中错误的是_________。

A)可以通过typedef增加新的类型

B)可以用typedef将已存在的类型用一个新的名字来代表

C)用typedef定义新的类型名后,原有类型名仍有效

D)用typedef可以为各种类型起别名,但不能为变量起别名

6、有以下程序段

typedef struct NODE

{ int num; struct NODE *next;

} OLD;

以下叙述中正确的是

A)以上的说明形式非法B) NODE是一个结构体类型

C) OLD是一个结构体类型D) OLD是一个结构体变量

7、以下选项中不能正确把cl定义成结构体变量的是______。

1.typedef struct

{int red;

int green;

int blue;

} COLOR;

COLOR cl;

2.struct color cl

{ int red;

int green;

int blue;

};

3.struct color

{ int red;

int green;

int blue;

}cl;

4.struct

{int red;

int green;

int blue;

}c1;

A) 1 B) 2C) 3 D) 4

8、设有以下语句

typedef struct S

{ int g; char h;} T;

则下面叙述中正确的是______。

A)可用S定义结构体变量

B)可以用T定义结构体变量

C) S是struct类型的变量

D) T是struct S类型的变量

9、设有如下说明

typedef struct ST

{long a;int b;char c[2];} NEW;

则下面叙述中正确的是_____。

A)以上的说明形式非法

B) ST是一个结构体类型

C) NEW是一个结构体类型

D) NEW是一个结构体变量

10、以下对结构体类型变量td的定义中,错误的是______。

A) typedef struct aa B) struct aa { int n; { int n;

float m; float m;

}AA; };

AA td; struct aa td;

C) struct D) struct

{ int n; { int n;

float m; float m;

}aa; }td;

struct aa td;

11、根据下面的定义,能打印出字母M的语句是_____。

struct person { char name[9]; int age;};

struct person class[10]={"John",17, "Paul",19,"Mary",18, "Adam",16};

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]);

12、设有以下语句:

struct st {int n; struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p;

p=&a[0];

则表达式的值是6。

A) p++ ->n B) p->n++ C) (*p).n++ D) ++p->n

13、下面程序的输出结果为

} *p;

int dt[4]={10,20,30,40};

main()

{ p=aa;

printf("%d\n", ++( *p->y));

}

A) 10 B) 50 C) 51 D)

60

20 60 60

70

20 21 21

31

14、若已建立下面的链表结构,指针p、s分别指向图中所示的结点,

则不能将s所指的结点插入到链表末尾的语句组是__________。

A) s->next=NULL; p=p->next; p->next=s;

B) p=p->next; s->next=p->next; p->next=s;

C) p=p->next; s->next=p; p->next=s;

D) p=(*p).next; (*s).next=(*p).next; (*p).next=s;

15、下面程序的输出是

main()

{ enum team {my,your=4,his,her=his+10};

printf("%d %d %d %d\n",my,your,his,her);}

A) 0 1 2 3 B) 0 4 0 10 C) 0 4 5 15 D) 1 4

5 15

16、下面程序的输出是

main()

{ struct cmplx { int x; int y; } cnum[2]={1,3,2,7};

printf("%d\n",cnum[0].y /cnum[0].x * cnum[1].x);}

A) 0 B) 1 C) 3 D) 6

17、设有如下定义:

struct sk

{int a;float b;}data,*p;

若有p=&data;,则对data中的a域的正确引用是__________。

A) (*p).data.a B) (*p).a C) p->data.a D) p.data.a

18、有以下程序: *

#include

union pw

{ int i; char ch[2]; } a;

main()

{ a.ch[0]=13; a.ch[1]=0; printf("%d\n",a.i); }

程序的输出结果是。(注意: ch[0]在低字节,ch[1]在高字节。)

A) 13 B) 14 C) 208 D) 209

19、已知字符0的ASCII码为十六进制的30,下面程序的输出是

___________。

main()

{ union { unsigned char c;

unsigned int i[4];

} z;

z.i[0]=0x39;

z.i[1]=0x36;

printf("%c\n",z.c);}

A) 6 B) 9 C) 0 D) 3

20、字符'0'的ASCII码的十进制数为48,且数组的第0个元素在低位,

则以下程序的输出结果是_____________。

#include

main( )

{ union { int i[2]; long k; char c[4]; }r,*s=&r;

s->i[0]=0x39;

s->i[1]=0x38;

printf("%c\n",s->c[0]) ; }

A) 39 B) 9 C) 38 D) 8

填空题

1、以下函数creat用来建立一个带头结点的单向链表,新产生的结点总

是插在链表的末尾。单向链表的头指针作为函数值返回.请填空:

#include

struct list { char data; struct list * next; };

struct list * creat()

{ struct list * h,* p,* q;

char ch;

h=(struct list *) malloc(sizeof(struct list));

p=q=h;

ch=getchar();

while(ch!='?')

{ p=(struct list *)malloc(sizeof(struct list));

p->data=ch;

p->next=p;

q=p;

ch=getchar();

}

p->next='\0';

return(h);

}

2、有以下说明定义和语句,可用a.day引用结构体成员day, 请写出引用结构体成员 a.day的其它两种形式(*b).day、b->day 。

struct{int day;char mouth;int year;}a,*b; b=&a;

3、现有如图所示的存储结构,每个结点含两个域,data是指向字符串

hea

的指针域,next是指向结点的指针域。请填空完成此结构的类型定义和说明。

struct link

{ char *data ; struct link *next;} *head;

4、若有以下说明和定义语句,则变量w在内存中所占的字节数是40。

union aa

{ float x, y;

char c[6];

};

struct st { union aa v; float w[5]; double ave; } w;//32

5、设有以下结构类型说明和变量定义,则变量a在内存所占字节数是32__ 。

Struct stud

{ char num[6];

int s[4];

double ave;

} a,*p;

6、以下程序用来输出结构体变量ex所占存储单元的字节数,请填空。

struct st

{ char name[20]; double score; };

main()

{ struct st ex;

printf(“ex size: %d\n”,sizeof( _ex_____ ));

}

7、以下程序段用于构成一个简单的单向链表,请填空。

struct STRU

{ int x, y ;

float rate;

_struct STRU _* p;

} a, b;

a.x=0; a.y=0; a.rate=0; a.p=&b;

b.x=0; b.y=0; b.rate=0; b.p=NULL;

8、若有如下结构体说明:

struct STRU

{ int a, b ; char c; double d:

struct STRU p1,p2;

};

请填空,以完成对t 数组的定义,t 数组的每个元素为该结构体类型 _ struct STRU _____ t[20];

9、若以下定义和语句,则sizeof(a)的值是 ____12_____ ,而sizeof(b)的值是 __4______

struct { int day; char mouth; int year;} a, *b; b=&a;

10、变量root 有如图所示有存储结构,其中sp 是指向字符串的指针域,next 是指向该结构的指针域,data 用以存放整型数. 请填空 , 完成此结构的类型说明和变量root 的定义

struct list

{ char *sp;

_ struct list *next______;

_int data______;

}root; sp next data ┌─┬─┬─┐

11、设有以下定义

struct ss

{ int info; struct ss *link;}x,y,z;

且已建立如下图所示链表结构:

_____ _____ _____

| | | | | | | | |

| | -|→| | -|→| | |

|__|__| |__|__| |__|__|

x y z

请写出删除结点y的赋值语句_ x.link=z;_____。

12、以下程序的运行结果是2002Shangxian

# include

typedef struct student{

char name[10];

long sno;

float score;

}STU;

main( )

{ STU

a={“zhangsan”,2001,95},b={“Shangxian”,2002,90},c={“Anhua ”,2003,95},d,*p=&d;

d=a;

if(strcmp(https://www.doczj.com/doc/069682254.html,,https://www.doczj.com/doc/069682254.html,)>0) d=b;

if(strcmp(https://www.doczj.com/doc/069682254.html,,https://www.doczj.com/doc/069682254.html,)>0) d=c;

printf(“%ld%s\n”,d.sno,p->name); }

13、以下程序运行后的输出结果是?13431 ?

struct??NODE

{??int??k;

?? struct NODE??*link;

};

main()

{

??struct??NODE??m[5],*p=m,*q=m+4;

??int??i=0;

??while(p!=q)

??{?? p->k=++i;?? p++; ??????q->k=i++;?? q--;

??}

??q->k=i;

??for(i=0;i<5;i++)

???? printf("%d",m[i].k);

??printf("\n");

}

结构体与共用体

试卷编号:825 所属语言:C语言 试卷方案:结构体与共用体 试卷总分:90分 共有题型:5种 ━━━━━━━━━━━━━━ 一、填空共5题(共计10分) ━━━━━━━━━━━━━━ 第1题(2.0分)题号:205 结构体是不同数据类型的数据集合,作为数据类型, 必须先说明结构体【1】,再说明结构体变量. 答案: =======(答案1)======= 类型 第2题(2.0分)题号:208 将函数funl 的入口地址赋给指针变量p的语句是【1】. 答案: =======(答案1)======= p=funl; 第3题(2.0分)题号:232 设有以下结构类型说明和变量定义,且sizeof(int)=2,则变量a在内存所占字节数是【1】. struct stud { char num[6]; int s[4]; double ave; } a,*p; 答案: =======(答案1)======= 22

第4题(2.0分)题号:345 若在程序中用到"strlen()"函数时,应在程序开头写上包含命令# include "【1】". 答案: =======(答案1)======= string.h 第5题(2.0分)题号:803 预处理命令行都必须以【1】号开始. 答案: =======(答案1)======= # ━━━━━━━━━━━━━━━━━ 二、单项选择共20题(共计40分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:464 以下描述中,正确的是()。 A:预处理是指完成宏替换和文件包含中指定的文件的调用 B:预处理指令只能位于C源文件的开始 C:C源程序中凡是行首以#标识的控制行都是预处理指令 D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备答案:C 第2题(2.0分)题号:472 下列程序运行结果为: #define P 3 #define S(a) P*a*a main() {int ar; ar=S(3+5); printf("\n%d",ar); } A:192 B:29 C:27

第11章 结构体与共用体

第十一章结构体与共用体 结构体变量引用规则: (1)不能将一个结构体变量作为一个整体进行输入和输出;只能对结构体变量中的各个成员分别进行输入和输出。“.”是成员(分量)运算符,它在所有的运算符中优先级最高。 (2)若成员本身又属于一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级的成员。只能对最低级的成员进行赋值或存取以及运算。 (3)对结构体变量的成员可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。 (4)可以引用结构体变量成员的地址,也可以引用结构体变量的地址。 —>是指向运算符,优先级为第一级。 结构体变量所占的内存长度是各成员所占内存长度之和。每个成员分别占有其自己的内存单元。 共用体变量所占的内存长度等于最长的成员的长度。 只先有定义了共用体变量才能引用它,而且不能引用共用体变量,而只能引用共用体变量中的成员。 将一个变量定义为结构体类型:不仅要求指定变量为结构体类型,而且要求指定为某一特定结构体类型。 类型与变量的区别: 定义时先定义结构体类型,然后定义变量。类型不分配空间,变量分配空间。 可以采取以下3种方法定义结构体类型变量: (1)先声明结构体类型再定义变量名 例如:struct student student1, student2; | | | 结构体类型名结构体变量名 (2)在声明类型的同时定义变量;这种形式的定义的一般形式为: struct 结构体名 { 成员表列 }变量名表列; (3) 直接定义结构体类型变量 其一般形式为: struct { 成员表列 }变量名表列; 即不出现结构体名。 引用结构体变量中成员的方式为 结构体变量名.成员名

数据结构习题及答案-第11章 文件

第十一章文件 一、选择题 1. 散列文件使用散列函数将记录的关键字值计算转化为记录的存放地址,因为散列函数是一对一的关系,则选择好的()方法是散列文件的关键。【哈尔滨工业大学 2001二、5 (2分)】 A. 散列函数 B. 除余法中的质数 C. 冲突处理 D. 散列函数和冲突处理 2. 顺序文件采用顺序结构实现文件的存储,对大型的顺序文件的少量修改,要求重新复制整个文件,代价很高,采用()的方法可降低所需的代价。【北京邮电大学 2000 二、 8 (20/8分)】 A. 附加文件 B. 按关键字大小排序 C. 按记录输入先后排序 D. 连续排序 3. 用ISAM组织文件适合于()。【中科院软件所 1998】 A.磁带 B.磁盘 4.下述文件中适合于磁带存储的是()。【中科院计算所 2000 一、7(2分)】 A. 顺序文件 B. 索引文件 C. 散列文件 D. 多关键字文件 5. 用ISAM和VSAM组织文件属于()。 A. 顺序文件 B. 索引文件 C. 散列文件 【中国科技大学 1998 二、5(2分)中科院计算所 1998 二、5(2分)】 6. ISAM文件和VASM文件属于()。【山东大学 2001 二、5 (1分)】 A. 索引非顺序文件 B. 索引顺序文件 C. 顺序文件 D. 散列文件 7. B+树应用在()文件系统中。【北京邮电大学 2001 一、1(2分)】 A. ISAM B. VSAM 二、判断题 1. 文件是记录的集合,每个记录由一个或多个数据项组成,因而一个文件可看作由多个记录组成的数据结构。【长沙铁道学院 1998 一、5 (1分)】 2. 倒排文件是对次关键字建立索引。【南京航空航天大学 1997 一、10(1分)】 3. 倒排序文件的优点是维护简单。【南京航空航天大学 1995 五、10(1分)】 4. 倒排文件与多重表文件的次关键字索引结构是不同的。【西安交通大学 1996 二、6 (3分)】 5. Hash表与Hash文件的唯一区别是Hash文件引入了‘桶’的概念。【南京航空航天大学1996六10(1分)】 6. 文件系统采用索引结构是为了节省存储空间。【北京邮电大学 2000 一、10 (1分)】 7. 对处理大量数据的外存介质而言,索引顺序存取方法是一种方便的文件组织方法。 【东南大学 2001 一、1-10 (1分)】 8. 对磁带机而言,ISAM是一种方便的稳健组织方法。【中科院软件所 1997 一、10(1分)】 9. 直接访问文件也能顺序访问,只是一般效率不高。【北京邮电大学 2002 一、10(1分)】 10. 存放在磁盘,磁带上的文件,即可以是顺序文件,也可以是索引结构或其他结构类型的文件。 【山东大学 2001 一、7 (1分)】 11. 检索出文件中的关键码值落在某个连续的范围内的全部记录,这种操作称为范围检索。对经常需要做范围检索的文件进行组织,采用散列法优于顺序检索法。【中山大学 1994 一、

C语言结构体习题及答案

第9章结构体 1.定义以下结构体类型 struct s { int a; char b; float f; }; 则语句printf("%d",sizeof(struct s))的输出结果为【】。 A) 3 B) 7 C) 6 D) 4 # 2.当定义一个结构体变量时,系统为它分配的内存空间是【】 A)结构中一个成员所需的内存容量 B)结构中第一个成员所需的内存容量 C)结构体中占内存容量最大者所需的容量 D)结构中各成员所需内存容量之和 3.定义以下结构体类型 struct s { int x; float f; }a[3]; < 语句printf("%d",sizeof(a))的输出结果为【】 A) 4 B) 12 C) 18 D) 6 7.定义以下结构体类型 struct student { char name[10]; int score[50]; float average; }stud1; 则stud1占用内存的字节数是【】。 ( A) 64 B) 114 C) 228 D) 7 9、设有一结构体类型变量定义如下: struct date { int year; int month; int day; }; struct worklist { char name[20]; char sex; $

struct date birthday; } person; 若对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是。。。。 A. year=1976 B. =1976 C. D. =1976 1、若程序中有以下的说明和定义: struct abc { int x;char y; } 花括号后少了分号。 struct abc s1,s2; 则会发生的情况是______。 A) 编译时错B) 程序将顺序编译、连接、执行C) 能顺序通过编译、连接、但不能执行D) 能顺序通过编译、但连接出错

七年级数学上册精选例题变式全解析

讲次01 有理数的分类及数轴 考点一、有理数分类 按照整数和分数的分类 【注意】0既不是正数也不是负数。 按正数、负数、和零的关系分类 有理数分类注意事项: 1.无限不循环的小数不是有理数,比如:圆周率。 2.无限循环的小数是有理数,比如:0.6666666… 3.如200%,6/3能约分成整数的数不能算做分数 考点二、数轴 规定了原点、正方向、单位长度的直线叫做数轴。 数轴的三要素:原点、正方向、单位长度(重点) 画数轴步骤:画直线-取原点-规定正方向-单位长度 任何有理数都可以用数轴上的点表示,有理数与数轴上的点是一一对应的。 数轴上的点表示的数从左到右依次增大;原点左边的数是负数,原点右边的数是正数. 实心点表示包括本数,空心点表示不包括本数。

命题角度一 正负数在实际生活中的应用 例题1.如果向东走2m 记为2m +,则向西走3m 可记为( ) A .3m + B .2m + C .3m - D .2m - 【解析】若向东走2m 记作+2m ,则向西走3m 记作-3m ,选C . 变式1.如果+20%表示增加20%,那么﹣6%表示( ) A .增加14% B .增加6% C .减少6% D .减少26% 【解析】在一对具有相反意义的量中,先规定其中一个为正,则另一个就用负表示.“正”和“负”相对,所以如果+20%表示增加20%,那么﹣6%表示减少6%.选C . 变式2.四个足球与足球规定质量偏差如下:﹣3,+5,+10,﹣20(超过为正,不足为负).质量相对最合规定的是( ) A .+10 B .﹣20 C .﹣3 D .+5 【分析】质量偏差越少越好,最符合规定的是﹣3. 【解析】最符合规定的是﹣3,选C . 【小结】本题主要考查负数的意义. 变式3.花店、书店、学校依次坐落在一条东西走向的大街上,花店位于书店西边100米处,学校位于书店东边50米处,小明从书店沿街向东走了20米,接着又向西走了–30米,此时小明的位置( ) A .在书店 B .在花店 C .在学校 D .不在上述地方 【分析】由题意知,可看作书店为原点,花店位于书店西边100米处,即-100米,学校位于书店东边50米处,即+50米,解答出即可. 【解析】根据题意:小明从书店沿街向东走了20米,接着又向西走了–30米,即向东走了50米,而学校位于书店东边50米处,故此时小明的位置在学校.选C . 【小结】本题考查类比点的坐标及学生解决实际问题的能力和阅读理解能力,解题的关键在于对正负坐标的理解.

结构体与共用体

第十章结构体与共用体 一、选择题 1.在说明一个结构体变量时系统分配给它的存储空间是。(0级) A)该结构体中第一个成员所需存储空间 B)该结构体中最后一个成员所需存储空间 C)该结构体中占用最大存储空间的成员所需存储空间 D)该结构体中所有成员所需存储空间的总和 2.若有以下说明和语句: struct worker { int no; char ﹡name; }work, ﹡p=&work; 则以下引用方式不正确的是。(1级) A) work.no B) (﹡p).no C) p->no D)work->no 3.有如下定义: struct date { int year, month, day; }; struct worklist { char name[20]; char sex; struct date birthday; }person; 对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是。 (1级) A) year=1958 B) birthday.year=1958 C) person.birthday.year=1958 D) person.year=1958 4.以下对结构体类型变量的定义中不正确的是。(1级) A)#define STUDENT struct student B) struct student STUDENT { int num; { int num; float age; float age; }std1; }std1; C) struct D) struct { int num; { int num; float age; float age; } student; }std1; struct student std1; 5.设有以下说明语句 struct stu { int a; float b; }stutype; 则下面的叙述不正确的是。(1级) A)struct是结构体类型的关键字 B)struct stu是用户定义的结构体类型 C)stutype是用户定义的结构体类型名 D)a和b都是结构体成员名 6.C语言结构体类型变量在程序执行期间。(0级) A)所有成员一直驻留在内存中 B)只有一个成员主留在内存中 C)部分成员驻留在内存中

第十一章结构体的试题

(1)()是关于C语言数据类型的正确叙述。 A) 枚举类型不是基本类型 B) 变量使用前应定义相应的数据类型 C) 不允许使用空类型 D) 数组不是构造类型 (2) 下列()对结构类型变量定义是错误的。 A) struct teacher { int num; int age; }; struct teacher teach1; B) struct { int num; int age; } teach1, teach2; C) struct { int num; int age; } teacher; struct teacher teach1; D) struct teacher { int num; int age; } teach1; (3) 若有定义: char ch; int j,k; enum day {sun, mon, tue, wed, thu, fri, sat}; int a[sat]; 则()对下列语句是否符合语法规则的判断是正确的。 sun=0; /*语句1*/ j=mon+tue; /*语句2*/ if (a[mon]>0) j++; /*语句3*/ A) 语句1、2、3均正确 B) 语句2正确,语句1和语句3错误 C) 语句1错误,语句2和语句3正确 D) 语句1、2、3均错误 (4) 若有定义: struct teacher { int num; char sex;

int age; } teacher1; 则下面叙述错误的是()。 A) teacher1是结构类型名 B) struct teacher是用户定义的结构类型 C) num、sex、age都是结构变量teacher1的成员 D) struct是结构类型的关键字 (5) 下列程序段运行后,表达式()的值为3。 struct point { int x; int y; } *p; struct point a[3]={1,2,3,4,5,6}; p=a; A) p[1].x B) *(p+2) C) p[3].x D) p[2].x (6) 若有定义: typedef int NUM[100]; NUM n; 则()语句是正确的。 A) n[0]=2; B) NUM=2; C) NUM=n; D) n=2; (7) 若有定义int a=1,b=2,t=3; struct data { char a; float b[3]; long c; }d1; 则变量d1的长度是()。 A) 4 B) 17 C) 12 D) 15 (8) 若有定义 struct teacher { int num;

第十一章结构体与共用体

第^一章结构体与共用体教学内容 (1) 结构体的定义与结构体变量; (2) 结构体数组; (3) 结构体指针; ⑷链表; (5) 共用体; (6) 枚举类型; 基本要求 掌握结构体的定义方法及其作用;重点掌握链表及其应用了解共用体的概念及其应用

一、概述 、引入原由 我们前面讲过数组,数组类型中的各个元素的类型是相同的,在日常应用中,仅仅有这些数据类型是不够的。有时需要将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是互相联系的。例如:学生的信息(姓名、性别、年龄、成绩、学号)。那么如何实现这种结构呢?采用的是结构体。 女口:struct student { int num; char n ame[20]; char sex; int age; float score; }; 、结构体类型的一般形式 struct 结构体名 {成员表列}; 成员表列:类型名成员名 女口:struct student {int nu m;char sex;}; 二、结构体类型变量的定义、引用、初始化 、定义方法 1、先声明类型再定义变量名 struct stude nt {int nu m;char sex;}; struct stude nt stu1,stu2; 2、在声明类型的同时定义变量 struct stude nt {int nu m;char sex;} stu1,stu2; 3、直接定义结构体类型变量(不给出结构体名) struct {int nu m;char sex;} stu1,stu2; 4、说明: 1 )类型与变量不同(变量:分配空间,可以赋值、存储、运算) 2)成员与普通变量地位相当,域名可以单独使用 3)成员也可以是一个结构体变量 如: struct date

数列求和方法大全例题变式解析答案——强烈推荐

1.7 数列前n 项和求法 知识点一 倒序相加法 特征描述:此种方法主要针对类似等差数列中 112n n a a a a -+=+= ,具有这样特点的数列. 思考: 你能区分这类特征吗? 知识点二 错位相减法 特征描述:此种方法主要用于数列}{n n b a 的求和,其中}{n a 为等差数列,}{n b 是公比为q 的等比数列,只需用n n S qS -便可转化为等比数列的求和,但要注意讨论q=1和q ≠1两种情况. 思考:错位时是怎样的对应关系? 知识点三 分组划归法 特征描述:此方法主要用于无法整体求和的数列,例如1,112+ ,11 124 ++,……, 11124+ ++……+11 2 n -,可将其通项写成等比、等差等我们熟悉的数列分别进行求和,再综合求出所有项的和. 思考:求出通项公式后如何分组? 知识点四 奇偶求合法 特征描述:此种方法是针对于奇、偶数项,要讨论的数列 例如1 1357(1)(21)n n S n -=-++++-- , 要求S n ,就必须分奇偶来讨论,最后进行综合. 思考:如何讨论?

知识点五 裂项相消法 特征描述:此方法主要针对 12231111 n n a a a a a a -+++ 这样的求和,其中{a n }是等差数列. 思考:裂项公式你知道几个? 知识点六 分类讨论法 特征描述:此方法是针对数列{n a }的其中几项符号与另外的项不同,而求各项绝对值的和的问题,主要是要分段求. 思考:如何表示分段求和? 考点一 倒序相加法 例题1:等差数列求和12n n S a a a =+++ 变式1:求证:n n n n n n n C n C C C 2)1()12(53210+=+++++ 变式2:数列求和2222sin 1sin 2sin 3sin 89++++ 考点二 错位相减法 例题2:试化简下列和式: 2 1 123(0)n n S x x nx x -=++++≠ 变式1:已知数列)0()12(,,5,3,11 2 ≠--a a n a a n ,求前n 项和。

练习题-第十章 结构体与共用体(有答案)

一、填空题 1.若有如下结构体定义: struct student { int num; float age; char sex; }stud; 则stud所占的内存空间是9 字节。 2.已有定义和语句: union data { int i; char c; float f; }a,*p; p=a; 则对a中成员c的正确访问形式可以是 a.c 或: p->c或:(*p).c。(只需 写出一种) 二、单项选择题: 1.若有下列定义: struct b { float a[5]; double c; int d;}x; 则变量x在内存中所占的字节为下列哪一个:( C ) A.6 B. 10 C. 30 D. 14 2.设有以下说明语句,则下面的叙述不正确的是( C ) struct stu { int a; float b; } stutype; A. struct 是结构体类型的关键字。 B. struct stu 是用户定义的结构体类型。 C. stutype是用户定义的结构体类型名。 D. a和b都是结构体成员名。 3.下面程序的运行结果是( ) #include main( ) { struct date { int year, month, day;

}today; printf(“%d\n”,sizeof(struct date)); } A. 6 B. 8 C. 10 D. 12 4.设有以下说明语句,则下面的叙述正确的是( B ) typedef struct { int a; float b; } stutype; A. stutype是结构体变量名。 B. stutype 是结构体类型名。 C. struct是结构体类型名。 D. typedef struct是结构体类型名。 三、填程序 1.结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄。请填 空。 static struct man { char name[20]; int age; }person[ ]={{“LiMing”,18},{“WangHua”,19},{“ZhangPing”,20}}; main( ) { struct man *p,*q; int old=0; p=person; for(; p age){ q=p; old=p->age ;} printf(“%s %d”, q->name,q->age ); }

结构体和共用体习题

习题六 1. 从下列四个选项中选择一个正确的填入括号中。 (1)在说明一个结构体变量时系统分配给它的存储空间是(D)。 A该结构体中第一个成员所需存储空间 B该结构体中最后一个成员所需存储空间 C该结构体中占用最大存储空间的成员所需存储空间 D该结构体中所有成员所需存储空间的总和 (2)在说明一个共用体变量时系统分配给它的存储空间是(D )。 A该共用体中第一个成员所需存储空间 B该共用体中最后一个成员所需存储空间 C该共用体中占用最大存储空间的成员所需存储空间 D该共用体中所有成员所需存储空间的总和 (3)共用体类型在任何给定时刻, (B)。 A所有成员一直驻留在内存中 B只有一个成员驻留在内存中 C部分成员驻留在内存中 D没有成员驻留在内存中 (4)以下定义结构体类型的变量st1,其中不正确的是(A ) A typedef stuct student { int num; int age; }STD; STD st1; B struct student { int num,age; }st1; C struct { int num; float age; }st1; D struct student { int num; int age; }; struct student st1; (5)已知职工记录描述为: struct workers {

int no; char name[20]; char sex; struct { int day; int month; int year; }birth; }; struct workers w; 设变量w中的”生日”应是”1993年10月25日”,下列对”生日”的正确赋值方式是(C)。 A day=25; month=10; year=1993; B w.day=25w.month=10; w.year=1993; C w.birth.day=25; w.birth.month=10; w.birth.year=1993; D birth.day=25; birth.month=10; birth.year=1993; (6)设有如下定义: struct sk { int a; float b; }data,*p; 若有p=&data;则对data中的a成员的正确引用是(B)。 A (*p).data.a B (*p).a C p->data.a D p.data.a 2.填空 (1)若有以下说明和定义且数组w和变量k已正确赋值,则对w数组中第k个元素中各成员的正确引用形式是w[k-1].b、w[k-1].c 、w[k-1].d 。 struct aa { int b; char c; double d; }; struct aa w[10]; int k=3; (2)若有以下说明和定义,则对x.b成员的另外两种引用形式是x->b-> 和p.b. 。 struct st { int a; struct st *b; }*p, x;

初中数学例题变式教学的探究

初中数学例题变式教学的探究 初中数学例题变式教学的探究,学法指导, 许立均约3191字 例题、习题教学是数学教学的重要组成部分,在目前的例题、习题教学中,由于教学任务紧,教学内容多,教师往往把例题草率处理,这样做使得学生偏重记忆一些方法和发展一些具体技能,而不是高层次的数学思考。 《数学新课程标准》指出:学生的数学学习内容应当是现实的、有意义的、富有挑战性的,这些内容要有利于学生主动地进行观察、实验、猜测、验证、推理与交流等数学活动。因此,在例题、习题教学中,当学生获得某种基本解法后,教师应引导学生发掘例、习题的潜在因素,通过改变题目的条件、探求题目的结论、改变情境等多种途径,强化学生对知识和方法的理解,帮助他们对问题进行多角度、多层次的思考。 1. 精选范例 范例的来源可以是课本中的例题或习题,也可以是其它的题目。选取的范例应具有“四性”:针对性、基础性、灵活性和可变性。 在精选范例的环节中,教师的活动表现在:选择符合上述要求的题目,为学生创设优良的探索氛围。学生的活动表现在:自主审题为实施解法变式、题目变式和主动探索、尝试发现作好感情准备。 2. 解法变式 通过对范例实施解法变式,追求一题多解,解法优化,培养学生思维的广阔性和灵活性。 在解法变式环节中,教师的活动表现在:?引导点拨。?评价鼓励。学生的活动表现在:?自主探索解法,求得问题解决。?求新求异,多角度思考问题。?相互交

流,相互启发,扩大探索成果。?自主总结各种解法的规律与技巧,形成解题技能。 3. 方法应用 总结范例的解题规律、方法,并能把它运用到其它题目的解决过程,使解题方法得到迁移,形成技能技巧。 在方法应用的环节中,教师的活动表现在:?设计方法训练变式题组或引导学生通过对范例的变式而得到方法训练题组。?引导学生运用解决范例的方法解答变式训练题组,并对学生给予引导和点拨。学生的活动表现在:自主解答变式训练题目,使方法得以迁移,形成技能技巧。 4. 题目变式 通过师生对范例的共同探索(包括条件变化、结论变化、等价变化、逆向探索、图形变化、推广拓广等),获得题目的一类或几类变式,从而培养、锻炼学生的探索创新能力。 在探索变式环节中,教师的活动表现在:?诱导启发、激发学生的探索创新欲望。?适时引导、点拨,指引学生的探索方向。?及时评价,鼓励学生的探索精神和继续探索的勇气。学生的活动表现在:?在教师的引导下,独立探索,挖掘题目变式。?小组相互讨论,相互交流,相互启发。?人人参与,自由发言。 5( 问题解决 对范例变式得到的数学问题,难易程度不同,应采取灵活多样的解决方法。 在问题解决的环节中,教师的活动表现在:?对变式题的分类处理。?引导点拨,适时启发。?适时作鼓励性评价。学生的活动体现在:?自主探索,按教师要求,探求题目的求解策略与方法。?相互探讨,对不能自主解决的问题,同学之间、师生之间相互探讨。?注意解题规律、方法的积累与总结。 6( 总结反思

数列求和方法例题变式解析答案——强烈推荐

1.7 数列前n 项和求法 知识点一 倒序相加法 特征描述:此种方法主要针对类似等差数列中 112n n a a a a -+=+=,具有这样特点的数列. 思考: 你能区分这类特征吗? 知识点二 错位相减法 特征描述:此种方法主要用于数列}{n n b a 的求和,其中}{n a 为等差数列,}{n b 是公比为q 的等比数列,只需用n n S qS -便可转化为等比数列的求和,但要注意讨论q=1和q ≠1两种情况. 思考:错位时是怎样的对应关系? 知识点三 分组划归法 特征描述:此方法主要用于无法整体求和的数列,例如1,112+,11124 ++,……, 11124+++……+112 n -,可将其通项写成等比、等差等我们熟悉的数列分别进行求和,再综合求出所有项的和. 思考:求出通项公式后如何分组? 知识点四 奇偶求合法 特征描述:此种方法是针对于奇、偶数项,要讨论的数列 例如11357(1)(21)n n S n -=-+++ +--,要求S n ,就必须分奇偶来讨论,最后进行综合. 思考:如何讨论? 知识点五 裂项相消法 特征描述:此方法主要针对12231111n n a a a a a a -+++这样的求和,其中{a n }是等差数列. 思考:裂项公式你知道几个? 知识点六 分类讨论法 特征描述:此方法是针对数列{n a }的其中几项符号与另外的项不同,而求各项绝对值的和的问题,主要是要分段求. 思考:如何表示分段求和? 考点一 倒序相加法 例题1:等差数列求和12n n S a a a =+++ 变式1:求证:n n n n n n n C n C C C 2)1()12(53210+=+++++

C语言结构体和共用体实验报告

实验九参考程序 实验 9- 1 /**************************************************************** * 实验 9.1 * * ( 1 )为某商店的商品设计合适的结构体 (PRODUCT) 。每一种商品包含编号 (number) 、 * 名称 (name) 、价格 (price) 、折扣 (discount)4 项信息,根据表 9-1 ,为这些信 息选择合适的数据类型。 * (2)建立 2个函数,以实现对商品的操作。 input 函数实现商品的输入; * display 函数显示商品信息。要求这 2个函数都以商品的结构体 (PRODUCT) 指针为 参数。 * (3 )在主函数中为商品键盘定义一个结构体变量 (keyboard) ,利用 input 函数实现键 盘信息的输入; * 定义一个结构体数组 (elec_device[3]) ,利用 input 函数实现冰箱、 空调、电视 信息的输入; * 最后利用 display 函数显示 4 种商品的信息。 * * 表 9-1 #include typedef struct _PRODUCT int iNumber; char strName[32]; float fPrice; float fDiscount; * 编号 名称 价格 折扣 *1010 键盘 89.50 0.85 *1021 冰箱 1024.00 0.95 *1022 空调 2058.50 0.90 *1023 电视 3001.88 0.95 *************************************************************** */

十一章 结构体与共用体

结构体与共用体 一、选择题: 1.已知赋值语句wang.year=2004;则wang的变量类型是() A. 字符或文件 B. 整型或实型 C. 共用或结构 D. 实型或指针 2.Turbo C中,以下类型数据在存储器中占的字节数为 ( ) struct test { int x; float y; char z; } ; A. 2 B. 3 C. 6 D. 7 3.以下语句中,成员data的正确引用方式为( ) struct node { int data; char name[10]; }stree; struct node *p=&stree; A. p.data B. p->data C. (*p)->data D. stree->data 4、当执行以下程序段时,输出的结果是。()struct data { char a; int b; float c; }; printf(“%d”, sizeof(struct data)); A. 1 B. 2 C. 4 D. 7 5.下面程序段的运行结果是。 struct stu { int num; char name[10]; float scrose ; }; printf(“%d\n”, sizeof (struct stu )); (A)14 (B)12 (C)16 (D)3 6. 若有定义: typedef char* string; #define str char * int a=4; struct { int x, *y; }z={10, &a}, *p=&z; 则下列不等价的是: A. string name, sign; 与 str name, sign; B. *p->y++ 与 *(p->y++) C. ++*p->y 与 ++(*p->y) D. ++p->x与++(p->x) ()

圆柱圆锥典型例题变式训练

龙文教育教师1对1个性化教案 学 生 姓 名 王珂苏 教师 姓名 詹光曦 日期 时段 2014 学校 年级 棠湖试验校 六年级 课 题 第六讲 圆柱圆锥3 重点 难点 教学目标:1,圆柱的体积公式和表面积公式2,掌握圆锥的体积公式3, 认识圆柱圆锥展开后的侧面图形4,掌握等高等底面积圆柱圆锥的体积关系 教学难点:圆柱圆锥的体积关系以及在正方体长方体中的应用 教 学 步 骤 及 教 学 内 容 教学过程: 一、教学衔接(课前环节) 1、了解家长的反馈意见; 2、检查学生的试卷,及时指点 3、捕捉学生的思想动态和了解学生的学习内容 二、教学内容 例题1圆柱的底面周长和高相等时,展开后的侧面一定是个 基本思路:圆柱展开后是一个长方形,一般长和高可对应圆柱的高和圆柱底面圆的周长,因此可通过这个思路来判断 三、教学辅助练习(见讲义) 四、知识总结 1、知识、方法·技能

2、目标完成 3、学生掌握 五、知识的延伸和拓展 六、布置作业 教导处签字: 日期:年月日

教学过程中学生易错点归类 作业布置 学习过程评价一、学生对于本次课的评价 O 特别满意 O 满意 O 一般 O 差 二、教师评定 1、学生上次作业评价 O好 O较好 O 一般 O差 2、学生本次上课情况评价 O 好 O 较好 O 一般 O 差 家长意见

家长签名: 第六讲圆柱圆锥3 教学过程: 一、教学衔接(课前环节) 1、回收上次课的教案,了解家长的反馈意见; 2、检查学生的作业,及时指点 3、捕捉学生的思想动态和了解学生的本周学校的学习内容 第二部分:基础知识讲解 1、请你分别写出圆柱的体积公式,并试着写出圆柱的表面积公式,请你试着写出 圆锥的体积公式 2、圆柱展开后是一个不折不扣的长方形,圆锥展开后是一个不折不扣的扇形,利 用圆柱展开后的图形特点来求出圆柱的表面积:注意:圆柱的表面积需要加上上下两个圆的面积 1 3、圆锥的体积是等高等底面积的圆柱的 3 4、结合圆柱圆锥的特点和正方体长方体进行联系 例题1圆柱的底面周长和高相等时,展开后的侧面一定是个

结构体、共用体、枚举

最终排名 Time Limit: 1000MS Memory limit: 65536K 题目描述 第四届山东理工大学ACM网络编程擂台赛比赛完后需要产生一个最终排名,排名按照题数多少来决定。但是有太多的队伍参与,手动计算排名已经不能满足比赛的需求。现在有一份名单记录各个队伍的ID和做出的题目数,需要你写一个程序,产生最终的排名。 为了简化题目,这里的排名规则为:做出题目数量多的队伍排在前面,如果题数相等,保持输入时的相对顺序不要改变。 输入 第一行包含一个正整数T( 1≤T≤15),表示有T组测试数据。每组数据第一行有一个正整数N(1< N≤10000),表示队伍数量。接下来N 行包含两个整数,1≤ID≤10^7, 0≤M≤100。ID为队伍的编号,M为做出的题数。 输出 每组数据输出包含N行,第i行有两个整数,ID和M表示排在第i位的队伍的ID和做出的题数。 示例输入 1 8 1 2 16 3 11 2 20 3 3 5 26 4 7 1 22 4 示例输出 3 5 26 4 22 4

16 3 20 3 1 2 11 2 7 1

#include void main() { struct team { int ID; int M; }t[10000],T; int N,n,i,j,k,time=0; scanf("%d",&N); while(time!=N) { scanf("%d",&n); for(i=0;i

11第十一章结构体和联合体练习

第十一章结构体和共用体 一、单项选择题: 1、在说明一个结构体变量时系统分配给它的存储空间是()。 A、该结构体第一个成员所需存储空间 B、该结构中最后一个成员所需存储空间 C、该结构体中占用最大存储空间的成员所需存储空间 D、结构体中所有成员所需存储空间的总和 2、在说明一个共用体变量时系统分配给它的存储空间是()。 A、该共用体中第一个成员所需存储空间 B、该共用中最后一个成员所需存储空间 C、该共用体中占用最大存储空间的成员所需存储空间 D、共用体中所有成员所需存储空间的总和 3、共用体类型在任何给定时刻,()。 A、所有成员一直驻留在结构中 B、只有一个成员驻留在结构中 C、部分成员驻留在结构中 D、没有成员驻留在结构中 4、使用共用体union的目的是()。 A、将一组数据作为一个整体,以便于其中 的成员共享同一存储空间 B、将一组具有相同数据类型的数据作为一 个整体,以便于其中的成员共享同一存 储空间 C、将一组相关数据作为一个整体,以便程 序中使用 D、将一组具有相同数据类型的数据作为 一个整体,以便程序中使用 5、以下typedef的叙述不正确的是()。 A、用typedef可以定义各种类型名,但不 能用来定义变量 B、用typedef可以增加新类型 C、用typedef只是将已存在的类型用一个 新的名称来代表 D、使用typedef便于程序的通用 6、以下关于枚举的叙述不正确的是()。 A、枚举变量只能取对应枚举类型的枚举 元素表中元素 B、可以在定义枚举类型时对枚举元素进行 初始化C、枚举元素表中的元素有先后次序,可以 进行比较 D、枚举元素的值可以是整数或字符串 7、在下列程序段中,枚举变量c1和c2的值分别是()和()。 main() { enum color {red,yellow,blue=4,green,white} c1,c2; c1=yellow; c2=white; printf(“%d,%d\n”,c1,c2); } A、1 B、3 C、5 D、6 8、若有以下说明和语句: struct worker { int no; char *name; }work,*p=&work; 则以下引用方式不正确的是()。 A、work.no B、(*p).no C、p—>no D、work—>no 9、以下程序执行后的正确结果是()。struct tree { int x; char *s; }t; func(struct tree t) { t.x=10; t.s=”computer”; return(0); } main() { t.x=1; t.s=”minicomputer”; func(t); printf(“%d,%s\n”,t.x,t.s); } A、10,computer B、1,minicomputer C、1,computer D、10,minicomputer

知识总结、典型例题及变式练习

牛顿第一定律 一、学习目标 1、知道力和运动的关系的发展过程. 2、理解牛顿第一定律的内容和含义. 3、知道惯性的定义,知道一切物体都有惯性. 4、会用惯性知识解释生活中的惯性现象. 二、要点梳理 要点1、牛顿第一定律 1、伽利略的实验与结论 伽利略的结论:当斜面水平时,小球由于无法到达这个的高度,而永远运动下去 2、笛卡尔的观点 笛卡尔的观点:小球的运动既不向左,也不向右,沿着直线一直以这个速度运行下去。(匀速直线运动) 3、牛顿的实验与结论 实验的结论:小车如果收到的阻力越小,小车的速度改变越慢,小车通过的路程越长 推论:若运动物体不受阻力,物体将做匀速直线运动 概括(牛顿第一定律): 一切物体在没有受到力的作用时,总保持________或____________,这就是牛顿第一定律. 说明:(1)原来静止的物体,如果不受任何力,则保持______________. (2)原来运动的物体,如果突然不受任何力,则保持_____________________. 思考:(1)原来运动着的足球,所受到的一切力都消失,足球将会怎样? (2)天花板上吊着的吊灯,所受到的一切力都消失,吊灯将会怎样? 要点2、惯性 物体具有保持静止状态或匀速直线运动状态的性质称为惯性 几点说明: 1、惯性是物体的固有属性,一切物体在任何情况下都有惯性

2、惯性只有质量有关,质量是惯性的唯一量度 3、惯性是一种性质,不是力,可以说有惯性、具有惯性、由于惯性的原因,不能说受到惯性的作用或者惯 性力。 三、典型例题 【例1】关于惯性,下列说法中正确的是() A.静止的物体才有惯性 B.做匀速直线运动的物体才有惯性 C.物体的运动方向改变时才有惯性 D.物体在任何情况下都有惯性 答案:D 解析:由于惯性与物体是否运动无关,运动的物体有运动的惯性,静止的物体也有静止的惯性。与物体运动的方向是否改变无关,方向不改变时有惯性,改变时也有惯性。 举一反三 变式1、关于惯性,下列说法正确的是() A、一切物体在没有收到外力的作用时,总保持匀速直线运动状态或者静止状态的性质叫做惯性 B、射出的子弹离开枪口以后,仍继续高速前进,是因为子弹收到惯性的作用 C、汽车关闭发动机后仍能前进是由与汽车的惯性大于它收到的阻力 D、一切物体在任何情况下都具有惯性 【例2】一杯水放在做直线运动的列车内的水平桌面上,如果水面情形如图所示,则列车的运动状态可能是() A.列车突然向右启动 B.列车突然向左启动 C.列车向左运动时突然刹车 D.列车向右运动时突然刹车 答案:B、D 解析:以杯内的水为研究对象,如果列车匀速运动,则杯内的水随列车一起匀速运动,整杯水运动情况一致,水面就是平的。列车向左运动突然刹车时,水由于惯性会继续向左运动,会造成水面左端高,右端低。列车向右运动突然刹车时,水由于惯性会继续向右运动,会造成水面右端高,左端低。水面右端高,左端低,还可能是列车突然向左开动,或突然向左加速运动。 举一反三 变式2、如图a所示,小车原先静止在水平地面上,车内有一小球,用细绳悬挂于小车顶部。一段时间后,小丽发现车内小球的状态如b图所示。试判断小车的运动状态是( ) A.向右匀速直线运动 B.向左匀速直线运动 C.突然向右加速运动 D.突然向左加速运 【例3】人站在匀速的船上,竖直向上扔一个小球,则小球(不计空气阻力):

相关主题
文本预览
相关文档 最新文档