实验六.docx
- 文档编号:16806621
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:15
- 大小:128.63KB
实验六.docx
《实验六.docx》由会员分享,可在线阅读,更多相关《实验六.docx(15页珍藏版)》请在冰点文库上搜索。
实验六
《高级语言程序设计》实验报告
实验名称
实验六数组
学号
201101030521
姓名
高批成
实验学时
4学时
实验日期
第七周
实验目的:
1,掌握数组的定义,初始化及数组元素的引用方法
2,掌握数组的赋值和输入输出方法
3,掌握与数组有关的算法,如排序查找插入和矩阵运算等
4,掌握字符数组和字符串数组的使用
实验内容(含源程序、运行结果):
6-1-1.
(1)改程序运行结果说明什么?
#include
voidmain()
{inti;
intnum[5]={1,2,3,4,5};
for(i=0;i<5;i++)
printf("%d",num[i]);
}
6-1-2请说明以下程序的功能,并上机体验。
#include
voidmain()
{inti,t,a[10]={0,1,2,3,4,5,6,7,8,9};
t=a[9];
for(i=9;i>0;i--)
a[i]=a[i-1];
a[0]=t;
printf("\n");
for(i=0;i<10;i++)printf("%d",a[i]);
}
6-1-3数组a存放10为学生的成绩,说明程序的功能,并上机体验。
#include
voidmain()
{inti;
intn=10;
float
aver,a[10]={78,89,65,72,68,60,80,75,83,70};
floatmax,min;
floatsum=a[0];
max=min=a[0];
for(i=1;i<10;i++)
{if(a[i]>max)
max=a[i];
elseif(a[i] min=a[i]; sum=sum+a[i]; } aver=sum/n; printf("平均分=%f,最高分%f,最低分%f\n",aver,max,min); } 6-1-4说明程序的功能,并上机体验。 #include"stdio.h" voidmain() {inti,j,t,a[3][3]={100,101,102,45,46,47,77,78,79}; for(i=0;i<3;i++) for(j=0;j {t=a[i][j];a[i][j]=a[j][i];a[j][i]=t; } for(i=0;i<3;i++) {printf("\n"); for(j=0;j<3;j++) printf("%d",a[i][j]); } } 6-1-5数组a存放一个方阵数据,请说明程序的功能,并上机体验。 #include"stdio.h" voidmain() {inta[100][100],i,j,x,y,max,sum,c,n; printf("输入方阵的行列数: "); scanf("%d",&c); if(c<=1)printf("输入错误! \n"); else {for(i=0;i<=c-1;i++) for(j=0;j<=c-1;j++) scanf("%d",&a[i][j]); max=a[0][0]; x=0;y=0; for(i=0;i<=c-1;i++) for(j=0;j<=c-1;j++) if(a[i][j]>max) {max=a[i][j]; x=i;y=j; } printf("这个方阵中最大多数是%d\n",max); } sum=0; for(n=0;n<=c-1;n++) sum=sum+a[n][n]; printf("这个方阵主对角线的和为%d\n",sum); } 答: 此程序利用for循环输出了一个数组,并利用for循环对数组中的元素进行了大小比较,及主对角线的和的求算。 6-1-6请说明以下程序(6)(7)的功能,对加粗部分进行比注释,然后上机体验。 (6) #include"stdio.h"/*(6)*/ voidmain() {chara[100]; inti; gets(a); for(i=0;a[i]! ='\0';i++) {if(a[i]>='A'&&a[i]<='Z')a[i]+=32;//*判断数组元素是否大于字符A且小于字符Z。 *// elseif(a[i]>='a'&&a[i]<='z')a[i]-=32;//*判断数组元素是否大于字符a且小于字符z,为真则实现a[i]=a[i]-32*// } puts(a); } 6-1-7 #include"stdio.h"/*(7)*/ voidmain() {chara[]="ab12cd34ef"; inti,j; for(i=j=0;a[i];i++) if(a[i]>='a'&&a[i]<='z')a[j++]=a[i];//*判断数组元素是否大于字符a且小于字符z。 为真则实现把a[i]赋给a[j++]*// a[j]='\0'; printf("%s\n",a); } 6-2-1填空题 (1)以下程序的功能是若已定义: inta[11],I;在第一个循环中给前十个数组元素一次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中是a数组前十个元素的对称折叠,变成1、2、3、4、5、5、4、3、2、1,然后输出。 请在程序的下划线处填空。 分析: 此题要输出数组的十个元素的对称折叠形式,需先利用for循环输出数组,然后利用for循环表达式2的改变,使输出对称折叠形式。 #include"stdio.h" voidmain() {inta[11],i; for(i=1;i<=10;i++)a[i]=i; for(i=1;i<=10;i++) printf("%d\n",a[i]); for(i=1;i<=5;i++)a[11-i]=a[i]; for(i=1;i<=10;i++) printf("%d",a[i]); } 6-2-2以下程序的功能是: 求出数组x中给相邻两个元素的和一次存放到a数组中,然后输出。 请在程序的下划线处填空。 分析: 此题需求算出数组相邻两个元素的和并存放到另外一个数组中,需赋值来完成。 #include main() { intx[10],a[9],i; for(i=0;i<10;i++) scanf("%d",&x[i]); for(i=1;i<10;i++) a[i-1]=x[i]+x[i-1]; for(i=0;i<9;i++) printf("%d",a[i]); printf("\n"); } 6-2-3以下程序的功能是进行方阵的转置。 在程序的下划线处填空。 分析: 此题要输出方阵的转置,则需要利用数组来完成,并利用数组元素的下标表示了元素在数组中的序号这一特性来实现方阵的转置,其中利用转义字符“/n”,来实现输入输出矩阵的形式。 #include main() { inti,j,t,a[4][4]; printf("\ninputa: "); for(i=0;i<4;i++) for(j=0;j<4;j++) scanf("%d",&a[i][j]); for(i=0;i<4;i++) for(j=i;j<4;j++) {t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } for(i=0;i<4;i++) { printf("\n"); for(j=0;j<4;j++) printf("%d",a[i][j]); } printf("\n"); } 6-2-4若要输按以下形式输出数组num右上半角: 1234 678 1112 16 #include main() { inti,j,num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; for(i=0;i<4;i++) { for(j=1;j<=i;j++) printf(""); for(j=i;j<4;j++) printf("%4d",num[i][j]); printf("\n"); } } 6-2-5以下程序的功能是: 已知按升序排好的字符串a将字符串s中的每个字符按升序的规则插到数组a中。 请在下面的下划线处填空。 分析: 此题需把字符串S中的每个字符按升序的规则插到a数组中。 首先需将S数组中的元素与a中的元素进行比较,如果大于的话则插入,但在插入之前需将S数组元素大于a数组元素之后的元素后移,才能插进去,从而需要用到测数组长度的strlen()函数来实现。 #include #include main() { chara[20]="cehiknqtw"; chars[]="fbla"; inti,j,k; printf("将串s中的字符插入到升序串a中,保持串a升序: \n"); printf("插入前的串a: \n"); puts(a); printf("串s: \n"); puts(s); for(k=0;s[k]! ='\0';k++) { j=0; while(s[k]>=a[j]&&a[j]! ='\0') j++; for(i=strlen(a);i>=j;i--) a[i+1]=a[i]; a[j]=s[k]; } printf("插入后的串a: \n"); puts(a); } 6-3-1.编程题。 (1)用冒泡法对N个整数进行排序,使其数组元素的值从大到小的顺序排列。 #include #include main() { inti,j,temp,a[11]; printf("bubblesore: \n"); for(i=1;i<=10;i++) { a[i]=rand()%100; } printf("sortbefore: \n"); for(i=1;i<=10;i++) { printf("%2d",a[i]); } printf("\n"); //bubblesort for(i=1;i<=10-1;i++) for(j=1;j<=10-i;j++) {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验