C语言历次上机作业总汇 下载本文

C语言历次上机作业总汇

{ for(j=0;j

/**********found**********/ fun(__3__); x,y

/*此处答案为x,y 通过函数fun的第一个参数数组名x把二维数组{ {12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3} }传递给a[N][N],第二个参数是指把每列元素中的最大值,并按顺序依次存放于所指的一维数组中。*/ printf(\

for(i=0; i

【作业3】函数fun的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则调换后为:6、7、8、9、5、1、2、3、4。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 9 void fun(int a[], int n) { int i, t, p;

/**********found**********/

p = (n%2==0) ? n/2 : n/2+___1___; 1

for (i=0; i

t=a[i];

/**********found**********/ a[i] = a[p+___2___]; i /**********found**********/ ___3___ = t; a[p+i] } }

void main()

{ int b[N]={1,2,3,4,5,6,7,8,9}, i; printf(\ :\\n\

for (i=0; i

printf(\ :\\n\ for (i=0; i

【作业4】给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 交换后为:

C语言历次上机作业总汇

3 2 1

4 5 6 9 8 7

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 4

/**********found**********/

void fun(int ___1___ , int n) t[][N]//此处答案为t[][N]或t[N][N] { int i,s;

/**********found**********/ for(_____2______ ; i++) i=0;i

t[i][i]=t[i][n-i-1];

/**********found**********/ t[i][n-1-i]=___3___; s } }

void main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf(\for(i=0; i

{ for(j=0; j

fun(t,N);

printf(\for(i=0; i

{ for(j=0; j

【作业5】请编写一个函数fun,它的功能是:求出一个2×M整型二维数组中最大元素的值,并将此最大值通过return语句返回调用函数main。

注意: 部分源程序存在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 PROG1.C

#include #define M 4

fun (int a[][M]) //a[][M]这里的值为{5,8,3,45,76,-4,12,82},然后在{ }中写出以下函数体,注意编程思路。 {int i,j,max; max=a[0][0]; for(i=0;i<2;i++) for(j=0;j<4;j++) if(max

C语言历次上机作业总汇

}

void main( )

{ int arr[2][M]={5,8,3,45,76,-4,12,82} ; printf(\

/*函数调用fun,实参为二维数组名,这里代表二维数组的止始地址,即把 {5,8,3,45,76,-4,12,82}全部传递给形参a[][M] */ }

【作业6】m个人的成绩存放在score数组中,请编写函数fun,它的功能是: 将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。

例如,当score数组中的数据为:10、20、30、40、50、60、70、80、90时,函数返回的人数应该是4, below中的数据应为: 10、20、30、40。

注意: 部分源程序在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include

int fun(int score[], int m, int below[]) {int i,j=0,s=0; for(i=0;i

void main( )

{ int i, n, below[9] ;

int score[9] = {10, 20, 30, 40, 50, 60, 70, 80, 90} ; n = fun(score, 9, below) ;

printf( \

for (i = 0 ; i < n ; i++) printf(\}

第二部分

下面是本次课外作业题,要求在课堂外做完,要求所有人完成!

1、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时, 程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double f1(double x) { return x*x; }

double f2(double x, double y) { return x*y; }

C语言历次上机作业总汇

/**********found**********/

__1__ fun(int i, double x, double y) { if (i==1)

/**********found**********/ return __2__(x); else

/**********found**********/ return __3__(x, y); }

void main()

{ double x1=5, x2=3, r;

r = fun(1, x1, x2); //先调用fun函数,此时第一个形参为1 r += fun(2, x1, x2); //后又调用fun函数,此时第一个形参为2 printf(\}

2、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。

例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 主函数中输出:46 32 40 45 48

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 10

double fun(double x[ ],double *y) //这里的y为指针,即与y[]作用一样 { int i, j; double av;

/**********found**********/ av=__1__; 0

/**********found**********/

for(i=0; i

/**********found**********/

if(x[i]>av) y[__3__]= x[i]; j++ //把大于平均值的数放在形参y所指数组中,注意下标的变化 y[j]=-1; return av; }

void main( )

{ int i; double x[N],y[N]; for(i=0; i

{ x[i]=rand()P; //通过随机函数给数组元素随机赋值,并输出 printf(\ printf(\

C语言历次上机作业总汇

printf(\ //调用fun(x,y)函数

for(i=0; y[i]>=0; i++) printf(\ //在主函数中输出放在y所指数组中的大于平均值的数 printf(\ }

3、函数fun的功能是:把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、??中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 9 int fun(int a[], int n) { int i,j; j = 0;

for (i=0; i

/**********found**********/

if (a[i]%2==___1___) 1 //把奇数按原顺序依次存放到a[0]、a[1]、a[2]、??中 {

/**********found**********/ a[j] = a[i]; ___2___; j++ }

/**********found**********/

return ___3___; j //注意返回的是奇数个数 }

void main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf(\ :\\n\

for (i=0; i

printf(\ : %d \\n\printf(\ :\\n\

for (i=0; i

编程题

4、请编写一个函数fun, 其功能是: 将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母, 则不转换)。

例如, 若输入\,则应输出\。 注意: 部分源程序在文件PROG1.C文件中。

请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。

#include #include

void fun( char ss[] ) //注意如何判断一个字符串是否结束,可以用while(ss[i]!=’\\0’) 或者是while(ss[i])