版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 嵌入式c语言设计 实 验 指 导 书编 写适用专业: 计算机科学与技术闽江学院 计算机科学 系2009年 7月前 言嵌入式c语言设计实验由验证性实验一、eclipse for linux集成环境的使用,验证性实验二、特殊关键字及数据类型的应用,综合性实验三、数据结构与算法的应用构成,通过实验应达到下列要求:1.熟习eclipse for linux集成环境的使用。掌握该软件的用法,包括c程序的编辑、编译、调试、下载等的方法,为后续的综合实验打下基础。2.加深嵌入式c语言中特殊关键字的认识;常用数据类型(基本和构造)、程序基本结构的用法;能熟练进行嵌入式c的程序设计。3.熟习linux系统下常
2、用数据结构与算法的c语言实现;能根据实验内容的要求进行综合性的编程以实现特定的功能。4由于这门课程的实验需要大量的时间练习,但受实验课时的限制需要学生课外补足(16到24学时),因此要求学生在实验前先预习实验内容并根据实验大纲的说明先期做好实验的准备工作。本指导书对综合性实验只给出设计的要求和指标不给实验源代码,由学生自己设计、编译、调试并运行;通过实验结果理解常用数据结构与算法在嵌入式c中的实现方法;在实验报告中回答思考题。目 录 实验一 eclipse for linux的使用3实验二 特殊关键字及数据类型的应用7实验三 数据结构与算法的应用9实验一 eclipse for linux的使
3、用实验学时:2实验类型:验证实验要求:必修一、实验目的1、掌握eclipse for linux集成环境的用法。2、熟悉eclipse for linux的调试方法。3、练习嵌入式c语言的编程。二、实验内容1、熟悉并使用eclipse for linux集成环境2、阅读并编译实验例程用eclipse for linux编译实验例程。3、运行程序并对照实验源程序阅读理解实验结果的含义。三、实验原理、方法和手段根据实验例程,编辑、编译并运行程序;验证嵌入式c语言的数据与运算规则。通过练习熟悉eclipse for linux集成环境和c语言的数据与运算规则。四、实验组织运行要求根据本实验的特点、要
4、求和具体条件,采用以学生自主训练为主的开放模式组织教学。重点:用eclipse for linux集成环境练习编程。难点:无 五、实验条件具备linux操作系统、带有eclipse for linux集成环境的pc机或虚拟机。六、实验步骤1、阅读例程源代码2、编辑、编译、运行3、记录并理解运行显示的信息4、回答思考题并撰写实验报告七、思考题1、 示例2的四个程序结果是什么?为什么?总结运算符的优先级和结合方向的规则。2、 示例3 的两个程序结果是什么?为什么?总结自加和自减运算前置和后置的注意事项。3、 示例4运行结果是什么?为什么?提出解决的方法并实现之。4、 示例5 运行结果是什么?为什么
5、?5、 示例6 运行结果是什么?自己总结位操作的注意问题。八、实验报告1、实验预习在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的安全注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。设计性实验要求进入实验室前写出实验方案,并经指导教师审阅后实施。2、实验记录学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。实验记录中应有指导教师的签名。3、实验报告主要内容包括对实验数据、实验中的特殊现
6、象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法。九、实验例程示例1 从键盘输入一个圆的半径,计算此圆的周长和面积并输出#include #define pi 3.1415926 void main()float radius; float area; float circ; printf(n enter a radius: ); scanf(%f, &radius); circ = 2 * pi * radius; area = pi * radius * radius; printf(n circumference : %f, cir
7、c); printf(n area: %f, area); 在eclipse for linux集成环境下编辑、编译并执行示例2 运算符的优先级和结合方向示例。代码(a) 代码(b)# include # includevoid main() void main() int a,b; int a,b;a = 2; a=2;b = (a+)+(a+); b = (+a)+(+a);printf(“ b = %dn ”,b); printf(“b = %dn”,b);printf(“ a = %dn”,a); printf(“a = %dn”,a); 代码(c) 代码(d)# include #
8、includevoid main() void main() int a,b; int a,b;a = 2; a = 2;b = (a+)+(+a); b = (+a)+(a+);printf(“ b = %dn”,b); printf(“ b =%dn”,b);printf(“ a = %dn”,a); printf(“ a = %dn”,a); 在eclipse for linux集成环境下编辑、编译并执行;分析四个程序的运行结果并回答思考题1。示例3 自加和自减运算前置和后置/*代码(a)*/ /* 代码(b)*/# include #includevoid main(void) voi
9、d main(void) int a,b; int a,b;a = 5; a = 5;b = +a; b = a+;printf(“a=%d,b=%d”,a,b); printf(“a=%d,b=%d”,a,b);printf(“n”); /*换行*/ printf(“n”); /*换行*/a = 5; a = 5;b= a; b = a;printf(“a=%d,b=%dn”,a,b); printf(“a=%d,b=%dn”,a,b); 在eclipse for linux集成环境下编辑、编译并执行;分析两个程序的运行结果并回答思考题2。示例4 显示数的平方系列。# include# de
10、fine n 100# define a 2int main()int a;a=a;while(an)printf(“%dn”,a);a *= a;return 0;在eclipse for linux集成环境下编辑、编译并执行;分析程序的运行结果并回答思考题3。示例5 程序综合使用不同的运算符。# includevoid main()int a,b,c,d;a = 8;b = 12;c = +a b;printf(“a = %d b = %d c=%dn”,a,b,c);d = b+ +a;printf(“a=%d b=%d d= %dn”,a,b,d);printf(“a/b = %d n
11、”,a/b);printf(“a%b=%dn”,a%b);printf(“a*=b=%dn”,a*=b);printf(“%dn”,(cd)?1:0);printf(“%dn”,(cd)?1:0);在eclipse for linux集成环境下编辑、编译并执行;分析程序的运行结果并回答思考题4。示例6 位操作练习自己编程实现:求 9&5 的值;求 9|5 的值;求 95 的值;求 9 的值;求 93 的值;在eclipse for linux集成环境下编辑、编译并执行;分析程序的运行结果并回答思考题5。实验二 特殊关键字及数据类型的应用实验学时:2实验类型:验证实验要求:必修一、实验目的1、加
12、深对嵌入式c语言中特殊关键字的认识。2、进一步熟悉常用数据类型(基本和构造)、程序基本结构的用法。3、能熟练进行嵌入式c的程序设计。二、实验内容1、阅读实验例程源程序,理解数据类型、程序基本结构的用法。2、编译实验例程,掌握特殊关键字的用法。3、运行程序并对照实验源程序阅读理解实验结果的含义。三、实验原理、方法和手段根据实验例程,编辑、编译并运行程序;验证嵌入式c语言的数据类型、程序基本结构的用法。通过编译并运行实验例程熟悉特殊关键字的用法。四、实验组织运行要求根据本实验的特点、要求和具体条件,采用以学生自主训练为主的开放模式组织教学。重点:掌握特殊关键字的用法。 难点:掌握特殊关键字的用法。
13、 五、实验条件具备linux操作系统、带有eclipse for linux集成环境的pc机或虚拟机。六、实验步骤1、阅读例程源代码2、编辑、编译、运行3、记录并理解运行显示的信息4、回答思考题并撰写实验报告七、思考题1、自己总结if、for、while、switch等语句的使用注意点。2、分析示例【3】兔子规律的数列是什么?3、示例【4】存在什么问题?如何在编译时检查?。4、示例【5】的宏定义存在什么问题?如何在编译时检查?5、程序在编译时优化可能存在什么问题?6、通过实验,自己总结volatile关键字的意义。7、在该例程中%0、%1分别代表什么?八、实验报告1、实验预习在实验前每位同学都
14、需要对本次实验进行认真的预习,并写好预习报告,在预习报告中要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的安全注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。设计性实验要求进入实验室前写出实验方案,并经指导教师审阅后实施。2、实验记录学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象和所测得的数据及相关条件如实地记录下来。实验记录中应有指导教师的签名。3、实验报告主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的
15、看法。九、实验例程示例【1】 输入三个整数,输出最大数和最小数。main()int a,b,c,max,min;printf(input three numbers:);scanf(%d%d%d,&a,&b,&c);if(ab)max=a;min=b;elsemax=b;min=a;if(maxc)min=c;printf(max=%dnmin=%d,max,min);示例【2】 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。#include void main()char c;int letters=0,space=0,digit=0,others=0;printf(pl
16、ease input some charactersn);while(c=getchar()!=n)if(c=a&c=a&c=0&c=9)digit+;elseothers+;printf(all in all:char=%d space=%d digit=%d others=%dn,letters,space,digit,others);示例【3】 古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?#include void main()long f1,f2;int i;f1=f2=1;for(i=
17、1;i=20;i+)printf(%12ld %12ld,f1,f2);if(i%2=0) printf(n); /*控制输出,每行四个*/f1=f1+f2; /*前两个月加起来赋值给第三个月*/f2=f1+f2; /*前两个月加起来赋值给第三个月*/注意:以下程序编译时,若集成编译器不支持-e、-o、-s等选项可直接用gcc编译!示例【4】编译以下程序,分析结果是否满足要求#define add(a,b) a+bint main(void)int a,b;a=3*add(4,2);printf(%dn,a);return 0;运行后回答思考题3示例【5】编译以下程序,分析结果是否满足要求#d
18、efine sisfall(x) printf(%dn,x);return -1;int main(void)int a=10;if(a=20n);return 0;运行后回答思考题4示例【6】分别优化与不优化编译以下程序,分析程序功能是否满足要求void main(void)volatile int *i=0xff;int *j=0xff;*i=0;*i=1;*i=0;sleep(1);*j=0;*j=1;*j=0;运行后回答思考题5示例【7】分别优化与不优化编译以下程序,分析程序功能是否满足要求int int_data1;volatile int int_data2;void interr
19、upt()int_data1+;int_data2+;void main()int temp;temp=int_data2;while(int_data2=temp)if(int_data2!=temp)printf(int_data2!=tempn);temp=int_data1;while(int_data1=temp)if(int_data1!=temp)printf(int_data1!=tempn);运行后回答思考题6示例【8】内嵌汇编练习#include int main(void) long eax=4; long ebx=2; _asm_ _volatile_ (addl %1
20、, %0 : =b(long)ebx) : a(long)eax), b(long)ebx) : 1 ); printf(ebx=%dn, ebx); return 0;编译、运行实验例程,回答思考题7实验三 数据结构与算法的应用实验学时:4实验类型:综合实验要求:必修一、实验目的1、进一步熟悉eclipse for linux集成环境的使用2、熟悉linux系统下常用数据结构与算法的c语言实现。3、能根据实验内容的要求进行综合性的编程以实现特定的功能。二、实验内容1、在linux系统下,用c语言实现单向链表的功能。2、该链表具有插入、删除、查找的基本功能。3、可附加的功能有判空、遍历、清空、求长度。4、用该链表实现一个特定的用途(选做)。5、设计一个递归的void 函数,它将一系列数位垂直地写到屏幕上。例如,2008 将会被写成:2008三、实验原理、方法和手段根据高级语言程序设计和数据结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 珠宝设计师工作总结(3篇)
- 04版技术服务合同
- 2024年大型云计算中心服务运营合同
- 关于励志类简短的演讲稿(范文格式8篇)
- 地理-2023年高考地理预测卷02(福建卷)(考试版)
- 橱柜设计师工作总结范文(7篇)
- 教师工作反思与心得7篇(全文)
- 2023年氧气项目综合评估报告
- 人事半年总结(3篇)
- 2024年竞选学生会部长演讲稿范文(15篇)
- 二类医疗器械质量管理制度目录和工作程序
- 《跨境电子商务客服与沟通》 课件 第3章 售前客服与沟通
- 护理质量指标数据收集与分析
- 《中国古代礼制》课件
- 舞台美术设计基础
- 2024年华润燃气集团招聘笔试参考题库含答案解析
- 2024年江苏省港口集团招聘笔试参考题库含答案解析
- 安全管理的组织架构与责任划分
- 复发性流产查房
- 爱情片《百万英镑》台词 中英文对照
- 优先还款协议书
评论
0/150
提交评论