有unsigned char 型变量a和变量b,其中a=4,执行语句 b=a<<1;后变量b的值是(> A、8
B、16
C、2
D、10
B、16
C、2
D、10
第1题
A.unsigned long d=1000;
B.float m1=m2=10.0;
C.char c1='A',c2=A;
D.double x=0.618,x=3.14;
第3题
B、signed char i
C、unsigned int i
D、signed int i
第4题
阅读以下关于嵌入式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);
/* 第三次输出 */
}
第5题
【填空题】1、简易秒表的设计,根据电路补充程序 要求: 设计一个简易秒表,系统一上电,数码管显示“00”每间隔1S,显示加1,当加到60时,数码管显示0,从0开始加。<reg51.h> //包含头文件reg51.h com1=P3^0; com2=P3^1; unsigned char dm ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9对应段码 unsigned char c1,miao=0; //定义无符号字符型变量c1为5万us计数器,变量miao为秒计数器。 void ys(unsigned int t)//延时函数 { while( ) } void t0csh()//T0初始化程序的编写 { TH0=(65536- ) 256;//设置T0计数初值高8位,定时时间50ms TL0=(65536- ) 256;//设置T0计数初值低8位,定时时间50ms =0X01; //设置T0为工作方式1,定时器使用 //定时器T0中断允许 //总中断允许 //启动T0 } void xs()//显示函数 { com1= ;com2= ;//选中1号数码管 P2=dm[ ];//显示变量miao的十位 ys(1000); =0xff;//关闭显示,消影 com1=0;com2=1;//选中2号数码管 P2=dm[ ];//显示变量a的个位 ys(1000); //关闭显示,消影 } void main() { //t0初始化 While { xs(); } void tozd( ) //T0中断函数 { TH0=(65536-50000) 256; TL0=(65536-50000) 256; ;//5万us计算器加1 if( )//1S时间到 { c1=0; miao++; if( >59) miao=0;//当秒计数到60,回到0 } }
第8题
A、-4
B、0
C、-3
D、1
第10题
A、a=0, b=1
B、a=1, b=-4
C、a=0, b=-4
D、a=1, b=1
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!