C语言第十一章习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11.1
#include
struct date
{
int year;
int month;
int day;
}date;
void main()
{
static int day_table[]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,day_sum;
printf("输入年,月,日\n\n");
scanf("%d%d%d",&date.year,&date.month,&date.day);
day_sum=0;
for(i=0;i day_sum+=day_table[i]; day_sum+=date.day; if((date.year%4==0)&&(date.year%100!=0)||(date.year%400==0)&&(date.m onth>2)) day_sum+=1; printf("\n\n该日在本年中是第%d天\n\n",day_sum); } 11.2 #include struct date { int year; int month; }date; void main() { int days(int y,int m,int d); printf("输入年,月,日\n\n"); scanf("%d%d%d",&date.year,&date.month,&date.day); printf("\n\n该日在本年中是第%d天 \n\n",days(date.year,date.month,date.day)); } int days(int y,int m,int d) { static int day_table[]={31,28,31,30,31,30,31,31,30,31,30,31}; int i,day_sum; day_sum=0; for(i=0;i day_sum+=day_table[i]; day_sum+=date.day; if((y%4==0)&&(y%100!=0)||(y%400==0)&&(m>2)) day_sum+=1; return day_sum; } 11.3 #include #define N 2 struct stu { int num; char name[10]; float score[3]; }stu[N]; void main() { void print(struct stu *p); int i,j; struct stu *p; p=stu; for(i=0;i { printf("\n\n输入第%d个学生的成绩\n\n",i+1); printf("输入学号:"); scanf("%d",&((p+i)->num)); printf("\n输入姓名:"); scanf("%s",(p+i)->name); for(j=0;j<3;j++) { printf("\n输入成绩%d:",j+1); scanf("%f",&((p+i)->score[j])); } } print(stu); } void print(struct stu *p) { int i,j; printf("学号姓名成绩1 成绩2 成绩3\n\n"); for(i=0;i { printf("%-8d%-8s",(p+i)->num,(p+i)->name); for(j=0;j<3;j++) { printf("%-8f",(p+i)->score[j]); } printf("\n\n"); } } 11.4 #include #define N 2 struct stu { int num; char name[10]; float score[3]; }stu[N]; void main() { void input(struct stu *p); void print(struct stu *p); struct stu *p; p=stu; input(p); print(p); } void input(struct stu *p) { int i,j; for(i=0;i { printf("\n\n输入第%d个学生的成绩\n\n",i+1); printf("输入学号:"); scanf("%d",&((p+i)->num)); printf("\n输入姓名:"); scanf("%s",(p+i)->name); for(j=0;j<3;j++) { printf("\n输入成绩%d:",j+1); scanf("%f",&((p+i)->score[j])); } } } void print(struct stu *p) { int i,j; printf("学号姓名成绩1 成绩2 成绩3\n\n"); for(i=0;i { printf("%-7d%-7s",(p+i)->num,(p+i)->name); for(j=0;j<3;j++) { printf("%-9.2f",(p+i)->score[j]); }