嵌入式C语言开发技
更新时间:2023-03-13 06:10:01 阅读量: 教育文库 文档下载
目 录
实验一 Linux编程环境实验(4学时) .................... 1 实验二 循环程序设计(2学时) .......................... 4 实验三 分支程序设计(2学时) .......................... 5 实验四 实验五 实验六 Linux实验七 实验八 实验九 实验十 Linux
函数实验(2学时) .............................. 6 指针实验(2学时) .............................. 7 常见数据结构实验(2学时) ................ 8 文件读写实验(2学时) .......................... 9 多线程实验(2学时) ........................... 10 网络编程实验(2学时) ......................... 11 应用程序的编写(4学时) ................. 12
实验一 Linux编程环境实验(4学时)
实验目的:
1.掌握Linux操作系统的基本命令,能对文件、文件夹进行相应的操作; 2.熟练掌握Linux下编辑器的使用;
3.学会使用编译器GCC对源程序进行编译; 4.掌握调试程序GDB的使用以及调试过程;
实验内容:
1.Linux常用命令;
1) 以root账号登陆Linux系统,创建新用户:student 2) 更改该用户密码为:123456 3) 切换到student账户
4) 查看用户主目录(/home/student)下的目录、文件信息 5) 创建新目录/home/student/source
6) 查看source的属性,并重新设置其权限为777
7) 查看/usr/include目录下所有后缀为.h的文件,并将它们都复制到
/home/student/souce目录下
8) 在用户主目录下创建新目录destination,并设置其权限为777 9) 将source目录下的文件都移动到destination目录下 10) 删除destination目录下的所有文件
11) 用man命令查看rename的使用手册(还有哪些方法可以获得命令帮
助?)
12) 重命名source目录为haha
13) 删除haha目录和destination目录
2.Vi编辑器的使用;
熟练完成vimtutor中的练习;(写完成以后的体会,字数不限!)
3.GCC编译器的使用;
1) 用gcc带不同参数编译下列C程序,并观察每次的运行结果。
#include
printf(“hello linux!\\n”); return 0; }
2) 用编辑器创建main.c, compute.c, input.c, compute.h, input.h和
main.h文件。下面是它们的内容。注意compute.h和input.h文件仅包含了compute和input函数的声明但是没有定义。定义部分在
1
compute.c和input.c文件中。main.c包含的是两条显示给用户的提示信息。
$cat compute.h
/*compute函数的声明原形*/ double compute(double, double);
$cat input.h
/*input 函数的声明原形*/ double input(char *);
$cat main.h
/*声明用户提示*/
#define PROMPT1 \请输入x的值:\#define PROMPT2 \请输入y的值:\
$cat compute.c #include
double compute(double x, double y) { return(pow((double)x, (double)y)); }
$cat input.c
#include
$cat main.c
#include
2
printf(\本程序从标准输入获取x和y的值并显示x的y次方.\\n\ x = input(PROMPT1); y = input(PROMPT2); printf(\的y次方是:%6.3f\\n\ retun 0; }
创建上述三个源文件和相应的头文件,用gcc编译器,生成power可执行文件,并运行power程序。给出完成上述工作的步骤和程序运行结果。注意:在生成可执行代码时不要忘了链接上数学库。
创建makefile文件,使用make命令,生成power可执行文件,并运行power程序。给出完成上述工作的步骤和程序运行结果。
4.GDB调试器的使用;
使用GDB调试器调试上述程序,给出调试的步骤。
5.make与makefile实验练习
本实验是关于makefile内容的,不需要在计算机上进行编程运行,只需要回答下面这些问题。
CC = gcc
OPTIONS = -O3 -o
OBJECTS = main.o stack.o misc.o SOURCES = main.c stack.c misc.c HEADERS = main.h stack.h misc.h polish:main.c$(OBJECTS)
$(CC)$(OBJECTS) power $(OBJECTS) -lm main.o:main.c main.h misc.h stack.o:stack.c stack.h misc.h misc.o:misc.c misc.h
1) 所有宏定义的名字; 2) 所有目标文件的名字; 3) 每个目标的依赖文件;
4) 画出makefile对应的依赖关系树; 5) 生成每个目标文件所需要执行的命令;
6) 生成main.o stack.o 和misc.o时会执行哪些命令,为什么?
3
实验二 循环程序设计(2学时)
实验目的:
1.熟练掌握Linux下编辑器的使用;
2.学会使用编译器GCC对源程序进行编译; 3.熟练掌握循环语句的使用; 4.掌握循环程序的设计方法;
实验题目:
1.求s = a + aa +aaa + aaaa + aa…a的值,其中a是一个数字。例如2 + 22 + 222 +2222 +22222(此时共有5个数相加), 几个数相加由键盘控制。
2.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
3.判断101~200之间有多少个素数,并输出所有素数。
4.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
5.将一个正整数分解质因数。例如:输入90,打印出90 = 2×3×3×5。
4
实验三 分支程序设计(2学时)
实验目的:
1.熟练掌握if、switch语句的使用 2.掌握分支程序的设计方法 3.能用分支语句解决实际问题
实验题目:
1.有一函数:
y=
写一程序,输入x值,输出y值。
2.输入一学生分数,判断此分数为哪一等。设等级如下: 100 —— 80:A 79 —— 70:B 69 —— 60:C 59 —— 0:D 其他:输入错误。
3.输入某年某月某日,判断这一天是这一年的第几天。
5
实验四 函数实验(2学时)
实验目的:
1.熟练掌握函数的应用; 2.掌握实际问题功能的划分; 3.熟练掌握函数的设计方法; 4.掌握函数接口的设计;
实验内容:
1.编写函数,求两个直角边对应的斜边长度。
2.编写函数,求两个正整数的最小公倍数和最大公约数,并输出。 3.按下面要求编写程序:
1)定义函数 total(n)计算1+2+3+....+n;
2)定义函数,输入正整数n,计算并输出下列算式的值。
要求调用函数 total(n) 计算1+2+3+....+n。
4.编写一个函数求1k + 2k + 3k + ... + nk的值,假设k为4,n为6。6
实验五 指针实验(2学时)
实验目的:
1.熟练掌握指针的应用;
2.能用指针解决实际问题,总结指针与数组的不同; 3.熟练掌握指针使用的技巧及方法; 4.掌握不同类型指针的处理方法;
实验内容:
1.编程实现:任意输入的10个数,求其平均值。
要求:
1) 10个数采用scanf语句读入;
2) 利用指针实现对这10个数的访问; 3) 要求平均值的精度为小数后面2位。
2.编程实现:输入三个整数,按由大到小的顺序输出。
要求:
1) 通过scanf函数输入三个数据并存入三个变量中; 2) 利用指针实现从大到小输出;
3) 修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出;
4) 修改程序,将三个字符型数据改为字符串数据,输入三个字符串,按从小到大顺序输出;
5) 体会指针对不同数据处理的特点。
3.编写函数newcopy(char *new,char *old),它的功能是删除old所指向的字符串中的小写字母,并将所得到的新串存入new中。
要求:
1) 在主函数中以初始化方式输入一个字符串; 2) 调用newcopy()函数;
3) 在主函数中输出处理后的结果。
4.编程实现:将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然保持有序。
要求:
1) 整数数组由初始化方式输入。任意整数由scanf函数输入; 2) 实现过程采用指针处理;
3) 输出原始数组数据以及插入数据后的数组数据并加以相应说明。
7
实验六 Linux常见数据结构实验(2学时)
实验目的:
1.掌握链表的生成方法; 2.能够构造出一个二叉树;
3.能对构造的二叉树进行常见操作;
实验内容:
1.编程实现:建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点内容输出;
2.调试验证课本138页“构建顺序二叉树”程序,并先序遍历该二叉树;
8
实验七 文件读写实验(2学时)
实验目的:
1.熟练掌握文件的打开、关闭方法;
2.熟练掌握文件的基本操作,能针对不同的使用,采用不同方式打开文件; 3.掌握文件中数据的读出、查找以及插入; 4.熟练掌握文件指针的作用;
实验内容:
1.编程实现:调用fopen函数,打开当前目录下的“a.c”文件(如果没有该文件,可以自己创建一个),若成功,在屏幕上显示“file open successfully…”,若失败,在屏幕上显示“can not open the file…”
2.有5个学生,每个学生有三门课成绩,从键盘键入以上数据(包括学生号、姓名、3门课成绩),并存放在磁盘文件“stud”中。
3.将上题“stud”文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入到一个新文件“stud_sort”中。
9
实验八 多线程实验(2学时)
实验目的:
1.掌握线程的基本知识;
2.能设计一个简单的多线程程序; 3.学会多个线程之间的数据传递方法; 4.掌握多线程之间的协调工作;
实验内容:
1.进程创建:父进程通过调用fork()函数创建子进程,父进程每间隔5s打印消息“This is parent process!”,子进程每间隔2s打印消息“This is child process!”
2.线程的创建与与终止:进程中使用pthread_creat()创建5个线程(线程P1~P5),每个线程都间隔1s输出打印该线程的线程ID。
10
实验九 网络编程实验(2学时)
实验目的:
1.学会使用网络套接字; 2.利用套接字建立网络连接; 3.实现网络数据的传输;
实验内容:
编程实现基于服务器——客户端的聊天程序:服务器和客户端之间使用面向非连接方式通信,服务器端创建并配置socket可以响应任意一个客户端的连接,客户端和服务器端根据相应的配置信息实现聊天通信。
11
实验十 Linux应用程序的编写(4学时)
实验目的:
1.搭建基于Linux操作系统的ARM系统实验所需的环境构件; 2.学习编写添加Linux应用程序;
实验内容:
1.搭建实验环境;
1) 用串口线连接主机和实验系统,配置超级终端; 2) 安装交叉编译器; 3) 配置NFS网络文件系统;
4) 用交叉网线连接主机和实验系统; 2.Linux应用程序的编写,添加,运行;
1) 在主机端编写一个简单的应用程序,如hello_world程序,交叉编译
该应用程序; 2) 在实验系统上添加,运行该应用程序; 3) 编译运行一个LED应用程序;
12
正在阅读:
嵌入式C语言开发技03-13
关于生物武器的浅显认识01-31
8章 时间序列分析练习题参考答案01-05
电场专题103-15
学术报告动态ppt模板09-20
2014年计算机网络技术期中理论考试试题(对口二班)09-11
入党校初级班申请书03-28
印象辽宁社会实践报告03-31
事业单位档案管理中存在的问题及对策分析09-17
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 嵌入式
- 语言
- 开发
- 辽宁省大连市真金教育信息咨询有限公司高三数学 第11章 统计与概率精炼试题 新人教A版
- 城市市区表层土壤重金属污染的分析模型 - 图文
- AI测试题 - 图文
- 胚胎干细胞的特点及应用前景
- 物业管理面临挑战与物业管理创新
- 生化总复习题
- 考勤管理系统设计报告
- 废油收购回收环保协议
- 山东2016年执业药师继续教育答案(综合4个题库)
- NC开发流程一览表
- 开发商变更小区规划,承担违约责任
- 小学语文综合练习题
- 考研复试个人陈述
- 13年高考真题 - 理科数学(广东卷)
- 论坛类新闻通稿范文
- 2016-2017学年福建省师大附中高二下学期期末考试英语试卷
- 机电一体化实训考核台实训 - 图文
- 审计工作底稿编制实务案例-营业、管理费用
- 新人教版八年级下册翻译练习(unit 1—3)
- 食品饮料企业岗位责任制度(生产许可证QS)