1-8章习题参考答案全

内容发布更新时间 : 2025/7/4 21:28:08星期一 下面是文章的全部内容请认真阅读。

#include void main()

{ int a[4][4],i,j,s=0,m=0;

float n=0;

for(i=0;i<4;i++) for(j=0;j<4;j++) a[i][j]=3*i+2*j-6; printf(\原始数组为:\\n\for(i=0;i<4;i++) { for(j=0;j<4;j++)

printf(\printf(\}

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

s+=a[1][j];

printf(\第二行4元素累加和为:%d\\n\for(j=0;j<4;j++)

n+=a[j][3];

printf(\第四列4元素平均值为:%.2f\\n\for(i=0;i<4;i++) if(a[i][i]<0) m++;

printf(\主对角线4元素中负数的个数为:%d\\n\}

10.约瑟夫环问题:编号为1,2,3,...,n的n个人按顺时针方向围坐一圈,每人持有一个正整数密码。一开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针报数,报到m时停止,报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计程序求出出列顺序。

分析:设整型数组a中保存n个人的密码,对应的人出列后,数组元素置0作为标志。顺时针确定下一个人的方法,可将下标加1,再对n求余。

#include #define N 100 main()

{ int a[100];

int i,j,m,n,k=0;

printf(\输入人数n和任选的一个正整数m:\ scanf(\

printf(\输入n个人的密码: \ for (i=0;i

scanf(\ printf(\出列顺序为: \ for(i=0;i

{ j=1;

while(j

{ while(a[k]==0) /*跳过已出列的人*/ k=(k+1)%n; j++;

k=(k+1)%n; }

while(a[k]==0) /*跳过已出列的人*/ k=(k+1)%n; printf(\ m=a[k];

a[k]=0; } }

第7章习题 一、选择题

1 A 2 D 3 D 4 B 5 A 6 D 7 C 8 D 9 B 10 A 二 填空题

1. main() 2. main() 3.函数首部

4. 解决函数必须“定义在前,使用在后”的原则问题 5. int

6. 定义 调用

7. 地址传递 值传递 8. return void

9. void f(float a,float b) float f(float a,float b) 10. static

三 程序分析题

1. a=48 2. 8,17 3. 2721 4. BASIC C

COBOL

FORTRAN PASCAL Smalltalk 5. 6

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi