试题五 (共15 分 ) 阅读以下关于嵌入式C语言编程方面的问题,回答问题1至问题3,将答案填入答题纸
试题五 (共15 分 )
阅读以下关于嵌入式C语言编程方面的问题,回答问题1至问题3,将答案填入答题纸的对应栏内。
【说明】
嵌入式C语言编程中常涉及位运算、宏定义的问题,以及大端方式(Big-endian)、小端方式(Little-endian)的访问问题。
【 问题1 】(4 )
嵌入式系统中常要求用户对变量或寄存器进行位操作。下面的两个函数分别为设置和清除变量 a 的第 5位。请使用下面的宏定义 BIT5 按要求对变量 a 进行相应的处理。在函数set_bit5中,用位或赋值操作(|=)设置变量a的第5位,在函数clear_bit5中,用位与赋值操作(&=)清除变量a的第5位。
define BIT5 (0x01<<5)
static int a;
void set_bit5(void)
{
① ; /* 设置变量a的第5位 */
}
void clear_bit5(void)
{
② ; /* 清除变量a的第5位 */
}
【 问题2】(5 分 )
图5-1所示代码的设计意图是计算1~100各数的平方。 该段代码运行后,没有得到应有的结果,请说明出错原因,将答案填入答题纸的对应栏内。
”
【问题3】(6分)
某嵌入式处理器工作在大端方式 (Big-endian)下, 其中unsigned int为32位, unsigned short为16位,unsigned char为8位。仔细阅读并分析下面的C 语言代码,写出其打印输出的结果,将答案填入答题纸的对应栏内。
include "stdio.h"
include "stdlib.h"
void *MEM_ADDR;
void mem_test(void)
{
unsigned int *pint_addr = NULL;
unsigned short *pshort_addr = NULL;
unsigned char *pchar_addr = NULL;
MEM_ADDR = (void *)malloc(sizeof(int));
pint_addr = (unsigned int *)MEM_ADDR;
pshort_addr = (unsigned short *)MEM_ADDR;
pchar_addr = (unsigned char *)MEM_ADDR;
*pint_addr = 0x12345678;
printf("0x%x, 0x%x\n", *pshort_addr, *pchar_addr);
/* 第一次输出 */
pshort_addr++;
*pshort_addr = 0x5555;
printf("0x%x, 0x%x\n", *pint_addr, *pchar_addr);
/* 第二次输出 */
pchar_addr++;
*pchar_addr = 0xAA;
printf("0x%x, 0x%x\n", *pint_addr, *pshort_addr);
/* 第三次输出 */
}
试题五(共15分)【问题1】(4分)①a|=BIT5(2分)②a&=~BIT5(2分)【问题2】(5分)出错原因:在宏定义中,参数a使用两次,而在引用宏时,使用了i++,从而导致出错。(3分)(只要意思正确即可给分)①i(1分)②i++或i=i+1或++i或i+=1(1分)【问题3】(6分)第一次输出:0x1234,0x12(2分,每个数值1分)第二次输出:0x12345555,0x12(2分,每个数值1分)第三次输出:0x12aa5555,0x5555(2分,每个数值1分)
一袋大米三袋面粉共七十千克三袋大米一袋面粉共五十千克每袋大米多少千克每袋面粉多少千克 数学 2020-06-11 …
5000里面有几个带4的号?我要做贵宾卡,总共五种卡,每种1000张,共5000张,正面有编码,五 数学 2020-06-16 …
环戊二烯几个共平面的问题我搜到的答案都是9个原子共平面除亚甲基上的2个H但是根据数学知识在5个C的 其他 2020-06-27 …
从下面备选词语中选用五个或五个以上的词语.从下面备选词语中选用五个或五个以上的词语,至少运用三种修 语文 2020-06-30 …
英语翻译我需要翻译《麦奎尔大众传播理论(第5版)》即《Mcquail'smasscommunicat 其他 2020-11-08 …
英语翻译巴西即巴西联邦共和国,是南美洲最大的国家,享有足球王国的美誉,是2014年世界杯的举办国,人 英语 2020-11-10 …
(2014•许昌二模)四棱锥P-ABCD中,底面ABCD是矩形,PA⊥底面ABCD,则这个五面体的五 其他 2020-11-12 …
问一个语文语法问什么列举的时候列举完了后面还要一个等字例如来的人共五人,有小张,小靳,小于,小牛,小 语文 2020-11-28 …
有数学物学化学语文英语共五本课本,从中任取两本,求至多有一本是理科书,求概率 数学 2020-12-22 …
高中议论文正反论证只有两个分论点会不会扣分?刚考完语文.这次的作文问题我写的是议论文.一共五段,第一 语文 2020-12-23 …