C语言历次上机作业总汇
printf(\}
4.、#include
#include
#include
{ int num[5],temp; //此处temp是交换元素的中间量
char name[5][20]; //注意存放姓名要用二级数组,自已思考 char temp2[20]; //此处temp2是交换一维数组的中间量 int i,j,k;
for(i=0;i<5;i++)
{ printf(\请输入学号\ scanf(\ printf(\请输入姓名\ scanf(“%s”,name[i]); } //注意两处scanf函数输入的区别 //按学号进行排序
printf(\请按学号进行排序\
for(j=0;j<4;j++) //冒泡排序 for(k=0;k<4-j;k++) if(num[k]>num[k+1]) { temp=num[k]; //三段交换学号 num[k]=num[k+1]; num[k+1]=temp;
C语言历次上机作业总汇
strcpy(temp2,name[k]); //三段交换姓名 strcpy(name[k],name[k+1]); strcpy(name[k+1],temp2); } // 输出排序后的学号和姓名 for(i=0;i<5;i++)
printf(\}
第13次作业
【作业1】:求素数 #include
if(x<2) return 0; for(i=2;i
void main() { int a;
scanf(\
if(fun(a)) printf(\是素数\else
printf(\不是素数\\n\}
【作业2】:编一函数,求阶乘。然后调用它求3!+5!+7! #include
void main() { int x,y,z; x=3;y=5;z=7; printf(\}
C语言历次上机作业总汇
【作业3】:先编写一个函数实现求三个数的最大者,然后再调用它分别求3个数,5个数,7个数的最大者。 【作业4】:给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3,有下列矩阵:
1 2 3 4 5 6 7 8 9
fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include
/**********found**********/ ___1___; sum=0
for(i=0; i for(i=0; i sum+= t[i][n-i-___3___] ; //注意下标1 return sum; } void main() { int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j; printf(\for(i=0; i { for(j=0; j printf(\ %d\ /*调用函数fun,其中有两个实参,第一个实参传递二维数组的首地址,即把二维数组的全部元素传递给形参,第二个参数是传递变量N*/ } [作业5] 程序填空题(blank.c) 给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。 例如,当形参n的值为10时,函数返回:9.612558。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的blank.c中。 不得增行或删行,也不得更改程序的结构! C语言历次上机作业总汇 #include double fun(int n) //自定义函数fun ,形参为n { int i; double s, t; /**********found**********/ s=__1__; 0 /**********found**********/ for(i=1; i<=__2__; i++) n { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; (t*t) } return s; } void main( ) { int n=-1; while(n<0) { printf(\ scanf(\ } printf(\ //在主函数里调用函数fun, 实参为输入的n } 第14次作业 第一部分 说明:此六大题为课堂作业必做题。要求所有人完成!! 【作业1】给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。 例如,有下列矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 若k为2,程序执行结果为: 7 8 9 4 5 6 1 2 3 10 11 12 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include /**********found**********/ void fun(int (*a)[N], int __1__) k /* (*a)[N]可以理解为a[M][N],它是函数fun的第一个参数, 通过函数fun(x,2)调用,把由二维数组名x传递来的二组数组全部赋值给a[M][N], 这时就相当于 x[M][N]={ {1,2,3},{4,5,6},{7,8,9},{10,11,12} } */ C语言历次上机作业总汇 { int i,temp ; /**********found**********/ for(i = 0 ; i < __2__ ; i++) N { temp=a[0][i] ; /**********found**********/ a[0][i] = __3__ ; a[k][i] a[k][i] = temp ; } } void main() { int x[M][N]={ {1,2,3},{4,5,6},{7,8,9},{10,11,12} },i,j; printf(\for(i=0; i { for(j=0; j fun(x,2); // 函数调用 printf(\for(i=0; i { for(j=0; j 【作业2】给定程序中,函数fun的功能是:找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于形参b所指的一维数组中。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include void fun(int (*a)[N], int *b) //等价于void fun(a[][N],int b[]) /*此时指针变量a指向包含N个整型元素的一维数组,即相当于这时为a[N][N], b为指针变量,相当于b[N],这里为双向传递,即b[N]和y[N]共占用一段相同的空间, b[N]此时放得是每列元素中的最大值,则y[N]也是。*/ { int i,j; for(i=0; i /**********found**********/ b[i]= __1__; a[0][0] for(j=1; j /**********found**********/ if(b[i] __2__ a[j][i]) b[i]=a[j][i];< } } void main() { int x[N][N]={ {12,5,8,7},{6,1,9,3},{1,2,3,4},{2,8,4,3} },y[N],i,j; printf(\for(i=0;i