#include
int year, month, day; };
int day_tab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}}; int main(void) {
struct date today;
int year, i, lp, count=0;
scanf(“%d%d%d”,&today.year, &today.month, &today.day); /*输入日期*/ /*计算相差天数*/
for(year=1990; year lp= year%4==0&& year0!=0|| year@0==0; for(i=1; i<13; i++) count+=day_tab[lp][i]; } lp= today.year%4==0&& today.year0!=0|| today.year@0==0; for(i=1; i /*求除5 后的余数,再将余数对照“三天打鱼,两天晒网”,得出最后结论 */ count=count%5; if(count>=1&&count<=3) printf(“这一天是打鱼\\n”); else printf(“这一天是晒网\\n”); return 0; } 3.利用结构变量求解两个复数之积: (3+4i) × (5+6i)。 提示:求解(a1+a2i)×(b1+b2i),乘积的实部为:a1×b1 - a2×b2,虚部为:a1×b2 + a2×b1。 解答: #include struct complex cmult(struct complex , struct complex); void main() { struct complex a={3,4}, b={5,6}, c; c=cmult(a, b); printf(“(%d+%di)×(%d+%di) =%d+%di\\n”, a.real, a.im, b.real, b.im, c.real, c.im); } struct complex cmult(struct complex a , struct complex b) { struct complex w; w.real=a.real*b.real – a.im*b.im; w.im=a.real*b.im + a.im*b.real; return w; } 4.编写程序,从键盘输入10 本书的名称和定价并存入结构数组中,从中查找定价最高和最 低的书的名称和定价,并输出。 解答: #include { char name[10]; float price; }; int main() { int i,maxl,minl; struct book test[NUMBER]; printf(“Input 10 book?s name and price\\n”); for(i=0; i scanf(“%s%f”, test[i].name, &test[i].price); maxl=minl=0; for(i=1; i { if(test[maxl].price printf(“Max Price: %f, %s\\n”, test[maxl].price, test[maxl].name); printf(“Min Price: %f, %s\\n”, test[minl].price, test[minl].name); return 0; } 5.建立一个通讯录结构,包括姓名、生日、电话号码以及住址。编写程序,输入n(n≤10) 个联系人信息,按照年龄从大到小依次显示他们的信息。 解答: #include char name[10]; /* 姓名 */ int birthday; /* 生日 */ char phone[15]; /* 电话号码 */ char address[50]; /* 住址 */ }; void sort(struct friends_list s[], int n) /*按生日日期从小到大排序*/ { int i, j; struct friends_list temp; for(i=1; i if(s[j].birthday > s[j+1].birthday) {temp=s[j]; s[j]=s[j+1]; s[j+1]=temp; } } int main(void) { int i, n; struct friends_list friends[10]; scanf(“%d”, &n); for(i=0; i scanf(\friends[i].address); /*按年龄从大到小排序*/ sort(friends, n); for(i=0;i printf(\friends[i].address); return 0; } 6.输入10 个学生的学号、姓名和成绩,输出学生的成绩等级和不及格人数。每个学生的记 录包括学号、姓名、成绩和等级,要求定义和调用函数set_grade()根据学生成绩设置其等 级,并统计不及格人数,等级设置:85-100 为A,70-84 为B,60-69 为C,0-59 为D。 解答: /* 设置学生成绩等级并统计不及格人数(结构指针作为函数参数) */ #include char name[20]; int score; char grade; }; int set_grade(struct student *p); int main(void) { struct student stu[N], *ptr; int i, count; ptr = stu; printf(\for(i = 0; i < N; i++){ printf(\提示输入第i 个同学的信息 */ scanf(\} count = set_grade(ptr); printf(\printf(\for(i = 0; i < N; i++) printf(\return 0; } int set_grade(struct student *p) { int i, n = 0; for(i = 0; i < N; i++, p++){ if(p->score >= 85) p->grade = 'A'; else if(p->score >= 70) p->grade = 'B'; else if(p->score >= 60) p->grade = 'C'; else{ p->grade = 'D'; n++; } } return n; } 7.在本章例题的基础上编写一个学生信息综合管理程序,要求能够实现对学生信息的新建、 输出、修改、查询、按平均成绩排序等功能。 解答: 例9-1 中的函数new_student()、search_student()、output_student()分别实现了学生信息的 新建、查询和输出; 例9-3 实现了按学生平均成绩排序,将其排序功能程序封装在自定义函数sort(struct student students[ ], int n)中; 例9-3 中的函数update_score()实现了学生成绩修改; 将这5 个函数放在一个程序文件中,主函数在例9-1 的基础上修改如下: #include struct student{ /*学生信息结构类型定义*/ int num; /* 学号 */ char name[10]; /* 姓名 */ int computer, english, math; /* 三门课程成绩 */ double average; /* 个人平均成绩 */ }; int Count = 0; /* 全局变量,记录当前学生总数 */ int main(void) { int choice, num, course, score; struct student students[MaxSize]; /* 定义学生信息结构数组 */ do{ /* 用户操作界面 */ printf(\scanf(\switch(choice){ case 1: new_student(students); break; case 2: printf(“Please input the student?s number:”); scanf(“%d”, &num); search_student(students, num); break; case 3: output_student(students); break; case 4: sort(students, Count); break; case 5: printf(\scanf(“%d”, &num); printf(\scanf(“%d”, &course); printf(\scanf(“%d”, &score); update_score(students, Count, num, course, score); break; case 0: break; } } while(choice != 0); printf(\return 0; } 3 实验指导教材参考答案 一、调试示例 改正下列程序中的错误。输入一个正整数n(3≤n≤10),再输入n 个职员的信息(表 9.1),要求输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。(源程 序error09_1.c) 表9.1 工资表 姓 名 基本工资 浮动工资 支出 zh ao 240.00 400.00 75.00 qi an 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序设计及实验指导练习及习题参考答案(8--10)(6)在线全文阅读。
相关推荐: