一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 43. 下面程序是动态显示程序,请分析程序完成说明。

    MOV DPTR,#4400H

              MOV A,#03H

              MOVX @DPTR,A

              SETB RS0   ;使用第1组工作寄存器

              MOV R2,#08H

              MOV R0,#30H

              CLR   A

      L1:   MOV @R0,A

              INC   R0

              INC   A

              DJNZ R2,L1

      DISP: MOV R0,#30H   ;显示缓冲区首址送R0

              MOV R1,#00H

              MOV R2,#08H   ;R2中的08H表示①

              MOV R3,#7FH   ;选中最右端LED

      DISP1:MOV A,@R0   ;第2次执行时A=②

              MOV DPTR,#TAB   ;指向字形表首址

              MOVC A,@A+DPTR   ;第2次执行时A=③

              MOV DPTR,#4402H   ;4402H表示④

              MOVX @DPTR,A   ;该条指令的作用是⑤

              MOV A,R3   ;第2次执行时A=⑥

              MOV DPTR,#4401H   ;指向位选口

              MOVX @DPTR,A   ;位码送PA口

              DJNZ R1,$   ;

              DJNZ R1,$   ;该指令的作用是⑦

              RR A   ;位选字移位

              MOV R3,A  ;移位后的位选字送R3

              INC R0   ;在本程序中,R0最大取值为⑧

              MOV A,@R0   ;缓冲区数据送A

              DJNZ R2,DISP1   ;未扫描完,继续循环

              SJMP DISP

      TAB:  DB 3FH,06H,5BH,4FH,66H;共阴极LED字形表

              DB 6DH,7DH,07H,7FH,6FH

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

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

  2. 41. 下面程序是将片内RAM______开始的单元内10个二进制数,找出其中最大值并存于单元中。

    START:MOV R0,#40H

              MOV R7,#09H

              MOV A,@R0

      LOOP: INC   R0

              MOV 30H,@R0

              CJNE A,30H,NEXT

      NEXT: JNC   BIE1

              MOV A,30H

      BIE1: DJNZ R7,LOOP

              MOV 50H,A

              RET

  3. 42. 用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。

  4. 40. 以下是8051单片机定时/计数器的初始化程序(设单片机晶振频率是6MHz):T0作为定时,定时时间为______,T1作为计数,记满______溢出。

    ORG 0000H

      LJMP 0050H

      ORG 0050H

      MOV TMOD,#20H

      MOV TH0,#63H

      MOV TL0,#18H

      MOV TH1,#9CH

      MOV TL,#9CH

      SETB EA

      SETB TR0

      SETB TR1

      SJMP   $

  5. 39. 下列指令组要完成重复执行LOOP开始的程序20次。

        MOV A,#14H

      L00P:MOV R1,#01H

            DEC A

            JNC LOOP

      错误:______

      改正:______

  6. 38. 已知在累加器A中存放一个BCD(0~9),下面子程序实现一个查平方表。

    SQR:  INC A

              MOVC A,A+PC

              RET

      TAB:  DB 0,1,4,9,16

              DB 25,36,49,64,81

      错误:______

      改正:______

  7. 36. MCS-51指令系统中direct表示的含义是:______。

  8. 37. 如果(P0)=65H,当执行下列程序段后执行后(P0)=______。 

    CPL  P0.2 

    SETB  C 

    MOV  P0.4,C

  9. 34. 若IT1=0,当引脚______为低电平的时候,INT0的中断标志位______才能复位。

  10. 35. 片内RAM可进行位寻址的空间位地址范围是______。

  11. 33. 下列程序段执行后,(7EH)=______,(7FH)=______。

    MOV   R0,#7EH

      MOV   7EH,#0FFH

      MOV   7FH,#40H

      INC   @R0

      INC   R0

      INC   @R0

  12. 31. MCS-51的P0~P3口中,______为真正的双向口,______为准双向口。

  13. 32. 执行完下列段指令后(A)=______,(B)=______ 

    MOV   A,#08H

      MOV   B,#45H

      PUSH  A

      PUSH  B

      POP   A

      POP   B

  14. 30. MCS-51堆栈寄存器SP是______位寄存器,存放______。

  15. 29. 请编一个函数int fun(float s[ ],int n),它的功能是:求高于平均分的人数,并作为函数值返回。数组s中存放n位学生的成绩。数组s的值由主函数从键盘读入,用-1来结束输入。

  16. #include "string.h" 

        main()

        {int i,j,n;

          scanf("%d",&n);

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

          for(j=2;j<=i;j++)putchar('#');

       }

      程序运行时从键盘输入1<回车>,则运行结果是:_________

  17. main()

        {char n;

          scanf("%e",&n);

          switch(++n)

        {default:printf("error");break;

          ease'a':case'A':ease'b':case'B':printf("good");break;

          case'c':case'C':printf("pass");

          case'd':ease'D':printf("warn");}

        }

      程序运行时从键盘输入字母c<回车>,则运行结果是:_________

  18. main()

          {int n1,n2;

          scanf("%d",&n2);

          while(n2 !=0)

        {n1=n2%10;

          n2=n2/10;

          printf("%d",n1);}

        }

       程序运行时从键盘上输入1298<回车>,则输出结果是:_________

  19. main()

      {inta[]={2,4,6},*ptr=&a[0],x=8,y,z;

          for(y=0;y<3;y++)

          {z=(*(ptr+y)<y)?*(ptr+y):x;

          printf("%d\n",z);}

        }

      程序运行结果是:_________

  20. main()

      {int x;

        x=3;

        do

      {printf("%d",x--);

      }while(!x);}

      错误:______

      改正:______

  21. 23. 程序输入1,输出One,输入其他,输出Other。

    main()

      {scanf("%d",&a);

      if(a=1)printf("One\n");

      else printf("Other\n");

      }

      错误:______

      改正:______

  22. main()

      {int n;

        float s=1.0;

        for(n=10;n>1;n--)

        s=s+1/n;

      printf("%6.1f\n",s);

      }

      错误:______

      改正:______

  23. 20. 下列程序中,函数fun的功能是:根据整型形参m的值,计算如下公式的值:t=1-1/(2×2)-1/(3×3)-…-1/(m×m)请填空。

  24. #include"stdio.h"

      void fact(int k)

      {

      int i,s;

      s=s*i:

      return(s);

      }

      错误:______

      改正:______

  25. 18. 当a=5,b=4,c=2时,表达式a>b!=c的值是______。

  26. 19. 以下程序是求数组a中偶数的个数和偶数的平均值。请填空。

    main()

      {int a[10]={1,15,16,18,14,17,24,23,12};

      int k,i,j;float ave;

      for(k=i=j=0;j<10;j++)

      {if(a[j]%2!=0)continue;

        i+=______;

        k++;}

      if(k!=0){ave=i/j;printf("%d,%f\n",k,ave);}

      }

  27. 17. intx=12,n=5;则表达式x%=(n%=2)的值是______。

  28. 16. 8051单片机串行口用工作方式0时( )

    • A.数据从RDX串行输入,从TXD串行输出
    • B.数据从RDX串行输出,从TXD串行输入
    • C.数据从RDX串行输入或输出,同步信号从TXD输出
    • D.数据从TXD串行输入或输出,同步信号从RXD输出
  29. 15. 当定时器T0发出中断请求后,中断响应的条件是( )

    • A.SETB ET0
    • B.SETB EX0
    • C.MOV IE,#82H
    • D.MOV IE,#61H
  30. 13. 单片机中PUSH和POP指令常用来( )

    • A.保护断点,恢复断点
    • B.保护现场
    • C.保护现场,恢复现场
    • D.保护断点
  31. 14. MCS-51寻址方式,操作数Ri加前缀“@”的寻址方式是( )

    • A.寄存器间接寻址
    • B.寄存器寻址
    • C.基址加变址寻址
    • D.立即寻址
  32. 11. MCS-51单片机I/O的数据是(  )

    • A.同步传输
    • B.异步传输
    • C.随机传输
    • D.实时传输
  33. 12. 共阴极显示管点亮时输入电平是( )

    • A.低电平
    • B.低电压
    • C.低阻态
    • D.高电平
  34. 10. 8051/8031型单片机提供中断源的个数是( )

    • A.3
    • B.4
    • C.6
    • D.5
  35. 9. 不是伪指令关键字的是( )

    • A.ORG
    • B.START
    • C.EQU
    • D.DATA
  36. 8. 下面不是运算器完成的主要任务是( )

    • A.算术运算
    • B.位运算
    • C.数据处理
    • D.指令译码
  37. 7. 对于8031来说,EA脚总是( )

    • A.接地
    • B.接电源
    • C.悬空
    • D.不用
  38. 6. fopen打开新的二进制文件,既能读又能写的方式字符串是( )

    • A.ab+
    • B.rb+
    • C.wb+
    • D.ab
  39. 5. 下面程序段执行的结果是(  )

    char*p="abcde";

    p+=3;

    printf("%d",p);

    • A.cde
    • B.de
    • C.bcde
    • D.c
  40. 4. C语言中while和do-while循环的主要区别是( )

    • A.do-while的循环体至少无条件执行一次
    • B.while的循环控制条件比do-while的循环控制条件严格
    • C.do-while允许从外部转到循环体内
    • D.do-while循环体不能是复合语句
  41. 2. 字符'H'的ASCII码值是( )

    • A.72
    • B.73
    • C.74
    • D.75
  42. 3. 为表示关系x大于等于y且大于等于z,C语言表达式是( )

    • A.(x>=y)&&(y>=z)
    • B.(x>=y)AND(y>=z)
    • C.(x>=y)&&(x>=z)
    • D.(x>=y)&(y>=z)
  43. 1. 以下集成块型号中属于16位系列单片机型号的是( )

    • A.8051
    • B.8051AH
    • C.8094BH
    • D.8052BH