C51单片机复习重点:选择、判断与填空题

版权申诉
0 下载量 80 浏览量 更新于2024-07-04 收藏 125KB DOC 举报
"C51单片机复习题1.doc" 是一份关于C51单片机的学习资料,包含了选择题、判断题和填空题等多种题型,主要涵盖了C51编程语言的基本概念、关键字使用、指针操作、内存管理、特殊功能寄存器(SFR)、库文件的引用以及程序流程控制等内容。 1. 关键字using可以改变工作寄存器组,用于指定使用哪一组通用寄存器。 2. C51中一般指针变量占用3个字节存储,因为C51单片机的地址空间较大,需要3个字节来存储24位的地址信息。 3. 使用宏来访问绝对地址时,一般需包含`absacc.h`库文件,该文件提供了访问绝对地址的宏定义。 4. `#define PA8255XBYTE[0x3FFC]; PA8255=0x7e;` 这段代码会将0x7e赋值给地址0x3FFC,所以存储单元0x3FFC的值是0x7e。 5. 表达式`i=1,++i,++i||++i,i`的值为3,因为逗号运算符从左到右依次计算,`||`操作符在逻辑运算中短路,当左边的`++i`为非零(即2)时,右边的`++i`不会执行,最后的`i`值为3。 6. 执行`*p++;*p+=1;`后,数组a的值变为`10,12,12`,因为指针p首先指向a[0],`*p++`使a[0]加1变为11,然后指针p移动到a[1],`*p+=1`使a[1]加1变为12。 7. 表达式`i=1,++i,i||++i,i`的值为2,与题目6的区别在于`||`操作符前的`i`(此时为2)已满足非零条件,因此右边的`++i`不会执行。 判断题中: 1. void类型的函数确实没有返回值。 2. 特殊功能寄存器的名字在C51中通常全大写。 3. SFR后面的地址不能用带有运算的表达式,必须是常量。 4. `#include`的尖括号和引号在大部分情况下是等价的,但这里可能是指在特定编译环境下。 5. sbit可以用于定义内部RAM的可位寻址区,也可以用于SFR。 6. continue用于结束本次循环,而break直接退出整个循环。 7. void类型的函数确实没有返回值。 8. 定义在主函数之前的函数需要进行声明,除非在之前已经定义过。 9. int i, *p=&i; 是合法的C语言声明,指针p指向整型变量i。 10. 表达式7 & 3 + 12的值是7,因为根据运算符优先级,先进行按位与操作,然后是加法。 11. 函数的return语句只能返回一个值,不能同时返回多个。 填空题部分: 1. Keil C51软件中,工程文件的扩展名是**UV2**。 这份复习资料旨在帮助学习者巩固C51单片机的基础知识,包括语法、数据类型、内存管理、指针操作、函数使用以及控制结构等方面,对于准备嵌入式硬件开发和单片机编程的人员具有参考价值。