《C语言程序设计》课后习题参考答案
1.B 2.A 3.A 4.D 5.C 6.B 7.A 8.A 二、填空题
1.按行的顺序依次存放的 2.0 3.4 4.6
三、编程题
1.有一个多项式:Pn(x)=a0xn+a1xn-1+…+an
它们的系数a0,a1,…,an存放在一个一维数组中。编制程序,输入系数和x的值,计算并输出Pn(x)。 参考代码如下: #define N 4 main()
{ int a[N+1],p,x,i;
printf(\Please enter a[%d],...,a[0]:\\n\); for(i=N;i>=0;i--)
scanf("%d\,&a[i]);
printf("Please enter x=\\n\); scanf(\d\&x); p=a[N];
for(i=N;i>0;i--) {
p=p*x+a[i-1]; }
printf(\n(x)=%d\\n",p); }
2.打印以下的杨辉三角形(要求打印6行)。 1 11 121 1331 14641
参考代码如下:
#include #include
int i,j,max[N][N]; for(i=0;i for(j=0;j 《C语言程序设计》课后习题参考答案 { max[i][0]=1; max[i][i]=1; } } for(i=2;i<N;i++) { for(j=1;j<i;j++) { max[i][j]=max[i-1][j-1]+max[i-1][j]; } } for(i=0;i for(j=0;j<=i;j++) { printf(\ax[i][j]); } printf(\"); } } ? 3.编写程序,将一个数插入到有序的数列中去,插入后的数列仍然有序。 参考代码如下:/*假设原有5个数*/ #include { int a[6]={1,2,6,10,15}; int n,i,j; printf(\Please enter the insert number:\ scanf(\ for(i=0;i<5;i++) if(n>a[i]) continue; else break; for(j=4;j>=i;j--) a[j+1]=a[j]; a[i]=n; for(i=0;i<6;i++) printf(\d,\,a[i]); printf(\); } 4.编写程序,在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found。 参考代码如下: #include 《C语言程序设计》课后习题参考答案 { int a[10]={1,2,3,4,5,6,7,8,9,10}; int n,i,j,k=0; printf(\Please enter the number:"); scanf(\d\ for(i=0;i<10;i++) { while(n==a[i]) ?{k=1;j=i;break;} } if(k==1) printf("a[%d]\n",j); else printf(\no found.\\n\); } ? 5.编程将下列矩阵中的元素向右移动一列,最右一列移至第一列。 1 4 6 8 10 12 [提示:用二维数组v存放矩阵中元素,数组v可在定义时初始化;有两种方法实现这种移动:一种方法是将移动后的元素放在另一个二维数组中;另一种方法是利用一个中间变量仍将移动后的元素放在数组v中。] #include int a[2][3]={1,4,6,8,10,12}; int b[2][3]; b[0][0]=a[0][2]; b[0][1]=a[0][0]; b[0][2]=a[0][1]; b[1][0]=a[1][2]; b[1][1]=a[1][0]; b[1][2]=a[1][1]; printf(\a[2][3]:\ for(i=0;i<2;i++) { printf(\ for(j=0;j<3;j++) printf("]\,a[i][j]); } printf("\\nresult:\n\ for(i=0;i<2;i++) { printf(\ 《C语言程序设计》课后习题参考答案 for(j=0;j<3;j++) printf(\%5d\,b[i][j]); } printf(\ getch(); }? 6.利用公式c(i,j)?a(i,j)?b(i,j)计算m×n的矩阵A和m×n的矩阵B之和,已知a(i,j)为矩阵A的元素,b(i,j)为矩阵B的元素,c(i,j)为矩阵C的元素,i?1,2,...,m,j?1,2,...,n。 [提示:用二维数组元素做函数参数编程实现矩阵相加。] #include<stdio.h> #include void matrix(int a[][M],int b[][N]); main() { int i,j,t; clrscr(); printf(\e input a[%d][%d]\n\N); for(i=0;i<N;i++) for(j=0;j<N;j++) { scanf(\&t); a[i][j]=t; } printf(\ease input b[%d][%d]\\n\M,N); for(i=0;i matrix(b,c); printf(\a[%d][%d]\,M,N); for(i=0;i<M;i++) { printf(\ for(j=0;j<N;j++) printf(\%5d",a[i][j]); } printf(\n\ printf("b[%d][%d]",M,N); for(i=0;i 《C语言程序设计》课后习题参考答案 { printf(\\n"); for(j=0;j<N;j++) printf(\,b[i][j]); } printf("\\n\; printf(\c[%d][%d]=A+B:",M,N); for(i=0;i<M;i++) { printf(\\n\ for(j=0;j printf(\%5d\[i][j]); } } void matrix(int a[][M],int b[][N]) { int i,j,k,t; for(i=0;i c[i][j]=a[i][j]+b[i][j]; } 习题6参考答案 一、选择题 1.A 2.D 3.D 二、填空题 1.指针 取地址 2.3 3.9876 876 4.24 三、编程题 1.输入3个整数,按从大到小的次序输出。 参考代码如下: main() { int a[3],i,j,t; printf(\Please enter three number:\\n\) for(i=0;i<3;i++) scanf(\,&a[i]); for(i=0;i<2;i++) for(j=0;j<2;j++)
相关推荐: