一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 43. 下面程序段利用D/A转换器产生三角波,请完成程序段。

         MOV   ① ,#7FFFH

              MOV   ② ,#00H

      UP:   MOVX   ③ ,A

              INC   A

              JNZ   ④  

              MOV   A, ⑤  

      DOWN: MOVX   ⑥ ,A

              DEC   ⑦  

              JNZ   ⑧  

              SJMP   UP

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

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

  2. 41. 已知单片机的晶振频率为6MHz,下面程序用单片机内部定时器T0工作在方式1下,从P1.0输出周期为______的方波脉冲信号,时间常数为______。

       ORG  3000H

      START:MOV TMOD, #01H

          MOV  TL0,#OCH

          MOV  THO, #OFEH

          SETB TR0

      LOOP: JBC TFO,DONE

          SJMP LOOP

      DONE:MOV TL0,#OCH

          MOV THO,#OFEH

          CPL P1.0

          SJMP LOOP

  3. 42. 片外RAM2000H开始的单元中有5BH的数据,编程将它们传送到片内RAM20H开始的单元中去。

  4. 40. 晶振6MHz,下面中断初始化程序是使用T1,工作方式_______,在P1.0引脚输出等宽矩形波周期为______微秒的。

      MOV TMOD,#20H

        MOV TL1,#06H

        MOV TH1,#06H

        SETB EA

        SETB ET1

        SETB YR0

        SJMP $

  5. 39. 下面程序段是将外部RAM1000H单元的内容送内部RAM20H单元。

    MOVX DPTR,#1000H

      MOVX A,@DPTR

      MOV 20H,A

      错误:______

      改正:______

  6. 38. 下面程序段是将外部RAM30H单元的内容送到R0。

    MOV R0,#30H

    MOV A,@R0 

    MOV R0,A 

    错误:______ 

    改正:______

  7. 36. 串行控制寄存器SCON的单元地址是______。

  8. 37. PCON寄存器中与串行通信有关的只有D7位(SMOD),该位为波特率倍增位。当SMOD=______时,串行口波特率增加一倍。

  9. 35. 当定时/计数器工作方式寄存器______中的功能选择位为0时,工作于内部定时方式。

  10. 34. MCS-51系列单片机片内数据存储器工作寄存器区32个字节被均匀地分为4个组:第0组工作寄存器,地址为______;第1组工作寄存器,地址为______;第2组工作寄存器,地址为10H~17H;第3组工作寄存器,地址为18H~1FHH。

  11. 33. MCS-51系列单片机内设有______个可编程的______位定时器/计数器。

  12. 31. MCS-51系列单片机P0和P1口,当既作输入口又作______时,在输出转输入时应先给端口写入______然后再读取。

  13. 32. 数码管要显示字形“5”,则______、c、d、f、g段亮,______、e段灭。

  14. 30. MCS-51系列单片机有40个引脚其中:______为时钟引脚、______为复位引脚。

  15. 29. 编程序计算s=1!+2!+3!+4!的和。

  16. #include"stdio.h"

      main()

       {inti,k=0,s[10]={1,2,3,4,5,6,7,8,9,10};

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

        if(i%2)k+=s[i];

        intfor(i=i-1;i>=0;i--)

          if(i%5==0)printf("%d",s[i]);

       printf("%d\n",k);

      }

      程序运行结果为:______

  17. #include<stdio.h>

      #include<string.h>

      func(char str[])

      {int num=0;

        while(*(str+num)!='\0')num++;

        retum(num);

      }

      main()

      {char str[10],*p=str;

       getchar(p);printf("%d\n",func(p));

      }

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

  18. main()

       {inta=2,b=3,c;

      c=a+b:

      b=a++-1:

      printf("%d,%d,%d\n",a,b,c);

      b=--c+1:

      printf("%d,%d,%d\n",a,b,e);

      程序运行结果是:______

  19. 24. 输入10个整数存入一维数组,再按逆序重新存放后再输出。

    #include<stdio.h>

      main()

      {int i,j,a[10],k;

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

      for(i=0,j=9;i<=4;i++,j--)

      {k=a[i];a[i]=a[j];a[j]=k;}

      for(i=0;i<=9;i++)printf("%d",a);

      }

      错误:______

      改正:______

  20. main()

      {intp[8]={11,12,13,14,15,16,17,18},i=0,k=0;

        while(i<8)

        {if(p[i]%2)k+=p[i];

          i++;}

        printf("%d\n",k);

      程序运行结果是:______

  21. 23. 以下程序计算1×2×3×……×10的和。

    #include"stdio.h"

      main()

      {int i,s=1;

      do

      {s=s+i;i++;

      }while(i<=10)

      printf("%d\n",s);

      }

      错误:______

      改正:______

  22. 22. 以下程序运行时从键盘输入字符串ABCDE按回车键结束输入,使输入字符串中的A和B转换为字符#输出,其他字符输出为*。

    #include"stdio.h"

      main()

      {char c:

        while((c=getchar())!='\0')

      {switch(c)

        {case'A':

         case'B':putchar('#');break;

         default:putchar('*');}

        }

      }

      错误:______

      改正:______

  23. #include<stdio.h>

      #include<conio.h>

      main()

      {

       int i,j;

       int sum,k=0;

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

      {

       printf("input a number:");

       scanf("%d",k);

       sum+=k:

      }

      printf("the sum is%d",sum);

      }

      错误:______

      改正:______

  24. 20. 以下程序的功能是对10个整数从小到大排序。请填空。

    #include<stdio.h>

      sort(int arr[],int n);

      main()

      {int a[10],*p,i;

        printf("input 10 numbers:");

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

          scanf("%d",&a[i]);

        printf("\nthe original array is:");

        for(p=a;P<a+10;p++)

          printf("%d",*p);

        sort(a,10);

        printf("\nthe present array is:");

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

          printf("%d",*p);

      }

      sort(int arr[],int n)

      {int*p1,*p2,temp;

        for(p1=arr;p1<arr+(n-1);p1++)

        for(p2=p1+1;p2<arr+n;p2++)

          if(______)

          {temp=*p1;*p1=*p2;*p2=temp;}

      }

  25. 18. 若a=1,b=4,c=3,则表达式!(a<b)||!c&&1的值是______。

  26. 19. 以下程序的功能是计算字符串的长度。请填空。

    #include<stdio.h>

      main()

      {char str[100],*sp=str;

        int nlen=0;

        scanf("%s",str);

        for(;*sp!='\0';sp++)______;

        printf("%d",nlen);

      }

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

  28. 16. 8051单片机系统扩展时使用的锁存器用于锁存( )

    • A.高8位地址
    • B.低8位地址
    • C.8位数据
    • D.ALE信号
  29. 13. JZ rel指令中,操作数rel的寻址方式是( )

    • A.立即寻址
    • B.直接寻址
    • C.位寻址方式
    • D.相对寻址方式
  30. 15. 下列对SCON的相关位描述不正确的是( )

    • A.当REN=1时,禁止串行口接收数据
    • B.在方式0时,SM2必须为0
    • C.RI位由软件清零
    • D.IT1=1,表示帧发送结束
  31. 14. 通过串行口发送或接收数据时,在程序中应使用( )

    • A.MOV指令
    • B.MOVX指令
    • C.MOVC指令
    • D.SWAP指令
  32. 12. ANL20H,#30H指令中,源操作数的寻址方式是( )

    • A.立即寻址
    • B.直接寻址
    • C.位寻址
    • D.相对寻址
  33. 11. 用户可以直接使用的8031单片机I/O接口是( )

    • A.P0
    • B.P2
    • C.P1
    • D.P3
  34. 9. 下面不属于中断处理过程的是( )

    • A.保护现场号恢复现场
    • B.开中断与关中断
    • C.中断向量
    • D.中断服务与中断返回
  35. 10. MCS-51单片机的定时器/计数器工作方式1是( )

    • A.16位计数器结构
    • B.8位计数器结构
    • C.13位计数器结构
    • D.两个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. 6. 对以下定义正确的表述是(  ) 

    union node {

    int num;

    char name[10];

    }stud;

    • A.stud是一个联合体类型
    • B.stud是一个联合体变量
    • C.node是一个联合体数据
    • D.node是一个联合体变量
  39. 4. 不能把字符串Hello!赋给数组b的语句是( )

    • A.char b[10];b=”Hell0 !";
    • B.char b[10]={'H','e','l','l','o','!'};
    • C.char b[10];strcpy(b,"Hello !");
    • D.char b[10]="Hello !";
  40. 5. 若有定义int a[10],*p=a;则p+5表示的是( )

    • A.a[5]的值
    • B.a[6]的值
    • C.a[5]的地址
    • D.a[6]的地址
  41. 1. 以下集成块型号中不属于16位系列单片机型号的是( )

    • A.8095BH
    • B.8096BH
    • C.83C452
    • D.9097BH
  42. 2. 用16位(bit)二进制能够表示的无符号数的范围是( )

    • A.65536
    • B.65535
    • C.65537
    • D.65534
  43. 3. 以下说法中正确的是( )

    • A.C语言程序总是从第一个定义的函数开始执行
    • B.要调用的函数必须在main()函数中定义
    • C.C语言程序总是从main()函数开始执行
    • D.main()函数必须放在程序的开始部分