下载此文档

C语言)复习资料.doc


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
1. 有二维数组如下
1 2 3 4
5 6 7 8
9 10 11 12
现要求输入某元素所在的行和列,将其后的所有元素输出,必须用指针技术编程。
例如,输入2 ,3 表示从第二行第三列元素7开始输出其余元素 7 8 9 10 11 12
main()
{ int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p,i,j;
scanf("%d%d",&i,&j);
p=&a[i-1][j-1];
for (;p<&a[0][0]+12;p++)
printf("%5d",*p);
}
2.将一个n×n的矩阵行列转置后输出,转置功能由函数reverse实现,试编程。
#define N 3
void reverse(float x[][N],int n)
{ int i,j;
float t;
for (i=0;i<n;i++)
for (j=i;j<n;j++)
{ t=x[i][j];
x[i][j]=x[j][i];
x[j][i]=t;
}
}
void prtable(float x[][N],int n)
{ int i,j;
for (i=0;i<n;i++)
{ for (j=0;j<n;j++)
printf("%",x[i][j]);
printf("\n");
}
}
main()
{ int i,j;
float a[][N]={{1,2,3},{4,5,6},{7,8,9}};
prtable(a,N);
reverse(a,N);
prtable(a,N);
}
3. 对非线性方程f(x)=0,可用牛顿迭代公式 求解,要求方程式用函数名f,导函数f’名为f1,迭代函数名为g,假设函数f和f’已有定义,编写出迭代函数g(x),精度小于10-5。
float g(float x)
{ float xi;
do
{ xi=x-f(x)/f1(x);
x=xi;
} while (fabs(f(x))>=1e-5);
return x;
}
4. 本程序的主程序为:
main()
{ int b[]={24,12,14,32,22,34};
printf("%d\n", f(b,6));
}
其中调用函数f,该函数有二个参数,依次为整型数组a和整型数n,函数的返回值是数组的a[0]到a[n-1]中的最大值。试写出函数f。
要求循环结构需用for控制结构。
int f(int a[],int n)
{ int i,max=-32768;
for (i=0;i<n;i++)
if (a[i]>max)
max=a[i];
return max;
}
main()
{ int b[]={24,12,14,32,22,34};
printf("%d\n", f(b,6));
}
5. 设有3名学生成绩存在如下的数组中::
int score[3][4]={{65,57,70,60},{90,87,50,81},{90,65,100,98}}
编程输出有成绩低于60分的某学生所有成绩(按C语言的规则,允许第0行)。
main()
{ void search(float (*p)[4],int n);
float score[3][4]={{65,57,70,60},{58,87,90,81},{90,99,100,98}};
search(score,3);
}
void search(float (*p)[4],int n)
{ int i,j,flag;
for (j=0;j<n;j++)
{ flag=0;
for (i=0;i<4;i++)
if (*(*(p+j)+i)<60) flag=1;
if (flag==1)
{ printf(" No.%d fails,his scores are : \n",j+1);
for (i=0;i<4;i++)
printf(" %",*(*(p+j)+i));
pri

C语言)复习资料 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人miao19720107
  • 文件大小33 KB
  • 时间2021-04-10