第三讲 结构体习题
更新时间:2024-01-17 03:03:01 阅读量: 教育文库 文档下载
第三讲 结构体与共用体
一、选择题
1.在说明一个结构体变量时系统分配给它的存储空间是 。
A) 该结构体中第一个成员所需存储空间 B) 该结构体中最后一个成员所需存储空间
C) 该结构体中占用最大存储空间的成员所需存储空间 D) 该结构体中所有成员所需存储空间的总和
2.若有以下说明和语句:
struct worker
{ int no; char ﹡name; }work, ﹡p=&work;
则以下引用方式不正确的是 。*
A) work.no B) (﹡p).no C) p->no D)work->no3.有如下定义: struct date { int year, month, day; };
struct worklist { char name[20]; char sex;
struct date birthday; }person;
对结构体变量person的出生年份进行赋值时,下面正确的赋值语句是 。 *
A) year=1958 B) birthday.year=1958 C) person.birthday.year=1958 D) person.year=1958 4.以下对结构体类型变量的定义中不正确的是 。* 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;
则下面的叙述不正确的是 。* A) struct是结构体类型的关键字
B) struct stu是用户定义的结构体类型 C) stutype是用户定义的结构体类型名 D) a和b都是结构体成员名
6.C语言结构体类型变量在程序执行期间 。 A) 所有成员一直驻留在内存中 B) 只有一个成员主留在内存中 C) 部分成员驻留在内存中 D) 没有成员驻留在内存中
7.以下程序的运行结果是 。* # include
{ struct date
{ int year, month, day; }today;
printf(“%d\\n”,sizeof(struct date)); }
A) 6 B) 8 C) 10 D)128.有如下定义
struct person{char name[9]; int age;}; struct person class[10]={“Johu”, 17, “Paul”, 19
“Mary”, 18, “Adam 16,};
根据上述定义,能输出字母M的语句是 。* A) prinft(“%c\\n”,class[3].mane); B) pfintf(“%c\\n”,class[3].name[1]); C) prinft(“%c\\n”,class[2].name[1]); D) printf(“%^c\\n”,class[2].name[0]); 9.设有如下定义
struct ss { char name[10]; int age;
char sex;
} std[3],* p=std;
下面各输入语句中错误的是 。* A) scanf(\B) scanf(\C) scanf(\
D) scanf(\
10.设有以下说明语句,则下面的叙述中不正确的是 。*
struct ex {
int x ; float y; char z ; } example;
A) struct结构体类型的关键字 B) example是结构体类型名 C) x,y,z都是结构体成员名 D) struct ex是结构体类型 11.若程序中有下面的说明和定义:
struct stt { int x; char b; }
struct stt a1,a2;
则会发生的情况是 。*
A)程序将顺利编译、连接、执行。 B)编译出错。
C)能顺利通过编译、连接,但不能执行。
D)能顺利通过编译,但连接出错。 12.已知教师记录定义为:
struct student { int no;
char name[30]; struct
{ unsigned int year; unsigned int month; unsigned int day; }birthday; } stu;
struct student *t = &stu;
若要把变量t中的生日赋值为“1980年5月1日”,则正确的赋值方式为 。*
A) year = 1980; B) t.year = 1980;
month = 5; t.month = 5; day = 1; t.day = 1;
C) t.birthday.year = 1980; D) t-> birthday.year = 1980;
t.birthday.month = 5; t-> birthday.month = 5; t.birthday.day = 1; t-> birthday.day = 1;
13.以下结构类型可用来构造链表的是 。*
A) struct aa{ int a;int * b;}; B) struct bb{ int a;bb * b;};
C) struct cc{ int * a;cc b;};
D) struct dd{ int * a;aa b;}; 14.以下程序的输出结果是 。**
amovep(int *p, int a[3][3],int n) { int i, j;
for( i=0;i for(j=0;j main() { int *p,a[3][3]={{1,3,5},{2,4,6}}; p=(int *)malloc(100); amovep(p,a,3); printf(\} A) 56 B) 25 C) 34 D) 程序错误 15.以下程序的输出结果是 。** struct HAR { int x, y; struct HAR *p;} h[2]; main() { h[0].x=1;h[0].y=2; h[1].x=3;h[1].y=4; h[0].p=&h[1].x; h[1].p=&h[0].x; printf(\ } A) 12 B) 23 C) 14 D) 32 二、填空题 1.有如下定义:* struct {int x; int y; }s[2]={{1,2},{3,4}}, ﹡p=s; 则:表达式 ++p->x 的结果是 。 表达式 ++p->x 的结果是 。 2.若有定义:** struct num {int a; int b; float f; }n={1, 3, 5.0}}; struct num ﹡pn=&n; 则表达式pn->b/n.a﹡++pn->b的值是 ,表达式(﹡pn).a+pn->f的值是 。 3.若要使指针p指向一个double类型的动态存储单元,请填空。* p= malloc(sizeof(double)); 4.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 。 * Struct stud { char num[6]; int s[4]; double ave; } a,*p; 三、程序填空题 1.结构数组中存有三人的姓名和年龄,以下程序输出三人中最年长者的姓名和年龄。请 填空。* static struct man { char name[20]; int age; }person[ ]={ “li-ming”,18, “wang-hua”,19,”zhang-ping”,20}; main( ) {struct man *p,*q; int old=0; p=person; for( ; (1) ) if(old 2.以下程序段的功能是统计链表中结点的个数,其中first为指向第一个结点的指针(链 表不带头结点)。请填空。* struct link {char data; struct link *next; }; …… struct link * p, * first; int c=0; p=first; while ( (1) ) { (2) ; p= (3) ; } 3.已知head 指向一个带头结点的单向链表,链表中每个结点包含数据域(data)和指针域(next),数据域为整型。以下函数求出链表中所有链结点数据域的和值,作为函数值返回。请填空。** struct link {int data; struct link *next; }; main( ) { struct link *head; . . . sum(head); . . . } sum( (1) ) { struct link *p; int s=0; p=head->next; while(p) {s+= (2) ; p= (3) ; } return(s); } 4.已知head指向单链表的第一个结点,以下函数完成往降序单向链表中插入一个结点, 插入后链表仍有序。请填空。** # include struct student {int info; struct student *link; }; struct student *insert(struct student * head, struct student * stud) { struct student * p0, * p1, * p2; p1=head; p0=stud; if(head= =NULL) {head=p0; p0->link=NULL;} else while(p0->info if(p0->info>=p1->info) { if(head= =p1) { (1) ; head=p0; } else {p2->link=p0; (2) ; } } else {p1->link=p0; (3) ; } return(head); } 四、读程序写结果题 1.以下程序的运行结果是 。* struct n {int x; char c; }; main( ) { struct n a={10, ’x’}; func(a); printf ( “%d,%c”, a.x, a.c); } func(struct n b) {b.x=20; b.c=’y’; } 2.以下程序的运行结果是 。* main( ) { struct EXAMPLE { struct {int x; int y; }in int a; int b; }e; e.a=1; e.b=2; e.in.x=e.a * e.b; e.in.y=e.a + e.b; printf(“%d,%d”, e.in.x, e.in.y); } 3.以下程序的运行结果是 。** main( ) { static struct s1 {char c[4], *s; }s1={“abc”,”def”}; static struct s2 {char *cp; struct s1 ss1; }s2={“ghi”, {“jkl”, “mno”}}; printf(“%c,%c\\n”, s1.c[0], *s1.s);
正在阅读:
第三讲 结构体习题01-17
第一课 在山的那边学案及答案12-30
道德经(王弼注版)04-22
VB期末复习资料10-29
STM32F207中文数据手册11-30
年产5000吨H62黄铜棒挤压车间设计09-03
一年级下册数学综合练习题(通用)04-08
Quantum fluctuations and glassy behavior of electrons near metal-insulator transitions05-17
注重自我锤炼 以人格魅力感染教师群体04-22
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 三讲
- 习题
- 结构
- 2012年长沙市初中毕业学业考试(生地会考)试卷地理真题含答案 - 图文
- 国家电网基建改革12项配套措施验收标准
- 基于Qt的p2p局域网聊天和文件传输软件
- IPC-6016中文
- 2019年构建小学语文教育新体系的哲学思考 - 语文论文-word范文(4页)
- 19.建筑门窗检测(物理三性指标)作业指导书
- 2014年湖南师范大学自然地理学招收硕士研究生入学考试大纲考研大纲
- 2017年中国活性染料现状分析及市场前景预测(目录) - 图文
- 吉安师范学校2018年3 2学制 - 图文
- 释经讲道大纲第一集司提反欧福德
- 数据结构1-10章习题
- 1000以内数的认识教学设计
- 安全监理用表
- 2017全国高考优秀作文素材精选
- 企业6s知识竞赛试题及参考答案一
- 北师大版三年级品德与社会下册期中检测题
- 支付结算执法检查要点
- 银行轮岗办法
- 外墙装饰瓷项目可行性研究报告(目录) - 图文
- 二年级必须掌握的词语