C语言实验2(同名11372)实验2的内容和要求1.同学们在上机的时候,请选择开机菜单中的“Internet”项进入系统。
2.在实验过程中,你编写的程序不要存放在桌面或者C盘,要存在D盘上。
实验要求✧实验2上传格式要求:✧实验做完之后,会有7个文件:test2-1.c,test2-2.c,test2-3.c,test2-4.c,test2-5.c,test2-6.c和实验内容及其调试成功的程序贴进去生成的:实验2.doc,将这7个文件压缩为:学号-姓名.rar;✧实验2上传时间要求:✧实验2提交截至时间:✧机械和梁希班2015.12.6,22:00之前。
✧车辆和自动化2015.12.13,22:00之前✧实验2上传地址要求:ftp://211.71.149.21蔡娟/课程作业文件夹下的/C语言/homework中各班文件夹中的实验2文件夹中。
实验2的内容第1题1.编写一段程序,程序名称命名为test2-1.c,完成如下任务:歌手大奖赛上有10个评委(放在一个数组中)打分,请你设计一个通用程序,该程序可以实现显示每位歌手的成绩、最高分、最低分;还能显示高于平均值的评委号码及其打分的分值;能显示出给最高分的评委的号码,及给最低分的评委的号码。
例如,图1(假设有6位评委打分)的一次运行结果实例(显示的内容仅供参考):#include<stdio.h>int main(){char z;int i,p=0;float a[10],max,min,average,sum=0,m,b[10],c[10],t,x;do{for(i=0;i<10;i++){printf("Please input a score:");scanf("%f",&a[i]);printf("\n");}for(i=0;i<10;i++)sum+=a[i];average=sum/10;printf("The average:%f\n",average); m=a[0];for(i=0;i<=9;i++){if(m<a[i])m=a[i];}printf("The max:%f\n",m);m=a[0];for(i=0;i<=9;i++){if(m>a[i])m=a[i];}printf("The min:%f\n",m);for(i=0;i<=9;i++){if(a[i]>average)printf("%d,%f\n",i+1,a[i]);}for(i=0;i<=9;i++)b[i]=a[i];p=0;for(i=1;i<10;i++)if(b[p]<b[i])p=i;if(p!=0){t=b[0];b[0]=a[p];b[p]=t;}printf("max:%d,%f\n",p+1,b[0]);for(i=0;i<=9;i++)c[i]=a[i];p=0;for(i=1;i<10;i++)if(c[p]>c[i])p=i;if(p!=0){t=c[0];c[0]=c[p];c[p]=t;}printf("min:%d,%f\n\n",p+1,c[0]);printf("Next singer? < y or Y>:");getchar();scanf("%c",&z);}while(z=='y'||z=='Y');return 0;}第2题2.编写一段程序,程序名称命名为test2-2.c,完成如下任务:编程实现从键盘输入8个整数存放在一个数组中,由程序自动完成将数组的数据排序后,先从大到小显示,再从小到大显示。
(并且要求排序方法分别使用选择法和冒泡法)一次运行结果实例(显示的内容仅供参考):#include<stdio.h>int main(){int i,a[8],j,k,m,t;for(i=0;i<8;i++)scanf("%d",&a[i]);for(i=0;i<8;i++)printf("%6d",a[i]);printf("\n");printf("The sorted number:\n");for(j=0;j<8;j++)for(k=0;k<=6-j;k++)if(a[k]<a[k+1]){m=a[k];a[k]=a[k+1];a[k+1]=m;}for(j=0;j<8;j++)printf("%6d",a[j]);printf("\n");for(i=0;i<7;i++){m=i;for(j=i+1;j<=7;j++)if(a[m]>a[j])m=j;if(m!=i){t=a[i];a[i]=a[m];a[m]=t;}}for(i=0;i<=7;i++)printf("%6d",a[i]);printf("\n");return 0;}第3题3.编写一段程序,程序名称命名为test2-3.c,完成如下任务:应用数组并利用筛选法求出100之内的素数。
#include<stdio.h>int main(){int a[100],i,m;for(i=0;i<100;i++)a[i]=i+1;for(i=1;i<100;i++){for(m=2;m<=a[i]-1;m++)if(a[i]%m==0)break;if(a[i]==m)printf("%4d",a[i]);}return 0;}第4题(难)4. 编写一段程序,程序名称命名为test2-4.c,完成如下任务:有一个已经按从小到大排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中。
#include <stdio.h>int main(){int i,c;float t,m,a[20],b;for(i=1;i<20;i++)a[i]=i+1;printf("请输入要插入数组中的一个数\n");scanf("%f",&b);a[0]=b;c=0;for(i=1;i<20;i++)if(a[c]>a[i]){m=i;i=c;c=m;t=a[c];a[c]=a[i];a[i]=t;}for(i=0;i<20;i++)printf("%20f",a[i]);return 0;}第5题5.编写一段程序,程序名称命名为test2-5.c,完成如下任务:定义一个3行3列的二维数组,类型为整型,其中的内容为9 8 71 2 34 5 6(1)请在定义数组的时候给数组初始化,并且输出二维数组,其中数组元素的格式为“%2d”。
(2)输出二维数组对角线元素之和;(3)输出二维数组中最小的那个元素的值,输出的格式为:数组中值最小的元素为:数组名[行号][列号]=元素值(4)要求在程序中适当的位置给出提示性的输出语句。
#include <stdio.h>int main(){int a[3][3]={{9,8,7},{1,2,3},{4,5,6}},b,c,sum=0,sum2=0,d,e,t;printf("输出的二维数组如下\n");for(b=0;b<=2;b++)for(c=0;c<=2;c++){printf("%2d",a[b][c]);if(c==2)printf("\n");}printf("\n");for(b=0;b<=2;b++)sum+=a[b][b];for(b=0;b<=2;b++)sum2+=a[b][2-b];printf("对角线元素之和分别为%d、%d",sum,sum2);printf("\n");printf("\n");printf("二维数组中最小的那个元素的值如下\n");t=a[0][0];for(b=0;b<=2;b++)for(c=0;c<=2;c++){if(a[b][c]<t){t=a[b][c];d=b;e=c;}}printf("a[%d][%d]=%d",d,e,t);return 0;}第6题6.编写一段程序,程序名称命名为test2-6.c,实现如下任务:编写一个程序,输入一个字符串,求出该字符串的长度,要求不能利用库函数strlen函数。
#include <stdio.h>int main(){char c;int i;printf("请输入字符,以回车结束:\n");i=0;while (c=getchar()!='\n')i++;printf("\n");printf("你已经输入了%d个字符\n",i);return 0;}。