c语言实训报告_c语言编程实训报告
c语言实训报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言编程实训报告”。
天津电子信息职业技术学院 暨国家示范性软件职业技术学院
二级C编程实训报告
姓
名:
杨薪
学
号:
02
系
别:
网络技术系
专
业:
网站规划与开发
班
级:
规划S13-2
指导教师:
邵慧娟
完成时间:2014 年 6 月 19日
C语言程序设计报告
1.程序设计的题目
已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列。
2.设计的具体任务
在已知数组a中插入一个数,但结果仍是由小及大。
3.设计的要求
把可能性分三种,同时来检验这三种不同状态如下所示
如果设j为元素个数,如果把j的个数控制在6个并且输入一个数插入在数组a中其结果为。
如果设j为元素个数,如果把j的个数控制在7个并且输入一个数插入在数组a中其结果为。
如果设j为元素个数,如果把j的个数控制在5个并且输入一个数插入在数组a中其结果为。
4.设计过程
设计一个关于已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列的程序。如下面的内容所示。main(){ int a[6]={0,12,17,20,25,28,30};
/*a[0]为工作单元,从a[1]开始存放数据*/ int x , i, j=6;
/*j为元素个数*/ printf(“Enter a number: ”);
scanf(“%d”,&x);a[0]=x;i=j;
/*从最后一个单元开始*/ while(a[i]>x){ a[i+1]=a[i];i--;
}
/*将比x大的数往后移动一个位置*/ a[++i]=x;j++;
/*插入x后元素总个数增加*/ for(i=1;i
图1 但在执行时发现了一个错误,如图所示。
图2 然后在调试的过程中发现数组框所分配的个数不够。如图所示
图3 然后让我改正错误就出现了以下C语言程序。main(){ int a[10]={0,12,17,20,25,28,30};int x , i, j=6;
printf(“Enter a number: ”);scanf(“%d”,&x);a[0]=x;i=j;while(a[i]>x)
{ a[i+1]=a[i];i--;
}
a[++i]=x;j++;
for(i=1;i
图4
然后编译查看是否有语法错误,如有语法错误就加已改正,如没有语法错误就执行下一步、下一步是组建把它组建一个EXE的任务框、最后执行如图所示。并随便输入一个数如输入20。如图所示
图5
该程序是a[0]为工作单元,从a[1]开始存放数据。因此a[o]=0不能计入最后的程序中因此在执行结果中不会显现出来。所以再输入20时数组的排列是[12,17,20,20,25,28,30]。因为j在执行j++后j就要加1所以现在j=7
现在开始执行第二中可能,如果设j为元素个数,如果把j的个数控制在7个并且输入一个数插入在数组a中其结果为。让我们把j=6改为j=7如图所示
图6
然后编译查看是否有语法错误,如有语法错误就加已改正,如没有语法错误就执行下一步、下一步是组建把它组建一个EXE的任务框、最后执行如图所示。并随便输入一个数如输入12。如图所示
图7 当该程序把j=6改为j=7时,因为j在执行了j++执行框要开辟8个存储空间j=7,与本题不符因此执行结果的排序出了错。该运行结果是错误的。
现在开始研究第3种可能性“设j为元素个数,如果把j的个数控制在5个并且输入一个数插入在数组a中其结果为。”
先改变j的值为5即j=5,如图所示。
图8
然后编译查看是否有语法错误,如有语法错误就加已改正,如没有语法错误就执行下一步、下一步是组建把它组建一个EXE的任务框、最后执行如图所示。并随便输入一个数如输入15。如图所示
图9 其运行结果和排列顺序都正确,因为j=5因此在执行j++后j=6所以数组所排列的数序也为6。因此在执行知道题时j必须小于或等于6 j
如果不相信我们再验证j=4时,如图所示把j改为j=4
图10 然后编译查看是否有语法错误,如有语法错误就加已改正,如没有语法错误就执行下一步、下一步是组建把它组建一个EXE的任务框、最后执行如图所示。并随便输入一个数如输入15。如图所示
图11 其运行结果和排列顺序都正确,因为j=4因此在执行j++后j=5所以数组所排列的数序也为5。在此证明了在执行知道题时j必须小于或等于6
j
5.程序说明
main(){ int a[10]={0,12,17,20,25,28,30};
/*a[0]为工作单元,从a[1]开始存放数据*/
int x , i, j=4
/*j为元素个数*/
printf(“Enter a number: ”);
scanf(“%d”,&x);
a[0]=x;
i=j;
/*从最后一个单元开始*/
while(a[i]>x)
{ a[i+1]=a[i];i--;
}
/*将比x大的数往后移动一个位置*/
a[++i]=x;
j++;
/*插入x后元素总个数增加*/
for(i=1;i
printf(“n”);
system(“pause”);
} C语言是从主函数main开始执行然后执行数int a[ ] ={0,12,17,20,25,28,30}。因为数组的定义是int类型因此在数组内给定的值必须是整型。同时要定义三个值分比设为x,i,j同时要定义它们的类型,因为一开始就定义数组是整型,所以想x,i,j也是整型。随后就是你要插入的那个数其c语言的格式为:
printf(“Enter a number: ”); 随后就是输出语句scanf(“%d”,&x);随着这个过程的完成就来到循环语句while······for······它的作用是将比前一位大的数移动到后一个位置依次循环下去如果j=6就循环了7次,如果j=5就循环了6次最终把所有的数改变位置。最后输出结果。这样一个关于数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列的问题就完成了。
6.设计体会
学习c语言也过了一学期时间按记忆法则来说c语言的影像早也是抛到“九霄云外去了”。经过这一次实训课又让我再次拿起了c语言的书本,俗话说“温故而知新,可以为师也”,经过这次比较全面的学习我更加了解了c语言更看懂了c语言的重要性。让我深刻的意识c语言对人的中重要性,没有c语言就没有c++,就没有Java更没有现在这么强大的机器语言、汇编语言、高级语言。
本学期主要以学习c++为主一般认为学了c++就没必要学习c语言,认为c++会离我远去。但这种想法是完全错误的C语言并没远去它像修房一样,要先修房就必须打好地基而C语言就是我的地基。如果地基没打好房子怎么能修的高呀,因此我要在汇编领域要有所发展就必须学好C语言。
短短的一次实训课让我比较全面的看见了自己的不足,在以后的日子我会像“周公吐脯,天下归心”一样他求才那我就求知换句话说就是废寝忘食。最后感谢老师给我们开设实训课,并让我们重新温习这是一个难能可贵的机会我会好好珍惜的。