一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 43. 编程实现在P1.0引脚接一驱动放大电路驱动扬声器,利用T1产生1000Hz的音频信号从扬声器输出。设fosc=12MHz。

  2. 42. 编程序将片内30H~36H单元内容的高4位清零,保持低4位不变。

  3. 41. 下面程序是从______单元开始,连续存放10个无符号数,从中找出最大值送入______单元。

    ORG   0020H

            MOV   R0,#40H

            MOV B,@R0

            MOV R7,#09H

            INC   R0

      L00P:MOV   A,B

            CLR   C

            SUBB A,@R0

            JNC   NEXT

            MOV   B,@R0

      NEXT:INC   R0

            DJNZ R7,LOOP

            MOV 30H,B

            SJMP   $

            END

  4. 40. 下面程序是将字节地址______单元的内容逐一取出减1,然后再放回原处,如果取出的内容为______,则不要减1,仍将0放回原处。 

    MOV R7,#10H

            MOV  R1,#30H

      L00P:CJNE  @R1,#00H,NEXT

            MOV @R1,#00H

            SJMP   NEXT1

      NEXT:DEC   @R1

      NEXT1:INC   R1

            DJNZ   R7,LOOP

            SJMP   $

            END

  5. 39. 片内RAM40H开始的单元内有10字节的二进制数,下面程序是完成找出其中最大值并存于50H单元中。

    START:MOV R0,#40H   ;数据块首地址送R0

             MOV R7,#09H   ;比较次数送R7

             MOV A,R0   ;取数送A

      LOOP:INC   R0

             MOV 30H,@R0   ;取数送30H

             CJNE A,30H,NEHT ;(A)与(30H)相比

      NEXT:JNC   BIE1   ;(A)≥(30H)转BIR1

             MOV A,30H   ;(A)<(30H),大数送A

      BIE1:DJNZ R7,LOOP   ;比较次数减1,不为0,继续比较

             MOV 50H,A   ;比较结束,大数送50H

             RET

      错误:______

      改正:______

  6. 37. 某8031单片机时钟频率为12MHz,现将T0设置为定时方式1,定时时间为1毫秒,其计数器中的时间常数初值应为______。(写成四位十六进制数)

  7. 38. 下面子程序是从串行接口接受一个字符。

    START:MOV TMOD,20H   ;定时器T1工作于模式2

             MOV TH1,#0E8H   ;设置波特率为1200b/s

             MOV TL1,#0E8H

             SETB TR1   ;启动T1

             MOV SCON,#50H   ;串行接口工作于方式1,允许接收

      L1:  JNB R1,L1   ;等待接收数据,未接收到数据,继续等待

             CLR R1   ;接收到数据,清R1

             MOV A,SBUF   ;接收到数据送A

      RET

      错误:______

      改正:______

  8. 36. 如要选择第2组的工作寄存器交换数据,可先执行指令______。

    PSW(地址为DOH)的格为

  9. 35. 8031单片机内部数据RAM中的位寻址区的地址范围是______。

  10. 34. MUL AB的执行结果是存储高8位在______中,低8位在______中。

  11. 33. 8051单片机内有______个16位的定时/计数器,______有四种工作方式。

  12. 32. 执行下面一段程序后,(A)=______,(B)=______。

    MOV  SP,#60H

    MOV  A,#10H

    MOV  B,#01H

    PUSH A 

    PUSH B 

    POP  A 

    POP  B

  13. 30. 8255A属于可编程的______I/0接口芯片,8255A的A通道有______种工作方式。

  14. 31. MCS-51的存储器空间配置从功能上可分为四种类型:______、内部数据存储器、______、外部程序存储器。

  15. 29. 输入m和n(m≥n≥0)后,计算m!/n!(m-n)!表达式的值并输出。要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float。

  16. #include<stdio.h>

      main()

      {char c;

      int v0=0,v1=0,v2=0;

      do{

      switch(c=getchar())

      {case'a':

      case'e':

      case'i':

      case'o':

      case'u':v1+ =1:

      default:v0+ =1;v2+ =1;};}

      while(c!='\n');

      printf("v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);

      }

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

  17. #include<stdio.h>

      main()

      {float a,b

      scanf("%f",&a);

      if(a<10.0)b=1.0/2;

       elseif((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);

        else if(a<10.0)b=1.0/2;

          else b=10.0;

      printf("%f\n",a);

      }

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

  18. #include<stdio.h>

      int main()

      {int i,n;

        double fact;

        scanf("%d",&n);

        fact=1;

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

         fact* =i:

        printf("%.0f\n",fact);

      }

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

  19. #include<stdio.h>

      main()

      {int y;

        for(y=5;y>0;y--)

        {if(y%2==0)continue;

         printf("%d",y);

        }

      }

      程序运行结果是:______

  20. struct stud

      {char num[6];

       int s[4];

       double ave=0.0;

      }a;

      main()

      {int i;

       for(i=0;i<4;i++)scanf("%d",&a.s[i]);

       for(i=0;i<4;i++)a.ave+ =a.s[i];

       printf("%f",a.ave);

      }

      错误:______

      改正:______

  21. main()

      {char s[4]="9876",*p;

        for(p=s;p<s+2;p++)printf("%s\n",p);

      }

      错误:______

      改正:______

  22. 22. 下面程序的功能是计算1+2+3……+50的和。

    main()

      (int i,sum;

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

        sum+ =i;

        printf("%d",sum);

      }

      错误:______

      改正:______

  23. main()

      {

        int a b;

        a=2;

        b=3;

        c=a*b

        printf("c=%c",c);

      }

      错误:______

      改正:______

  24. 20. 下面程序的功能是统计在16~31岁之间的学生人数。请填空。

    main()

      {int a[30],n,age,i;

      for(i=0;i<30;i++)a[i]=0;

      printf("Enter the number of thestudents(<30)\n");

      scanf("%d",&n);

      printf("Enter the age of each student:\n");

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

      {scanf("%d",&age);_______;}

      printf("the result is\n");

      printf("age number\n");

      for(i=16;i<32;i++)

      printf("%d%d\n",i,a[i-16]);

    }

  25. 19. 以下函数用于统计一行字符串中的单词个数,单词之间用空格分隔,请填空。

    int word_num(char strl[ ])

       {inti,num=0,word=0;

      for(i=0;strl[i]l='\0';i++)

      if(______= ='')word=0;

      else if(word= =0){word=1;num++;}

      return(num);

      }

  26. 18. 表达式7+8>2&&25%5的结果是______。

  27. 17. intx=2,y;则表达式y=x+5,x+y的值是______。

  28. 15. 从地址2132H开始有一条绝对转移指令AJMP addr11,指令可能实现的转移范围是( )

    • A.2000H—27FFH
    • B.2132H—2832H
    • C.2100H—28FFH
    • D.2000H—3FFFH
  29. 16. 在堆栈操作中,当进栈数据全部弹出后,这时SP指向( )

    • A.栈底单元地址
    • B.7FH单元
    • C.栈底单元地址加1
    • D.栈底单元地址减1
  30. 13. MCS-51单片机在访问外部数据存储器时,地址指针是( )

    • A.DPTR
    • B.PC
    • C.PSW
    • D.SP
  31. 14. 下列程序段的执行结果是(  ) 

    MOV R0,#30H 

    SETB C 

    CLR A

    • ADDC A,#00H     MOV @R0,A
    • A.(30H)=00H
    • B.(30H)=01H
    • C.(00H)=00H
    • D.(00H)=01H
  32. 12. MCS-51单片机在正常运行程序时RST引脚是( )

    • A.高电平
    • B.低电平
    • C.脉冲输入
    • D.高阻态
  33. 10. 8051定时器/计数器T0工作方式0和方式1的区别是( )

    • A.前者是16位后者是13位
    • B.前者是16位后者是8位
    • C.前者是13位后者是8位
    • D.前者是13位后者是16位
  34. 11. 协调CPU与外围设备之间的数据传送的是( )

    • A.三态门
    • B.锁存器
    • C.缓冲器
    • D.寄存器
  35. 8. 带进位的循环移位指令是( )

    • A.RL
    • B.RR
    • C.CLR
    • D.RLC
  36. 9. 下面不是中断响应条件的是( )

    • A.CPU处于开中断状态
    • B.低级中断源
    • C.高级中断源
    • D.一条指令执行完毕
  37. 5. C语言函数返回值的类型是( )

    • A.return语句中表达式类型
    • B.调用该函数时主调函数的类型
    • C.定义该函数时函数的类型
    • D.调用函数时系统临时决定
  38. 7. MCS-51内部RAM字节数是( )

    • A.128
    • B.256
    • C.107
    • D.4K
  39. 6. 下列程序段执行后,a的值是(  ) 

    int *p,a=10,b=1;

    p=&a;a=*p+b;

    • A.12
    • B.13
    • C.10
    • D.11
  40. 4. 执行intx=2,y=3;后表达式x=(y==3)的值是( )

    • A.1
    • B.0
    • C.2
    • D.3
  41. 3. C语言中最基本的数据类型是( )

    • A.整型、实型、逻辑型
    • B.整型、实型、逻辑型、字符型
    • C.整型、字符型、逻辑型
    • D.整型、实型、字符型
  42. 2. 以下所列的C语言常量中,错误的是( )

    • A.0xFF
    • B.2L
    • C.1.2e0.5
    • D.'\72'
  43. 1. 以下不属于单片机集成块型号的是( )

    • A.80486DX
    • B.83C51FA
    • C.8097BH
    • D.8051