C语言程序设计基础实验报告6.docx
C语言程序设计基础实验报告6 实验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 #include void main() int a10=10,4,2,7,3,12,5,34,5,9, i; /*found*/ /*found*/ s = a0; for ( i=1; i aij) /*found*/min = aij; printf("The min is: %dn", min); 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 void main( ) int i, a10; clrscr(); for( i=1; i<=10; i+) /*found*/ scanf("%d",&ai-1); for(i=0;i<5;i+) /*found*/ a9-i=ai; for(i=0;i<10;i+) printf("%5d",ai); printf("n"); 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 void main( ) int a10 = 1, 5, 2, 5, 6, 8, 7, 4, 3, 0 ; int i, k, x, f = 0; scanf("%d", &x); for (i=0; i<10; i+) if (ai = x ) f=1; /*found*/ k=i; /*found*/ if (f=1) printf("%d is No. %dn", x, k); else printf(" %d not found !n", x); 5、有一个已经从小到大排好序的整数数组:a30=6,9,12,15,19,23,45,67,89,98,现输入一个整数 x ,要求按 原来的升序规律将它插入到数组中。#includevoid main() int a30=6,9,12,15,19,23,45,67,89,98,num,i,j,tmp1,tmp2; scanf("%d",&num);for(i=0;i<10;i+) if(num<=ai) tmp1=ai;ai=num;for(j=i+1;j<11;j+)tmp2=aj;aj=tmp1;tmp1=tmp2;break; else a10=num; for(i=0;i<11;i+)printf("%d",ai);printf("n"); 6、 以下程序PROG1.C 的功能是:将字符串2连接到字符串1的后面并输出。例如,当字符串1为"This is a ",字符串2为"c program",则输出:"This is a c program" 。 注意: 部分源程序存在文件PROG1.C 中。请在/*begin*/ 与 /*end*/ 之间填入你编写的若干语句。请勿改动其它位置的任何内容。 #include void main() char str180="This Is a ", str280="c Program" /*begin*/ strcat(str1,str2); /*end*/ printf("Result is: %sn",str1); 7、以下给定程序FILL1.C的功能是:从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数。 例如:从键盘上输入字符串2345, 则程序运行的结果应当为:n=2345。 程序有两个空(1)、(2)需要补充完整。请将程序调试出所需的结果。 注意:不要随意改动程序,不得增行或删行,也不得更改程序的结构! #include "stdio.h" void main( ) char s10; int i; long int n=0; clrscr(); /*found*/ scanf("%s",s); /*found*/ for(i=0; si!=0' i+) n = n*10 + si- '0' printf("n=%ldn",n); 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 void main() int y1111,i,j; y11=y21=y22=1; for(i=3;i<=10;i+) yi1=1; yii=1; for(i=3;i<=10;i+) for (j=2;j<i;j+) yij=yi-1j-1+yi-1j; for (i=1;i<=10;i+) for (j=1;j<=i;j+) printf("%5d",yij); printf("n"); 9、编程查找一个二维字符数组里为“a”的元素的个数。假定是3行5列的字符数组。#include #include void main() char a35="abcef","daryd","agdys" int i,j,k; k=0; for(i=0;i<3;i+) for(j=0;j<5;j+) if(aij='a') k+; printf("%dn",k);