实验项目数组.docx

上传人:b****6 文档编号:13870136 上传时间:2023-06-18 格式:DOCX 页数:14 大小:520KB
下载 相关 举报
实验项目数组.docx_第1页
第1页 / 共14页
实验项目数组.docx_第2页
第2页 / 共14页
实验项目数组.docx_第3页
第3页 / 共14页
实验项目数组.docx_第4页
第4页 / 共14页
实验项目数组.docx_第5页
第5页 / 共14页
实验项目数组.docx_第6页
第6页 / 共14页
实验项目数组.docx_第7页
第7页 / 共14页
实验项目数组.docx_第8页
第8页 / 共14页
实验项目数组.docx_第9页
第9页 / 共14页
实验项目数组.docx_第10页
第10页 / 共14页
实验项目数组.docx_第11页
第11页 / 共14页
实验项目数组.docx_第12页
第12页 / 共14页
实验项目数组.docx_第13页
第13页 / 共14页
实验项目数组.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验项目数组.docx

《实验项目数组.docx》由会员分享,可在线阅读,更多相关《实验项目数组.docx(14页珍藏版)》请在冰点文库上搜索。

实验项目数组.docx

实验项目数组

《C语言程序设计》实验报告

实验项目一:

数组

学  号

1405120805

姓  名

刁建

专业、班级

软工一班

实验时间

实验地点

五楼

指导教师

吕老师

一、实验目的及要求

(1)正确理解数组的概念,熟练掌握一维数组和二维数组的定义和初始化方法。

(2)熟练掌握字符数组和字符串的区别和使用、字符串函数的使用。

(3)熟练掌握一维数组、二维数组以及字符串的输入和输出方法。

(4)掌握冒泡排序、选择排序及查找算法。

(5)掌握字符窜的结束标志,正确使用字符串的结束标志对字符串进行处理。

通过编程和调试程序,加深对数组、字符数组和字符串函数应用的理解二、实验设备(环境)及要求

使用VisualC++6.0;windows系列操作系统的环境。

三、实验内容与步骤(要求以“学号_姓名_题号”为名建立项目;

例项目名为:

2013050201_***_01)

1.运行下面的c程序。

运行结果:

2.运行下面的c程序:

1)从键盘输入字符串:

howareyou,观察结果。

运行结果:

2)将上述程序的第四行改成scanf(“%s”,str);,重新运行上述程序,观察输出结果有什么不同,为什么?

重新运行的结果:

用scanf输入时“”会被看成"\0",终止

3)如果用%c格式输入输出字符串,程序应怎样修改?

根据用%c格式输入输出字符的特点,修改后的程序为:

3.改错

有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。

#include

#defineM3

#defineN4

voidmain()

{

intmax,i,j,r=0,c=0;

inta[M][N]={{0,94,-10,218},{3,9,10,-81},{45,16,44,-99}};

max=a[0][0];

for(i=0;i<=2;i++)

for(j=0;j<=3;j++)

if(a[i][j]>max)

{

max=a[i][j];

r=i;

c=j;

}

printf("max=%d,hang=%d,lie=%d\n",max,r,c);

}

4.改错

下面是用来将数组a中元素按升序排序后输出的源程序。

分析源程序中存在的问题,并对源程序进行修改,使之能争取完成任务。

源程序:

#include

intmain()

{

voidsort(int[],int);

inta[10]={23,12,34,56,8,6,5,4,34,56};

inti,

sort(a,10);

for(i=0;i<10;i++)

printf("%6d",a[i]);

printf("\n");

return0;

}

voidsort(intb[],intn)

{

inti,j,t;

for(i=0;i

for(j=0;j

if(b[j]>b[j+1])

{

t=b[j];

b[j]=b[j+1];

b[j+1]=t;

}

5.编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。

6.应用数组求Fabonacci数列的前40项(该数列前两项为1,以后各项均为前相邻两项之和)要求以每行8个输出。

7.用冒泡法对20个整数排序。

20个整数需要键盘键入。

8.用选择法对20个整数排序。

20个整数需要键盘键入。

#include

intmain()

{

voidsort(intarry[],intn);

inta[10],i;

printf("enterarray:

\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

sort(a,10);

printf("thesortedarry:

\n");

for(i=0;i<10;i++)

printf("%5d",a[i]);

printf("\n");

return0;

}

voidsort(intarry[],intn)

{

inti,j,k,t;

for(i=0;i<=n-1;i++)

{

k=i;

for(j=i+1;j

if(arry[j]

k=j;

t=arry[k];

arry[k]=arry[i];

arry[i]=t;

}

9.编程实现:

对任意一个一维数组,从中找出数组元素的最大值和最小值。

要求:

(1)数组为整型数组(10个元素)。

(2)使用scanf函数实现数组元素的输入。

在输入前给出必要的提示。

(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。

(4)如果现改为20个元素的数组,怎样修改程序?

修改程序后,运行程序进行检查。

如果需要数组元素不断改变,应怎样修改程序?

10.编写一个程序,从键盘读入数据,对一个3*4矩阵进行赋值,求其转置矩阵,然后输出原矩阵和转置矩阵。

11.编程实现“折半查找”的过程。

折半查找的处理过程是:

在一个数据已排好序的数组中,首先比较关键字与数组中间的元素,如果两者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者的数值比后者大,则要查找的数据必然在数组的后半部,此后只需在数组的后半部继续进行折半查找。

要求:

(1)设定一个数组存放20个数据,用赋初值的方法在程序中给出(假设这些数据已排序)。

(2)用scanf函数输入一个要找的数。

(3)对查找的结果给出相应的说明,如果找到该数,则给出该数是数组中第几个元素。

如果该数不在数组中,则输出“无此数”信息。

(4)任意输入一些数据,检查程序的正确性。

(5)修改程序,设定输入的数据是无序的,采用scanf函数的形式输入,首先要对这些无序的数据进行排序,然后再采用“折半查找”。

最后通过测试几组差别较大的数据检查程序的正确性。

(6)修改程序,改为函数调用的形式。

编写一个选择法排序函数,对无序数据进行排序;编写一个查找函数对已排好序的数据进行查找。

在主函数中输入数据(无序),调用上述函数,输出结果。

#include

#include

intmain()

{

inta[10];

inti,j,k,t;

printf("输入十个数\n");

for(i=0;i<=9;i++)

scanf("%d",&a[i]);

for(j=0;j<=9;j++)

for(k=0;k<=9-j;k++)

if(a[k]>a[k+1])

{

t=a[k];

a[k]=a[k+1];

a[k+1]=t;

}

printf("排序后\n");

for(j=0;j<=9;j++)

printf("%4d",a[j]);

printf("\n");

printf("输入i\n");

scanf("%d",&i);

if(i==a[4]&&i==a[5])

printf("ended\n");

elseif(i

{

if(i==a[2])

printf("该数为第三个\n");

elseif(i

if(i==a[1])

printf("该数为第二个\n");

elseif(i==a[0])

printf("该数为第一个\n");

elseif(i==a[3])

printf("该数为第四个\n");

else

printf("无次数\n");

}

else

if(i==a[8])

printf("该数为第9个\n");

elseif(i

if(i==a[7])

printf("该数为第8个\n");

elseif(i==a[6])

printf("该数为第7个\n");

elseif(i==a[3])

printf("该数为第四个\n");

else

printf("无次数\n");

return0;

}

四、分析与讨论

对上机实践结果进行分析,上机的心得体会。

 

五、教师评语

签名:

日期:

成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2