int min(a,b,c) {int a,b,c; a=aint f(a,b,c) {int a,b,c;{return(max(a,b,c)+min(a,b,c))/2;}}
输入三个数为:90,72,48。程序运行结果为:
【正确答案】 (P68)f()=69 【你的答案】
修改
分数
本题分数 4 分
你的得分
修改分数
第4题 main() {int s;
s=fibonacci(4);
printf(“fibonacci(4)=%d\n”,s);} int fibonacci(n) int n;
{int i,a=1,b=1,s=0; for(i=0;i<n;i++) {s=s+(a+b);
printf(“%4d%4d”,a,b); a=a+b; b=b+a;}
printf(“\n”); return s;}
程序运行结果为:
【正确答案】 (P68)1123581321
fibonacci(4)=54
【你的答案】
六、程序设计题(C语言程序设计 本大题共1小题,共8分)
第1题 将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数 的百位和个位上。例如,当a=45,b=12。调用该函数后,c=4152。
【正确答案】 (P28、68)
void fun(int a,int b,long *c)
{*c=a/10*1000+a%10*10+b/10*100+b%10; }
main()
{int a,b; long c;
printf(“Input a,b:”); scanf(“%d%d”,&a,&b);
fun(a,b,&c);
printf(“The result is: %d\n”, c); }
[解析]根据题意可知,函数fun的功能是将两个两位数的正整数a、b合并形成一个整数放在c中。根据提供的合并方式,取出a的十位数,显然是通 过表达式a/10,而取出a的个位数,是通过表达式a%10。取出b的十位和个位数同理。将一个数字放到千位上,显然是乘1000。而将一个数字放到十位 上是乘10,同理将一个数字放到百位上是乘100。将一个数字放到个位上,直接相加即可。
【你的答案】
七、填空题(单片机原理与接口技术 本大题共8小题,每小题2分,共16分)请在每小题的空格中填上正确答案。错填、不填均无分。
第1题 单片机的汇编语言程序设计中,一共有两条子程序返回指令,即一般子程序返回和中断子程序返回,它们各自的指令分别是___和___。
【正确答案】 (P139)RETRETI 【你的答案】
本题分数 2 分
你的得分
修改分数
第2题 8051单片机的中断源有___个,其中000BH是的入口地址___。
【正确答案】 (P171)5定时器T0 【你的答案】
本题分数 2 分
你的得分
修改分数
第3题 8031单片机中,如希望CPU能响应定时器0和定时器1的中断,而不响应其他中断,其IE寄
存器的内容应为___。
【正确答案】 (P172)8AH或10001010B 【你的答案】
本题分数 2 分
你的得分
第4题 74LS373的功能是___。
【正确答案】 (P198)三态锁存器 【你的答案】
修改分数
本题分数 2 分
你的得分
修改分数
第5题 堆栈区是在___区开辟的一个区域,其数据的存取遵守___的原则。
【正确答案】 (P123)内RAM后进先出 【你的答案】
本题分数 2 分
你的得分
修改分数
第6题 一般说,一条指令有两部分组成即___和___。
【正确答案】 (P117)操作码操作数 【你的答案】
本题分数 2 分
你的得分
修改分数
第7题 MCS-51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器___加以选择。
【正确答案】 (P174)IP 【你的答案】
本题分数 2 分
你的得分
修改分数
第8题 当程序状态字PSW为(10001001)时,当前工作寄存器组是___组,对应的工作寄存器R1、R7
的地址是___H、___H。
【正确答案】 (P120)1090F
【你的答案】
八、改错题(单片机原理与接口技术 本大题共2小题,每小题2分,共4分)每小题只有一处错误
或不妥,请指出,并将其改正。
第1题
【正确答案】 【你的答案】
本题分数 2 分
你的得分
修改分数
第2题 将外部RAM 0030H单元送内部RAM 30H。 MOVP2,#0 MOVR0,30H MOVXA,@R0 MOV@R0,A 答:错误: 改正:
【正确答案】 (P124)错误:MOVR0,30H
改正:MOVR0,#30H
【你的答案】
九、程序阅读题(单片机原理与接口技术 本大题共2小题,每小题4分,共8分)请阅读下列程序,写出程序运行结果。
第1题
【正确答案】 (P214)【你的答案】
本题分数 4 分
修改分数
你的得分
第2题 执行了下列指令组后,A=,B=。 MOVA,#34H ADDA,#48H MOVB,A DAA
【正确答案】 (P127)82H7CH
【你的答案】
十、程序设计题(单片机原理与接口技术 本大题共1小题,共8分)
第1题 试编写程序完成以内部RAM 30H为首地址的20个数据传送,目的地址为外部RAM 为首地址的区域。
【正确答案】
【你的答案】
十一、应用题(单片机原理与接口技术 本大题共1小题,共8分)
以2000H
第1题
【正确答案】 (P216)①MOVX②DPTR ③0C5H④@DPTR
[解析]本题主要是通过8255来控制定时器,完成分频任务。根据题中要求,可以算得初值=5000 =1388H然后利用MOV DPTR,#7F04给出定时器的低8位地址,再用INC DPTR调整定时器的高8位地址。接下来分别利用
MOVA,#88H
MOVX@DPTR,A 和
MOVA,#13H MOVX@DPTR,A
2段程序完成对定时器的低高8位数据进行装载。 【你的答案】