实验6 数组 一、实验目的
1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。
二、实验内容和步骤
编程序并上机调试运行。
1、以下给定程序MODI1.C的功能是:
求一维数组a中所有元素的平均值, 结果保留两位小数。例如,当一维数组a中的元素为:10, 4, 2, 7, 3, 12, 5, 34, 5, 9时,程序的输出应为:The aver is: 9.10
程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误,使它能得出正确的结果。
注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include
2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。
例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5
程序的输出应为:The min is: 2 。
程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误,使它能得出正确的结果。
注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include
int a[3][3]={4,2,34,7,3,12,5,6,5}, i, j, clrscr(); min = a[0][0];
min;
int a[10]={10,4,2,7,3,12,5,34,5,9}, i; /************found************/ float aver, s;
/************found************/ s = a[0];
for ( i=1; i<10; i++)
s += a[i]; aver = s / i;
printf(\
/************found************/ for ( i=0; i<3; i++)
for ( j=0; j<3; j++)
if (min > a[i][j]) { }
/************found************/ min = a[i][j];
}
printf(\
3、在考生目录下,给定程序FILL1.C的功能是:在第一个循环中给a数组的前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1;在最后一个循环中输出对称折叠以后的a数组的前10个元素。
程序有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! #include
printf(\ }
4、 以下给定程序FILL1.C的功能是:输入一个数x,查找x在数组a中最后一次出现的位置。例如:如果a数组中的元素为:1, 5, 2, 5, 6, 8, 7, 4, 3, 0,当x=5时,程序的输出结果为:5 is No.3 。当x=10时,该数不在数组中,程序的输出结果应为:10 not found !。
程序有两个空(1)、(2)需要补充完整。请将程序调试出所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! #include
{ int a[10] = { 1, 5, 2, 5, 6, 8, 7, 4, 3, 0 };
int i, k, x, f = 0; scanf(\ for (i=0; i<10; i++)
if (a[i] == x ) printf(\int i, a[10]; clrscr();
for( i=1; i<=10; i++)
/**************found************/ scanf(\
/**************found************/ a[9-i]=a[i];
for(i=0;i<5;i++)
for(i=0;i<10;i++)
}
{ }
f=1;
/************found************/ k=i;
/************found************/ if (f==1)
printf(\ is No. %d\\n\ printf(\ else
5、有一个已经从小到大排好序的整数数组:a[30]={6,9,12,15,19,23,45,67,89,98},现输入一个整数 x ,要求按原来的升序规律将它插入到数组中。 #include
6、 以下程序PROG1.C的功能是:将字符串2连接到字符串1的后面并输出。例如,当字符串1为\,字符串2为\,则输出:\。
注意: 部分源程序存在文件PROG1.C中。请在/*******begin********/ 与 /********end*********/ 之间填入你编写的若干语句。请勿改动其它位置的任何内容。 #include
{ char str1[80]=\ }
/***********begin***********/ strcat(str1,str2);
/************end************/ printf(\
int a[30]={6,9,12,15,19,23,45,67,89,98},num,i,j,tmp1,tmp2; scanf(\for(i=0;i<10;i++) { }
for(i=0;i<11;i++) { }
printf(\printf(\if(num<=a[i]) { }
else a[10]=num;
tmp1=a[i];a[i]=num; for(j=i+1;j<11;j++) {
tmp2=a[j];a[j]=tmp1;tmp1=tmp2;} break;
7、以下给定程序FILL1.C的功能是:从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数。
例如:从键盘上输入字符串2345, 则程序运行的结果应当为:n=2345。 程序有两个空(1)、(2)需要补充完整。请将程序调试出所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! #include \ void main( ) { }
8、打印出以下的杨辉三角形(要求打印10行)
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 ……
#include
int y[11][11],i,j;
y[1][1]=y[2][1]=y[2][2]=1; for(i=3;i<=10;i++) { }
for(i=3;i<=10;i++) { }
for (j=2;j
y[i][j]=y[i-1][j-1]+y[i-1][j]; y[i][1]=1; y[i][i]=1;
char s[10]; int i; long int n=0; clrscr();
/**************found************/ scanf(\
/**************found************/ for(i=0; s[i]!=’\\0'; i++)
n = n*10 + s[i]- '0'; printf(\
for (i=1;i<=10;i++)
for (j=1;j<=i;j++) {
printf(\printf(\
}
9、编程查找一个二维字符数组里为“a”的元素的个数。假定是3行5列的字符数组。 #include
for(i=0;i<3;i++) for(j=0;j<5;j++) if(a[i][j]=='a')
k++;
printf(\
}
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C语言程序设计基础实验报告6在线全文阅读。
相关推荐: