考研复试(控制工程专硕)及大学本科(物联网工程)知识点回顾(一)——C语言/单片机


笔者从21年2月份开始全面备战考研,断掉了之前的文章更新。现在已经成功通过初试,开始备战复试,现在在这里进行一个总结,每个科目大概准备20左右个问题,打√为重点。

C语言

1-10

1、预编译处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
预编译处理:旨在进行编译之前,系统自动引用预处理程序源程序 中的预处理
ASCII码特殊值:

"0"-48D-30H; 
"a"-97D-61H; 
"A"-65D-41H;
"0-9"--"30-39"(H);
"a-z"--"61-7A"(H); 
"A-Z"--"41-5A"(H).

2、C语言程序中main函数有且只有一个,是程序运行的起点。
3、函数中不可以再定义函数。
4、算法:可以没有输入,但是一定要有输出。
5、break可用于循环结构和switch语句。
6、bit是位——是指0/1;byte是字节;一字节=八个位。
8、每个C语言程序(.c)写完之后,都是先编译(.obj),再链接(.exe),最后运行。
9、C语言只有八、十、十六进制,没有二进制。但是运行的时候,所有的进制都要转换成二进制来进行处理。
10、long int x;表示x是长整型;unsigned int x;表示x是无符号整型。

11-21

11、int x=i++;是先赋值后加1;int x=++i;是先加1后赋值。
12、在没有舍去数据时,<<左移一位表示乘以2;>>右移一位表示除以2。
13、使用printf和scanf函数时,要在最前面加上#include"stdio.h"
14、C语言中共有&&(双与);||(双或);!(非)三种逻辑运算符号。
15、C语言中使用1表示逻辑真的,用0表示逻辑假的。
16、条件表达式:表达式1?表达式2:表达式3;表示即1为真时执行2,为假时执行3。
17、程序结构是三种:顺序结构、选择结构与循环结构。
18、switch-case语句,根据选择的值执行相应的case,若case后面没有break,则后面的语句都要执行。有break,跳出当前case,结束当前循环。
19、continue和break的区别:break是跳出循环,continue是继续循环。
20、常见的死循环:for( ; ; ) 、while(1)
21、函数的参数可以是常量,变量,表达式,甚至是函数调用。

22、指针变量的本质?

是用来放地址的,而一般的变量是放数值的。

23、√ 堆和栈的区别?

定义上:
栈区(stack)——由编译器自动分配释放,存放函数的参数值、局部变量的值等其操作方式类似于数据结构中的栈;
堆区(heap)——一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。
性质上:
在栈上创建——在执行函数时,函数内局部变量的储存单元都可以在栈上创建,函数执行结束时,这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。
从堆上分配——亦称动态内存分配。程序在运行的时候用malloc或new申请任意多少的内存,程序员自己负责在何时用free或delete释放内存。动态内存的生存期由程序员决定,使用非常灵活,但问题也最多。

24-25

24、程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请存在于(堆)中。
25、队列与栈的区别:队列先进先出,栈后进先出。

26、√ 数组和链表的区别

数组:数据顺序存储,固定大小。
链表:数据可以随机存储,大小可动态改变。

27、什么是预编译,何时需要预编译?

(1) 总是使用不经常改动的大型代码体。
(2) 程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在这种情况下,可以将所有包含文件预编译为一个预编译头(stdio.h)。

28、√ 数组和指针的区别

指针与数组

29、√ 结构体和数组的区别

(1) 定义不同:
数组——是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量成为数组的分量,也成为数组的元素,有时候也称为下标变量;
结构体——是由一系列具有相同类型或不同类型的数据构成的数据集合
(2) 数据类型不同:
数组——是相同类型元素(元素可以是原子类型的整型、浮点型、字符型或者结构体、数组等)的集合;
结构体——是不同类型元素(元素范围同上)的集合。
(3) 调用方式不同:
数组——可以直接利用下标访问;
结构体——必须引用结构中成员的变量名。

30、结构体和共用体

结构体——可以同时存储多种变量类型;
共同体——同一时间只能存储和使用多个变量类型的一种,当另一时间,变量类型被改变后,原来的变量类型和值将被舍弃。
结构体的作用是同一个数据项可以使用多种格式,可以节省空间。比如,对商品进行标识时可以用整数和字符串中的一个。

单片机

1、√ 简述累加器的ACC的作用

8位专用寄存;运算时存放一个操作数,运算后存放运算结果。

2、√简述串行数据传送的特点

(1) 传送按位顺序进行,速度慢;
(2) 传输线少,成本低;
(3) 传输距离远,可以达几公尺到几千公里。

3、51系列单片机具有几个中断源,分别是如何定义的?其中哪些中断源可以被定义成高优先级中断,如何定义?

(1) 具有5个中断源——外部中断INT0、外部中断INT1、定时器溢出中断0、定时器溢出中断1串行中断。
(2) 每个中断源都可以被定义成高优先级中断。
(3) 通过对中断优先级寄存器IP的设置。

4、单片机的复位电路有几种形式?复位后PC/IE/SP内容?

(1) 有上电自动复位、按钮复位;
(2) PC–0000H; IE–00H; SP–07H; P0-P3口为FFH
复位情况

5、√ 中断?中断响应和中断返回?

中断——由于内部或外部的某种原因,CPU必须终止当前的程序,转去执行中断请求的那个外设或事物的服务程序,等处理完之后,再返回主程序继续执行,这一过程叫做中断。
中断响应——首先,把断点处的PC值压入堆栈中保留下来,这一过程叫做保护断点 ,由硬件自动完成。然后,把有关的寄存器内容和标志位状态推入堆栈中保留下来,这一个过程叫做保护现场 ,由用户编程完成。保护断点和现成后就可以执行中断服务程序,待事情处理完成后,返回主程序。
中断返回——首先,把原先保留的有关寄存器内容和标志位状态全部恢复,这一过程叫做恢复现场 ,由用户编程完成。然后,执行RETI指令,RETI指令的功能就是恢复PC值,这一过程就称为恢复断点 。恢复现场和恢复断点后,CPU继续执行主程序,中断结束

6、√ 中断返回和子程序返回的异同?

相同:
两者均能中断主程序执行本程序,返回后也能继续执行主程序。
不同点:
(1) RETI(中断返回指令)除了将压栈的内容弹出栈外,还清除中断优先级寄存器的状态;
(2) 中断服务程序的入口地址是固定的;子程序的入口地址是用户在程序中事先安排好的;
(3) 中断服务程序是在满足中断申请的条件下,随时发生的;子程序的调用是用户事先安排好的。

7、√ 什么是单片机、什么是嵌入式?两者有何区别和联系?

单片机——完成运算、逻辑控制、通信等功能的单一模块,为了实现单片机的应用,必须接入其他外设。
嵌入式——一般指的是嵌入式系统,嵌入式系统是将应用程序、操作系统和计算机硬件结合在一起的系统,嵌入式系统主要以应用为中心,以计算机技术为基础,硬软件可结合。
区别:
系统组成结构不同:
(1) 单片机由运算器、控制器、存储器,输入输出设备等组成;
(2) 嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式系统、特定的应用程序等组成。
硬软件组成不同:
(1) 运行内存不一样;
(2) 具有特殊功能的引脚不一样;
(3) 数据处理速度不一样等。
联系:
嵌入式是一个大类,单片机是一个小类。单片机所能完成的,嵌入式都能完成。

总结

本篇博客的复试总结就涉及到C语言和单片机的常考方面,后续还会有数电、模电、自控原理以及其他内容,尽请期待!!
要赞呀

  • 14
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾柒#_17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值