ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:52.78KB ,
资源ID:9673943      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9673943.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言程序设计第3版何钦铭颜晖第9章结构.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言程序设计第3版何钦铭颜晖第9章结构.docx

1、C语言程序设计第3版何钦铭颜晖第9章结构第 9 章 结构【练习 9-1 】定义一个能够表示复数的结构类型,一个复数包括实数与虚数两个部分。解答:struct complexfloat real;float imaginary;【练习 9-2】人的出生日期由年、月、日组成,请在例 9-1 中的通讯录结构中增加一个成员:出生日期,用嵌套定义的方式重新定义该结构类型。解答:struct dateint year;int month;int day;struct studentint num;char name10;struct date birthday;int computer,english,m

2、ath;double average;【练习 9-3 】例 9-1 中,如果要计算的是三门课程的课程平均成绩,应该如何改写程序?解答:#includestruct studentint num;char name10;int computer,english,math;double average;int main(void)int i, n;double math_sum,english_sum,computer_sum;struct student s1;printf(Input n:);scanf(%d, &n);printf(Input the students number, nam

3、e and course scores:n);math_sum=english_sum=computer_sum=0;for(i=1;i=n;i+)printf(No.%d:,i);scanf(%d%s%d%d%d,&s1.num,s1.name,&s1.math,&s1.english,&pu ter);math_sum+=s1.math;english_sum+=s1.english;computer_sum+=puter;printf(math_ave:%.2lfnenglish_ave:%.2lfncomputer_ave:%.2lfn, math_sum/n,english_sum/

4、n,computer_sum/n);return 0;【练习 9-4】定义一个包含 5 名学生信息的结构数组,并对该结构数组的所有元素进行初始化。解答:struct studentint num;char name10;int computer, english, math;struct student s5=30101, 张一 ,69,75,84 ,30132, 李二 ,80,8 5,90,40231, 王三 ,71,91,74,40754, 赵四 ,65,76,87,50426, 刘五 ,81,92,73;【练习 9-5】参考例 9-2 ,输入并保存 10 个学生的成绩信息,分别输出平均成

5、绩最高和最低的学生信息。解答:#includestruct studentint num;char name10;int computer,english,math;double average;int main(void)int i,n,max,min;struct student students50;printf(Input n:); scanf(%d,&n);for(i=0;in;i+)printf(Input the info of No.%d:n,i+1);printf(number:);scanf(%d,&studentsi.num);printf(name:);scanf(%s

6、,&studentsi.name);printf(math score:);scanf(%d,&studentsi.math);printf(english score:);scanf(%d,&studentsi.english);printf(computer score:);scanf(%d,&puter);studentsi.average=(studentsi.math+studentsi.english+stu puter)/3.0;max=min=0;for(i=1;in;i+)if(studentsmax.averagestudentsi.average) min=i;print

7、f(max_average_infortmation:n);printf(number:%d,name:%s,math:%d,english:%d,computer:%d,average: %.2lfn,studentsmax.num,studentsmax.name,studentsmax.math,stud entsmax.english,puter,studentsmax.average);printf(min_average_information:n);printf(number:%d,name:%s,math:%d,english:%d,computer:%d,average: %

8、.2lfn,studentsmin.num,studentsmin.name,studentsmin.math,stud entsmin.english, puter, studentsmin.average);return 0;【练习 9-6 】定义一个 struct student 类型的结构指针,用其实现一个学生信数组形式。解答:int update_score(struct student s,int n,int num,int course,int int i,pos;for(i=0;in;i+)if(si.num=num)break;if(i”称为 _指向 _运算符。struct

9、sk int a; float b; data, *p=&data;A (*p).data.a BC p-data.a D5对于以下结构定义, (*p)-str+struct int len; char *str; *p;A指针 str 上 BC str 指向的内容上 D二、填空题1“ . ”称为 成员 _( 分量 )_运算符,“2完成下列程序,该程序计算 10 名学生的平均成绩。#include #include struct student int num;char name20;int score;struct student stud10;int main(void)int i , s

10、um = 0 ;for(i = 0; i 10; i+)scanf(%d%s%d , studi.num,_studi.name_, studi.score);sum += studi.score;printf(aver = %d n, sum/10);return 0;3下列程序读入时间数值,将其加 1 秒后输出,时间格式为: hh: mm: ss,即小时:分钟:秒,当小时等于 24 小时,置为 0 。#includestruct int hour, minute, second; time;int main(void)scanf(%d: %d: %d,_&time.hour, &time.

11、minute, &time.second_); time.second+;if( _time.second_ = 60)_time.minute+ _;time.second = 0;if(time.minute = 60)time.hour+;time.minute = 0;if( _time.hour = 24_ )time.hour = 0;printf (%d: %d: %d n, time.hour, time.minute, time.second );return 0;4写出下面程序的运行结果 1 2 A B 。struct s1char c1, c2;int n;struct

12、s2int n;struct s1 m; m = 1, A , B , 2 ;int main(void)printf( “ %d n” , m.n, m.m.n, m.m.c1, m.m.c2);return 0;5写出下面程序的运行结果 23, wang, 98.5, wang 。struct abcint a;float b;char *c; ;int main(void)struct abc x = 23,98.5,wang;struct abc *px = &x;printf(%d, %s, %.1f, %s n, x.a, x.c, (*px).b, px-c );return 0

13、;三、程序设计题1.时间换算:用结构类型表示时间内容(时间以时、分、秒表示) ,输入一个时间数值,再输入一个秒数 n(n60) ,以 h: m: s 的格式输出该时间再过 n 秒后的时间值(超过 24 点就从 0 开始计时) 。试编写相应程序。解答:#includestruct timeint hour;int minute;int second;int main(void)int n;struct time tim;printf(Enter time:);scanf(%d%d%d,&tim.hour,&tim.minute,&tim.second);printf(Enter seconds:

14、);scanf(%d,&n);tim.hour=(tim.hour*60*60+tim.minute*60+tim.second+n)/3600%24;tim.minute=(tim.minute*60+tim.second+n)/60%60;tim.second=(n+tim.second)%60;printf(%d:%d:%d,tim.hour,tim.minute,tim.second);return 0;2.计算两个复数之积:编写程序,利用结构变量求解两个复数之积 : (3+4i) (5+6i ) 。提示:求解 (a1+a2i) (b1+b2i) ,乘积的实部为: a1 b1 - a2

