上海电力学院C语言实验报告实验6

上海电力学院

实验报告

课程名称 C语言程序设计 实验项目 实验6 数组 姓名 学号 班级 专业 同组人姓名 无 指导教师姓名 魏为民 实验日期 2011年11月

24 日

一、 实验目的

1、 掌握一位数组合二维数组的定义、赋值和输入输出的方法。 2、 掌握字符数组和字符串函数的使用。

3、 掌握与数组有关的算法(特别是排序算法)。

二、 实验内容与步骤

编程序并上机调试运行。

1、 求一组数组a中的所有元素的平均值,结果保留两位小数。例如:当一组数组a中的元

素为:10,4,2,7,3,12,5,34,5,9时,程序的输出应为:The aver is:9.10 输入以下程序并调试运行得:. #include void main() { int a[10]={10,4,2,7,3,12,5,34,5,9},i; float aver,s; s=10; for(i=1;i<10;i++) s+=a[i]; aver=s/i; printf(\}

2、求二维数组a中的最小值。 例如:当二维数组a中的元素为:

4 2 34 7 3 12 5 6 5

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

输入以下程序并调试运行得:.

#include void main() { int a[3][3]={4,2,34,7,3,12,5,6,5},i,j,min; min=a[0][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(min>a[i][j]) { 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个元素。 输入以下程序并调试运行得:. #include void main() { int i,a[10]; for(i=1;i<=10;i++) a[i-1]=i; for(i=0;i<5;i++) a[9-i]=a[i]; for(i=0;i<10;i++) printf(\ printf(\}

4、 以下给定程序FILL1.C的功能是:输入一个数x,查找在数组a中最后一次出现的位置。

例如:如果数组中的元素为:1,5,2,5,6,8,7,4,3,0,当x=5时,程序的输出结果为:5 is No.3。当x=10时,该数不在数组中,程序的输出结果为:10 is not found! 输入以下程序并调试运行得: #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=1;i<=10;i++) if(a[i]==x) { f=1; k=i; } if(f==1) printf(\ is No.%d\\n\ else printf(\}

5、 有一个已经从小到大排好序的整数数组:a[30]={6,9,12,15,19,23,45,67,89,98},现插入一个

整数,要求按原来的升序规律将它插入到数组中。 解法:输入并调试运行一下程序:

#include void main() { int a[30]={6,9,12,15,19,23,45,67,89,98}; int i, count = 10; int x, pos; scanf(\ pos = count; for ( i=0; i< count; i++ ) if ( x < a[i] ) { pos = i; break; } for ( i = count; i >= pos; i-- ) a[i] = a[i-1]; a[pos] = x; for (i=0; i<11; i++) printf(\ printf(\ }

6、 以下程序PROGI.C的功能是:将字符串2连接到字符串1的后面并输出。 例如:当字符串1为“This is a”,字符串2为“c program”,则输出:“This is a program”。 #include void main() {char str1[80]=\ int len1, len2; int i; for ( i=0; str1[i] != '\\0'; i++ ) ; len1 = i; for ( i=0; str2[i] != '\\0'; i++ ) ; len2 = i; for ( i=0; i

7、 以下给定程序FILL1.C的功能是:从键盘上输入一个数字组成的字符串(字符串长度小

于8),将该字符串转换成一个十进制数。

例如:从键盘上输入字符串2345,则程序运行的结果应当为:n=2345. #include \ void main() { char s[10]; int i; long int n=0; scanf(\ for(i=0; \ i++ ) n=n*10+s[i]-'0'; printf(\ }

8、 打印出以下的杨辉三角(要求打出十行)

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 ???

解法:输入并调试运行一下程序:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4