哈工程C语言教材课后答案(5)

2019-06-11 20:05

struct juxing {

float chang; float kuan; };

struct juxing shuru() {

struct juxing r;

printf(\ scanf(\ return r; }

void shuchu(struct juxing r) {

printf(\ printf(\}

float mianji(struct juxing r) {

return r.chang*r.kuan; }

float zhouchang(struct juxing r) {

return 2*r.chang+2*r.kuan; }

void main() {

struct juxing a; a=shuru(); shuchu(a);

printf(\

printf(\}

(3)设有学生情况登记表如表9.3所示,用选择法对该表按成绩从小到大排序。 #include struct Student{ int num;

char name[8]; char sex; int age; float score;

};

void main(){ int i,j; int min;

struct Student temp; struct Student stu[10]={{101,\{104,\\for(i=0;i<9;i++){ min = i ; for(j=i;j<9;j++){

if(stu[i].score

} }

temp=stu[min]; stu[min]=stu[i]; stu[i]=temp; }

for(i=0;i<=9;i++) {

printf(\.sex,stu[i].age,stu[i].score); }

getchar(); }

(4)某班有20名学生,每名学生的数据包括学号、姓名、3门课的成绩,从键盘输入20名学生的数据,要求打印出每门课的平均成绩,以及每名学生的平均成绩并输出最高分的学生的数据(学号、姓名、3门课、平均成绩)。

#include struct student {char num[4]; char name[8]; float score[3]; float ave; };

void main() {

struct student s1[20]; int i,j;

float avg1=0,avg2=0,avg3=0,sum=0;

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

scanf(\1],&s1[i].score[2]); for(i=0;i<20;i++) {

avg1+=s1[i].score[0]; avg2+=s1[i].score[1]; avg3+=s1[i].score[2];

s1[i].ave=(s1[i].score[0]+s1[i].score[1]+s1[i].score[2])/3; }

avg1/=20; avg2/=20; avg3/=20;

printf(\ sum=s1[0].ave; j=0;

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

if(s1[j].ave

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

printf(\

printf(\XingMing:%s, ChengJi :%f %f %f, PingJun:%f\\n\].score[2],s1[j].ave); }

(5)统计候选人总得票数。假设有5名候选人,每次输入一个得票候选人的名字,要求最后按从大到小输出每个人的得票数排名。

#include

#include struct note {

char name[20]; int count; };

void main() {

struct note notes[5]={\char tou[20]; int i,j;

for(i=0;i<20;i++) {

scanf(\ for(j=0;j<20;j++)

if(!strcmp(tou,notes[j].name)) notes[j].count++; }

for(i=0;i<4;i++){ for(j=i;j<4;j++){

if(notes[i].count

} for(i=0;i<5;i++) printf(\: %s, PiaoShu: %d\\n\}

(6)定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。

#include struct date {

int year; int month; int day; };

void main() {

struct date date1; int i,sum=0;

scanf(\ for(i=1;i

sum+=31;

if(date1.month>2) sum-=3;

if((date1.year@0==0) || (date1.year%4==0 && date1.year0!=0)) sum++;

sum+=date1.day;

printf(\}

第十章

一、单项选择 1.( B 2.( A ) 3.( B ) 4.( B ) 5.( B ) 二、阅读程序写结果

1.答案: 19 2.答案:k=2 a=4 b=3 3.答案:6 4.答案: 0 1 3 6 三、程序填空

1.答案:(1) p=a; (2) p=a+4;或p-- 2.答案:(1) p=s; (2) ++p

3.答案:(1) *k=p (2) findmax(a,10,&k) 4.答案:(1) *t!='\\0'或*t (2) *(s++)=*(t++)或*s++=*t++ (3) a,b 5.答案:(1)*p!='\\0'或*p (2)a[i++]=*p (3)a[i]='\\0';b[j]='\\0'或a[i]=b[j]='\\0' 四、程序问答 1.答案:(1) 7(2) 首地址 2.答案:(1) 12,9,6(2) 从大到小排序(降序排列)(3) 结果仍是12,9,6,但此处输出结果不是排序后的结果,输出的是输入顺序 的数字。 3.答案:(1)aace(2)把字符数组中的t删除掉(3)atace 五、程序改错 1.答案:(1)scanf(\(2)strcpy(max,str);(3)strcmp(max,str); (4)strcpy(max,str); 2.答案:(1)t=*s;(2)*(p-1)=*p;(3)*(p-1)=t; 3.答案:(1)*p=*q;(2)*q='\\0';

六、编程

以下程序均要求使用指针来实现。

1. 编程判断输入的一串字符是否为“回文”,是则输出Yes,否则输出No。所谓“回文”,是指正读和倒读都一样的字符串。如\就是回文。 #include #include void main() {

char str[100],*p,*q; int flag=1;

scanf(\ p=str;

q=str+(strlen(str)-1); while(p

if(*(p++)!=*(q--)) {flag=0; break; }

if(flag==1) printf(\else printf(\}


哈工程C语言教材课后答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:羽毛球考试复习资料 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: