1、51系列单片机的晶振频率为3MHz,则单片机系统的机器周期为多少μS。 【答案】已知晶振频率=3MHz,则时钟周期=1/晶振频率=1/3MHz=1/3μS 机器周期=12*时钟周期=12*1/3μS=4μS。
2、51系列单片机的晶振频率为4MHz,则单片机系统的机器周期为多少μS。 【答案】已知晶振频率=4MHz,则时钟周期=1/晶振频率=1/4MHz=1/4μS 机器周期=12*时钟周期=12*1/4μS=3μS。
3、51系列单片机的晶振频率为6MHz,则单片机系统的机器周期为多少μS。 【答案】已知晶振频率=6MHz,则时钟周期=1/晶振频率=1/6MHz=1/6μS 机器周期=12*时钟周期=12*1/6μS=2μS。
【4、51系列单片机的晶振频率为12MHz,则单片机系统的机器周期为(A)μS。 【答案】已知晶振频率=12MHz,则时钟周期=1/晶振频率=1/12MHz=1/12μS 机器周期=12*时钟周期=12*1/12μS=1μS。
5、51系列单片机的晶振频率为24MHz,则单片机系统的机器周期为(A)μS。 【答案】已知晶振频率=24MHz,则时钟周期=1/晶振频率=1/24MHz=1/24μS 机器周期=12*时钟周期=12*1/24μS=0.5μS。
6、8051单片机的机器周期为2μS,则其晶振频率fosc为多少MHz。
【答案】已知机器周期=2μS,则时钟周期=机器周期/12=2μS/12=1/6μS, 晶振频率fosc=1/机器周期=6 MHz。
7、8051单片机的机器周期为1μS,则其晶振频率fosc为多少MHz。
【答案】已知机器周期=1μS,则时钟周期=机器周期/12=1μS/12=1/12μS, 晶振频率fosc=1/机器周期=12 MHz。
8、8051单片机的机器周期为4μS,则其晶振频率fosc为多少MHz。
【答案】已知机器周期=6μS,则时钟周期=机器周期/12=4μS/12=1/3μS, 晶振频率fosc=1/机器周期=3 MHz。
9、8051单片机的机器周期为3μS,则其晶振频率fosc为多少MHz。
【答案】已知机器周期=3μS,则时钟周期=机器周期/12=3μS/12=1/4μS, 晶振频率fosc=1/机器周期=4 MHz。
10、8051单片机的机器周期为0.5μS,则其晶振频率fosc为多少MHz。
【答案】已知机器周期=0.5μS,则时钟周期=机器周期/12=0.5μS/12=1/24μS, 晶振频率fosc=1/机器周期=24 MHz。
11、当单片机晶振频率fosc=12MHz,则系统的时钟周期、机器周期各为多少? 【答案】T时=1/fosc=1/12μS;T机=T时*12=1/12μS*12=1μS。
12、当单片机晶振频率fosc=24MHz,则系统的时钟周期、机器周期各为多少? 【答案】T时=1/fosc=1/24μS;T机=T时*12=1/24μS*12=0.5μS。
13、当单片机晶振频率fosc=6MHz,则系统的时钟周期、机器周期各为多少? 【答案】T时=1/fosc=1/6μS;T机=T时*12=1/6μS*12=2μS。
14、当单片机晶振频率fosc=4MHz,则系统的时钟周期、机器周期各为多少? 【答案】T时=1/fosc=1/4μS;T机=T时*12=1/4μS*12=3μS。
15、当单片机晶振频率fosc=2MHz,则系统的时钟周期、机器周期各为多少? 【答案】T时=1/fosc=1/2μS;T机=T时*12=1/2μS*12=6μS。
201、C语言基础知识
第 6 页 共 28 页
一、填空题(每空1分)
1、结构化程序设计的三中基本结构是 、 选择结构 、 循环结构。 【答案】顺序结构
2、结构化程序设计的三中基本结构是顺序结构、 、 循环结构。 【答案】选择结构
3、结构化程序设计的三中基本结构是顺序结构、选择结构、 。 【答案】循环结构
4、表达式语句由 组成。 【答案】表达式加上分号“;”
5、一个C源程序至少应包括一个 函数。 【答案】主函数main( )
6、C51的变量存储器类型是指 。 【答案】变量在MCS-51硬件系统中所使用的存储区域
7、在单片机的C语言程序设计中, 类型数据经常用于处理ASCII字符或用于处理小于等于255的整型数。
【答案】unsigned char
8、C51的字符串总是以 作为串的结束符,通常用字符数组来存放。 【答案】'\\0'
9、一个函数由两部分组成,即 和函数体。 【答案】 函数名
10、一个函数由两部分组成,即函数名和 。 【答案】函数体
二、单项选择题(每题1分)
1、C程序总是从(A )开始执行的。
A、主函数 B、主程序 C、子程序 D、主过程 2、单片机能够直接运行的程序是( D )。
A、汇编源程序 B、C语言源程序 C、高级语言程序 D、机器语言程序 3、程序是以( C )形式存放在程序存储器中的。
A、C语言源程序 B、汇编程序 C、二进制编码 D、BCD码 4、以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT 5、选出下列标识符中不是合法的标识符的是( D )。 A. hot_do B. cat1 C. _pri D. 2ab 6、C语言用( C )表示逻辑“真”值。
A.True B. t 或 y C. 非零整型值 D. 整型值0 7、在C语言中,逻辑值\真\的表示是用( C )。 A) true B) 整型值0 C)非零整型值 D) T
8、使用单片机开发系统调试C语言程序时,首先应新建文件,该文件的扩展名是( D )。 A、 .c B、 .hex C、 .bin D、 .asm
9、以下选项中属于C语言的数据类型是( B )。
A. 复合型 B. 双精度型 C. 逻辑型 D. 集合型
10、设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。 A)1 B)2 C)8 D)4 11、以下说法中正确的是( C )。
A. C语言程序总是从第一个的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
第 7 页 共 28 页
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分 12、下列语句不具有赋值功能的是( C ) A.a*=b B.x=1 C.a+b D.a++
13、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+3后,c2中的值为( A )。 A)D B)68 C)不确定的值 D)C 14、C语言中最简单的数据类型包括( B )。
A、整型、实型、逻辑型 B、整型、实型、字符型
C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型
15、使用单片机开发系统调试汇编语言程序时,首先应新建文件,该文件的扩展名是( A )。 A、 .c B、 .hex C、 .bin D、 .asm 16、下面叙述不正确的是( C )。
A、一个C源程序可以由一个或多个函数组成。 B、一个C源程序必须包含一个主函数main( )。 C、在C程序中,注释说明只能位于一条语句的后面。
17、在C51的数据类型中,unsigned char型的数据长度和值域为( C )。
A、单字节,-128~127 B、双字节,-32768~+32767 C、单字节,0~255 D、双字节,0~65535 18、下列描述中不正确的是( C )。 A. 字符型数组中可能存放字符串。
B. 可以对字符型数组进行整体输入、输出。 C. 可以对整型数组进行整体输入、输出。
D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。 19、设有数组定义:char array[]=”China”;则数组所占的存贮空间为( C )。 A.4个字节 B. 5个字节 C. 6个字节 D. 7个字节 20、逻辑运算符两侧运算对象的数据类型是 ( D )。 A、只是0或1 B、只能是0或非0正数
C、只能是整型或字符型数据 D、可以是任何合法的类型数据 21、最基本的C语言语句是( B )。
A、赋值语句 B、表达式语句 C、循环语句 D、复合语句 22、不属于字符型常量的是( C )。 A.‘A’ B、'a' C、“A” D、'b' 23、C语言是由( C )基本单位组成的。
A.过程 B.语句 C.函数 D.程序
24、判断char型变量c1是否为小写字母的正确表达式为 ( D )。 A) 'a'<=c1<='z' B) (c1>=A. &&(c1<='z') C) ('a'>=c1)||('z'<=c1) D) (c1>='a')&&(c1<='z')
三、判断题(每题1分)
(√)(1)数据是操作的对象,操作的结果会改变数据的状况。 (×)(2)字符型变量用来存放字符常量,注意只能放2个字符。 (×)(3)C语言中可以把一个字符串赋给一个字符变量。 (×)(4)在 C语言中的实型变量分为两种类型,它们是 float(实型)和double(双精度实型)。 (√)(5)在C语言中,要求参加运算的数必须是整数的运算符是%。 (√)(6)输入语句的格式为: scanf(\是正确的。 (×)(7)getchar函数的功能是接收从键盘输入的一串字符。 (×)(8)在变量说明中给变量赋初值的方法是:int a=b=c=10。 (×)(9)把k1、k2定义成基本整型变量,并赋初值0的定义语句是int k1=k2=0。
第 8 页 共 28 页
(×)(10)如果i的原值为3,则:j = ++ i,j的值为3。 (×)(11)输入语句的格式为:scanf(\是正确的。 (√)(12)若一个函数的返回类型为void,则表示其没有返回值。 (×)(13)不能用“sfr16” 直接访问定时器/计数器0和1。 (×)(14)“sfr”后面的地址可以用带有运算的表达式来表示。 (√)(15)#include
四、论述题(每题5分)
1、用C51编程较汇编语言有哪些优势?
【答案】(1)编程容易 (2)容易实现复杂的数值计算 (3)容易阅读、调试、维护程序 (4)容易实现模块化开发 (5)程序可移植性好
2、什么叫堆栈?堆栈指针SP的作用是什么?
【答案】 堆栈是在RAM专门开辟的一个特殊用途的存储区。堆栈是按照“先进后出”(即先进入堆栈的数据后移出堆栈)的原则存取数据。堆栈指针SP是一个8位寄存器,其值为栈顶的地址,即指向栈顶,SP为访问堆栈的间址寄存器。
202、顺序结构程序设计
二、单项选择题(每题1分)
1、下面不正确的赋值语句是( B )。
A.a=a+1; B、a= =b; C、a+=b ; D、a=1;
2、设int n=3;则有表达式++n,n的结果是( C )。 A)2 B)3 C)4 D)5
3、下面是对一维数组s的初始化,其中不正确的是( D )。
A、char s[5]={“abc”}; B、char s[5]={?a?,?b?,?c?}; C、char s[5]=” ”; D、char s[5]=”abcdef”; 4、下列属于整型常量的是( A )。
A、12 B、12.0 C、-12.0 D、10E10
5、根据C语言的语法规则,下列( A )是不合法标识符。 A.While B. Name C. Rern5 D. _exam
6、在C语言中,char型数据在内存中的存储形式是( D )。
A) 补码 B) 反码 C) 原码 D) ASCII码
三、判断题(每题1分)
(×)(1)在printf函数中,输出表列的各输出项之间可用冒号分隔。 (×)(4)printf函数是一个标准库函数,它的函数原型在头文件\中。
四、论述题(每题5分)
1、中断函数的定义形式是怎样的?
【答案】 常用的中断函数定义语法如下: void 函数名() interrupt n
其中n为中断类型号,C51编译器允许0~31个中断,n取值范围0~31。
六、程序题(每题10分)
1、在横线上将空缺的语句补充完整。
//52系列单片机头文件 #define uint unsigned int //宏定义
第 9 页 共 28 页
sbit led1=P1^0; //声明单片机P1口的第一位 uint i,j; void main() { }
【答案】#include
2、在横线上将空缺的语句补充完整。 //该程序功能为点亮第一个发光二极管 #include
sbit //声明单片机P1口的第一位为led1 void main() { }
【答案】led1=P1^0;
3、在横线上将空缺的语句补充完整。
//该程序功能为使第一个发光二极管以间隔500ms亮灭闪动。 #include
uint i,j;
第 10 页 共 28 页
//子函数体
while(1) { }
led1=0; led1=1;
/*点亮第一个发光二极管*/ /*关闭第一个发光二极管*/
delay1s( ); delay1s( );
//调用延时子函数 //调用延时子函数
//大循环
//52系列单片机头文件 //宏定义
//声明单片机P1口的第一位 //声明子函数
//主函数
#define uint unsigned int
led1=0; /*点亮第一个发光二极管*/
//主函数
while(1) { }
led1=0;
/*点亮第一个发光二极管*/
for(i=1;i>0;i--) led1=1;
//延时
/*关闭第一个发光二极管*/
//大循环
//主函数
for(j=110;j>0;j--);
//延时
for(i=1000;i>0;i--)
for(j=110;j>0;j--);