收藏 分销(赏)

第九章-习题及答案教学文稿.doc

上传人:精*** 文档编号:3864462 上传时间:2024-07-22 格式:DOC 页数:12 大小:52KB
下载 相关 举报
第九章-习题及答案教学文稿.doc_第1页
第1页 / 共12页
第九章-习题及答案教学文稿.doc_第2页
第2页 / 共12页
第九章-习题及答案教学文稿.doc_第3页
第3页 / 共12页
第九章-习题及答案教学文稿.doc_第4页
第4页 / 共12页
第九章-习题及答案教学文稿.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、第九章 习题及答案精品资料第九章 习题一、选择题1.以下选项中不能正确把cl定义成结构体变量的是( )A)typedef struct B)struct color cl int red; int red;int green; int green;int blue; int blue; COLOR; COLOR cl; C)struct color D)struct int red; int red;int green; int green;int blue; int blue; cl; cl;2.有以下说明和定义语句struct student int age; char num8;stru

2、ct student stu3=20,200401,21,200402,109,200403; struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是( )A) (p+)-num B)p-num C)(*p).num D)stu3.age3.有以下结构体说明、变量定义和赋值语句 struct STD char name10; int age; char sex; s5,*ps; ps=&s0;则以下scanf函数调用语句中错误引用结构体变量成员的是( )。A)scanf(“%s”,s0.name);B)scanf(“%d”,&s0.age);C)scanf(“

3、%c”,&(ps-sex); D)scanf(“%d”,ps-age);4以下叙述中错误的是( )A)可以通过typedef增加新的类型B)可以用typedef将已存在的类型用一个新的名字来代表C)用typedef定义新的类型名后,原有类型名仍有效D)用typedef可以为各种类型起别名,但不能为变量起别名5.有以下程序段( )typedef struct node int data; struct node *next; *NODE;NODE p;以下叙述正确的是(C)A)p是指向struct node结构变量的指针的指针B)NODE p;语句出错C)p是指向struct node结构变量的

4、指针D)p是struct node结构变量6.若有以下定义和语句 union data int i; char c; float f;x; int y; 则以下语句正确的是( )。A)x=10.5;B)x.c=101; C)y=x;D)printf(“%dn”,x);7有以下程序main() union unsigned int n; unsigned char c; u1; ul.c=A; printf(%cn,u1.n);执行后输出结果是()A) 产生语法错 B) 随机值 C) A D) 658.有以程序#include #include typedef struct char name9

5、; char sex; float score2; STU; void f( STU a) STU b=“Zhao” ,m,85.0,90.0 ; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;inext=r-next; p-next=r; r-next=q; B) p-next=r; q-next=r-next; r-next=q; C) q-next=r-next; r-next=q; p-next=r;D) r-next=q; p-next=r; q-next=r-next;10有以下程序段struct st int x; int

6、*y;*pt: int a=1,2,b=3,4; struct st c2=10,a,20,b;pt=c; 以下选项中表达式的值为11的是( )A) *pt-y B) pt-x C) +pt-x D) (pt+)-x二、填空题1.设有说明struct DATEint year;int month; int day;请写出一条定义语句,该语句定义d为上述结构体变量,并同时为其成员year、month、day 依次赋初值2006、10、1。2已有定义如下:struct node int data;struct node *next; *p;以下语句调用malloc函数,使指针p指向一个具有stru

7、ct node类型的动态存储空间。请填空。p = (struct node *)malloc( );3.以下程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并做为函数值返回。请填空: #include #define N 3 typedef struct int num;char nam10; char sex;SS; int fun(SS person) int i,n=0; for(i=0;ik=+i; p+; q-k=i+; q-; q-k=i; for(i=0;idata= (2) ; q-next=p; q= (3) ; s

8、+; p-next=0; return h; main() char str=link list; struct node *head; head=CreatList(str); . 三、编程题1. 定义一个能正常反映教师情况的结构体teacher,包含教师姓名、性别、年龄、所在部门和薪水;定义一个能存放两人数据的结构体数组tea,并用如下数据初始化:“Mary “, W,40, Computer , 1234 ,“Andy “, M,55, English , 1834;要求:分别用结构体数组tea和指针p输出各位教师的信息,写出完整定义、初始化、输出过程。2.定义一个结构体变量(包括年、月

9、、日)。计算该日在本年中是第几天,注意闰年问题。3.构建简单的手机通讯录,手机通讯录包括信息(姓名、年龄、联系电话),要求实现新建、查询功能。假设通信录最多容纳50名联系人信息。4.建立一个教师链表,每个结点包括学号(no),姓名(name8),工资(wage),写出动态创建函数creat和输出函数print。5.在上一题基础上,假如已经按学号升序排列,写出插入一个新教师的结点的函数Insert。第9章 习题答案一、选择题1-5 B D D A C 6-10 B C A D C二、填空题1. struct DATA d=2006,10,1;2. sizeof(struct node)3. pe

