习题_C51语言答案习题_C51语言答案
一、填空
1.KeiL C51软件中,工程文件的扩展名是___UV2_______,编译连接后生成可烧写的文件扩展名是___HEX_________。
2.C51支持的指针有 一般指针 和 存储器指针 。
3.C51中,没有专门的循环语句,我们可以用函数____ crol _____完成一个字节的循环左移,用__ _irol_ ___完成二个字节的循环左移。
4.C51的基本数据类型有 位型、 字符型 、 整型 、 长整型 、 浮点型 、 双精度浮点型 。
5.C51的存储类型有 data 、 bdata 、 idata 、 pdata 、 xdata 、 code 。
6.C51的存储模式有 SMALL 、 COMPACT 和 LARGE 。
7.C51程序与其他语言程序一样,程序结构也分为 顺序结构、选择结构、循环结构 三种。
8.C51中int型变量的长度为??????4位 ,其值域为 0~65535 。
9.C51中关键字sfr的作用???定义8位特殊功能寄存器??,sbit的作用 定义可位寻址对象,用于位寻址,从位寻址字节中定义位变量 。
10.函数定义由??函数首部???和 函数体 两部分组成。
11.C51中“!”运算符的作用是 逻辑运算结果值取反 。
12.若函数无返回值,用 void 关键字指定。
13.若局部变量未初始化,其初值为 0 。
二、单项选择题:
1.89S51的内部程序存储器与数据存储器容量各为多少?( C )
(A)64KB、 128B ( B)4KB、64KB
(C)4KB、128B (D)8KB、256B
2.在8x51芯片里,哪个引脚用于控制使用内部程序存储器还是外部程序存储器?( B) P17
(A)XTAL1 (B)/EA (C)/PSEN (D)ALE
3.下列哪个不是KeilC的预处理命令?(C) (A)#include(B)#define(C)#exit(D)#if
4.下列哪个不是KeilC的数据类型?( B) (A)void(B)string(C)char(D)float
5.在KeilC的程序里,若要指定P0口的bit3,如何编写?(C )
(A)P0.3 (B)Port0.3 (C)P0^3 (D)Port^3
6.在8x51里,若要扩展外部存储器时,数据总线连接哪个输入/输出端口?(A )
(A)P0 (B)P1 (C)P2 (D)P3
7.在KeilC里,判读开关状态时,使用if_else if语句与使用switch语句有何差异?(B )
(A)if-else if 语句较快 (B)if-else if语句有优先级 (C)switch语句可判读较多开关状态 (D)switch语句有优先级
8.在KeilC里,中断子程序与函数有何不同?(A )
(A)中断子程序不必声明(B)函数不必声明(C)中断子程序必须有形式参数 (D)中断子程序一定会有返回值
9.利用下列(??A??? )关键字可以改变工作寄存器组
A、interrupt B、sfr C、while D、using
10.C51中一般指针变量占用(?C?? )字节存储。A、一个B、两个C、三个D、四个
11.使用宏来访问绝对地址时,一般需包含的库文件是( B )
A、reg51.h???? B、absacc.h?? C、intrins.h??? D、startup.h
12.执行#define PA8255? XBYTE[0x3FFC];
PA8255=0x7e;
后存储单元0x3FFC的值是(A ?)A、Ox7e B、8255H C、未定D、7e
三、判断题:(每小题1分,共10分。正确的在括号内打“√”,错误的打“×”。判对得分,不判、判错均不得分。)
1.若一个函数的返回类型为void,则表示其没有返回值。(√? )
2.特殊功能寄存器的名字,在C51程序中,全部大写。(√?)
3.“sfr”后面的地址可以用带有运算的表达式来表示。(?×???)
4.#include? 与#include? “reg51.h”是等价的。(√?)
5.sbit不可以用于定义内部RAM的可位寻址区,只能用在可位寻址的SFR上。(×)
6.一个函数利用return不可能同时返回多个值。(√