第一篇:新手——C语言_人实际应用心得(一部分)
C语言的使用心得
1、C语言区分大小写,如管脚P2口,p2即是不符合的;
2、C语言编写程序分三部分: A.头文件;#include “reg51.h”
B.函数声明;void mDelay()
C.主函数;void main()
3、关于循环符号书写:_crol_循环左移_cror_循环右移,注
意下划线有两条——前后各一条;
4、使用位操作时,要先定义,格式为sbit P14=P1^4;sbit
P1_4=P1^4;定义位时注意尾端加“;”分号;
5、while()语句的使用,注意()里的表达式为逻辑表达式;
一、如while(P37= =0),P37= =0表示比较P37与0是否相等,若相等,则表明事件为真,即执行while()语句,否则为假,跳过while()语句;
二、若写成while(P37=0),那么P37=0自始至终表示事件为假,则始终不执行while()语句;
6、{}内的语句内容建议每一行结尾都应该用分号“;”隔开,如{P14=0;mDelay(1000);};否则在编译时会出现语法错误;
7、关于数码管显示,建议在for(;;)语句中进行显示,我想用它
解决的问题是“数码管显示数值时闪动”。
8、使用数组进行数码管显示,关于数码管的调用说明与格式。
在头文件里写入#define uchar unsigned char;#define uint unsigned int;然后再使用uchar、uint,即uchar code
wei[]={0xfd,0xfb,0xf7,0xff};//数码管位选择数组uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//7段数码管段码表共阳(0——9数值);
9、微秒级延时程序调用,延时精度2微秒:
10、======
第二篇:C语言程序设计心得体
C语言程序设计心得体会
自从记事以来就听过了电脑这个高科技,现在终于实现了自己的一个小小愿望——成为了计算机系的一名学生,这学期我们学的C语言,以前就听过这个名字,打开书一看简直一窍不通,学好这门科简直就是一个挑战,课前课后都要把书啃一遍,要不然上课就跟不上,终于学期快结束了,我们有一个课程设计,在两个星期内,完成一个复杂的程序,我们的题目是做一个计算器,计算器从小就见过但让我自己设计一个出来就有点困难了。
第一天,我们都按照老师教的画图函数画计算器的外貌,但发现一个一个画实在是太烦琐,后来在老师的点拨下,我们采取了for语句,果然很快地画出来了,接下来的事就是计算了,用什么函数?怎么用?那个上午就坐那发呆,没有什么新突破,自性心严重受到打击,下午立马找了份材料到图书馆去研究,还专门找了位高手教我,研究了一个下午终于有眉目了,第三天我们成功地把计算功能搞定了,但还有闪烁的功能没有搞,这确实是一个问题,这时团结的力量得到了充分的体现,大家齐心协力,有的找资料,有的帮忙改错,有的……俗话说:“三个臭皮匠顶个诸葛亮。”在大家的共同努力下,我们胜利了。
感谢刘金平老师的淳淳教诲,感谢同学的积极帮忙,我的程序终于顺利完成了,接下来的就是写报告收尾了,看着自己的劳动成果写起报告来特有劲,特有灵感。
很感谢这次的课程设计,它使我更加深刻地体会到多看专业书的重要性,只有掌握了一定量的专业知识才能得心应手地解决诸多问题;另外,做任何事都要有耐心,不要一遇到困难就退缩;在学习和工作中要时刻谨记“团结”二字,它好比通向成功的铺路石,不可或缺。
人生的道路是曲折的,但正是因为曲折人生才光彩夺目,在人生的路上,总遇到重重困难,但正是因为困难我们才变的更坚强。今后的路还很长,面对困难,让我们用行动去俘虏它吧!
第三篇:《C语言高级应用》实验指导书
C语言高级应用
实验指导书
电子与计算机科学技术学院 实验一 顺序、选择及循环结构程序设计
一、实验目的
1.熟悉C语言编程环境 2.掌握输入输出函数的使用
3.掌握if语句和switch语句的使用
4.掌握for语句、while语句和do-while语句的使用 5.通过练习掌握顺序、选择及循环结构程序设计方法
二、实验环境
1.计算机
2.Turbo C集成环境
三、实验说明
1.首先应熟悉Turbo C运行环境,正确操作 2.自主编写程序,必要时参考相关资料
3.实验前应画出流程图并写出程序大致框架或完整的程序代码 4.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)求解方程ax2+bx+c=0。
(2)打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。
(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。
(5)执行程序,并检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题:
打印水仙花数时,要分别求出三位数的个位数、十位数和百位数,试问:除了你所用的的方法外,是否还有其它方法?请写出。
实验二 数组的应用
一、实验目的
1.通过实验理解掌握数组的基本概念
2.熟悉数组的定义、数组元素初始化、数组元素引用 3.理解字符数组的基本概念、基本操作和应用 4.能利用数组解决简单的应用问题
二、实验环境
1.计算机
2.Turbo C集成环境
三、实验说明
1.首先应熟悉Turbo C运行环境,正确操作 2.自主编写程序,必要时参考相关资料
3.实验前应画出流程图并写出程序大致框架或完整的程序代码 4.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)将一个数组中的值按逆序重新存放。
(2)编一程序,将两个字符串连接起来,不要用strcat函数。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。
(5)执行程序,并检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题:
(1)在字符串常量中,其结束符‘ ’要占一个字节的内存空间,在计算字符串长度时,是否也包括了字符串结束符?
(2)在对字符数组进行输入时,可以用scanf函数,也可以用gets函数,若定义了一字符数组,从键盘输入了以下内容:You are my student。试问:用scanf函数和gets函数得到的结果一样吗?请分别指出。
实验三 结构体及其应用
一、实验目的
1.理解结构体的基本概念 2.掌握结构体类型的定义方法
3.掌握结构体变量的定义、初始化和引用 4.理解结构体数组的定义、初始化和引用 5.通过实验熟悉结构体及结构体数组的应用
二、实验环境
1.计算机
2.Turbo C集成环境
三、实验说明
1.熟练操作Turbo C运行环境
2.自主编写程序,必要时参考相关资料 3.充分理解结构体的应用及编程技巧
4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生数据,求出每个学生3门课的平均成绩,并输出最高分的学生的数据(包括学号、姓名、3门课的成绩、平均成绩)。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。
(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。
(5)执行程序,并检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题:
假如你所定义的结构体类型名为:STUDENT,试问:sizeof(STUDENT)的值是多少?
实验四
函数的应用
一、实验目的
1.理解函数的基本概念
2.掌握函数的定义、调用方法及参数传递方式 3.理解变量的作用域和变量的存储类别 4.通过实验掌握函数的使用
二、实验环境
1.计算机
2.Turbo C集成环境
三、实验说明
1.熟练操作Turbo C运行环境
2.自主编写程序,必要时参考相关资料 3.充分理解函数的应用及编程技巧
4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)写一个判素数的函数,在主函数中输入一个整数,输出是否是素数的信息。(2)写一函数,使给定的一个二维数组(3×3)转置。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。
(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。
(5)执行程序,并检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题:
如果一个函数的定义如下所示: void hello(){ „„ return;} 请说明其中return语句的作用。其中的return语句可以省略吗?
实验五
指针及其操作
一、实验目的
1.通过实验进一步掌握指针的概念
2.理解指针的定义和简单指针变量的使用方法
二、实验环境
1.计算机
2.Turbo C集成环境
三、实验说明
1.熟练操作Turbo C运行环境
2.自主编写程序,必要时参考相关资料 3.充分理解指针的使用及编程技巧
4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
输入4个整数,按由小到大的顺序输出,使用指针进行处理。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。
(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。(5)执行程序,并检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题: 请说明以下程序段存在的问题,并改正。int a,*p;scanf(“%d”,p);
实验六
数组的指针操作
一、实验目的
1.理解数组的指针和指向数组的指针变量 2.理解指针变量作为函数参数时的参数传递方式
二、实验环境
1.计算机
2.Turbo C集成环境
三、实验说明
1.熟练操作Turbo C运行环境
2.自主编写程序,必要时参考相关资料 3.充分理解数组指针的使用及编程技巧
4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
(1)输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写三个函数实现:① 输入10个数;②进行处理;③输出10个数(2)将n个整数的前面各数向后移m 个位置,最后m 个数变成最前面m个数。在主函数中输入n个整数和输出调整后的n个数。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。
(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。
(5)执行程序,并检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题:
int *p, a[10]={0,1,2,3,4,5,6,7,8,9};p=a;试问:如果数组a的首地址为:0x1000,&a[3]与p+3的值分别是多少?*p+3与*(p+3)的值分别是多少?
实验七
结构体的指针操作
一、实验目的
1.理解结构的指针和指向结构的指针变量及链表的基本概念 2.理解链表的基本操作
二、实验环境
1.计算机
2.Turbo C集成环境
三、实验说明
1.熟练操作Turbo C运行环境
2.自主编写程序,必要时参考相关资料 3.充分理解结构的指针的使用及编程技巧
4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中有年龄等于此年龄的结点,则将此结点删除,否则新建一结点,插入到链表末尾。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。
(5)执行程序,并检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题:
在建立链表时,要用到malloc函数来开辟内存空间,例如: p=(struct student *)malloc(sizeof(struct student));试问:为什么要在malloc函数前加(struct student *),去掉其中的*号可以吗?并说明原因。
实验八
文件的基本操作与应用
一、实验目的
1.理解文件及文件指针的概念
2.学会使用打开、关闭、读、写等文件操作函数 3.学会创建自己需要的文件格式
二、实验环境
1.计算机
2.Turbo C集成环境
三、实验说明
1.熟练操作Turbo C运行环境
2.自主编写程序,必要时参考相关资料 3.充分理解文件的基本操作及编程技巧
4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
编程实现以下内容:
(1)建立一数据文件,该数据文件包括文件头:0X146F,0X1234;
(2)一个班有5个学生,每个学生包括:学号、姓名和三门课成绩,从键盘输入5个学生的信息,并保存到该数据文件;
(3)从文件中读出5个学生的信息,计算平均成绩;
(4)把5个学生的所有信息(包括平均成绩)输出到数据文件。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)进入Turbo C集成环境。(3)编辑源程序并进行保存。
(4)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。
(5)执行程序,并检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题:
为什么在对文件操作结束后,要用fclose函数关闭文件?
实验九
串口通信的简单应用
一、实验目的
1.理解串口的操作方式和模式控制方式 2.理解串口数据通信的实现过程 3.能够编写简单的串口通信程序
二、实验器材
1.计算机
2.DB_9串口插头两个,导线若干
三、实验说明
1.自主编写程序,必要时参考相关资料 2.充分理解串口的基本操作 3.理解串口通讯的基本过程
4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
将两台计算机的COM口相连,一个作为接收端,另一个作为发送端,编程实现两台计算机之间的简单通信。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)将两台计算机的COM口连接好。(3)进入Turbo C集成环境。(4)编辑源程序并进行保存。(5)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。
(6)执行程序,并检查程序输出结果。
五、实验报告要求1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题:
两台计算机在通过串口进行串行通信时,它们的串口参数(如波特率)可以设置为不一样吗?
实验十
并口通信的简单应用
一、实验目的
1.理解并口的操作方式
2.理解并口寄存器的含义和并口读写时序
3.能够针对简单的应用问题,编写简单的并口通信程序
二、实验器材
1.计算机
2.实验电路板(包括并行接口、数模转换器DAC0832、运算放大器LM741、电阻、电容等),DB_25并口插头一个,导线若干 3.示波器、微机—II型电源各一套
三、实验说明
1.自主编写程序,必要时参考相关资料 2.充分理解并口的基本操作 3.理解并口通讯的基本过程
4.实验前应画出流程图并写出程序大致框架或完整的程序代码 5.实验学时:2学时
四、实验内容和步骤
1.实验内容
通过计算机并口向数模转换器发送数据,实现D/A转换。2.实验步骤
(1)分析实验内容,画出流程图并写出程序大致框架或完整的程序代码。(2)把实验电路板与计算机并口、示波器、电源(此时电源关闭)连接好。(3)进入Turbo C集成环境。(4)编辑源程序并进行保存。
(5)编译源程序,若有错误,修改错误后再次进行编译和连接,如此反复进行到不显示出错为止。
(6)打开电源,执行程序,通过示波器观察D/A转换器和运算放大器输出的波形。
(7)如发现波形输出有问题,若是程序有问题,关闭电源,修改程序并保存,重复步骤(5),(6),(7),直到输出正确的波形为止。若是电路有问题,请查找原因,或更换实验板,验证程序的正确性。
五、实验报告要求
1.整理实验结果,填入相应表格中 2.小结实验心得体会 3.回答思考题:
计算机并口的基地址有哪些?若要改变并口的基地址,应如何操作?
第四篇:C语言心得与基础知识
1.把 i 的值定义为浮点型,逻辑上正确,但是严格来说不对 浮点数的存储带来的问题:
float,double都不能保证可以存储一个小数、近似值 1.213e+2 例题:如何判断浮点型变量 X 的值是否是零
if(|x-0.000001|<=0.000001)shi;else no;
为什么循环更新的变量不能定义成浮点型?
心得:试数,数学归纳法,五次在纸上
2.自增[自减]
3.例子:回文数
12112321123
43214.什么时候使用while,什么时候使用for,多尝试!do...while 主要用于人机交互。
do{....} while(表达式);while 与 for 是等价的,可以相互转换; 数组为n个变量连续分配内存空间
所有的变量数据类型必须一样所有变量所占的字节大小必须相等
例子:
int [3];
初始化: 完全初始化
不完全初始化不初始化,所有元素是垃圾值
清零 int [3] = {0};一位数组名不代表数组中所有的元素,代表地址
是否存在多维数组,不存在因为内存是线性一维的,N维数组可以作为每个元素是N-1维数组的一维数组
6.游戏
分感官效果和内核设计两部分.感官效果,涉及图形技术图像技术、音频技术等等多媒体编程.内核设计,要做一个合理的游戏,必须在明确游戏思路和算法的前提下,精确定义玩家可以从事什么行为,不能从事的行为要怎么样标记,异常的操作又要怎么处理。7.函数定义的本质:详细描述之所以能够实现某个特定功能的具体方法
return表达式的含义:终止被调函数,向主函数返回表达式的值。如果表达式为空,则只终止函数不向主调函数返回值
函数返回值的类型也称为函数的类型,如果函数名前面的返回值类型和函数执行体 中的return,表达式中的类型不同的话,最终函数返回的类型一函数名的类型相同。函数分为有参函数和无参函数。库函数,自定义函数。有返回值,无返回值函数 普通函数和主函数,一个程序只能有且只有一个主函数。主函数可以调用普通函数。普通 函数可以相互调用。主函数是程序的入口,也是程序的出口。
{值传递 和地址传递函数}
8.指针
int * p;P是变量名,p变量的数据类型是int * 类型,而int *类型实际就是存放int 类型变量地址的 类型。*p代表的是以p的内容为地址的变量
指针就是地址,地址就是指针,地址就是内存单元的编号(门牌号),指针只是编号。指针变量是存放地址的变量。指针和指针变量是两个不同的概念。但是要注意,通常我们叙述时会把指针变量简称指针。
指针的重要性:表示一些复杂的数据结构,如链表,树,图等模拟现实的显示;快速的传递数据。使函数返回一个以上的值(普通函数返回一个值,return)。直接访问硬件。能够方便的处理字符串。是理解面向对象语言中的基础。。。指针是C语言的灵魂。
指针的分类:基本类型的指针;指针和数组;指针和函数;指针和结构体;
指针的定义:
地址:地址就是内存单元的编号(门牌号),地址是从零开始的非负整数。
范围:CPU(内存的速度快于硬盘)直接处理内存条里的数据。。CPU如何控制内存条,先把内存条的数据读入CPU里,CPU内部进行处理,把结果写回内存条,但内存条数据达到一定程度,会一次性写到硬盘。(控制线,地址线,数据线)。通过地址线能确定CPU对内存条的哪个单元进行控制。范围:【0--4G-1】
指针:指针变量就是存放内存单元编号的变量
指针的本质上就是一个操作受限的非负整数。(不能进行相加等运算,可以进行相减,连续空间的不同单元)。
基本类型的指针:
指针和数组:包括一维、二维数组。
一维数组名是一个指针常量,存放的是一维数组第一个元素的地址。
如果一个函数要处理一个一维数组,则需要接收该数组的哪些信息?界定一个一维数组要几个参数:
sizeof 的返回值就是给数据类型所占的字节数
一个指针变量无论他指向的变量占几个字节,该指针变量本身只占四个字节。
动态内存分配的问题:
数组的优点:存取速度快
传统数组的缺点:
数组的长度必须事先指定,不能是变量
例如:int a[5];int len = 7;int a[len];//错误
传统形式定义的数组,该数组的内存程序无法手动编程释放,只能在函数运行完毕后由系统自动释放。数字一旦定义,系统为该数组分配的存储空间就会一直在。。在一个函数运行期间,系统为该函数中所分配的空间会一直存在,直到函数运行完毕后由系统自动释放。
数组的长度不能在函数的运行过程中动态的扩充或缩小。数组的长度 一旦定义,其长
度就不能在改变。
A函数定义的数组在A函数运行期间可以被其他函数调用,当A运行完毕后,A函数中的数组将无法在其他函数使用。(A内的内存空间被释放啦)传统方式定义的数组不能跨函数使用。
为什么需要动态分配内存:
因为能解决传统数组的缺陷。传统数组也叫静态数组。
动态内存分配举例: int *p =(int *)malloc(4);//12行
/*1.要使用malloc函数,必须添加malloc.h这个头文件 2.malloc 函数只有一个形参,并且是整数 3.malloc(4)的4表示请求系统为本程序分配四个字节 4.malloc函数只能返回第一个字节的地址。5.地址,内存单元的编号。12行分配了8个字节,p变量占四个,p指向的内存也占四个字节
*/ 6.p本身所占的内存是静态分配的,p所指向的内存是动态分配的。
free(p);//把p指向的内存释放,p本身不能释放,而只有main函数终止由系统释放。静态内存与动态内存的比较:静态内存是由系统自动分配,由系统自动释放,静态是在栈分配的动态内存是由程序员手动分配,手动释放动态内存是在堆分配的。
跨函数使用内存的问题:
枚举:如果一个变量只有几种可能的值。。指将变的值一一列举出来。变量的值只限于列举出来的值的范围内。enum 枚举值称为枚举元素或者枚举常量。值 0,1,2,3.。。
算法:
通俗的定义:
解题的方法和步骤
狭义的定义:
对存储数据的操作 对不同的存储结构,要完成某一个功能所执行的操作不一样 例如:输出数组中所有的元素操作和要输出链表中所有的元素操作不一样...说明了算法依附于存储结构的,不同的存储结构所执行的算法不一样。
广义的定义:
广义的算法也叫泛型。无论数据如何存储的,对该数据的操作都是一样的。我们至少可以通过两种结构来存储数据,一个是数组,一个是链表。
链表:
头结点(其数据类型和首节点的类型是一摸一样的,头结点是首节点前面那个节点,头结点不存放有效数据,设置头结点的目的是方便对链表的操作),头指针(存放头结点地址的指针变量),首节点(存放第一个有效数据的节点),尾节点
头指针->头结点->首节点->.......->尾节点(null)
确定链表需要一个参数:头指针
优点:插入删除元素效率高,不需要一个连续的很大的内存。
NULL本质也是零,而零 不代表数字零,而代表的是内存单元的编号零。\以零为编号的存储单元不可读不可写
字符串是作为字符数组来处理的,字符串中的字符是逐个存放到数组元素中的,字符串的实际长度与数组的实际长度相等。字符串结束标志: ‘ ’例如:C Program 共有9个字符,但内存占10个字节,字符串作为一维数组存放在内存中。缺点:查找某个位置的元素效率低
1、C中内存分为四个区
栈:用来存放函数的形参和函数内的局部变量。由编译器分配空间,在函数执行完后由编译器自动释放。
堆:用来存放由动态分配函数(如malloc)分配的空间。是由程序员自己手动分配的,并且必须由程序员使用free释放。如果忘记用free释放,会导致所分配的空间一直占着不放,导致内存泄露。
全局局:用来存放全局变量和静态变量。存在于程序的整个运行期间,是由编译器分配和释放的。
文字常量区:例如char *c = “123456”;则”123456”为文字常量,存放于文字常量区。也由编译器控制分配和释放。
程序代码区:用来存放程序的二进制代码。
第五篇:C语言在工程实践中的应用
龙源期刊网 http://.cn
C语言在工程实践中的应用
作者:卫星君
来源:《电脑知识与技术》2013年第01期
摘要:C语言具有较强的数据和图形处理功能,能将所得数据依据函数对应关系绘制出工程所需函数曲线实现图形屏幕显示,并保存图形用于输出。将C语言的字符模式转换为所需分辨率和颜色值的图形模式,正确使用C语言表达函数对应法则,准确计算出工程数值,通过调用C语言库函数画出对应函数值在坐标上的点,从而实现图形的精确绘制。用以上方法对地震勘探原理中的多次叠加振幅特性曲线进行了成功绘制。
关键词:C程序;函数曲线;图形
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)01-0080-05
手工绘制工程问题中的一些复杂函数曲线比较困难且不精确,同时函数计算过程会产生大量的数据。如在绘制地震勘探多次波叠加特性曲线时,要决定叠加参观与测量系统中的具体参数,还要给出单位叠加参量的值,期间还会产生大量的数据。通常绘制曲线的方法是先给出多个单位叠加参量,然后依据方程计算出每个点的坐标。显然使用这种方法若取的点少,曲线误差很大;若取的点多,计算及绘图过程非常繁琐。我们可使用C语言提供的较强图形库函数,直接调用这些函数实现绘制复杂函数曲线。绘图过程中注意问题
1.1 图形模式初始化
C语言在TURBOC编译环境下有两种显示模式,一种是字符模式,另一种是图形模式。在字符模式下只能显示字符,即80列,25行字符。程序缺省的是字符模式。在字符模式下不能显示图形和进行绘图操作。要进行图形显示和绘图操作,应切换到图形模式。设置图形模式,可用原型在graphics.h中的函数initgraph(int far *gdriver,int far *gmode,char
*path),其中参数gdriver和gmode分别表示图形驱动器和图形模式,path是指图形驱动程序所在的目录路径。图形驱动程序由TURBOC出版商提供,文件扩展名为.BGI。不同的图形适配器有不同的图形驱动程序。有关图形驱动器、图形模式的符号常数及对应的分辨率见表1。