一、1.单项选择题
0. 无符号数10110011 B所对应的十六进制数是( )
A.33H
B.A3H
C.B3H
D.C3H
1. 二进制数10000000“减”二进制数00000001的运算结果是( )
A.00000001
B.10000001
C.O1111111
D.11111110
2. 在计算机中的数据都是用二进制表示的,表示二进制数据的最小单位是( )
A.位
B.字
C.字节
D.双字
3. 负数用原码和反码表示时,它们符号位的值分别是( )
A.0 0
B.0 1
C.1 0
D.1 1
4. 表达式7/3的值是( )
A.1
B.2
C.2.3
D.2.5
5. 在进行文件的随机读写时需要用到fseek()函数,语句fseek("myFile.dat",20,0);表示的含义是( )
A.文件的位置指针从myFile.dat文件的开始位置向文件的末尾方向移动20个字节
B.文件的位置指针从myFile.dat文件的当前位置向文件的末尾方向移动20个字节
C.文件的位置指针从myFile.dat文件的当前位置向文件的头方向移动20个字节
D.文件的位置指针从myFile.dat文件的末尾位置向文件的头方向移动20个字节
6. 常用8051单片机数据总线的位数为( )
A.4位
B.8位
C.12位
D.16位
7. 8051系列单片机具有并行I/O口的数量及每个口的倍数分别是( )
A.2个,8位
B.3个,16位
C.4个,4位
D.4个,8位
8. 8051单片机片内RAM中,位寻址区的地址范围是( )
A.0~0FH
B.10H~lFH
C.20H~2FH
D.30H~3FH
9. 决定程序执行顺序的寄存器是( )
A.PC
B.DPTR
C.SP
D.PSW
10. 已知(SP)=40H,RAM(60H)=FFH,执行PUSH 60H后,(SP)为( )
A.3FH
B.41H
C.60H
D.FFH
11. 执行下列三条指令后 MOV A,#66H ADD A,#58H DA A 累加器A的内容为( )
A.14H
B.1EH
C.24H
D.BEH
12. 已知(A)=23H,在ROM 4300H单元起存放指令CJNE A,#23H,51H,则执行完此指令(三字节)后,程序转向地址( )
A.4302H
B.4303H
C.4353H
D.4354H
13. 已知(CY)=1(A)=0FH,要使结果为(CY)=0 (A)=1FH,则需执行指令 ( )
A.RLC A
B.RRC A
C.RL A
D.RR A
14. 8K字节的RAM 6264,数据线的根数应为( )
A.4
B.8
C.16
D.32
15. 8031单片机扩展外部存储器时,用作数据总线的接口是( )
A.P0
B.P1
C.P2
D.P3
二、2.填空题
0. 单片机是一种特殊的超大规模集成电路,具有数据处理能力,可实现复杂的软件功能,因为单片机内部含有______。
1. 字符a的ASCⅡ码是十进制的97,执行了语句char c="c";printf("%d,%d",c,c+2);后将输出______。
2. 代数式
的c语言的表达式为______。
3. 对于单向值传递,函数调用时把实参传递给形参,形参的值发生改变,而其对应的实参值______。
三、3.改错题
0. #include<stdio.h>
main()
{int num;
scanf("%d",&num);
if(num%2=1)
printf("这是一个奇数 ”);
else
printf("这是一个偶数 ");
}
错误:______
改正:______
1.
#include<stdio.h>
main()
{int i=0,num;
float sum=0:
do{++i;
num=1.0/i;
sum+=num;
}while(num>0.000001);
printf("sum=%f ",sum);
}
错误:______
改正:______
2. #include<stdio.h>
#include
main()
{int i,a[10];
char b[10];
for(i=0;i<10;++i)
scanf("%d",a+i);
b="10 number":
printf("%s ",b);
for(i=0;i<10;++i)
printf("%d";a[i]);
printf(" ");
}
错误:______
改正:______
3. #include <stdio.h>
struct date
{int year=2010;
int month=1;
int day=1;
}datel;
main()
{struct date date2;
date2.year=2010;
date2.month=8:
date2.day=5;
printf("日期1:%d-%d-%d ",date1.year,date1.month,date1.day);
printf("日期2:%d-%d-%d ",date2.year,date2.month,date2.day);
}
错误:______
改正:______
四、4.程序阅读题
0. #include<stdio.h>
main()
{int a=2008,b=1864,e=1950,t;
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%d %d %d ",a,b,c);
}
程序运行结果为:
1. #include<stdio.h>
main()
{int i,x;
i=0;
do
{scanf("%d",&x);
i++:
}while(x%3!=0 ‖x%5!=0);
printf("输入数据的个数i=%d ",x);
}
程序运行时,输入数据为:1 2 3 4……直到程序结束。
程序运行结果为:
2. #include<stdio.h>
int f(t)
int t;
{int x;
if(t<=1)x=1;
else x=t*f(t-1);
return x;
}
main()
{int t,x;
t=4;
x=f(t);
printf("t=%d",t);
printf("x=%d ",x);
}
程序运行结果为:
3. #include<stdio.h>
main()
{char a[30]="Bejjing";
char b[30]="Shanghai";
char*pa=a,*pb=b;
while(*pa!=0)
pa++;
while(* pb!=0)
{*pa=*pb;pa++;pb++;)
*pa=0;
printf("%s ",a);
}
程序运行结果为:
五、5.程序设计题
0. 利用随机函数rand()生成10个整型随机数,输出它们之中的最大值和最小值;如果把最大值和最小值之和的一半称为中间值,输出所有大于中间值的数。
六、6.填空题-单片机原理与接口技术
0. MCS-51单片机把堆栈开辟在______中,其数据进出的最大特点是______。
1. MCS-51单片机中规定1个机器周期包含______个时钟周期,所以晶体振荡频率为12MHZ时,其机器周期为______μs(微秒)。
2. 在ROM 6547H单元起存放指令SJMP D9H,则执行完此指令(两字节)后,程序转向地址______H。
3. 已知(A)=4EH,(R1)=63H,执行指令XCH A,R1后,(A)=______H,(R1)=______H。
4. 一条机器指令由______和______两部分组成。
5. 执行下列三条指令后,(A)=______H (B)=______H。
MOV A,#31H
MOV B,#04H
MUI AB
6. CPU响应中断,开始执行中断服务程序前,堆栈栈顶的内容是本次中断的______。
7. 8031单片机串行口的中断服务程序入口地址是______H。
七、7.改错题-单片机原理与接口技术
0. 下列子程序欲将累加器A中的一个两位BCD码数转换为二进制数,仍存于A中。
TB:MOV 40H,A
SWAP A
ANL A,#0FH:
MOV B,#10
MUL AB
ANL 40H,#0FH
ORL A,40H
RET
错误:______
改正:______
1. 下列是中断初始化程序段,要求8031单片机允许T0、T1、INT1和串行口中断,其中T0是最高中断级。
MOV IP,#0000 0001 B
MOV IE,#1001 1110 B
错误:______
改正:______
八、8.程序阅读题-单片机原理与接口技术
0. 8031单片机时钟频率为12MHz,运行以下程序后,P1.0口将产生矩形波的周期为______mS,高电平时间为______mS。
ORG 0000H
LJMP BEG
ORG 001BH
DJNZ R7,TRET
CPL P1,0
MOV R7,#5
JB P1,0.TRET
MOV R7,#10
TRET:RETI
BEG:MOV TFMOD,#20H
MOV TH1,#56 ;T1 0.2mS 中断时间常数
MOV TL1,#56
MOV R7,#10
CLR P1.0
SETB TR1
MOV IE,#8H
SJMP $
1. 已知:(30H)=83H,(31H)=0ABH,(32H)=16H,(33H)=89H,(34H)=19H,执行以下子程序后:
MOV R0,#30H
MOV R7,#0
MOV R6,#0
MOV R2,#4
LOOP:MOV A,@R0
ADD A,R6
MOV R6,A
JNC CONT
INC R7
CONT:INC R0
DJNZ R2,LOOP
RET
结果为=(R7)=______H,(R6)=______H,(R2)=______H,(RO)=______H。
九、9.程序设计题-单片机原理与接口技术
0. 在片外RAM 4000H单元开始存放16个单字节数,将其中非零的数传送到片内RAM 20H开始的单元,并将其个数存于寄存器R6中。请接着以下程序,补全缺少的部分。
MOV R6,#OOH
MOV R7,#16
MOV R0,#20H
MOV DPTR,#4000H
SJMP $
十、10.微型计算机原理与接口技术-应用题
0. 8051单片机实验装置中的扫描式数字显示部分如题43图所示,6个共阳极LED的段驱动由P2口经8路反相驱动器提供,位驱动由P1.5~P1.0口经6路同相驱动器提供。以下程序段,使用定时器TD产生2ms中断(时钟频率12MHz),将缓冲区40H~45H(对应LED从左到右)的低4位中的16进制数,转换成显示代码,在LED上扫描显示。
ORG 0000H
AJMP START
ORG 000BH
MOV TL0,# ① H ;定时器11D时间常数
MOV TH0,# ② H
MOV A.@R0
LCALL LDCODE
MOV P2, ③
MOV P1, ④
TNC R0
MOV A.R7
RR A
MOV R7.A
JNB ⑤ ,T0_2
MOV R0,#4OH
MOV R7,#20H
T0_2:RETI
START:MOV TMOD,# ⑥ H
MOV TL0,# ① H
MOV THO,# ② H
MOV R0,#40H
MOV R7,#20H
MOV IE,#82H
SETB ⑦
LOOP: SJMP LOOP
LDCODE: ANL A,#0FH
INC A
MOVC ⑧
RET
DB 3FH,06H,5BH,4FH,66H,……; 显示代码
①______;②______;③______;④______;
⑤______;⑥______;⑦______;⑧______。
附:有关特殊功能寄存器各位内容: