c语言第二版第八章课后作业答案,C语言程序设计应用第八章习题答案.doc

PAGE

练习与思考 8

8.1 选择题

(1)有以下定义及语句,则对数组a元素的不正确引用的表达式是( )。

int a[4][5];*p[2],j;

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

p[j]=a[j];

A)p[0][0] B)*(a+3)[4]

C)*(p[1]+2) D)*(&a[0][0]+3)

(2) 有以下程序#include

struct tt

{int x;struct tt *y;} *p;

struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};

main()

{ int i;

p=a;

for(i=1;i<=2;i++) {printf("%d,",p->x); p=p->y;}

}

程序的运行结果是( )。A)20,30, B)30,17 C)15,30, D)20,15,

8.2 填空题

(1) 以下程序段的输出结果是( )。

#include

#define F(a,b) printf("%d,%d\n",a,b)

void main()

{

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

F(a,a[0]);

F(*a,*(a+0));

F(a[1],*(a+1));

F(*a[1],**(a+1));

F(*(a[1]+1),*(*(a+1)+1));

F(*a,**a);

}

(2) 以下程序的运行时,输入i=1,j=2(回车)结果是( )。

#include

void main()

{

int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

int (*p)[4],i,j;

p=a;

scanf("i=%d,j=%d",&i,&j);

printf("a[%d][%d]=%d\n",i,j,*(*(p+i)+j));

}

(3) 以下程序运行后的输出结果是( )。

struct NODE

{ int k;

struct NODE *link;

};

main()

{ struct NODE m[5],*p=m,*q=m+4;

int i=0;

while(p!=q){

p->k=++i; p++;

q->k=i++; q--;

}

q->k=i;

for(i=0;i<5;i++) printf("%d",m[i].k);

printf("\n");

}

(4) 以下程序运行后的输出结果是( )。

struct NODE

{ int num; struct NODE *next;

} ;

main()

{ struct NODE s[3]={{1, '\0'},{2, '\0'},{3, '\0'}}, *p, *q, *r;

int sum=0;

s[0].next=s+1; s[1].next=s+2; s[2].next=s;

p=s; q=p->next; r=q->next;

sum+=q->next->num; sum+=r->next->next->num;

printf("%d\n", sum);

}

(5) 以下程序的输出结果是( )。#include

main()

{char *s1,*s2,m;

s1=s2=(char*)malloc(sizeof(char));

*s1=15;

*s2=20;

m=*s1+*s2;

printf("%d\n",m);

}

8.3 编程题

(1) 27人围成一个圈,从第1个人开始顺序报号,凡报号为3和3的倍数者退出圈子,找出最后留在圈子中的人原来的序号(用链表方式实现)。

8.4 简答题

(1) 调试运行下列程序,并回答问题。这个简答题是不是就是想通过锻炼学生的调试能力出的题?调试好的程序我没有附上

这个简答题是不是就是想通过锻炼学生的调试能力出的题?

调试好的程序我没有附上

int max, n;

main ( )

{

int a[4][4], j, k;

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

for (k=0; k<4; k++)

scanf("%d" ,&a[j][k]);

printf ("\n");

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

printf ("%d %d %d %d\n" ,a[j][0], a[j][1] , a[j][2], a[j][3] );

maxgs(a,4);

printf ("max=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值