15、 b2,虚部为:a1 b2 + a2 b1。解答:#includestruct complexint real,im;struct complex cmult(struct complex a,struct complex b);int main(void)struct complex a=3,4,b=5,6,c;c=cmult(a,b);printf(%d+%di)(%d+%di)=%d+%din,a.real,a.im,b.real,b.im,c.rea l,c.im);return 0;struct complex cmult(struct complex a,struct comple

16、x b)struct complex c;c.real=a.real*b.real-a.im*b.im;c.im=a.real*b.im+a.im*b.real;return c;3.平面向量加法:输入两个二维平面向量 V1=( x1, y1 )和 V2=( x2, y2)的分量,计算并输出两个向量的和向量。试编写相应程序。解答:#includestruct vectorfloat x,y;struct vector vec(struct vector v1,struct vector v2);int main(void)struct vector v1,v2,v;printf(x1 and

17、y1:);scanf(%f%f,&v1.x,&v1.y);printf(x2 and y2:);scanf(%f%f,&v2.x,&v2.y);v=vec(v1,v2);printf(v=(%f,%f),v.x,v.y);return 0;struct vector vec(struct vector v1,struct vector v2)struct vector v;v.x=v1.x+v2.x;v.y=v1.y+v2.y;return v;4.查找书籍:从键盘输入 10 本书的名称和定价并存入结构数组中,从中查找定价最高和最低的书的名称和定价,并输出。试编写相应程序。解答:#includ

18、e#define NUMBER 10struct bookchar name10;float price;int main(void)int i,maxl,minl,n;struct book testNUMBER;for(i=0;iNUMBER;i+)scanf(%s%f,testi.name,&testi.price);maxl=minl=0;for(i=1;in;i+)if(testmaxl.pricetesti.price) minl=i;printf(Max Price:%f,%sn, testmaxl.price,testmaxl.name);printf(Min Price:%f

19、,%sn, testminl.price,testminl.name);return 0;5通讯录排序:建立一个通讯录,通讯录的结构包括:姓名、生日、电话号码;其中生日又包括三项:年、月、日。编写程序,定一个嵌套的结构类型,输入n(n 10)个联系人信息, 再按照他们的年龄从大到小依次输出其信息。 试编写相应程序。解答:#includestruct dateint year;int month;int day;struct friends_listchar name10;struct date birthday;char phone15;void sort(struct friends_lis

20、t s,int n);int main(void)int i,n;struct friends_list friends10;printf(Input n:);scanf(%d,&n);printf(Input %d friends name ,birthday and phone:,n);for(i=0;in;i+)scanf(%s%d%d%d%s,friendsi.name,&friendsi.birthday.year, &friendsi.birthday.month,&friendsi.birthday.day,&friendsi.phone );sort(friends,n);fo

21、r(i=0;in;i+)printf(%s%d/%d/%d%sn,friendsi.name,friendsi.birthday.y ear,friendsi.birthday.month,friendsi.birthday.day,friendsi.phon e);return 0;void sort(struct friends_list s,int n)int i,j,index;struct friends_list temp;for(i=0;in-1;i+)index=i;for(j=i+1;jsj.birthday.year)index=j;else if(sindex.birth

22、day.year=sj.birthday.year)&(sindex.birthday.monthsj.birthday.month)index=j;else if(sindex.birthday.year=sj.birthday.year)&(sindex.birthday.month=sj.birthday.month)&(sindex.birthday. daysj.birthday.day)index=j;temp=si;si=sindex;sindex=temp;6按等级统计学生成绩:输入 10 个学生的学号、姓名和成绩,输出学生的成绩等级和不及格人数。每个学生的记录包括学号、姓名、

23、成绩和等级,要求定义和调用函数 set_grade() 根据学生成绩设置其等级, 并统计不及格人数, 等级设置: 85 100 为 A, 70 84 为 B, 60 69 为 C, 0 59 为 D。 试编写相应程序。解答:#include#define N 10struct studentsint num;char name20;int score;char grade;int set_grade(struct students *p);int main(void)struct students studentN;int i,count;printf(Input 10 students nu

24、mber,name and score: n);for(i=0;iN;i+)printf(No.%d:,i+1);scanf(%d%s%d,&studenti.num,studenti.name,&studenti.sc ore);count=set_grade(student);printf(The count (60): %dn,count);printf(The student grade:n);for(i=0;iN;i+)printf(%d %s %cn,studenti.num,studenti.name,studenti .grade);return 0;int set_grade(struct students *p)int i,n=0;for(i=0;iscore=85)p-grade=A;else if(p-score=70&p-scoregrade=B;else if(p-score=60&p-scoregrade=C;elsep-grade=D; n+;return n;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2