没有合适的资源?快使用搜索试试~ 我知道了~
单片机C语言案例教程习题解答.doc
0 下载量 165 浏览量
2024-05-11
08:10:59
上传
评论
收藏 302KB DOC 举报
温馨提示
试读
31页
单片机C语言案例教程习题解答.doc
资源推荐
资源详情
资源评论
单片机 C 语言案例教程习题解答
习题 1
1. 在图 1-3 中,若 MCU 的 P0.0 和 P2.0 两引脚均为低电平,则四位数码管上有何显示。
解:由图 1-3 可知,P0.0 引脚为低电平,将使四位数码管的 a 笔划为低电平,P2.0 为低电
平,则使 Q3 导通,即数码管千位管的 8 个发光二极管正极为高电平,从而使千位管显
示其 a 笔划。
2. 设有定义“sbit qw=P2^0;”,和赋值语句“qw=0;P0=0Xfe”,则将如何影响 MCU 的输
出引脚?
解:qw=0,,就是使 P2.0 为低电平,则使 Q3 导通,即数码管千位管的 8 个发光二极管
正极为高电平,P0=0xfe,就是使 P0.0 为低电平,P0.1~P0.7 为高电平。从而使千位管显
示其 a 笔划。
3. 画出案例 6 源程序的函数架构及函数调用路线图。
解:案例 6 源程序的函数架构及函数调用路线图如下:
4. 将案例 6 源程序中 Delay 函数的 for 循环之式子 2“i<500”分别改为“ i<5000”和
“ i<50000”后重新编译和下载运行,对比循环终值从 500 变成 5000、再从 5000 变成
50000 对显示效果的影响。
解:先在数码管的千位管上显示 8,其余各管无显示;再在百位管上显示 0,其余各管
无显示;又在十位管上显示 5,其余各管无显示;再在个位管上显示 1,其余各管无显
示;
5. 写出图 1-3 中,数码管在单片机学习板中的电路连接要点。
解:四位数码管的 8 只笔段电极从 a 到小数点被依次接于 P0.0 到 P0.7 上,从左至右的四
只位置电极被接在受控于 P2.0 至 P2.3 的 Q3 至 Q6 的集电极回路.
6. 写出图 1-3 中,DS1302 在单片机学习板中的电路连接要点。
解: DS1302 的时钟线 SCLK 与 8051 的 P2.7 相接,数据线 DATA 与 P2.6 相接,复位线
RST 与 P2.5 相接.
7. 写出图 1-3 中,AT24C02 在单片机学习板中的电路连接要点。
解:AT24C02 的串行时钟线 SCL 与 8051 的 P3.6 相接,串行数据线与 P2.7 所接,
AT24C02 的写保护脚 WP 接地(允许写入)。
习题 2
1 设有如下定义:
int a;
crar b;
unsigned int c;
unsigned char d;
则 a 称为什么变量?它表示数的起止范围是什么?b 哪?c 哪?d 哪?
解:a 称为整型号变量,它表示的数的起止范围是-32768~32767;b 称为字符型变量,所
表示数的起止范围是-128~127;c 称为无符号整型变量,所表示数的起止范围是 0~65535;d
称为无符号字符型变量,所表示数的起止范围是 0~225。
2 试说明语句“a+1;”与语句“a++”的区别。
解:“a+1”表示变量 a 与 1 的和,“a++”表示用变量 a 与 1 的和对变量 a 赋值;前者的 a
没有被赋值,后者的 a 被赋值。
3 写出 if 语句的一般形式、画出 if 语句的流程图,说明 if 语句的执行规则。
解:if 语句的一般形式:
if(表达式)
语句
if 语句的流程图
执行规则:首先对表达式进行判断,如果计算结果为“真”,那么执行“语句”,否则跳过
“语句”。
4 写出 if-else 语句的一般形式、画出 if-else 语句的流程图,说明 if-else 语句的执行规则。
解:if�else 语句的一般形式如下:
if(表达式)
语句 1
else
语句 2
if�else 语句的流程图
其执行规则:首先计算表达式的值,如果为真,则执行语句 1,否则执行语句 2。
5 写出不带 break 的 switch 语句的一般形式,画出其流程图,说明其执行规则。
解:switch 语句的一般形式如下:
switch (表达式)
{
case 常量表达式 1: 语句 1
case 常量表达式 2: 语句 2
M
M
case 常量表达式 n: 语句 n
default:
语句 n+1
}
其中不带 break 的 switch 结构流程图如右图。
不带 break 的 switch 语句的执行过程是:
首先计算小括号中的整型表达式的值,并以此寻找所匹配的常量表达式,匹配的常量
表达式若是常量表达式 x,流程就从常量表达式 x 进入 switch 结构,若没有一个能匹配的,
流程就从 default 处进入 switch 结构,只要进入后,就从进入处就执行完到“}”为止的所有
语句。
6 写出带 break 的 switch 语句的一般形式,画出其流程图,说明其执行规则。
解:带 break 的 switch 语句的一般形式:
switch (表达式)
{
case 常量表达式 1: 语句 1
break;
case 常量表达式 2: 语句 2
break;
M
M
case 常量表达式 n: 语句 n
break;
default:
语句 n+1
}
带 break 的 switch 结构流程图如右图
带 break 的 switch 语句的执行过程是:
首先计算小括号中的整型表达式的值,并以此寻找所匹配的常量表达式,匹配的常
量表达式若是常量表达式 x,流程就从常量表达式 x 进入 switch 结构,若没有一个能匹配
的,流程就从 default 处进入 switch 结构,进入 switch 结构后,若遇上 break 语句,流程
就从该 break 语句上跳出 switch 结构;否则,就从进入处就执行完到“}”为止的所有语
句,。
7 写出 for 语句的一般形式,画出其流程图,说明其执行规则。
解:for 语句的一般形式:
for(表达式 1;表达式 2;表达式 3)
{
语句组
}
其中,”for(表达式 1;表达式 2;表达式 3)”可称为循环头,下面大
括号所界定范围称为循环体。
for 语句的流程图如右图
它的执行规则如下:
A:先计算表达式 1,再转 B;
B:计算表达式 2,若其值为真(1),则转 C,若其值为假(0)则转 E;
C:执行 for 下面大括号中的语句组,执行完后转 D;
D:计算表达式 3,结束本次循环,转回 B 开始下一次循环;
E:结束循环。流程转出整个 for 循环结构,也就是去执行 for 循环结构后面的第一条语句。
8 写出 while 语句的一般形式,画出其流程图,说明其执行规则。
解:while 语句的一般形式如下:
while(表达式)
{
语句组
}
其流程图如下
执行规则如下:
先计算表达式,若表达式计算不为 0,就执行一次循环体语句组,然后返回再次
计算表达式。如此重复,直到表达式的值计算为 0 时,流程转出循环结构。另外,当且
仅当大括号括住的语句组只是一个语句时,大括号也可省略
9 写出 do-while 语句的一般形式,画出其流程图,说明其执行规则。
解:do…while 语句的一般形式:
do
{
语句组
}while(表达式);
其流程图如图 2-10 所示。
其执行规则是:首先执行一次循环体语句,此后计算表达式的值;若表达式为 1,就又
返回去执行循环体语句;再计算表达式,若…;直到计算的表达式的值为 0,流程就退出整
个 do�while 结构。
还要注意的是,在 do-while 语句中,最后的”while(表达式)”后面的那一分号’:”不可少.
10 写出一维数组定义的一般形式。
解:一维数组定义的一般形式是:
类型说明符 数组名[常量表达式];
11 写出二维数组定义的一般形式。
解:二维数组定义的一般形式:
类型说明符 数组名[常量表达式 1][常量表达式 2];
12 写出无参数函数定义的一般形式。
解:无参数函数定义的一般形式为:
类型标识符 函数名()
{
函数体语句
}
13 写出有两个参数的函数定义的一般形式。
解:有两个参数函数定义的一般形式如下:
类型标识符 函数名(类型标识符 变量名 1,类型标识符 变量名 2)
{
剩余30页未读,继续阅读
资源评论
平头哥在等你
- 粉丝: 2
- 资源: 7332
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功