单片机C语言练习题
单片机c语言试题和答案
单片机c语言试题和答案一、选择题1. 以下哪项不是51单片机的特点?A. 内部集成定时器/计数器B. 内部集成中断系统C. 内部集成TCP/IP协议栈D. 具有丰富的外设接口答案:C2. 在51单片机中,下列哪个寄存器用于存储程序计数器(PC)的值?A. AB. BC. DPTRD. PC答案:D3. 在51单片机中,下列哪个特殊功能寄存器用于控制定时器/计数器?A. TMODB. TCONC. TH0/TH1D. TL0/TL1答案:A4. 以下哪个函数用于初始化51单片机的串行通信接口?A. void Serial_Init(void)B. void Uart_Init(void)C. void SSI_Init(void)D. void SCI_Init(void)答案:B二、填空题5. 在51单片机中,外部中断0的入口地址是________。
答案:0x00036. 在51单片机的I/O端口中,P0口既可以作为________,也可以作为________使用。
答案:数据总线,地址总线7. 51单片机中的定时器/计数器共有________个。
答案:2个三、判断题8. 51单片机的时钟频率越高,程序执行速度越快。
(对/错)答案:对9. 在51单片机中,外部中断0和外部中断1都可以设置为边沿触发或电平触发。
(对/错)答案:对10. 51单片机的串行通信接口可以设置为8位数据位、1位停止位和可变的波特率。
(对/错)答案:对四、编程题11. 编写一个程序,使用51单片机的定时器/计数器实现一个简单的秒表功能。
要求:秒表计时到60秒时自动停止,并显示“Time Out!”。
```c#include <reg51.h>sbit LED = P1^0; // 将P1.0口定义为LEDvoid Timer0_Init(void) {TMOD = 0x01; // 设置定时器模式为模式1TH0 = 0xFC; // 设置定时器初值TL0 = 0x18;ET0 = 1; // 开启定时器0中断EA = 1; // 开启总中断TR0 = 1; // 启动定时器0}unsigned int count = 0; // 计数器变量void Timer0_ISR(void) interrupt 1 {TH0 = 0xFC; // 重新加载定时器初值TL0 = 0x18;count++; // 计数器加1if (count >= 60) { // 判断是否达到60秒 TR0 = 0; // 关闭定时器0LED = 1; // 点亮LED// 显示“Time Out!”}}void main() {Timer0_Init(); // 初始化定时器0LED = 0; // 熄灭LEDwhile (1) {// 主循环,等待定时器中断}}```五、问答题12. 请简述51单片机的串行通信接口的工作原理。
单片机应用技术(C语言)试题
一、选择题1、单片机8031的/EA引脚(C)。
A. 可悬空B. 必须接+5V电源C. 必须接地D. 以上三种情况视需要而定2、MCS-51单片机的4个并行I/O端口作为通用I/O端口使用,在输出数据时,必须外接上拉电阻的是(A)。
A. P0口B. P1口C. P2口D. P3口3、当MCS-51单片机应用系统需要扩展外部存储器或其它接口芯片时,(A)可作为低8位地址总线使用。
A. P0口B. P1口C. P2口D. P0口和P2口4、系统复位后,堆栈指针SP的内容是(B)。
A. 08HB. 07HC. 30HD. 50H5、MCS-51单片机的位寻址区位于内部RAM的( D )单元。
A. 00H~7FHB. 20H~7FHC. 00H~1FHD. 20H~2FH6、PSW中的RS1和RS0用来(A)。
A. 选择工作寄存器组B. 指示复位C. 选择定时器D. 选择工作方式7、MCS-51单片机规定一个机器周期共有(A)个节拍。
A. 12B. 6C. 8D. 168、下面叙述不正确的是(C)。
A. 一个C源程序可以由一个或多个函数组成B. 一个C源程序必须包含一个函数main()C. 在C51中,注释说明只能使用/*……*/注释D. C程序的基本组成单位是函数9、在C51程序中常常把(D)作为循环体,用于消耗CPU时间,产生延时效果。
A. 赋值语句B. 表达式语句C. 循环语句D. 空语句10、在单片机应用系统中,LED数码管显示电路通常有(C )显示方式。
A. 静态B. 动态C. 静态和动态D. 查询11、共阳极LED数码管加反向器驱动时显示字符“6”的段码是(B)。
A. 06HB. 7DHC. 82HD. FAH12、LED数码管若采用动态显示方式,下列说法错误的是(C)。
A. 将各位数码管的段选线并联B. 将段选线用一个8位I/O端口控制C. 将各位数码管的公共端直接连接在+5V或者GND上D. 将各位数码管的位选线用各自独立的I/O端口控制13、按键开关的结构通常是机械弹性元件,在按键按下和断开时,触点在闭合和断开瞬间会产生接触不稳定,为消除抖动引起的不良后果,常采用的方法有(C)。
完整word版单片机C语言期末考试习题
完整word版单片机C语言期末考试习题欢迎共阅单片机C语言期末考试题(A)一、单项选择题:40 分1、MCS-51系列的单片机中片内RAM的字节大小可能的是()A、128MB、128KC、128D、642、C51语言提供的合法的数据类型关键字是()。
A、sfrB、BITC、CharD、integer r)处。
、片内3RAM的位寻址区,位于地址(FFH ~、80H D C、30H~7FH A、00H~1FH B、20H~2FH、间接寻址片内数据存储区25字节),所用的存储类型是xdataidatabdata Adata5MCS-5单片机上电复位的信号是、高电、低电、上升、下降、可以P口的位全部置高电平的表达式是P1=~P1P1^=0x0fP1&=0x0fP1|=0x0f A程序中,为了使程序执行的效率最高,函数参数传递时,函数参数的个数不C51、一般单片够超过43 12 A 、需要扩展一片外RA,大32字节,需要的地址线是12131415 A中,I设置0x0,则优先级最高的是、如果将中断优先级寄存I、外部中0、外部中断10计数、定、定计数1)来改变寄存器1、单片C5中用关键字reentrantusinginterrupt AunsignedHz的载频调制后发射。
)11、红外线遥控码由发射电路经(?768K 。
、?32 D6M C、?12M? 、A38K B、)决定的。
1”是以脉冲的(、红外线遥控码的逻辑“120”与逻辑“、形状、频率、宽度A 、电平 B C D)的数据格式定义的。
DS130213、内的时钟寄存器是以(欢迎共阅A、十进制B、十六进制C、BCD码D、压缩BCD码14、设MCS-51单片机晶振频率为12MHz,定时器作定时器使用时,其最高的输入计数频率应为()A、2MHzB、1MHzC、500kHzD、250kHz15、使用_nop_()函数时,必须包含的库文件是()A、reg52.hB、absacc.hC、intrins.hD、stdio.h16、ADC0809的启动转换的信号是()A、ALEB、EOCC、CLOCKD、START17、线反转法识别有效按键时,如果读入的列线值不全为1,则说明()、一定只有一个键被按下 B A、有键被按下、没有键被按、一定有多个键被按DS18B2的总线方式是18SP2ONISP WIRC 24C0采用的总线形式是1PWMC 、CANSPI )字符2、串行口每一次传送波个A1二、判断题) 1C5中,特殊功能寄存器一定需要用大写()2、使用片内存储器时,脚必须置低。
51单片机c语言考试题目及答案
51单片机c语言考试题目及答案一、选择题(每题2分,共10分)1. 下列关于51单片机的描述,错误的是()。
A. 51单片机是一种8位微控制器B. 51单片机具有丰富的I/O端口C. 51单片机的内部RAM是256字节D. 51单片机的时钟频率不能超过12MHz答案:D2. 在51单片机中,下列哪个寄存器用于存储当前正在执行的指令的地址?()A. SPB. PCC. DPTRD. PSW答案:B3. 51单片机的定时器/计数器可以工作在以下哪种模式?()A. 定时模式B. 计数模式C. 定时和计数模式D. 以上都是答案:D4. 51单片机的中断向量表中,外部中断0的中断向量地址是()。
A. 0003HB. 000BHC. 0013HD. 001BH答案:B5. 在51单片机的C语言编程中,下列哪个关键字用于定义一个函数?()A. intB. voidC. functionD. define答案:A二、填空题(每题2分,共10分)1. 51单片机的内部RAM分为______区和______区。
答案:工作寄存器;位寻址2. 51单片机的定时器/计数器0和定时器/计数器1的中断优先级分别是______和______。
答案:低;高3. 在51单片机的C语言编程中,使用______关键字可以定义一个全局变量。
答案:extern4. 51单片机的EA位是______位,它控制着______中断的总开关。
答案:总中断;所有5. 51单片机的定时器/计数器溢出时,会自动向______寄存器写入______。
答案:计数器;1三、简答题(每题5分,共20分)1. 简述51单片机的中断系统是如何工作的?答案:51单片机的中断系统由中断向量表、中断优先级和中断服务程序组成。
当一个中断事件发生时,单片机会自动将当前程序的地址存入堆栈,然后跳转到中断向量表中对应的中断服务程序地址执行中断服务程序。
中断服务程序执行完毕后,单片机会从堆栈中恢复程序的地址,继续执行被中断的程序。
单片机C语言模拟试题
2.请将ROM3000H单元内容送R7
答:MOV DPTR, #3000H
CLR A
MOVC A,@A+DPTR
MOV R7,A
七、编程题(40分)
1 已知一MCS—51单片机系统的片内RAM 20H单元存放了一个8位无符号数7AH,片外扩展RAM的8000H存放了一个8位无符号数86H,试编程完成以上两个单元中的无符号数相加,并将和值送往片外RAM的01H、00H单元中,同时将所编写程序运行完成后的数据和状态添入下表中给出的PSW的有关位以及寄存器A、DPTR和RAM单元中。
2、片内RAM的20H~2FH为位寻址区,所包含的位地址是( B )。
A、00H~20H B、00H~7FH C、20H~2FH D、00H~FFH
3、MCS-51单片机的复位信号是( A )有效。
A、高电平 B、低电平 C、脉冲 D、下降沿
答:P=1/f=(1/11.059×106)=0.09×10-6s
=90ns
S=2P=2×90ns=180ns
机器周期=12P=12×90ns=1.08μs
双指令周期=2×机器周期=2.16μs
判题标准:每问4分,结果错,分值全扣;结果正确,量纲错或不写量纲,每问扣1分。
2.MCS—5l单片机的堆栈区只可设置在 片内数据存储区(器)
3.MCS—51单片机外部中断请求信号有电平方式和脉冲方式,在电平方式下,当采集到INT0、INT1的有效信号为低电平时,激活外部中断。
4.定时器/计数器的工作方式3是指的将定时器/计数器0 拆成两个独立的8位计数器。而另一个定时器/计数器此时通常只可作为串行口的波特率发生器使用。
51单片机c语言考试题和答案
51单片机c语言考试题和答案一、单项选择题(每题2分,共20分)1. 51单片机中,以下哪个寄存器是用于存储程序计数器(PC)的值?A. DPTRB. SPC. PCD. ACC答案:C2. 在51单片机中,以下哪个指令用于将累加器A的内容传送到外部数据存储器?A. MOV A, @R0B. MOV @R0, AC. MOV A, #dataD. MOV DPTR, #address答案:B3. 51单片机的定时器/计数器有几种工作模式?A. 2种B. 3种C. 4种D. 5种答案:C4. 51单片机中,以下哪个指令用于将立即数传送到累加器A?A. MOV A, #dataB. MOV A, @R0C. MOV A, R0D. MOV A, DPTR答案:A5. 51单片机的串行通信中,以下哪个寄存器用于存储串行数据?A. TCONB. SCONC. PCOND. IE答案:B6. 51单片机中,以下哪个指令用于将累加器A的内容与寄存器R0的内容进行异或操作?A. XOR A, R0B. ORL A, R0C. ANL A, R0D. CPL A答案:A进行逻辑与操作?A. ANL A, #dataB. ORL A, #dataC. XRL A, #dataD. CPL A答案:A8. 51单片机中,以下哪个指令用于将累加器A的内容与寄存器R0的内容进行逻辑或操作?A. ORL A, R0B. ANL A, R0C. XRL A, R0D. CPL A答案:AR0的内容进行逻辑异或操作?A. ORL A, R0B. ANL A, R0C. XRL A, R0D. CPL A答案:C10. 51单片机中,以下哪个指令用于将累加器A的内容与寄存器R0的内容进行逻辑非操作?A. ORL A, R0B. ANL A, R0C. XRL A, R0D. CPL A答案:D二、填空题(每题2分,共20分)1. 51单片机的外部中断有______个,分别是INT0和INT1。
51单片机c语言考试题目及答案
51单片机c语言考试题目及答案一、单项选择题(每题2分,共20分)1. 51单片机中,以下哪个寄存器用于存储程序计数器(PC)?A. R0B. SPC. DPTRD. PC答案:D2. 在51单片机中,哪个寄存器用于存储堆栈指针?A. R0B. SPC. DPTRD. PC答案:B3. 51单片机的定时器/计数器有几种工作模式?A. 2种B. 3种C. 4种D. 5种答案:C4. 51单片机中,哪个指令用于将累加器A的内容送入外部数据存储器?A. MOV A, #dataB. MOV A, @R0C. MOVX @DPTR, AD. MOVX A, @DPTR答案:C5. 51单片机中,哪个指令用于将累加器A的内容送入寄存器R0?A. MOV A, R0B. MOV R0, AC. MOV A, #dataD. MOVX @DPTR, A答案:B6. 51单片机中,哪个指令用于将立即数送入累加器A?A. MOV A, R0B. MOV A, #dataC. MOVX @DPTR, AD. MOVX A, @DPTR答案:B7. 51单片机中,哪个指令用于将累加器A的内容与寄存器R0的内容进行逻辑“或”操作?A. ORL A, R0B. ORL A, #dataC. ORL @R0, AD. ORL A, @R0答案:A8. 51单片机中,哪个指令用于将累加器A的内容与立即数进行逻辑“与”操作?A. ANL A, R0B. ANL A, #dataC. ANL @R0, AD. ANL A, @R0答案:B9. 51单片机中,哪个指令用于将累加器A的内容与寄存器R0的内容进行逻辑“异或”操作?A. XRL A, R0B. XRL A, #dataC. XRL @R0, AD. XRL A, @R0答案:A10. 51单片机中,哪个指令用于将累加器A的内容与寄存器R0的内容进行逻辑“非”操作?A. CPL AB. CPL R0C. CPL @R0D. CPL A, R0答案:A二、填空题(每题2分,共20分)1. 51单片机的内部RAM共有______字节。
c语言单片机期末试题及答案
c语言单片机期末试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strncpyD. strcmp答案:A3. 下列关于单片机的描述,哪一项是不正确的?A. 单片机是一种集成了CPU、存储器和I/O接口的微控制器。
B. 单片机通常用于嵌入式系统。
C. 单片机的编程语言只能是汇编语言。
D. 单片机的运行速度通常高于个人计算机。
答案:C4. 在C语言中,下列哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A5. 在单片机编程中,下列哪种方式用于控制单片机的I/O端口?A. 直接操作内存地址B. 使用中断C. 通过操作系统调用D. 通过串口通信答案:A二、填空题(每题2分,共20分)1. C语言中,表示逻辑与的运算符是____。
答案:&&2. 在单片机中,用于定义变量存储类型的关键字是____。
答案:volatile3. C语言中,用于定义数组的关键字是____。
答案:数组4. 在单片机编程中,用于控制定时器的函数是____。
答案:定时器函数5. C语言中,用于定义函数的关键字是____。
答案:函数三、简答题(每题5分,共30分)1. 请简述C语言中指针的概念。
答案:指针是一种变量,其值是另一个变量的内存地址。
2. 描述单片机的中断系统是如何工作的。
答案:单片机的中断系统允许外部或内部事件打断CPU当前的执行流程,以处理紧急任务。
3. 解释C语言中函数的原型声明和定义的区别。
答案:函数原型声明只包含函数的返回类型、名称和参数列表,而定义则包括函数原型和函数体。
4. 在单片机编程中,如何使用循环结构?答案:循环结构用于重复执行一段代码,直到满足特定条件。
c语言版单片机试题及答案
c语言版单片机试题及答案一、选择题(每题2分,共10分)1. C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B3. 下列关于C语言数组的描述,正确的是:A. 数组的大小在运行时确定B. 数组的大小在编译时确定C. 数组可以动态分配D. 数组可以存储不同类型的数据答案:B4. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcatB. strcpyC. strcmpD. strlen答案:B5. C语言中,以下哪个函数用于打开文件?A. fopenB. fcloseC. freadD. fwrite答案:A二、填空题(每题2分,共10分)1. 在C语言中,______关键字用于定义一个函数。
答案:void2. C语言中,______关键字用于声明一个指针。
答案:*3. 在C语言中,______关键字用于定义一个全局变量。
答案:extern4. C语言中,______关键字用于定义一个静态变量。
答案:static5. 在C语言中,______函数用于将一个整数转换为字符串。
答案:itoa三、简答题(每题5分,共20分)1. 请简述C语言中指针和数组的关系。
答案:在C语言中,指针和数组有密切的关系。
指针可以存储数组的地址,通过指针可以访问数组的元素。
数组名本身可以作为指向数组首元素的指针使用。
指针运算可以用来遍历数组。
2. 解释C语言中的预处理器指令#include的作用。
答案:预处理器指令#include用于将指定的文件包含到当前文件中。
这些文件通常是库文件或头文件,包含了函数声明、宏定义、类型定义等,使得程序可以调用这些文件中定义的内容。
3. 描述C语言中函数的调用过程。
答案:在C语言中,函数调用过程包括:调用语句、函数名、参数列表、函数执行和返回值。
单片机c语言试题及答案
单片机c语言试题及答案试题一:数据类型与变量定义(20分)1. 请问以下哪种数据类型不属于C语言中的基本数据类型?A. intB. floatC. booleanD. char答案:C. boolean2. 在C语言中,下列变量命名中哪个是不合法的?A. myVarB. _dataC. 123abcD. num1答案:C. 123abc3. 下列语句中,哪个是正确的变量定义?A. int num = 10;B. float = 3.14;C. bool flag;D. char = 'A';答案:A. int num = 10;试题二:条件语句与循环结构(30分)1. 下列条件语句中,哪个用于多个选项的判断?A. if语句B. while语句C. for语句D. switch语句答案:D. switch语句2. 请问以下哪个循环结构是先判断后执行?A. while循环B. for循环C. do-while循环D. if语句答案:C. do-while循环3. 下列代码中,哪个选项可以正确打印出10到1的倒序数列?A. for(int i = 10; i > 0; i--)B. while(i >= 1) { i--; }C. do { i--; } while(i >= 1);D. if(i > 0) { i--; }答案:A. for(int i = 10; i > 0; i--)试题三:函数与数组(50分)1. 下列关于函数的说法中,哪个是错误的?A. 函数可以重复定义多次B. 函数可以有返回值也可以没有返回值C. 函数可以调用其他函数D. 函数可以接收参数,也可以不接收参数答案:A. 函数可以重复定义多次2. 请问以下代码片段有什么问题?int sum(int a, int b) {int result = a + b;return result;}int main() {int result = sum(3, 4);printf("The sum is %d", result);}答案:缺少头文件包含和函数调用。
c语言51单片机试题及答案
c语言51单片机试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,正确的是()。
A. C语言是一种汇编语言B. C语言是一种高级语言C. C语言是一种面向对象的编程语言D. C语言是一种面向过程的编程语言答案:D2. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A3. 51单片机中,下列哪个寄存器用于存储程序计数器的值()。
A. SPB. PCC. PSWD. ACC答案:B4. 在C语言中,用于定义一个函数的关键字是()。
A. structB. unionC. functionD. int5. 51单片机中,下列哪个寄存器用于存储累加器的值()。
A. SPB. PCC. PSWD. ACC答案:D6. 在C语言中,用于定义一个全局变量的关键字是()。
A. staticB. externC. registerD. auto答案:B7. 51单片机中,下列哪个寄存器用于存储程序状态字的值()。
A. SPB. PCC. PSWD. ACC答案:C8. 在C语言中,用于定义一个静态变量的关键字是()。
A. staticB. externC. registerD. auto答案:A9. 51单片机中,下列哪个寄存器用于存储堆栈指针的值()。
B. PCC. PSWD. ACC答案:A10. 在C语言中,用于定义一个寄存器变量的关键字是()。
A. staticB. externC. registerD. auto答案:C二、填空题(每题2分,共20分)1. C语言中,定义一个整型变量的关键字是______。
答案:int2. 在C语言中,用于声明一个函数的关键字是______。
答案:extern3. 51单片机中,用于存储当前工作寄存器的寄存器是______。
答案:R0-R74. C语言中,用于声明一个静态变量的关键字是______。
单片机C语言练习题
C语言习题集习题一一.填空题1.C程序是由()构成的,一个C程序中至少包含()。
因此,( ) 是C程序的基本单位。
2. 函数体是有符号____开始,符号____结束。
函数体当中,前面是变量的____部分,后面变量的____部分。
3.一个C源程序中至少应包括一个_______。
4.在一个C源程序中,注释部分两侧的分界符分别为_____和________。
在C语言的每条语句后面都要有____结束二.判断题1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
【】2.main函数必须写在一个C程序的最前面。
【】3.一个C程序可以包含若干的函数。
【】4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
【】5.C程序的注释只能是一行。
【】6.C程序的注释不能是中文文字信息。
【】三、选择题1 一个C程序的执行是从________。
(A)本程序的main函数开始,到main函数结束。
(B)本程序的第一个函数开始,到本程序文件的最后一个函数结束。
(C) 本程序的main函数开始,到本程序文件的最后一个函数结束。
(D)本程序的第一个函数开始,到本程序main函数结束。
2 以下叙述不正确的是_________。
(A)一个C源程序可由一个或多个函数组成。
(B)一个C源程序必须包含一个main函数。
(C) 程序的基本组成单位是函数。
(D)在C程序中,/**/类的注释说明只能位于一条语句的后面3 C语言规定:在一个源程序中,main函数的位置___。
(A)必须在最开始(B)必须在所有函数的后面(C)可以任意(D)必须在最后四.程序阅读1、找出该程序中的错误并改正。
#include<stdio.h>;main();float r,s;/*/*r is radius*/*/r=5.0 s=3.14*r*r;printf(“%f\n”,s)五.编程题1. 利用keil c 集成开发环境建立一个c语言的工程,旋转的MCU型号是STC89C52,并在工程内添加一个名为main的c文件,并在c文件中建立一个空的主函数。
单片机考试试题及答案c语言
单片机考试试题及答案c语言一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个函数用于将整数转换为字符串?A. sprintfB. atoiC. itoaD. strtol答案:C3. 下列关于C语言数组的描述中,错误的是?A. 数组可以存储不同类型的数据B. 数组的索引从0开始C. 数组在声明时必须指定大小D. 数组可以作为函数的参数答案:A4. 在C语言中,以下哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A5. C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. intD. void答案:C6. 下列关于C语言指针的描述中,正确的是?A. 指针可以存储函数的地址B. 指针不能存储数组的地址C. 指针不能存储变量的地址D. 指针不能存储常量的地址答案:A7. 在C语言中,以下哪个关键字用于定义一个全局变量?A. externB. staticC. registerD. auto答案:A8. 下列关于C语言函数的描述中,错误的是?A. 函数可以返回一个值B. 函数可以没有返回值C. 函数可以没有参数D. 函数可以有多个返回值答案:D9. 在C语言中,以下哪个语句用于在循环中终止循环?A. breakB. continueC. returnD. exit答案:A10. 下列关于C语言中文件操作的描述中,错误的是?A. 使用fopen函数打开文件B. 使用fclose函数关闭文件C. 使用fread函数读取文件D. 使用fwrite函数写入文件答案:C二、填空题(每题2分,共20分)1. 在C语言中,用于定义单片机特殊功能寄存器的关键字是________。
答案:sfr2. C语言中,用于声明一个无符号字符的关键字是________。
单片机c语言期末考试答案
单片机c语言期末考试答案一、单选题1. 单片机中,独立运行的程序段叫作()A.主程序B.子程序C.函数D.存储A. 主程序2. 单片机中通常采用查询类型进行WINCE启动过程,即()A. 菜单B. 文本C. 命令D. 函数C. 命令3. 在printf()函数中,\t 的作用是()A.换行B.清屏C.走格D.断句C. 走格4. 将 r4变量的值增加 0x1234 ,需要使用()指令完成A.MOVB.ADDC.INCD.PUSHB. ADD二、多选题1. 单片机的性能指标可以有()。
A.存储容量B.最高速度C.工作电源D.分辨率A. 存储容量B. 最高速度C. 工作电源2. 关于单片机PLC,正确的是()A.集成度高,性能低B.集成度低,功能多C.主控单元多,性能低D.集成度低,性能也一般A. 集成度高,性能低B. 集成度低,功能多3. 关于C语言,正确的是()A.是第一代语言B.容易学习C.不具有面向对象编程特征D.可以实现面向对象编程A. 是第一代语言B. 容易学习 D. 可以实现面向对象编程三、判断题1. 单片机有多种应用,可以实现许多相关任务。
A.正确B.错误A. 正确2. 动态内存分配的优点是减少了指令篇幅。
A.正确B.错误B. 错误3. 显示器的灯泡最常用的是toshiba的系列。
A.正确B.错误B. 错误。
c语言单片机考试题及答案详解
c语言单片机考试题及答案详解一、选择题1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在单片机编程中,以下哪个寄存器用于存储程序计数器的值?A. PCB. SPC. ACCD. B答案:A3. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable-nameC. variable$nameD. variable_name答案:D4. 在单片机中,若要将一个8位二进制数扩展为16位,应使用哪种指令?A. MOVB. CLRC. SWAPD. EXT答案:D5. C语言中,以下哪个函数用于计算并返回字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A二、填空题1. 在C语言中,用于定义一个无符号字符型变量的关键字是________。
答案:unsigned char2. 单片机的I/O口可以被配置为________模式,用于接收外部信号。
答案:输入3. 在C语言中,若要声明一个指向整型的指针变量,应使用________。
答案:int*4. 单片机编程中,使用________指令可以将累加器A的内容传送到外部数据存储器。
答案:MOVX5. C语言中,________运算符用于计算两个数的差,并更新累加器A的值。
答案:-三、简答题1. 简述C语言中数组和指针的区别。
答案:数组是一种数据结构,用于存储相同类型的多个元素,而指针是一种变量,它存储了另一个变量的内存地址。
数组名可以被用来访问数组的第一个元素的地址,但数组本身不能被赋值;指针变量可以被赋值,指向不同的内存地址。
2. 描述单片机中断服务程序的执行流程。
答案:当单片机检测到一个中断请求时,它会保存当前程序的状态(如程序计数器和寄存器的值),然后跳转到中断向量指定的地址执行中断服务程序。
单片机原理c语言试题及答案
单片机原理c语言试题及答案一、选择题(每题2分,共10分)1. 在C语言中,下列哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于单片机中断处理的描述,不正确的是?A. 中断服务程序必须使用中断服务函数来实现B. 中断服务程序可以嵌套C. 中断服务程序执行完毕后,CPU会自动返回到被中断的程序继续执行D. 中断服务程序的执行时间应尽可能短答案:B3. 在8051单片机中,下列哪个寄存器用于存储当前正在执行的中断服务程序的地址?A. SPB. PCC. PSWD. DPTR答案:B4. 下列关于C语言中指针的描述,正确的是?A. 指针变量不能被赋值B. 指针变量可以存储任意类型的数据C. 指针变量的值是它所指向的变量的地址D. 指针变量不能作为函数的参数答案:C5. 在8051单片机中,下列哪个指令用于将累加器A的内容传送到外部数据存储器?A. MOVX A, @DPTRB. MOV A, @R0C. MOV A, #dataD. MOV A, direct答案:A二、填空题(每题2分,共10分)1. 在C语言中,使用________关键字可以定义一个全局变量。
答案:extern2. 在8051单片机中,定时器/计数器的控制寄存器是________。
答案:TCON3. C语言中,函数的返回值类型定义在函数定义的________部分。
答案:首部4. 在8051单片机中,使用________指令可以设置定时器的模式。
答案:TMOD5. 在C语言中,使用________运算符可以获取一个变量的地址。
答案:&三、简答题(每题5分,共10分)1. 简述单片机中断系统的作用。
答案:单片机中断系统的作用是允许单片机在执行当前任务的同时,能够响应外部事件或内部事件的请求,从而实现多任务处理。
2. 描述C语言中数组和指针的关系。
答案:在C语言中,数组名可以作为指向数组首元素的指针使用。
c语言单片机考试题及答案
c语言单片机考试题及答案1. 单片机中,下列哪个寄存器用于存储程序计数器(PC)的值?A. SPB. PCC. DPTRD. ACC答案:B2. 在C语言中,用于定义单片机特殊功能寄存器的关键字是什么?A. volatileB. staticC. constD. register答案:A3. 8051单片机的定时器/计数器有哪几种工作模式?A. 0、1、2、3B. 1、2、3、4C. 0、1、2、3、4D. 0、1、2、3、4、5答案:C4. 8051单片机的中断优先级由哪两个寄存器共同决定?A. IP和IEB. IP和TCONC. IE和TCOND. P1和P2答案:A5. 在C语言中,如何声明一个外部中断服务程序?A. 使用关键字interruptB. 使用关键字interrupt和中断号C. 使用关键字interrupt和中断向量地址D. 使用关键字interrupt和中断优先级答案:B6. 8051单片机的串行通信可以工作在哪些模式?A. 模式0、1、2、3B. 模式0、1、2、3、4C. 模式0、1、2、3D. 模式0、1、2、3、4、5答案:C7. 在C语言中,如何声明一个定时器中断服务程序?A. 使用关键字timer和中断号B. 使用关键字interrupt和中断号C. 使用关键字timer和中断向量地址D. 使用关键字interrupt和中断优先级答案:B8. 8051单片机的外部中断有哪几个?A. INT0和INT1B. INT0、INT1和T0C. INT0、INT1和T1D. INT0、INT1、T0和T1答案:A9. 在C语言中,如何声明一个看门狗定时器中断服务程序?A. 使用关键字watchdog和中断号B. 使用关键字interrupt和中断号C. 使用关键字watchdog和中断向量地址D. 使用关键字interrupt和中断优先级答案:B10. 8051单片机的I/O口可以驱动多少个LED灯?A. 4个B. 8个C. 16个D. 32个答案:B。
c语言单片机考试题及答案
c语言单片机考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于声明函数?A. intB. voidC. returnD. function答案:B2. 在C语言中,以下哪个符号用于数组的声明?A. {B. [C. (D. {答案:B3. 若有定义:int a=5; 则表达式 a++ 的值是多少?A. 4B. 5C. 6D. 0答案:B4. C语言中,以下哪个关键字用于定义指针?A. intB. charC. *D. float5. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. _variableD. variable-2答案:C6. C语言中,以下哪个函数用于输出字符串?A. printfB. scanfC. putsD. getchar答案:C7. 若有定义:int a=3, b=4; 则表达式 a+b 的值是多少?A. 7B. 34C. 43D. 3+4答案:A8. 在C语言中,以下哪个关键字用于定义结构体?A. structB. unionC. enumD. typedef答案:A9. C语言中,以下哪个函数用于输入一个字符?B. getcharC. getsD. printf答案:B10. 下列哪个选项是C语言中的合法常量?A. 0x1AB. 0X1aC. 0x1A3D. 0x1AG答案:A二、填空题(每题2分,共20分)1. 在C语言中,用来定义单片机I/O端口的关键字是______。
答案:sbit2. 若定义了指针变量 int *p; 则 p 指向的变量的值可以通过______ 来改变。
答案:*p3. C语言中,用于定义一个无返回值的函数的关键字是 ______ 。
答案:void4. 若有数组定义 int arr[5] = {1, 2, 3, 4, 5}; 则 arr[2] 的值是 ______ 。
答案:35. 在C语言中,用于定义一个字符数组的关键字是 ______ 。
c语言单片机试题及答案
c语言单片机试题及答案一、选择题(每题2分,共10分)1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 单片机的内部RAM中,哪个区域用于存储位地址?A. 直接地址区B. 间接地址区C. 位寻址区D. 扩展RAM区答案:C3. 下列哪个选项是C语言中正确的字符串定义方式?A. char str[] = "Hello";B. char str[5] = "Hello";C. char str[] = {"Hello"};D. char str[6] = {"Hello"};答案:A4. 在8051单片机中,哪个寄存器用于存储当前正在执行的程序的地址?A. ACCB. BC. PCD. SP答案:C5. C语言中,以下哪个选项是正确的数组定义?A. int a[] = {1, 2, 3};B. int a[3] = {1, 2, 3};C. int a = {1, 2, 3};D. int a[3] = {1};答案:A二、填空题(每题4分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。
答案:int2. 8051单片机的外部中断0的中断向量地址是________。
答案:0003H3. 单片机的I/O口通常可以被配置为________或输出模式。
答案:输入4. 在C语言中,用于定义一个字符型数组的关键字是________。
答案:char5. 8051单片机的定时器/计数器0的控制寄存器是________。
答案:TMOD三、简答题(每题10分,共20分)1. 简述C语言中如何实现函数的递归调用。
答案:在C语言中,函数的递归调用是指一个函数在其定义中调用自身。
递归函数通常包含一个结束递归的条件,以防止无限递归。
例如,计算阶乘的函数可以定义为:```cint factorial(int n) {if (n == 0) return 1; // 递归结束条件return n * factorial(n - 1); // 递归调用}```2. 解释8051单片机的定时器/计数器的作用。
单片机复习题(C语言版)
单片机复习题(C语言版)单片机复习题(c语言)一、填空1.mcs-51单片机是________位机,其最大程序容量可达________k字节,是的,并行端口和I/O引脚。
2.mcs-51单片机正常工作所必须的外部硬件电路是________、________、________。
3.mcs-51单片机复位电平是________电平,正常工作时复位端为________复位后的电平,所有线路端口的输出为__________________。
4.mcs-51单片机内部结构中,四个基本功能单元分别是________、________三个扩展功能单元分别为。
5.mcs-51单片机内部ram四个分区分别是________、________、________、________。
6.mcs-51单片机________口没有内部上拉电阻;并行口作为输入口使用必须确保端口FET______________;,即写入端口,此时,该端口的输出锁存器的Q端为______。
7.mcs-51单片机计数器工作在方式1和方式2的最大计数值分别是___________、___________。
8.mcs-51单片机若单片机的主时钟振荡频率为6mhz,定时器工作在方式模式1和模式2的最大定时时间分别为_________________________我们。
基本指令周期为9.mcs-51单片机的五个中断源分别是_________、_________、__________、_________、__________。
10.编写程序常用的三种程序结构是_________、_________、__________。
11.c语言语法中,数据类型unsignedchar定义的是_________位无符号数;数据类型unsigned int定义了位无符号数。
对于8位和16位有符号数字,将数据类型关键字定义为__________________。
12.MCU通电后,从主功能void main()_________;位置操作开始。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言习题集习题一一.填空题1.C程序是由()构成的,一个C程序中至少包含()。
因此,( ) 是C程序的基本单位。
2. 函数体是有符号____开始,符号____结束。
函数体当中,前面是变量的____部分,后面变量的____部分。
3.一个C源程序中至少应包括一个_______。
4.在一个C源程序中,注释部分两侧的分界符分别为_____和________。
在C语言的每条语句后面都要有____结束二.判断题1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
【】2.main函数必须写在一个C程序的最前面。
【】3.一个C程序可以包含若干的函数。
【】4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
【】5.C程序的注释只能是一行。
【】6.C程序的注释不能是中文文字信息。
【】三、选择题1 一个C程序的执行是从________。
(A)本程序的main函数开始,到main函数结束。
(B)本程序的第一个函数开始,到本程序文件的最后一个函数结束。
(C) 本程序的main函数开始,到本程序文件的最后一个函数结束。
(D)本程序的第一个函数开始,到本程序main函数结束。
2 以下叙述不正确的是_________。
(A)一个C源程序可由一个或多个函数组成。
(B)一个C源程序必须包含一个main函数。
(C) 程序的基本组成单位是函数。
(D)在C程序中,/**/类的注释说明只能位于一条语句的后面3 C语言规定:在一个源程序中,main函数的位置___。
(A)必须在最开始(B)必须在所有函数的后面(C)可以任意(D)必须在最后四.程序阅读1、找出该程序中的错误并改正。
#include<stdio.h>;main();float r,s;/*/*r is radius*/*/r=5.0 s=3.14*r*r;printf(“%f\n”,s)五.编程题1. 利用keil c 集成开发环境建立一个c语言的工程,旋转的MCU型号是STC89C52,并在工程内添加一个名为main的c文件,并在c文件中建立一个空的主函数。
习题二(第2、3节知识)一.选择题1、合法的用户标识符是( )A)abc B) !a C)int D)sfr2、合法的字符常量是( )A)…\084‟B) “a” C)…ab‟D)963、是C语言提供的合法的数据类型关键字( )A)Float B)unsigned int C)integer D)Char4、在以下各组标识符中,合法的标识符是( )(1)A)B01 B)table_1 C)0_t D)k%(2)A)Fast_ B)void C)pbl D)<book>(3)A)xy_ B)longdouble C)*p D)CHAR(4) A) sj B)Int C)_xy D)w_y23------------------------------------------------------------------------------5、属于合法的C语言unsigned char型常量的是( )A)5876273 B)0 C)-20 D)58762.736、unsigned char a=32,char b=‘A’那么表达式a+b 的数值是( )A)'A' B)0 C)-1 D)'a'7、判断unsigned char x = 300;x的结果是( )A)赋值非法B)溢出C)为300 D)为448、为了计算s=10!(即10的阶乘),则s变量应定义为( )A)int B)unsigned C)long D)以上三种类型均可9、与代数式(x*y)/(u*v) 不等价的C语言表达式是( )A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y10、在C语言中,数字029是一个( )A)八进制数B)十六进制数C)十进制数D)非法数11、在C语言中,要求参加运算的数必须时整数的运算符是( )A)/ B)* C)% D) =12、假定x和y为float型,则表达式x=2,y=x+3/2的值是( )A)3.500000 B)3 C)2.000000 D)3.00000013、以下合法的赋值语句是( )A)x=y=100 B)x+y=a+b C)x+y D)c=int(a+b)14、int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为( )A)1 B)2 C)3 D)415、若有定义:int a=3,b=2,c=1;并有表达式:①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是( )A)①和②B)②和③C)①和③D)③和④16、逻辑运算符两侧运算对象的数据类型( )A)只能是0或1 B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据二.填空题1、在C51中,一个unsigned char数据在内存中所占字节数为,其数值范围为;一个unsigned int数据在内存中所占字节数为,其数值范围为;2、C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符不能为。
4、在C语言中,不同运算符之间运算次序存在的区别5、设x=2.5,a=7,y=4.7, 则x+a%3*(int)(x+y)%2/4为。
6、数学表达式1<=a<=3 的C语言表达式为。
7、已知:char a=‟a‟,b=‟b‟,c=‟c‟,unsigned int i;则表达式i=a+b+c的数值为。
8、已知int a=12,n=5;则:表达式运算后a的值各为。
a+=aa-=2a*=2+3a/=a+an%=(n%=2)a+=a-=a*=a9、设int a; float f; 则表达式10+‟a‟+9*f值的数据类型是。
10、已知a,b,c是一个整数的百位,十位,个位,则该数的表达式是。
11、若a是int变量,则执行表达式a=25/3%3后,a的值是。
12、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是。
A)(x>=1) && (x<=10) && (x>=200) && (x<=210)B)(x>=1) | | (x<=10) | | (x>=200) | | (x<=210)C)(x>=1) && (x<=10) | | (x>=200) && (x<=210)D)(x>=1) | | (x<=10) && (x>=200) | | (x<=210)13、C语言提供6种关系运算符,按优先级高低它们分别是,,,,,等。
14、C语言提供三种逻辑运算符,按优先级高低它们分别是,,。
15、设a=3,b=4,c=5,写出下面各逻辑表达式的值。
表达式表达式运算后的值a+b>c && b==c!(a>b) && !c || 1!(a+b) + c –1 && b + c/216、将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式。
17、已知A=7.5,B=2,C=3.6,表达式A>B && C>A || A<B && !C>B的值是。
三.程序阅读题1.写出以下程序的输出结果。
main ( ){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}四.程序填空题1.下列程序的输出结果是16.00,请填(1)空使程序完整。
main ( ){ int a=9,b=2;float x=[ 1 ] , y=1.1 , z;z=a/2+b*x/y+1/2;printf(“%5.2f\n”,z);}五.编程题1.已知a,b均是无符号整型变量,写出将a,b两个变量中的值互换的程序来。
习题三(第4、5节知识)一.选择题1、C语言对嵌套if语句的规定是:else总是与( )A)其之前最近的if配对B)第一个if配对C)缩进位置相同的if配对D)其之前最近的且尚未配对的if配对2.下面是错误的if语句(设int x,a,b;)A)if (a=b) x++; B)if (a=<b) x++;C)if (a-b) x++; D)if ( x ) x++;3.以下程序片段( )main ( ){ int x=0,y=0,z=0;if (x=y+z)printf(“***”);elseprintf(“###”);}A)有语法错误,不能通过编译B)输出:***C)可以编译,但不能通过连接,所以不能运行D)输出:###4.对下述程序,是正确的判断。
main ( ){ int x,y;scanf(“%d,%d”,&x,&y);if (x>y)x=y;y=x;elsex++;y++;printf(“%d,%d”,x,y);}A)有语法错误,不能通过编译B)若输入3和4,则输出4和5C)若输入4和3,则输出3和4 D)若输入4和3,则输出4和5 5.下述程序的输出结果是。
main ( ){ int a=0,b=0,c=0;if (++a>0 | | ++b>0)++c;printf(“%d,%d,%d”,a,b,c);}A)0,0,0 B)1,1,1 C)1,0,1 D)0,1,16.以下程序输出结果是。
main ( ){ int x=1,y=0,a=0,b=0;switch(x) {case 1:switch (y) {case 0 : a++ ; break ;case 2:a++; b++; break;case 3:a++; b++;}printf(“a=%d,b=%d”,a,b);}A)a=1,b=0 B)a=2,b=1 C)a=1,b=1 D)a=2,b=27.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是。
if (a<b)if (c<d) x=1;elseif (a<c)if (b<d) x=2;else x=3;else x=6;else x=7;A)1 B)2 C)3 D)48.若int i=0;执行下列程序后,变量i的正确结果是。