C语言程序设计教程 第七章 课后习题参考答案.docx
- 文档编号:11911666
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:20
- 大小:16.76KB
C语言程序设计教程 第七章 课后习题参考答案.docx
《C语言程序设计教程 第七章 课后习题参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程 第七章 课后习题参考答案.docx(20页珍藏版)》请在冰豆网上搜索。
C语言程序设计教程第七章课后习题参考答案
P1983求主、副对角线元素之和
#include
#defineM4
#defineN4
intmain()
{
inta[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
inti,j,m=0,n=0;
for(i=0;i { for(j=0;j { printf("%4d",a[i][j]); } printf("\n"); } for(i=0;i { for(j=0;j { if(i==j) m+=a[i][j]; } } printf("主对角线元素之和为: %d\n",m); for(i=0;i { for(j=0;j { if(i+j==3) n+=a[i][j]; } } printf("副对角线元素之和为: %d\n",n); return0; } P1984数组逆序存放 #include voidinput(inta[],intn); voidreverse(inta[],intn); intmain() { inta[5]; intsize=sizeof(a)/sizeof(int); input(a,size); reverse(a,size); printf("\n"); return0; } voidinput(inta[],intn) { inti; printf("请输入%d个整数: \n",n); for(i=0;i { scanf("%d",&a[i]); } } voidreverse(inta[],intn) { inti,t; for(i=0;i { t=a[i]; a[i]=a[5-i-1]; a[5-i-1]=t; } for(i=0;i { printf("%-3d",a[i]); } } 1984数组逆序存放 (2) #include voidreverse(inta[],intn); voidprint(inta[],intn); intmain() { inta[]={1,2,3,4,5,11,16,13}; intsize=sizeof(a)/sizeof(int); print(a,size); reverse(a,size); printf("\n"); return0; } voidprint(inta[],intn) { inti; printf("原: \n"); for(i=0;i { printf("%-4d",a[i]); } printf("\n"); } voidreverse(inta[],intn) { intt,i; printf("逆序: \n"); for(i=0;i { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } for(i=0;i { printf("%-4d",a[i]); } } P1985对称矩阵 #include voidprint(inta[][3],introws,intcols); intfun(inta[][3],introws,intclos); voidmain() { inta[3][3],i,j; printf("input: \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } print(a,3,3); if(fun(a,3,3)==0) printf("此矩阵是对称矩阵\n"); else printf("此矩阵不是对称矩阵\n"); } voidprint(inta[][3],introws,intcols) { inti,j; for(i=0;i { for(j=0;j printf("%-4d",a[i][j]); printf("\n"); } } intfun(inta[][3],introws,intclos) { inti,j,x=0; for(i=0;i { for(j=0;j { if(a[i][j]! =a[j][i])x++; } } if(x>0)return1; elsereturn0; } P1985对称矩阵 (2) #include #defineM3 #defineN3 voidprint(inta[][N],intm,intn); intyan(inta[][N],intm,intn); intmain() { inta[][N]={1,2,3,4,5,6,7,8,9}; print(a,M,N); if(yan(a,M,N)) printf("YES\n"); else printf("NO\n"); return0; } voidprint(inta[][N],intm,intn) { inti,j; for(i=0;i { for(j=0;j { printf("%-4d",a[i][j]); } printf("\n"); } } intyan(inta[][N],intm,intn) { inti,j,x=0; for(i=0;i { for(j=0;j { if(a[i][j]! =a[j][i])x++; } } if(x>0)//不是对称矩阵 return0; return1; } P1986矩阵求和 #include #defineM3 #defineN3 voidinput(inta[][N],intm,intn); voidsum(inta[][N],intb[][N],intm,intn); voidprint(inta[][N],intm,intn); intmain() { inta[M][N]; intb[M][N]; printf("请输入%d*%d阶矩阵A: \n",M,N); input(a,M,N); print(a,M,N); printf("请输入%d*%d阶矩阵B: \n",M,N); input(b,M,N); print(b,M,N); printf("A+B=\n"); sum(a,b,M,N); return0; } voidinput(inta[][N],intm,intn) { inti,j; for(i=0;i { for(j=0;j { scanf("%d",&a[i][j]); } } } voidprint(inta[][N],intm,intn) { inti,j; for(i=0;i { for(j=0;j { printf("%4d",a[i][j]); } printf("\n"); } } voidsum(inta[][N],intb[][N],intm,intn) { inti,j; intc[M][N]; for(i=0;i { for(j=0;j { c[i][j]=a[i][j]+b[i][j]; } } print(c,M,N); } P1987模拟骰子投掷 #include #include #defineN10000 intmain() { inta[N],i; doublex=0,y=0,z=0,l=0,m=0,n=0; for(i=0;i { a[i]=rand()%6+1; if(a[i]==1) x++; if(a[i]==2) y++; if(a[i]==3) z++; if(a[i]==4) l++; if(a[i]==5) m++; if(a[i]==6) n++; } printf("出现1的概率为: %lf\n",x/N); printf("出现2的概率为: %lf\n",y/N); printf("出现3的概率为: %lf\n",z/N); printf("出现4的概率为: %lf\n",l/N); printf("出现5的概率为: %lf\n",m/N); printf("出现6的概率为: %lf\n",n/N); return0; } P671最大奇、偶数 #include #defineM10 intmain() { inti,a[M]; intmax1=-1,max2=-1; for(i=0;i { printf("请输入第%d个正整数: ",i+1); scanf("%d",&a[i]); } for(i=0;i { if(a[i]%2! =0) { if(a[i]>max1) max1=a[i]; } else { if(a[i]>max2) max2=a[i]; } } if(max1==-1) printf("没有奇数\n"); else printf("最大奇数是%d\n",max1); if(max2==-1) printf("没有偶数\n"); else printf("最大偶数是%d\n",max2); return0; } P693 #include intmain() { inta[20]; intp=0,n=0,i,j=0; doubleavg,sum=0; printf("请输入非0整数: "); while (1) { scanf("%d",&a[j]); if(a[j]==0) break; j++; } for(i=0;i { sum=sum+a[i]; } avg=sum/j; printf("平均数: %lf",avg); for(i=0;i { if(a[i]>0) p++; if(a[i]<0) n++; } printf("正数个数: %d负数个数: %d\n",p,n); return0; } P752冒泡排序 #include #defineN10 voidbubble_sort(inta[],intn); voidmain() { inti,a[N]={1,3,6,8,9,2,11,12,14,7}; printf("原数组为: \n"); for(i=0;i { printf("%4d",a[i]); } bubble_sort(a,N); printf("\n"); } voidbubble_sort(inta[],intn) { inti,j,tmp; for(i=0;i { for(j=0;j { if(a[j]>a[j+1]) { tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp; } } } printf("\n"); printf("排序后的数组为: \n"); for(i=0;i { printf("%4d",a[i]); } } P763成绩 #include voidinput(intcla[50][3],intn); voidprint(intcla[50][3],intn); voidsort(intcla[50][3],intn); voidmain() { intcla[50][3]; intn; printf("请输入学生人数(小于50): \n"); scanf("%d",&n); if(n<=0||n>=50) printf("error,请输入正确的人数。 \n"); else { input(cla,n); print(cla,n); } } voidinput(intcla[50][3],intn) { inti,j; printf("请依次输入学生两门课成绩: \n"); for(i=0;i { for(j=0;j<2;j++) scanf("%d",&cla[i][j]); } } voidprint(intcla[50][3],intn) { inti,j; printf("C++\t计算机基础\t总分\n"); for(i=0;i cla[i][2]=cla[i][0]+cla[i][1]; sort(cla,n); for(i=0;i { for(j=0;j<3;j++) { printf("%d\t",cla[i][j]); if(j==1) printf("\t"); } printf("\n"); } } voidsort(intcla[50][3],intn) { inti,j,a,b,c; for(j=0;j { for(i=0;i { if(cla[i][2] { a=cla[i][0]; cla[i][0]=cla[i+1][0]; cla[i+1][0]=a; b=cla[i][1]; cla[i][1]=cla[i+1][1]; cla[i+1][1]=b; c=cla[i][2]; cla[i][2]=cla[i+1][2]; cla[i+1][2]=c; } } } } P764函数功能判断 #include voidfun(inta[3][3],intb[3][3]); intmain() { inti=0,j=0; inta[3][3]={1,2,3,4,5,6,7,8,9}; intb[3][3]; fun(a,b); if(b[i][j]==a[j][i]) printf("fun函数功能为矩阵转置\n"); return0; } voidfun(inta[3][3],intb[3][3]) { inti,j; printf("矩阵a为: \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%4d",a[i][j]); } printf("\n"); } for(i=0;i<3;i++) { for(j=0;j<3;j++) { b[i][j]=a[j][i]; } } printf("矩阵b为: \n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%4d",b[i][j]); } printf("\n"); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言程序设计教程 第七章 课后习题参考答案 语言程序设计 教程 第七 课后 习题 参考答案