当前位置:首页 > C语言实验册
金陵科技学院实验报告
(3)功能:编写函数void fun(int n,int a[]),按顺序将一个4位的正整数每一位上的数字存到一维数组,然后在主函数输出。例如输入5678,则输出结果为 5 6 7 8。
(4)功能:编写函数void fun(int arr[],int n)将一个数组中的值按逆序存放,并在main()函数中输出。
例如:原来存顺序为8,6,5,4,1。要求改为:1,4,5,6,8。
(5) 功能:程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int a[][N],int n),使数组a左下三角元素中的值乘以n。 例如:若n的值为3,a数组中的值为
| 1 9 7 | | 3 9 7 | a = | 2 3 8 | 则返回主程序后a数组中的值应为 | 6 9 8 | | 4 5 6 | | 12 15 18|
(6)功能:编写函数void fun(int array[3][3]),实现矩阵(3行3列)的转置(即行列互换)。
例如:输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出:
100 400 700 200 500 800 300 600 900 4、讨论、思考题 (1)功能:编写函数float fun(),利用以简单迭代方法Xn+1=cos(Xn)求方程:cos(x)-x=0的一个实根。迭代步骤如下:
1)取x1初值为0.0;
2)x0=x1,把x1的值赋给x0;
3)x1=cos(x0),求出一个新的x1;
4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2); 5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 输出:程序将输出结果Root=0.739085。
(2)功能:编写float fun(float array[],int n),统计出若干个学生的平均成绩,最高分以及得最高分的人数。
例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最高分为92,得最高分的人数为3人。
(3)编写函数 int fun(int lim,int aa[MAX]),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回求出素数的个数。
(4)功能:编写函数int fun(int a[M][M]),求5行5列矩阵的主、副对角线上元素之和。注意,两条对角线相交的元素只加一次。
(5)功能:请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。
5
金陵科技学院实验报告
程序清单及流程图:
6
金陵科技学院实验报告
四、实验结果与分析(程序运行结果及其分析)
1、程序调试 (1) main()
{ int a=10,b=20,x,*pa,*pb; pa=&a;pb=&b;
printf(“%d,%d,%d,%d”,a,b,*pa,*pb); x=*pa;*pa=*pb;*pb=x;
printf(“%d,%d,%d,%d”,a,b,*pa,*pb); } (2) main()
{ int a=10,b=20,*p,*pa=&a,*pb=&b; printf(“%d,%d,%d,%d”,a,b,*pa,*pb);
p=pa;pa=pb;pb=p;
printf(“%d,%d,%d,%d”,a,b,*pa,*pb); }
(3) int *swap(int *a,int *b)
{ int *p; p=a; a=b; b=p; return(a); } main()
{int x=3,y=4,z=5; swap(swap(&x,&y),&z); printf(“%d,%d,%d”,x,y,z); }
思考:上面程序中函数swap()预将两个数的值相互交换,但结果为什么没有交换? 2、程序改错
要求:1、改错时,只允许修改现有语句中的一部分内容,不允许添加和删除语句。 2、提示行下一行为错误行。
(1)功能:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素。
#include
void input(int *arr,int n) {
int *p,i; p=arr;
7
金陵科技学院实验报告
printf(\ for(i=0;i /**********ERROR**********/ scanf(\} void max_min(int *arr,int n) { int *min,*max,*p,t; min=max=arr; for(p=arr+1;p /**********ERROR**********/ if(*p<*max) max=p; else if(*p<*min) min=p; t=*arr;*arr=*min;*min=t; /**********ERROR**********/ if(max=arr) max=min; t=*(arr+n-1); *(arr+n-1)=*max; *max=t; } void output(int *arr,int n) { int *p,i; p=arr; printf(\ /**********ERROR**********/ while(i=0;i main() { int a[10]; input(a,10); max_min(a,10); output(a,10); } (2)功能:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。 例如:当s所指的字符串的内容为\时,t所指数组中的内容为\。 #include /**********FOUND**********/ 8
共分享92篇相关文档