结构体练习

发布 2021-05-29 14:12:28 阅读 2227

1、#include“ student;

void func(struct student s[ ]int n);void main( )func(s,4);for(i=0;i<4;i++)

printf(“%5s%f”,s[i].name,s[i].score)}

void func(struct student s[ ]int n)

#include<>

void main( )r,*s=&r;

s->i[0]=0x39;s->i[1]=0x38;printf("%c",s->c[0]);

#include <>void main( )

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

#include“ i;

charc[2];}

voidmain()

p->next='\0';return h;

5、若有以下的定义、说明和语句,则值为101的表达式是()。

structcw

inta ;int *b;} p;

int x0[ ]x1[ ]static struct cw x[2]=;p=x;a)*p->b

b)p->a

c)+ p->a)

d)(p+ +a

6、若有下面的定义:struct node

intdata;struct node*next;}a,b,*p=&a;

在链表结构中,节点a中的data成员可表示为(节点a节点bdatanext

datanextdatanextdatanexthead

pa)c)p->data

d)head->next->data

e)p->next->data

7、对于下列定义,正确的叙述是()

union ss

int i;char c;float f;}a,b;

a)变量a所占内存的长度等于成员f的长度b)变量a的地址值和它的各成员地址值都是相同的c)地址表达或&a、&的值相同d)变量a所占内存的长度等于各成员所占空间之和e)sizeof(union ss)的值为4

8、关于枚举类型中的枚举元素,正确的说法是()a)枚举元素是常量c)枚举元素是有值的。

b)枚举元素是变量d)枚举元素的值可以改变。

e)可将枚举元素直接赋值给枚举变量。

9、如有说明structd,*pd=&d;则下列哪些引用是正确的()。a)pd->yeard)*pd.year

b)(*pd).yeare)*(pd->year)

c)d.year

10、针对typedef的叙述中不正确的是()。a)用typedef可以增加新类型。

b)用typedef可以用来定义各种类型名,但不能用来定义变量c)用typedef只是将已经存在的类型用一个新的标识符来代表d)用typedef有利于程序的通用和移植。

11、已知:int*p;使用“p=__malloc(sizeof(int));语句动态申请int型的存储单元,应当使用()。a)int

b)int*

c)(*int)

d)(int*)

12、已知教师记录定义为;struct teacher

int no;char name[30];struct

unsigned int year;unsigned int month;unsigned int day;}birthday;};

struct teachera,*t=&a;

若要把变量a中的生日赋值为“2023年4月20日”,则正确的赋值方式为()。a)year=2002;month=4;day=20;

b)*出生日期*/

d)t->>

c)t->

13、enumcolor定义了一枚举类型.编译程序为枚举值表中各标识符分配的枚举值依次为()ac)0、l

bd14、设有下列语句typedef struct

int n;char ch[8];}stt;则下面叙述正确的是()。a)stt是结构体变量。

b)stt是结构类型名d)struct是结构体类型名。

c)typedef struct是结构体类型。

15、若已经建好的链表结构如下,指针p、q分别指向图示节点:apb

cq不能将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;16、对结构类型不能进行的操作有()。a)赋值和存取。

b)复制e)&操作。

c)作实际参数。

d)作函数的返回值。

17、若有下面的定义:struct linka,b,c,*p,*q;

且变量a和b之间有如下图所示的链表结构()。qhead

结点adata20

nextdata30pdata

nextnext∧

结点bdata40

nextdata50

next结点c

指针p指向变量a,q指向变量c。则能够把c插入到a和b之间并形成新的链表的语句组是:a)(*q).

next=(*p).next; (p).next=q;c)p->next=&c;q-next=p->next;d)(*p).

next=q;(*q).next=&b;e)q->next=p->next;q->next=q;b)

结构体编程练习

一 实验目的 1 理解结构体和共用体的作用功能 2 掌握结构体类型变量的定义方法 3 掌握结构体变量的使用方法 4 掌握结构体数组,并能较熟练应用 5 理解指向结构体类型数据的指针。二 实验内容及要求 1 用结构体实现在屏幕上模拟显示一个数字式时钟 思考题 1 用结构体指针作为函数参数与用结构体变量...

练习12 结构体排序

定义一个5个元素的 struct student 数组,1 从键盘输入5个学生的信息。2 按总分降序排序。3 按语文成绩降序排序。4 按姓名升序排序。struct student char name 20 float chinese,math,english,score void input str...

718结构体

结构是由基本数据类型构成的 并用一个标识符来命名的各种变量的组合。结构中可以使用不同的数据类型。一 结构说明和结构变量定义。在turbo c中,结构也是一种数据类型,可以使用结构变量,因此,象其它类型的变量一样,在使用结构变量时要先对其定义。定义结构变量的一般格式为 struct 结构名。类型变量名...