列表

详情


阅读以下关于C语言的基本概念和编程方面的叙述,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
服务型智能扫地机器人的信息处理中心,用于接收各种传感器信息和视觉信息,通过分析处理进行扫地机器人的运动控制,且负责和后台监控中心通信。信息处理中心基于嵌入式计算机实现。

【问题1】(4分)

在信息处理中心的计算机系统中,系统总是要用户对变量或寄存器进行位操作,下面程序1代码中对给定整型变量a,实现了两个函数,其中:set_bit3函数用于设置a的bit 3(第3位),clear_bit3函数用于清除a的bit3(第3位)。请补全程序1代码的(1)和(2),将正确代码写在答题纸的相应位置。

【程序1】


【问题2】(6分)
信息处理计算机采用中断方式快速响应外部事件。中断是嵌入式系统中重要的组成部分,这使得很多编译器开发商提供了标准C支持中断的扩展(使用关键字_interrupt)。下面程序2是王工设计的中断处理程序代码,请对这段程序进行同行评审,找出你认为不合适的3个方面,将解答写入答题纸相应的位置。
【程序2】

【问题3】(5分)
王工设计了信息处理中的软件算法,利用单向链表来存储信息。其中如下给定的程序3中已建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据从小到大顺序链接。函数fun的功能是:把参数x的值放入一个新结点并插入到链表中,插入后各结点仍保持从小到大顺序排列。该程序的实现如程序3所示。
【程序3】


根据题意分析程序,完成程序3的空(1)~(5),将解答写入答题纸相应的位置。

参考答案:

【问题1】
(1)a=a|BIT3或者a|= BIT3
(2)a=a& ~BIT3或者a&=~BIT3
【问题2】
回答以下4项中任意3项(意思相近即可)。
(1)中断程序的返回值。中断程序中一般不能返回一个值。
(2)中断程序参数。中断程序中一般不能传递参数。
(3)浮点运算。中断程序应该是短而有效率的,一般在中断程序上下文切换时不保存浮点寄存器,尽量不要在中断程序中做浮点运算。
(4)printf()一般是阻塞性调用,尽量不要在中断程序中调用阻塞性服务。
【问题3】
(1)x
(2)s
(3)q->next或p->next
(4)s
(5)q

详细解析:

本题考查嵌入式程序开发的能力。
要求掌握C语言的位操纵,位操作是程序中对位模式按位进行的一元或二元操作。位运算符有取反操作、按位或、按位异或、按位与、移位等。
要求掌握C语言中链表的相关操作,比如链表的插入、删除等操作。包括了单链表、双链表。该题考查的就是对单链表的操作。单链表是一种链式存取的数据结构,链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象)+指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。以“结点的序列”表示的线性表称作线性链表(单链表),单链表是链式存取的结构。

上一题