C程序设计第四版谭浩强习题例题第9章.docx

上传人:b****8 文档编号:10155110 上传时间:2023-02-08 格式:DOCX 页数:48 大小:158.25KB
下载 相关 举报
C程序设计第四版谭浩强习题例题第9章.docx_第1页
第1页 / 共48页
C程序设计第四版谭浩强习题例题第9章.docx_第2页
第2页 / 共48页
C程序设计第四版谭浩强习题例题第9章.docx_第3页
第3页 / 共48页
C程序设计第四版谭浩强习题例题第9章.docx_第4页
第4页 / 共48页
C程序设计第四版谭浩强习题例题第9章.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

C程序设计第四版谭浩强习题例题第9章.docx

《C程序设计第四版谭浩强习题例题第9章.docx》由会员分享,可在线阅读,更多相关《C程序设计第四版谭浩强习题例题第9章.docx(48页珍藏版)》请在冰豆网上搜索。

C程序设计第四版谭浩强习题例题第9章.docx

C程序设计第四版谭浩强习题例题第9章

第9章

例9.1

#include

intmain()

{

structStudent

{

longintnum;

charname[20];

charsex;

charaddr[20];

}a={10101,"LiLin",'M',"123BeijingRoad"};

printf("No.%ld\nname:

%s\nsex:

%c\naddress:

%s\n",a.num,a.name,a.sex,a.addr);

return0;

}

例9.2

#include

intmain()

{

structStudent

{

intnum;

charname[20];

floatscore;

}student1,student2;

scanf("%d%s%f",&student1.num,&student1.name,&student1.score);

scanf("%d%s%f",&student2.num,&student2.name,&student2.score);

printf("Thehigherscoreis:

\n");

if(student1.score>student2.score)

printf("%d%s%6.2f\n",student1.num,student1.name,student1.score);

elseif(student1.score

printf("%d%s%6.2f\n",student2.num,student2.name,student2.score);

else

{

printf("%d%s%6.2f\n",student1.num,student1.name,student1.score);

printf("%d%s%6.2f\n",student2.num,student2.name,student2.score);

}

return0;

}

例9.3

#include

#include

structPerspon

{

charname[20];

intcount;

}leader[3]={"Li",0,"Zhang",0,"Sun",0};

intmain()

{

inti,j;

charleader_name[20];

for(i=1;i<=10;i++)

{

scanf("%s",leader_name);

for(j=0;j<3;j++)

if(strcmp(leader_name,leader[j].name)==0)leader[j].count++;

}

printf("\nResult:

\n");

for(i=0;i<3;i++)

printf("%5s:

%d\n",leader[i].name,leader[i].count);

return0;

}

例9.4

#include

structStudent

{

intnum;

charname[20];

floatscore;

};

intmain()

{

structStudentstu[5]={{10101,"Zhang",78},{10103,"Wang",98.5},{10106,"Li",86},

{10108,"Ling",73.5},{10110,"Sun",100}};

structStudenttemp;

constintn=5;

inti,j,k;

printf("Theorderis:

\n");

for(i=0;i

{

k=i;

for(j=i+1;j

if(stu[j].score>stu[k].score)

k=j;

temp=stu[k];

stu[k]=stu[i];

stu[i]=temp;

}

for(i=0;i

printf("%6d%8s%6.2f\n",stu[i].num,stu[i].name,stu[i].score);

printf("\n");

return0;

}

例9.5

#include

#include

intmain()

{

structStudent

{

longnum;

charname[20];

charsex;

floatscore;

};

structStudentstu_1;

structStudent*p;

p=&stu_1;

stu_1.num=10101;

strcpy(stu_1.name,"LiLin");

stu_1.sex='M';

stu_1.score=89.5;

printf("No.:

%ld\nname:

%s\nsex:

%c\nscore:

%5.1f\n",stu_1.num,stu_1.name,stu_1.sex,stu_1.score);

printf("\n");

printf("No.:

%ld\nname:

%s\nsex:

%c\nscore:

%5.1f\n",(*p).num,(*p).name,(*p).sex,(*p).score);

return0;

}

例9.6

#include

structStudent

{

intnum;

charname[20];

charsex;

intage;

};

structStudentstu[3]={{10101,"LiLin",'M',18},{10102,"ZhangFang",'M',19},{10104,"WangMin",'F',20}};

intmain()

{

structStudent*p;

printf("No.Namesexage\n");

for(p=stu;p

printf("%5d%-20s%2c%4d\n",p->num,p->name,p->sex,p->age);

return0;

}

例9.7

#include

#defineN3

structStudent

{

intnum;

charname[20];

floatscore[3];

floataver;

};

intmain()

{

voidinput(structStudentstu[]);

structStudentmax(structStudentstu[]);

voidprint(structStudentstud);

structStudentstu[N],*p=stu;

input(p);

print(max(p));

return0;

}

voidinput(structStudentstu[])

{

inti;

printf("请输入各学生的信息:

学号、姓名、三门课成绩:

\n");

for(i=0;i

{

scanf("%d%s%f%f%f",&stu[i].num,&stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);

stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;

}

}

structStudentmax(structStudentstu[])

{

inti,m=0;

for(i=0;i

if(stu[i].aver>stu[m].aver)m=i;

returnstu[m];

}

voidprint(structStudentstud)

{

printf("\n成绩最高的学生是:

\n");

printf("学号:

%d\n姓名:

%s\n三门成绩:

%5.1f,%5.1f,%5.1f\n平均成绩:

%6.2f\n",stud.num,stud.name,stud.score[0],stud.score[1],stud.score[2],stud.aver);

}

例9.8

#include

#defineN3

structStudent

{

intnum;

floatscore;

structStudent*next;

};

intmain()

{

structStudenta,b,c,*head,*p;

a.num=10101;a.score=89.5;

b.num=10103;b.score=90;

c.num=10107;c.score=85;

head=&a;

a.next=&b;

b.next=&c;

c.next=NULL;

p=head;

do

{

printf("%ld%5.1f\n",p->num,p->score);

p=p->next;

}while(p!

=NULL);

return0;

}

例9.9

#include

#include

#defineLENsizeof(structStudent)

structStudent

{

longnum;

floatscore;

structStudent*next;

};

intn;

structStudent*creat(void)

{

structStudent*head;

structStudent*p1,*p2;

n=0;

p1=p2=(structStudent*)malloc(LEN);

scanf("%ld,%f",&p1->num,&p1->score);

head=NULL;

while(p1->num!

=0)

{

n=n+1;

if(n==1)head=p1;

elsep2->next=p1;

p2=p1;

p1=(structStudent*)malloc(LEN);

scanf("%ld,%f",&p1->num,&p1->score);

}

p2->next=NULL;

return(head);

}

intmain()

{

structStudent*pt;

pt=creat();

printf("\nnum:

%ld\nscore:

%5.1f\n",pt->num,pt->score);

return0;

}

例9.10

#include

#include

#defineLENsizeof(structStudent)

structStudent

{

longnum;

floatscore;

structStudent*next;

};

intn;

structStudent*creat()

{

structStudent*head;

structStudent*p1,*p2;

n=0;

p1=p2=(structStudent*)malloc(LEN);

scanf("%ld,%f",&p1->num,&p1->score);

head=NULL;

while(p1->num!

=0)

{

n=n+1;

if(n==1)head=p1;

elsep2->next=p1;

p2=p1;

p1=(structStudent*)malloc(LEN);

scanf("%ld,%f",&p1->num,&p1->score);

}

p2->next=NULL;

return(head);

}

voidprint(structStudent*head)

{

structStudent*p;

printf("\nNow,These%drecordsare:

\n",n);

p=head;

if(head!

=NULL)

do

{

printf("%ld%5.1f\n",p->num,p->score);

p=p->next;

}while(p!

=NULL);

}

voidmain()

{

structStudent*head;

head=creat();

print(head);

}

例9.11

#include

struct

{

intnum;

charname[10];

charsex;

charjob;

union

{

intclas;

charposition[10];

}category;

}person[2];

intmain()

{

inti;

for(i=0;i<2;i++)

{

printf("pleaseenterthedataofperson:

\n");

scanf("%d%s%c%c",&person[i].num,&person[i].name,&person[i].sex,&person[i].job);

if(person[i].job=='s')

scanf("%d",&person[i].category.clas);

elseif(person[i].job=='t')

scanf("%s",&person[i].category.position);

elseprintf("Inputerror!

");

}

printf("\n");

printf("No.namesexjobcalss/position\n");

for(i=0;i<2;i++)

{

if(person[i].job=='s')

printf("%-6d%-10s%-4c%-4c%-10d\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.clas);

else

printf("%-6d%-10s%-4c%-4c%-10s\n",person[i].num,person[i].name,person[i].sex,person[i].job,person[i].category.position);

}

return0;

}

例9.12

#include

intmain()

{

enumColor{red,yellow,blue,white,black};

enumColori,j,k,pri;

intn,loop;

n=0;

for(i=red;i<=black;i++)

for(j=red;j<=black;j++)

if(i!

=j)

{

for(k=red;k<=black;k++)

if(k!

=i&&k!

=j)

{

n=n+1;

printf("%-4d",n);

for(loop=1;loop<=3;loop++)

{

switch(loop)

{

case1:

pri=i;break;

case2:

pri=j;break;

case3:

pri=k;break;

default:

break;

}

switch(pri)

{

casered:

printf("%-10s","red");break;

caseyellow:

printf("%-10s","yellow");break;

caseblue:

printf("%-10s","blue");break;

casewhite:

printf("%-10s","white");break;

caseblack:

printf("%-10s","black");break;

default:

break;

}

}

printf("\n");

}

}

printf("\ntotal:

%d\n",n);

return0;

}

习题(本人很懒,本次作业很多都没写scanf输入数据)

1.

#include

intmain()

{

structDate

{

intyear;

intmonth;

intday;

}a={2015,6,15};

intb[]={31,28,31,30,31,30,31,31,30,31,30,31};

inti,leap=0,sum=0;

if(a.month>2)

{

for(i=0;i

sum+=b[i];

if(a.year%4==0&&a.year%100!

=0||a.year%400==0)

leap=1;

sum+=a.day+leap;

}

else

{

for(i=0;i

sum+=b[i];

sum+=a.day;

}

printf("%d年%d月%d日是%d年的第%d天.\n",a.year,a.month,a.day,a.year,sum);

}

2.

#include

structDate

{

intyear;

intmonth;

intday;

};

intmain()

{

intdays(structDatec);

structDatea={2015,6,15};

intsum;

sum=days(a);

printf("%d年%d月%d日是%d年的第%d天.\n",a.year,a.month,a.day,a.year,sum);

}

intdays(structDatec)

{

intb[]={31,28,31,30,31,30,31,31,30,31,30,31};

inti,leap=0,s=0;

if(c.month>2)

{

for(i=0;i

s+=b[i];

if(c.year%4==0&&c.year%100!

=0||c.year%400==0)

leap=1;

s+=c.day+leap;

}

else

{

for(i=0;i

s+=b[i];

s+=c.day;

}

return(s);

}

3.

#include

structStudent

{

longnum;

charname[10];

floatscore[3];

};

voidmain()

{

voidprint(structStudent*q);

structStudenta[5]={{10010,"John",88,89,90},{10012,"Jimmy",59,68,47},{10015,"Dorothy",89,78,99},{10020,"Moriarty",100,99.5,95},{10026,"Grace",78,60,75}};

structStudent*p=a;

print(p);

}

voidprint(structStudent*q)

{

inti;

for(i=0;i<5;i++)

{

printf("num:

%ld,name:

%s,scores:

%5.1f,%5.1f,%5.1f\n",q->num,q->name,q->score[0],q->score[1],q->score[2]);

q++;

}

}

4.

#include

structStudent

{

longnum;

charname[10];

floatscore[3];

};

intmain()

{

voidprint(structStudent*q);

voidinput(structStudent*q);

structStudenta[5];

structStudent*p=a;

input(p);

print(p);

return0;

}

voidinput(structStudent*q)

{

inti;

for(i=0;i<5;i++)

{

scanf("%ld%s%f%f%f",&q->num,&q->name,&q->score[0],&q->score[1],&q->score[2]);

q++;

}

}

voidprint(structStudent*q)

{

inti;

for(i=0;i<5;i++)

{

printf("num:

%ld,name:

%s,scores:

%5.1f,%5.1f,%5.1f\n",q->num,q->name,q->score[0],q->score[1],q->score[2]);

q++;

}

}

5.

#include

structStudent

{

longnum;

charname[10];

floatscore[3];

floataver;

};

intmain()

{

voidinput(structStudent*q);

voidprint(structStudent*q);

structStudenta[10];

structStudent*p=a;

inti,j=0,k=0;

input(p);

print(p);

for(i=0;i<=10;i++)

if(k

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1