第一范文网 - 专业文章范例文档资料分享平台

C语言程序设计答案(第三版)杜友福版

来源:用户分享 时间:2025/5/20 22:44:52 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

char name[8]; float score[3]; float avr; }stu[N]; void main() {

int i,j,maxi; float sum,max,average; for(i=0;i

printf(\ printf(\

scanf(\ printf(\

scanf(\ for(j=0;j<3;j++) {

printf(\

scanf(\ } } average=0; max=0; maxi=0; for(i=0;i

sum=0; for(j=0;j<3;j++) sum+=stu[i].score[j]; stu[i].avr=sum/; average+=stu[i].avr; if(sum>max) { max=sum; maxi=i; } } average/=N; printf(\ No. name scorel score2 for(i=0;i

score3 average\\n\ printf(\ %\\n\ } printf(\ printf(\stu[maxi].num,stu[maxi].name); printf(\stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2], stu[maxi].avr); }

4.设单向链表head1和head2已建立。编写将单向链表head2连接到单向链表head1之后的函数,以head1返回,如图所示。 /* 结点结构 Node */ struct Node {

int data;

struct Node *next; };

提示:函数原型为:struct Node *link(struct Node *head1, struct Node *head2);

struct Node *link(struct Node *head1,struct Node *head2) {

struct Node *p,*head0; p=head1; head0=head1; while(p->next!=NULL) p=p->next; p->next=head2; return head0; }

5.有两个链表a 和 b。设结点中包括学号、姓名。从a链表中删除去与b链表中有相同学号的那些结点。 #include <> #include <> #define LA 4 #define LB 5 struct student {

int num;

char name[8];

struct student *next; }a[LA],b[LB]; void main() {

struct student a[LA]={{101,\{105,\

struct student b[LB]={{103,\{107,\ int i;

struct student *p,*p1,*p2,*head1,*head2; head1=a; head2=b; printf(\ \\n\

for(p1=head1,i=1;i<=LA;i++) {

if(inext=a+i;

else p1->next=NULL;

printf(\ if(inext; }

printf(\

for(p2=head2,i=1;i<=LB;i++) {

if(inext=b+i;

else p2->next=NULL;

printf(\ if(inext; }

p1=head1;

while(p1!=NULL) { p2=head2;

while((p1->num!=p2->num)&&(p2->next!=NULL)) p2=p2->next; if(p1->num==p2->num) if(p1==head1)

head1=p1->next; else

{ p->next=p1->next;p1=p1->next; } else

{ p=p1;p1=p1->next; } }

printf(\ p1=head1;

while(p1!=NULL) {

printf(\ \\n\ p1=p1->next; }

}

习题十二 一、选择题

1~8: C B D B C A A B

二、填空题 1. 32 2.__ a&0__

3. _ x|0xFF00_ 4. 64

三、编程题

1.取一个整数a从右端开始的4~7位。 #include <> void main() {

int num,mask;

printf(\ scanf(\ printf(\

num >>= 4; /* 右移4位,将4~7位移到低4位上 */

mask=~(~0<<4); /* 间接构造1个低4位为1、其余各位为0的整数 */ printf(\ }

2.编一个将十六进制数转换成二进制形式显示的程序。 #include <> void main() {

int num,mask,i;

printf(\scanf(\

mask=1<<15; /* 构造1个最高位为1、其余各位为0的整数(屏蔽字) */ printf(\for(i=1;i<=16;i++) {

putchar(num&mask'1':'0'); /* 输出最高位的值(1/0) */ num<<=1; /* 将次高位移到最高位上 */ if(i%4==0)putchar(','); /* 四位一组,用逗号分开 */ }

printf(\}

习题十三

搜索更多关于: C语言程序设计答案(第三版)杜友福版 的文档
C语言程序设计答案(第三版)杜友福版.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7azev2hfz39uewu2s0h44x67j2pwjr01e6c_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top