c语言上机实验题 联系客服

发布时间 : 星期五 文章c语言上机实验题更新完毕开始阅读e60d91fe172ded630b1cb6da

{

for(j=0;j<3;j++)

printf(\ printf(\ } }

38. 在m行n列的二维数组中找出最小值的元素,然后将该元素所在行与最后一行交换,将该元素所在列与最后一列交换。请按功能要求改正下列程序中的错误,并调试运行程序。

【源程序】

#include #define M 3 #define N 4 main() { int x,k,j,com,col,t; int a[M][N]={ 12,1,56,34,10,2,45,3,9,7,4,65}; for(k=0;k #define M 3 #define N 4 main() { int x,k,j,com,col,t; int a[M][N]={12,1,56,34,10,2,45,3,9,7,4,65}; for(k=0;k

}

printf(\ x=a[0][0]; com=0; col=0; for(k=0;ka[k][j]) { com=k; col=j;

x=a[k][j];

} for(k=0;k

{ for(j=0;j

printf(\

printf(\ } getch(); }

输出结果:

12 1 56 34 10 2 45 3 9 7 4 65

9 65 4 7 10 3 45 2 12 34 56 1

39.请编程序,打印以下形式的杨辉三角形。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

#include \ main() {

int a[6][6]; int i,j;

for(i=0;i<6;i++) { a[i][0]=1; a[i][i]=1;} for(i=1;i<6;i++) { for(j=1;j

a[i][j]=a[i-1][j-1]+a[i-1][j]; }

for(i=0;i<6;i++) { for(j=0;j<=i;j++) printf(\ printf(\ } getch(); }

40. 已知任何一个正整数n的立方均可以表示成n个连续奇数之和。例如: 13=1 23=3+5 33=7+9+11

43=13+15+17+19 ??

试按下列要求编制程序:

(1) 编写函数void find_odd(int odd[],int n),其功能是找到n个连续奇数,满足n的立方等于这些连续奇数之和,将这些奇数依次存放在数组odd中。 (2) 编写main函数,定义变量n和一维数组a,从键盘上读入n的值(本题测试数据n=14),用a和n作为实在参数调用函数find_odd,按如下格式将调用结果输出到屏幕上: 14^3=a1+a2+?+an,其中a1表示最小奇数,an表示最大奇数。

#include

void find_odd(int odd[],int n) { int i,a; if(n%2)

a=n*n-n/2*2; else

a=n*n-n/2*2+1; for(i=0;i

void main()

{ int n,a[32767],i,j;

printf(\ scanf(\

find_odd(a,n);

printf(\ for(i=1;i

41. 下列程序是利用插入排序法将n个数从大到小进行排序,插入排序的算法思想如下:从一个空表开始,将待排序的数一个接一个插入到已排好序的有序表中(空表视为有序),从而得到一个新的、记录数增1的有序表。例如:当n=7时,待排序的数及每一趟有序表的变化情况如下:

趟数 初始状态 第1趟 第2趟 第3趟 第4趟 第5趟 第6趟 第7趟 空 49 49 38 65 49 38 97 65 49 38 97 76 65 49 38 97 76 65 49 38 13 97 76 65 49 38 27 13 空 有序表 剩余待排序数 49 38 65 97 76 13 27 38 65 97 76 13 27 65 97 76 13 27 97 76 13 27 76 13 27 13 27 27 请完善下列程序并进行调试。

【源程序】 #include #include void sort(int a[],int n) void sort(int a[],int n) { { int i,j,t; int i,j,t; for(i=1; i<=n; i++) for(i=1; i<=n; i++) { t=a[i]; { t=a[i]; j=i-1; j= ; while((j>=0)&&(t>a[j])) while((j>=0)&&(t>a[j])) { a[j+1]=a[j]; { ; j--; j--; } } a[j+1]=t; ; } } } } void main() void main() { { int a[10],i; int a[10],i; printf(\ printf(\ for(i=0; i<=9; i++) for(i=0; i<=9; i++) scanf(\ scanf(\ sort(a,i); ; for(i=0;i<10;i++) for(i=0;i<10;i++) printf(\ printf(\ getch(); } }42.请按下列要求编写程序:

(1)编写函数void conj(int a[],int na,int b[],int nb, int c[]),其功能是实现将a和b指向的两个已按升序排列的数组中的元素合并成一个升序序列并保存到c指向的数组中。

(2)编写main函数,声明3个整型数组a,b,c,用给出的测试数据初始化a和b,将a,b,c作为实参调用函数conj,实现数组a和数组b的合并,合并的结果存入数组c中,最后依次输出c数组中的元素。 测试数据:

a数组:1 2 5 8 9 10 b数组:1 3 4 8 12 18

#include

void conj(int a[],int na,int b[],int nb, int c[]) {

int i=0,j=0,k=0, l; while(i

if(a[i] > b[j])