课程代码:02205
第一部分 C语言程序设计
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共10分)
1.4位无符号二进制数表示的数的范围是( )。
A.0~9999 B.0~9
C.0~15 D.0~99
2.若已定义X和Y是double型,X=1,则表达式Y=X+3/2的值是( )。
A.1 B.2
C.2.0 D.2.5
3.执行下面程序段后,输出结果为( )。
int a=1,b=1,c=1;
a=a+b++ +c++;
printf(″%d,%d,%d″,a,++b,c++);
A.3,3,2 B.3,2,3
C.3,3,3 D.3,2,2
4.在C语言中,一个int型数据在内存中占 个字节,其取值范围为 .( )
A.1,-128~127 B.2,-32768~32767
C.2,0~65536 D.4,0~2147483647
5.表达式0x13 0x17的值为( )。
A.0x17 B.0x13
C.0xF8 D.0xEC
二、简答题(每小题4分,共16分)
1.何谓全局变量 为什么它能用于函数数据传递
2.文件的嵌套调用与递归调用。
3.简述头文件的功能,并列出两个头文件的名称。
4.简述由C语言的源程序到目标文件的编译过程。
三、程序阅读题,读下列程序,写出程序的输出结果(每小题4分,共8分)
1.执行下列程序后,输出结果为_______.
#include
fun (int x)
{
int p;
if ((x==0||(x==1)) return (3);
p=x-fun(x-2);
return p;
}
main()
{printf(″%d\n″,fun(9));
}
2.下列程序运行的结果是_______.
main()
{ struct cmples
{ int x;
int y;
}cnum[2]={{1,4},{8,10}};
printf(″%d\n″,cnum[0]。y/cnum[0]。x *cnum[1]。y);
}
四、编程题(每小题8分,共16分)
1.输入n个评委的评分,计算并输出参赛选手的最后得分,计算方法是去除一个最高分和一个最低分,其余的平均分为参赛选手的最后得分。
2.用100元钱买100支笔,其中钢笔3元/支,圆珠笔2元/支,铅笔0.5元/支,问钢笔、圆珠笔和铅笔可以各买多少支
第二部分MCS-51 单片机原理与接口技术
一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题2分,共10分)
1.8051单片机为( )位单片机。
A.4位 B.8位
C.16位 D.32位
2.8051单片机,若 =1,其含义为( )。
A. 引脚接+5V B. 引脚接地
C. 引脚接-5V D. 引脚接+10V
3.T0或T1做定时器时,是以单片机的( )做定时计数的时间基值。
A.时钟周期 B.状态周期
C.运行一条指令的时间 D.机器周期
4.要求T0、T1都工作在方式1,T0为定时器,T1为计数器,且不受 、 控制,TMOD值为( )。
A.15H B.51H
C.0D9H D.9DH
5.读取6116一个单元中的数据,要求( )。
A. =1, =0, =1 B. =0, =1, =0
C. =0, =0, =1 D. =1, =1, =0
二、分析题(每小题4分,共12分)
1.已知单片机晶振频率为6MHz,假设X、Y为变量,当X=_______,Y=_______时,下列程序执行时间最长,其最长值为_____.
MOV R6,#Y ; 需1个机器周期
DE1:MOV R7,#X ; 需1个机器周期
DE0:DJNZ R7,DE0 ; 需2个机器周期
DJNZ R6,DE1 ; 需2个机器周期
RET ; 需2个机器周期
2.有下列程序
SETB 40H
SETB C
ANL C,#40H
执行之后,(CY)=_______,(40H)=_______.
3.若(A)=20H,(B)=40H,(PSW)=00H,执行下面指令后,累加器A和4FH的内容为 .
MOV 4FH,#00H
MOV 50H,#00H
MOV SP,#4FH
PUSH ACC
PUSH B
PUSH PSW
POP ACC
POP B
POP PSW
三、编程题(共8分)
编程序把内部RAM中20H~4FH单元的内容清0.
四、应用题(每小题10分,共20分)
1. 用8255A扩展的I/O接口图如图2-4-1所示。要求8255A的A口、B口、C口都工作在方式0,且都定义为输出口。没有参加的地址线状态假定为 0,现要求执行程序后,LED1、LED2、LED8、LED9、LED10、LED12、LED16亮,其余指示灯灭。
图2-4-1
请在下列程序的空格处填入适当的指令:
_______
LJMP MAIN
ORG 0100H
MAIN:MOV SP,#60H ; 开辟一个堆栈缓冲区
MOV A,_______ ; 8255A控制字送累加器A
MOV DPTR,_______ ; 控制寄存器口地址送DPTR
_____________________ ; 写控制字
MOV DPTR,_______ ; A口口地址送DPTR
MOV A,_______ ; 要求从A口送出数据,先送累加器A
_____________________ ; 数据从A口送出
MOV DPTR,_______ ; C口口地址送DPTR
MOV A,_______ ; 要求从C口送出数据,先送累加器C
_____________________ ; 数据从C口送出
……
END
2.设数据总线的D7、D6、D5、D4、D3、D2、D1、D0分别与图2-4-2中的LED的dp、g、f、e、d、c、b、a.试写出共阳极连接时,显示字符‘6’、‘A’、‘1’、‘0’的编码。
图2-4-2