C语言程序设计基础实验报告6

更新时间:2024-07-01 18:36:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验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() { }

2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。

例如,当二维数组a中的元素为: 4 2 34 7 3 12 5 6 5

程序的输出应为:The min is: 2 。

程序中有两处错误,错误都在提示行:/***********found***********/的下面一行。请改正程序中的错误,使它能得出正确的结果。

注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! #include #include void main() {

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 void main( ) {

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 void main( )

{ 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 void main() { }

6、 以下程序PROG1.C的功能是:将字符串2连接到字符串1的后面并输出。例如,当字符串1为\,字符串2为\,则输出:\。

注意: 部分源程序存在文件PROG1.C中。请在/*******begin********/ 与 /********end*********/ 之间填入你编写的若干语句。请勿改动其它位置的任何内容。 #include void main()

{ 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 void main() {

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 #include void main() { char a[3][5]={\ int i,j,k; k=0;

for(i=0;i<3;i++) for(j=0;j<5;j++) if(a[i][j]=='a')

k++;

printf(\

}

本文来源:https://www.bwwdw.com/article/cz9.html

Top