C语言程序设计(第3版)何钦铭 颜 晖 第9章结构(10页).doc
《C语言程序设计(第3版)何钦铭 颜 晖 第9章结构(10页).doc》由会员分享,可在线阅读,更多相关《C语言程序设计(第3版)何钦铭 颜 晖 第9章结构(10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C语言程序设计(第3版)何钦铭 颜 晖 第9章 结构-第 10 页第9章 结构【练习9-1】定义一个能够表示复数的结构类型,一个复数包括实数与虚数两个部分。解答:struct complex float real; float imaginary;【练习9-2】人的出生日期由年、月、日组成,请在例 9-1 中的通讯录结构中增加一个成员:出生日期,用嵌套定义的方式重新定义该结构类型。解答:struct dateint year;int month;int day;struct studentint num;char name10;struct date birthday; int comput
2、er,english,math;double average;【练习9-3】例 9-1 中,如果要计算的是三门课程的课程平均成绩,应该如何改写程序?解答:#includestruct student int 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 st
3、udents number, name 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,&puter); math_sum+=s1.math; english_sum+=s1.english; computer_sum+=puter; printf(math_ave:%.2lfnenglish_ave:%.2lfncomputer_ave:%.2lfn
4、,math_sum/n,english_sum/n,computer_sum/n); return 0;【练习9-4】定义一个包含 5 名学生信息的结构数组,并对该结构数组的所有元素进行初始化。解答:struct student int num;char name10; int computer, english, math; struct student s5=30101, 张一,69,75,84 ,30132, 李二,80,85,90,40231, 王三,71,91,74,40754, 赵四,65,76,87,50426, 刘五,81,92,73;【练习9-5】参考例 9-2,输入并保存
5、10 个学生的成绩信息,分别输出平均成绩最高和最低的学生信息。解答:#includestruct student int 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,&student
6、si.num); printf(name:); scanf(%s,&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+puter)/3.0; max=min=0; for(i=1;in;i+) if(studentsmax.
7、averagestudentsi.average) min=i; printf(max_average_infortmation:n);printf(number:%d,name:%s,math:%d,english:%d,computer:%d,average:%.2lfn,studentsmax.num,studentsmax.name,studentsmax.math,studentsmax.english,puter,studentsmax.average); printf(min_average_information:n);printf(number:%d,name:%s,math
8、:%d,english:%d,computer:%d,average:%.2lfn,studentsmin.num,studentsmin.name,studentsmin.math,studentsmin.english, puter, studentsmin.average); return 0;【练习9-6】定义一个 struct student 类型的结构指针,用其实现一个学生信息的输入和输出。解答:struct student /* 学生信息结构定义 */int num; /* 学号 */char name10; /* 姓名 */int computer, english, math
9、 ; /* 三门课程成绩 */double average; /* 个人平均成绩 */s, *p;p = &s;scanf(%d%s%d%d%d, &p-num, p-name, &p-math, &p-english, &p-computer);【练习9-7】改写例 9-3 中的函数 update_score( ),将第一个形参改为结构数组形式。解答:int update_score(struct student s,int n,int num,int course,int score) int i,pos; for(i=0;in;i+) if(si.num=num) break; if(i
10、data.a Dp.data.a5对于以下结构定义,(*p)-str+中的+加在 D 。struct int len; char *str; *p;A 指针 str 上 B指针 p 上Cstr 指向的内容上 D语法错误二、填空题1“.”称为 成员_(分量)_运算符,“-”称为_指向_运算符。2完成下列程序,该程序计算 10 名学生的平均成绩。#include #include struct student int num;char name20; int score;struct student stud10;int main(void)int i , sum = 0 ;for(i = 0;
11、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.minute, &time.second_)
12、;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 s1 char c1, c2; int n;struct s2 int n; str
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计第3版何钦铭 第9章 结构10页 语言程序设计 结构 10
限制150内