10、rsoni.sex4. 134315. (1)struct node* (2)*s (3)p三、编程题1. 定义一个能正常反映教师情况的结构体teacher,包含教师姓名、性别、年龄、所在部门和薪水;定义一个能存放两人数据的结构体数组tea,并用如下数据初始化:“Mary “, W,40, Computer , 1234 ,“Andy “, M,55, English , 1834;要求:分别用结构体数组tea和指针p输出各位教师的信息,写出完整定义、初始化、输出过程。#includestruct teacher char name8;char sex;int age;char departm

11、ent20;float salary; ; struct teacher tea2= Mary , W,40, Computer , 1234 ,Andy , M,55, English , 1834 ; main() int i; struct teacher *p;for( i=0;i2;i+)printf(%s,t%c,t%d,t%s,t%f, teai.name,teai.sex,teai.age,teai.department,teai.salary); for(p=tea;pname, p-sex, p-age, p-department, p-salary); 2. 定义一个结构

12、体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。#includestruct int year; int month; int day; date; main() int days; printf(“Input year,month,day:”); scanf(“%d,%D,%d”,&date.year,&date.month,&date.day); switch(date.month) case 1: days=date.day; break; case 2: days=date.day+31; break; case 3: days=date.day+59; break;

13、 case 4: days=date.day+90; break; case 5: days=date.day+120; break; case 6: days=date.day+31; break; case 7: days=date.day+181; break; case 8: days=date.day+212; break; case 9: days=date.day+243; break; case 10: days=date.day+273; break; case 11: days=date.day+304; break; case 12: days=date.day+334;

14、 break; if(date.year%4=0&date.year%100!=0|date.year%400=0)&date.month=3)days+=1; printf(“n%d/%d is the %dth day in%d.”,date.month,date.day,days,date.year); 3.构建简单的手机通讯录,手机通讯录包括信息(姓名、年龄、联系电话),要求实现新建、查询功能。假设通信录最多容纳50名联系人信息。#include#include/*手机通讯录结构定义*/struct friends_list char name10; /* 姓名 */ int age;

15、 /* 年龄 */ char telephone13; /* 联系电话 */; int Count = 0; /* 定义全局变量Count,记录当前联系人总数 */void new_friend(struct friends_list friends );void search_friend(struct friends_list friends , char *name);int main(void) int choice; char name10; struct friends_list friends50; /* 包含50个人的通讯录 */ do printf(手机通讯录功能选项:1:新

16、建 2:查询 0:退出n); printf(请选择功能:); scanf(%d, &choice); switch(choice) case 1: new_friend(friends); break; case 2: printf(请输入要查找的联系人名:); scanf(%s, name); search_friend(friends, name); break; case 0: break; while(choice != 0); printf(谢谢使用通讯录功能!n); return 0;/*新建联系人*/void new_friend(struct friends_list frie

17、nds ) struct friends_list f; if(Count = 50) printf(通讯录已满!n); return; printf(请输入新联系人的姓名:); scanf(%s, f.name); printf(请输入新联系人的年龄:); scanf(%d, &f.age); printf(请输入新联系人的联系电话:); scanf(%s, f.telephone); friendsCount = f; Count+;/*查询联系人*/void search_friend(struct friends_list friends , char *name) int i, fl

18、ag = 0; if(Count = 0) printf(通讯录是空的!n); return; for(i = 0; i Count; i+) if(strcmp(name,friendsi.name) = 0) /* 找到联系人*/ flag=1; break; if(flag) printf(姓名: %st, friendsi.name); printf(年龄: %dt, friendsi.age); printf(电话: %sn, friendsi.telephone); else printf(无此联系人!);4. 建立一个教师链表,每个结点包括学号(no),姓名(name8),工资(

19、wage),写出动态创建函数creat和输出函数print。#include#include#define NULL 0#define LEN sizeof(struct teacher)struct teacherint no;char name8;float wage;struct teacher * next; ;int n;struct teacher *creat(void) struct teacher *head;struct teacher *p1,*p2;n=0;p1=p2= (struct teacher *)malloc(LEN);scanf(“%d%s%f”,&p1-n

20、o,p1-name, &p1-wage);head=NULL;while(p1-no!=0) n=n+1;if(n=1) head=p1;else p2-next=p1;p2=p1;p1=( struct teacher *)malloc(LEN);scanf(“%d%s%f”,&p1-no,p1-name, &p1-wage);p2-next=NULL;return(head); void print(struct teacher *head) struct teacher *p; p=head;if (head!=NULL)do printf(“%dt%st%fn”, p-no, p-na

21、me, p-wage);p=p-next; while(p!=NULL);5.在上一题基础上,假如已经按学号升序排列,写出插入一个新教师的结点的函数insert。struct teacher insert(struct teacher *head,struct teacher *tea) struct teacher *p0,*p1,*p2;p1=head;p0=tea;if(head=NULL)head=p0; p0-next=NULL;else while(p0-nop1-no)&(p1-next!=NULL) p2=p1; p1=p1-next; if(p0-nono) if (head=p1) head=p0; else p2-next=p0;p0-next=p1;else p1-next=p0;p0-next=NULL;n=n+1;return(head);仅供学习与交流,如有侵权请联系网站删除 谢谢12

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服