计算机C语言 数组 实验题目及其答案

上传人:ali****an 文档编号:110006894 上传时间:2019-10-28 格式:DOC 页数:10 大小:65.50KB
返回 下载 相关 举报
计算机C语言 数组 实验题目及其答案_第1页
第1页 / 共10页
计算机C语言 数组 实验题目及其答案_第2页
第2页 / 共10页
计算机C语言 数组 实验题目及其答案_第3页
第3页 / 共10页
计算机C语言 数组 实验题目及其答案_第4页
第4页 / 共10页
计算机C语言 数组 实验题目及其答案_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《计算机C语言 数组 实验题目及其答案》由会员分享,可在线阅读,更多相关《计算机C语言 数组 实验题目及其答案(10页珍藏版)》请在金锄头文库上搜索。

1、实验六 数组程序设计【实验目的】1、 掌握使用一维数组编程方法2、 掌握使用二维数组进行程序设计【实验内容】一、上机验证程序,并分析结果要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。1、#include int main() int a =1,2,3,4,5 , i, j, s=0 ; j = 1; for ( i = 4 ; i=0 ; i-) s = s+ ai * j ; j = j * 10 ; printf( s= %d n , s ); return 0;分析结果运行结果二、程序改错题1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个

2、数。源代码如下,程序中存在错误,请将其改正。#include int main() int a(10);/*定义数组*/ int count,i;/* i循环变量 count 正数个数*/ for(i=0;i=10;i+) /*循环输入*/ scanf(%d,ai); count=1; for(i=0;i0)count+; printf(数组中正数有:%d个n,count); return 0;三 编写程序1 编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。#include #define N 30int main() float scoreN,sum=0,aver; int i;

3、 for(i=0;i30;i+) scanf(%f,&scorei); sum=sum+scorei; aver=sum/30; printf(平均分为:%.2fn,aver); for(i=0;iaver) printf(%.2f ,scorei); printf(n); return 0;2 编写程序:假设有13位评委参与评分工作。计算每位歌手最终得分的方法是:去掉一个最高分和一个最低分,然后计算剩余11个分数的平均值,所得结果就是选手的最终得分。#include#define N 13int main() int scoreN,sum=0,i,high,low; for(i=0;iN;i

4、+) printf(请输入第%d位评委成绩:,i+1); scanf(%d,&scorei); sum+=scorei; high=score0; low=score0; for(i=0;iN;i+) if (highscorei) low=scorei; printf(歌手最后得分为:%gn,(float)(sum-high-low)/(N-2);3. 假设给定一个书籍编号的数组(数组大小和数据自己设定),查找某本书是否在此数组中个,如果有,显示查找成功以及该书在数组中的下标,否则显示查找失败。#include#define N 5int main()int aN,i,flag=0,s;pr

5、intf(请输入书籍编号:n);for (i=0;iN;i+)scanf(%d,&ai);printf(请输入需要查找的书籍编号:n);scanf(%d,&s);for (i=0;iN;i+)if(ai=s)flag=1; break; if(flag) printf(查找成功!编号为%d的书籍的位置是%dn,s,i+1);elseprintf(查找失败!请确认书籍编号是否正确!n);return 0;4. 编写程序验证冒泡法排序#include int main() int a11,i,j,t; printf(Input 10 numbers:n); for(i=1;i11;i+) scan

6、f(%d,&ai); printf(n); for(i=1;i=9;i+) for(j=1;jaj+1) t=aj; aj=aj+1; aj+1=t; printf(The sorted numbers:n); for(i=1;i11;i+)printf(%d ,ai); return 0;5. 编写程序验证选择法排序方法一:#include int main() int a11,i,j,k,temp; printf(Input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); for(i=1;i10;i+) k=i; for(j=i+1;j11;j+

7、) if(ajak) k=j; if(i!=k) temp=ai; ai=ak; ak=temp; printf(The sorted numbers:n); for(i=1;i11;i+)printf(%d ,ai); return 0;方法二:#include #define NUM 10 /* 参与排序的数据个数 */int main() int dataNUM; /* 存放参与排序的所有整数 */ int i, j, minValue, temp; /* 通过键盘输入待排序的整型数列 */ printf(nEnter %d integers., NUM); for (i=0; iNUM

8、; i+) scanf(%d, &datai); /* 选择排序 */ for (i=0; iNUM-1; i+) minValue = i;for (j=i+1; jNUM; j+) /* 选择iNUM-1之间的最小数值 */if (datajdataminValue)minValue = j;if (minValue!=i) /* 交换 */temp = datai;datai = dataminValue;dataminValue = temp; /* 输出排序后的结果 */ printf(nOrdering list is:n); for (i=0; iNUM; i+) printf(

9、%5d, datai); return 0;6. 编写程序验证二分查找#include #define NUM 10int main( ) int valueNUM = 12, 23, 30, 45, 48, 50, 67, 82, 91, 103; /* 非递减整型数列 */ int low, high, mid, key; printf(nEnter a key:); /* 输入查找的数值 */ scanf(%d, &key); /* 利用二分查找在有序数列中查找key */ low = 0;high = NUM-1; while (low=high) mid = (low+high)/2

10、;if (valuemid=key)break;if (valuemidkey) low = mid+1;else high = mid-1; /* 输出查找结果 */ if (low=high) printf(n%d is found at %d., key, mid);/* 确认break出口 */ else printf(n%d is not found., key);/* 确认循环正常出口 */ return 0;7.将一个数组的值按逆序重新存放,例如,原来顺序为:8,10,4,23,1。要求改为:1,23,4,10,8。方法一 #include #define N 10int mai

11、n() int aN,i,j,temp; for(i=0;iN;i+) scanf(%d,&ai); for(i=0,j=N-1;ij;i+,j-) temp=ai; ai=aj; aj=temp; for(i=0;iN;i+) printf(%d ,ai); printf(n); return 0; 方法二:#include #define N 10int main() int aN,i,temp; for(i=0;iN;i+) scanf(%d,&ai); for(i=0;iN/2;i+) temp=ai; ai=aN-i-1;/*第一个和最后一个交换,第二个和倒数第二个交换,.一直到N/2的时候,也就是数组的一半的时候*/ aN-i-1=temp; for(i=0;iN;i+) printf(%d

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号