一起答

全国自考(微型计算机原理与接口技术)模拟试卷8

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 42. 使用定时/计数器0以工作方式2实现定时,在P1.0输出周期为200μs的连续方波。已知晶振频率fosc=6MHz。求计数初值,方式控制字,编制相应程序。(查询方式)

  2. 43. 下面是两单片机通过串行口进行通信的程序。它能将甲机内部RAM 20H~27H单元的数据发送给乙机,完成程序并填空。

    甲机发送程序如下:

      MOV   ① ;定时器T1工作在8位重装方式

      MOV TL1,#0F4H

      MOV TH1,#0F4H

      SETB TR1

      MOV   ②  ,#40H;语句的作用是设置串口控制字

      MOV R0,#20H

      MOV R7,#08H

      START:MOV A.@R0

      MOV   ③  ,A;将累加器A中的内容送串口输出缓冲器

      WAIT:JBC T1, ④ ;判断T1是否置位,其目的是检查一帧是否发送完

      AJMP WAIT

      CONT:INC R0

      DJNZ R7,START

      SJMP $

      乙机接收程序如下:

      MOV TMOD,#20H

      MOV TL1,#0F4H

      MOV TH1,#0F4H

      SETB TR1

      MOV SCON,#40H

      MOV R0,#20H

      MOV R7,#08H

      SETB   ⑤ ;将REN置位的目的是使允许中断接受

      WAIT:JBC RI,  ⑥ ;判断RI是否置位,其目的是检查一帧是否接受完

      AJMP WAIT

      READ:MOV A, ⑦ ;将串口输入缓冲器的内容送累加器A

      MOV @R0,A

      INC R0

      DJNZ R7, ⑧  

      SJMP $

      答:①______;②______;③______;④______;

      ⑤______;⑥______;⑦______;⑧______。

  3. 41. 下面程序的功能是______。

    BTOD1:MOV A,R2

             MOV B,#100

             DIV AB

             MOV R6,A

             MOV A,#10

             XCH A,B

             DIV AB

             SWAP A

             ADD A,B

             MOV R5,A

             RET

  4. 40. 下面程序的功能是______。

    ORG 4000h

            MOV R0,#20H

            MOV R7,#0AH

            MOV A,@R0

            DEC R7

      LOOP:INC R0

            MOV 40H,@R0

            CJNE A,40H,NEXT

      NEXT:JC  LOOP1

            MOV A,40H

      LOOP1:DJNZ R7,LOOP

            MOV 41H,A

      HERE:SJMP $

            END

  5. 39. 下面程序段是将ROM 3000H单元内容送R7。

    MOV   DPTR,#3000H

      CLR   A

      MOVC   A,@R7+DPTR

      MOV   R7,A

      错误:______

      改正:______

  6. 38. 下面程序段是将片外RAM20H~25H单元清零。

    MOV  R0,#20H

              MOV  R7,#06H

              CLR  A

      LOOP: MOV  @R0,A

              INC  R0

              DJNZ,#3000H

      错误:______

      改正:______

  7. 37. 若由程序设定RS1.RS0=11,则工作寄存器R0~R7的直接地址为______。

  8. 35. 若(A)=86H,(PSW)=80H,则执行RRCA指令后,(A)=______。

  9. 36. 若PSW=00,执行下列程序后,CY=______。

    MOV  A,#0FBH 

    MOV  PSW,#10H

    ADD  A,#7FH

  10. 33. 执行完本段指令后(A)=______(B)=______。

    MOV   A,#08H

      MOV   B,#45H

      PUSH   A

      PUSH   B

      POP   A

      POP   B

  11. 34. 已知(R0)=20H,(20H)=36H,(21H)=17H,(36H)=34H,执行下列程序后,则(R0)=______(R2)=______。

    MOV   A,@R0

      MOV   R0,A

      MOV   A,@R0

      ADD   A,21H

      ORL   A,#21H

      RL    A

      MOV   R2 A

      RET

  12. 32. MCS-51单片机外部中断请求信号有电平方式和______,在电平方式下,当采集到INT0或INT1的有效信号为______时,激活外部中断。

  13. 31. MCS-51有一个全双工的______步串行口,有______种工作方式。

  14. 30. 8051内部并行口P0口直接作输出口时,必须外接______;并行口作输入口时,必须先______,才能读入外设的状态。

  15. 29. 编制程序,输入n个整数(n从键盘输入,n>0),输出它们的偶数和。

  16. #include<stdio.h>

      main()

      {int k=0;

       char c='A':

       do

      {switch(c++)

      {case'A':k++;break;

       case'B':k--;

       case'C':k+ =2;break;

       case'D':k=k%2;break;

       case'E':k=k*10;break;

       default:k=k/3;}

       k++;}

       while(c<'G');

       printf("k=%d",k);}

      程序运行结果是:______

  17. #include<stdio.h>

      main()

      {int i,b,k=0;

      for(i=1;i<=5;i++)

      {b=i%2;

      while(b-->=0)k++;}

      printf("%d,%d",k,b);

      }

      程序运行结果是:______

  18. #include"stdio.h"

      main()

      {int a,b,d=241;

       a=d/100%9;

       b=(-1)&&(-1);

      printf("%d,%d",a,b);

      }

      程序运行结果是:______

  19. #include<stdio.h>

      main()

      {int x;

       scanf("%d",&x);

       if(x>=60)printf("pass");

       else printf("fail");

      }

      程序运行时输入60<回车>,则程序运行结果是:______

  20. #include"stdio.h"

      main()

      {FILE*I=fp;char ch;

        if((fp=fopen("test.txt","w"))==NULL)

        {printf("cannot open file\n");exit(0);}

        ch=getchar();

        while(ch!='$')

      {fputc(ch,fp);putchar(ch);

        ch=getchar();}

        fclose(*fp);

      }

      错误:______

      改正:______

  21. struct abc

      {char a[20]={0};

        char b;}

      main()

      {struct abc studl[10];

        int a;

      for(a=0;a<10;a++)

        scanf("%s",a);

      }

      错误:______

      改正:______

  22. main()

        {int a[10],i;

          for(i=1;i<=10;i++)

          Scanf("%d",a[i]);

          for(i=10;i>=0;i- -)

          printf("%d",a[i]);

        }

      错误:______

      改正:______

  23. 22. 求1到n的自然数之和的函数。

    #include"stdio.h"

        int sum(int n)

        {int k,s=0;

      for(k=1;k<10;k++)

        s=s+k:

      return s;

      }

      错误:______

      改正:______

  24. 20. 以下程序是用来统计正整数的每位数字中零的个数,并求每位数字中最大者。请填空。

    main()

      {unsigned long num,max,t;

        int count;

        count=max=0:

        scanf("%ld",&num);

        do{

          t=______;

          if(t==0)++count;

          else if(max<t)max=t;

          num/=10;

          }while(num);

      printf("count=%d,max=%ld\n",count,max);

  25. 19. 从键盘上输入若干个学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。

    main()

      {float s,gmax,gmin;

        scanf("%f,"&s);

        gmax=s;gmin=s;

        while(s>=0)

      {if(s>gmax)gmax=s;

      if(______)gmin=s;

      scanf("%f",&s);}

      printf("gmax=%f\ngmin=%f\n"gmax,gmin);}

  26. 16. 下列指令判断若累加器A的内容不为0就转LP的是( )

    • A.JB A,LP
    • B.JNZ A,LP
    • C.JZ LP
    • D.CJNE A,#0,LP
  27. 18. 当a=3,b=2,c=1时,表达式f=a>b>c的值是______。

  28. 17. inta,b;则表达式(a=2,b=5,a++,b++,a+b)的值是______。

  29. 下列寄存器中用来作堆栈段寄存器的是()

    • A.CS
    • B.DS
    • C.SS
    • D.ES
  30. 15. 执行如下三条指令后,30H单元的内容是(  ) 

    MOV R1,#30H 

    MOV 40H,#0EH 

    MOV @R1,40H  

    • A.40H
    • B.0EH
    • C.30H
    • D.FFH
  31. 13. 短转移指令的助记符是( )

    • A.AJMP
    • B.ANL
    • C.SJMP
    • D.LJMP
  32. 12. 逻辑“异或”操作指令的助记符是( )

    • A.ORL
    • B.ANL
    • C.XRL
    • D.MOV
  33. 9. 下面不属于中断处理过程的是( )

    • A.保护现场与恢复现场
    • B.开中断与关中断
    • C.中断向量
    • D.中断服务与中断返回
  34. 11. 用户可以直接使用的8031单片机I/O接口是( )

    • A.P0
    • B.P2
    • C.P1
    • D.P3
  35. 10. MCS-51单片机的定时器/计数器工作方式1是( )

    • A.16位计数器结构
    • B.8位计数器结构
    • C.13位计数器结构
    • D.2个8位计数器结构
  36. 7. MCS-51布尔处理机的存储空间指的是( )

    • A.00H~0FH
    • B.10H~1FH
    • C.20H~2FH
    • D.30H~3FH
  37. 8. 不影响程序状态字.PSW的指令关键字是( )

    • A.ADD
    • B.ADDC
    • C.SUBB
    • D.RRC
  38. 5. 对于循环for(i=1;0;i++)可以认为是( )

    • A.逻辑错误
    • B.语法错误
    • C.不进入循环
    • D.死循环
  39. 6. fscanf函数的正确调用形式是( )

    • A.fscanf(fp,格式字符串,输出列表);
    • B.fscanf(格式字符串,输出列表,fp);
    • C.fscanf(格式字符串,文件指针,输出列表);
    • D.fscanf(文件指针,格式字符串,变量地址列表);
  40. 3. inta=30,b=20,c=10,d;d=a>b>c;则d的值是( )

    • A.10
    • B.1
    • C.30
    • D.0
  41. 2. 以下说法不正确的是( )

    • A.C语言具有一些汇编语言的功能
    • B.C语言是面向对象的程序设计语言
    • C.C语言具有多种存储类型
    • D.C语言具有预处理功能
  42. 4. 以下正确的函数定义形式是( )

    • A.double fun(int x;int y)
    • B.double fun(int x,int y)
    • C.double fun(int x,int y);
    • D.double fun(int x,y);
  43. 1. 以下集成块型号中属于8位系列单片机型号的是( )

    • A.80C196MC
    • B.80C196KR
    • C.80196KC
    • D.83C51FC