天津理工大学c语言实验报告8,天津理工大学C语言上机报告题目加答案

41528d3028836879cd698677c3999917.gif天津理工大学C语言上机报告题目加答案

实验五 (2009-9-24) 一、 实验名称: 数组。 二、 实验目的: (1) 掌握C语言中一维数组、二维数组的定义方法; (2) 掌握字符数组与常用字符串处理函数的使用; (3) 掌握与数组有关的算法(如数组元素的排序); (4) 进一步熟悉Visual C++6.0开发环境下调试程序的基本步骤。 三、 实验项目(必做题) 本次实验要求同学们事先在纸介质上编好解决下面问题的源程序,然后才允许进实验室上机调试。 (1) 定义1个一维数组:int arr[10],然后从键盘输入10个整数,编程求出其最大值、最小值以及平均值,并在屏幕上打印输出。 提示:在一个循环体内用scanf函数输入10个数,然后再用一个循环处理数据处理。 测试实例: 输入:100 10 -125 -9 0 90 70 60 300 -250 输出:max=300 min=-250 ave= 14.60 注意:要求首先建立项目文件,然后建立源程序文件进行编辑、调试。 (2) 定义两个字符数组:char str1[80], str2[80],其中字符串str1接受从键盘输入,然后编程将字符数组str1的内容逐个拷贝到字符数组str2中。(不允许使用库函数strcpy) 提示:从键盘接受1个字符串输入str1后,使用一个循环将str1中字符逐个赋值给str2中的对应元素。 测试实例: 输入:Hello World!输出:Hello World! 注意:要求首先建立项目文件,然后建立源程序文件进行编辑、调试。 (3) 定义1个一维数组:int arr[20],然后从键盘输入20个整数,使用冒泡法编程将该数组从小到大进行排序,并将排序后结果打印在屏幕上。 提示:利用一个二重循环体实现冒泡排序(算法的基本思想参见教材P134)。 测试实例: 输入:100 10 -125 -9 0 90 70 60 300 -250 -72 39 48 22 83 159 142 -129 -24 539 输出:-250 -129 -125 -72 -24 -9 0 10 22 39 48 60 70 83 90 100 142 159 300 539 (4) 将20个数存放在一个数组中,首先使用选择法对这20个数按升序排列,并输出排序后的结果;然后从键盘输入一个数,要求用二分查找的方法找出该数在数组中的位置(即下标),如果该数不在数组中,则输出“无此数”。 提示:首先利用一个二重循环实现选择排序;然后使用单重循环来实现二分查找。 测试实例: 输入:100 10 -125 -9 0 90 70 60 300 -250 -72 39 48 22 83 159 142 -129 -24 539 输出:-250 -129 -125 -72 -24 -9 0 10 22 39 48 60 70 83 90 100 142 159 300 539 输入:-129 输出:17 输入:301 输出:无此数 (5) 定义1个二维数组:int arr[5][6],然后从键盘输入5行6列共30个整数,编程求出所有元素中的最大值、最小值及其下标,同时求出每行元素的平均值,并在屏幕上打印输出。 提示:在一个二重循环体内用scanf函数输入30个数,然后再用一个二重循环处理数据处理。 测试实例: 输入:6 5 4 3 2 1 7 8 9 10 11 12 13 14 15 16 17 18 24 23 22 21 20 19 30 29 28 27 26 25 输出:Maximum:a[4][0]=30 Minimum:a[0][4]=1; Average: Ave[0]= 3.50 Ave[1]= 9.50 Ave[2]=15.50 Ave[3]=21.50 Ave[4]=27.50 四、 实验项目(选做题) (1) 课堂、以及教材中的一些示例程序。 (2) 教材P152页开始习题:7.1-7.15。 (1) #include void main() { int i,max,min,a[10]; float s=0,k; for(i=0;i<10;i++) { scanf(“%d“, } max=a[0],min=a[0]; for(i=0;i=max) max=a[i]; if(a[i]<=min) min=a[i]; s=s+a[i]; } k=s/10; printf(“max=%d min=%d k=%5.2f\n“,max,min,k); } (2) #include void main() { int i; char str1[80]; char str2[80]; gets(str1); for(i=0;i<80;i++) { str2[i]=str1[i]; } printf(“%s“,str2); printf(“\n“); } (3) #include void main() { int a[20]; int i,j,t; printf(“please 20 num:\n“); for(i=0;i<20;i++) scanf(“%d “, printf(“\n“); for(j=0;j<20;j++) for(i=0;ia[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } printf(“the sorted num is:\n“); for(i=0;i<20;i++) printf(“%d “, a[i]); printf(“\n“); } (4) #include void main() { int i,j,x,min,a[21],n,t,m,b,loca,flag=1,sign; char c; for(i=1;i<=20;i++) scanf(“%d“, for(i=0;i<=19;i++) { min=i; for(j=i+1;ja[j])min=j; x=a[i]; a[i]=a[min]; a[min]=x; } for(i=1;i<=20;i++) printf(“%4d“,a[i]); printf(“\n“); while(flag) {scanf(“%d“, sign=0;t=0;b=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值