一起答

2012年微型计算机原理与接口技术自考题模拟(2)

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

    MOV ① ,#7FFFH

    MOV ② ,#00H

    UP: MOVX ③ ,A

    INC A

    JNZ ④

    MOV A, ⑤

    DOWN: MOVX ⑥ ,A

    DEC ⑦

    JNZ ⑧

    SJMP UP

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

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

  2. 编程实现数据块传送,将片内RAM从30H开始的连续32个单元的内容传递给片内RAM从60H开始的连续32个单元。

  3. 下面程序将片内RAM30H单元开始的______字节数据传送到片外RAM______开始的单元中去。

    START: MOV RO,#30H

    MOV R7,#0FH

    MOV DPTR,#3000H

    LOOP: MOV A,@R0

    MOVX @DPTR,A

    INC R0

    INC DPTR

    DJNZ R7,LOOP

    RET

  4. 下面程序是将片内RAM______开始的单元中有______字节的二进制数求它们之和(和<256)。

    ADDIO: MOV R0,30H

    MOV R7,#0AH

    MOV A,@RO

    LOOP: INC R0

    ADD A,@R0

    DJNZ R7,LOOP

    MOV 30H,A

    RET

  5. 下面程序将片内40H-46H单元内容的高位清零,保持低位不变。

    ORG 1000H

    MOV R7,#07H

    MOV R0,40H

    L00P: MOV A,@R0

    ANL A,@0FH

    MOV @R0,A

    INC R0

    DJNZ R7,LOOP

    SJMP $

    END

    错误:______

    改正:______

  6. 已知:(R0)=4BH,(A)=84H,片内RAM(4BH)=7FH,(40)=20H,执行程序后,(R0)=35H,(A)=7FH,(4BH)=20H,(40H)=7FH

    MOV A,@R0

    MOV @R0,40H

    MOV 40H,ACC

    MOV R0,#35H

    错误:______

    改正:______

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

    CPL P0.2

    SETB C

    MOV P0.4,C

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

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

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

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

    MOV R0,#7EH

    MOV 7EH,#0FFH

    MOV 7FH,#40H

    INC @R0

    INC R0

    INC @R0

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

    MOV A,#08H

    MOV B,#45H

    PUSH A

    PUSH B

    POP A

    POP B

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

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

  15. #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);

    }

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

  17. #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<回车>,则程序运行结果是:______

  18. #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<回车>,则程序的输出结果是:______

  19. #include<stdio.h>

    main()

    {int y;

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

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

    printf("%d",y);

    }

    }

    程序运行结果是:______

  20. int ff(int n)

    {

    static int f=1;

    f=f*n:

    return f;

    }

    main()

    {int i;

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

    printf("%d\n",ff(i));

    }

    错误:______

    改正:______

  21. 下面程序的输入数据的形式是Input number:4.5 2<回车>

    main()

    {int a;float f;

    printf("\nInput number:");

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

    printf("\nf=%f,a=%d\n”,f,a);

    }

    错误:______

    改正:______

  22. main()

    {int s,i;

    for(s=0,i=1;i<3;i++,s+ =i)

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

    }

    错误:______

    改正:______

  23. main()

    {

    int x=1;y;

    y=x++:

    printf("y=%d",y);

    int z;

    z=++x:

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

    错误:______

    改正:______

  24. 鸡兔共有30只,脚共有90个,下面程序是计算鸡兔各有多少只。请填空。

    main()

    {int x,y;

    for(x=1:x<=29:x++)

    {y=30-x;

    if(______)printf("%d,%d\n",x,y);}

    }

  25. 若a=5,b=2,c=1,则表达式a-b<c||b==c的值是______。

  26. 输入两个整数,n1,n2(要求n1<n2),统计两整数范围内的素数的个数。请填空。

    #include"math.h"

    #include"stdio.h"

    int prime(int x)

    {int k;

    for(k=2;k<=sqrt(x);k++)

    if(x%k==0)return(0);

    return(1)}

    main()

    {int a,b,j,n=0;

    printf("\n请输入两个数:");

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

    if(a>b){______}

    for(j=a;j<=b,j++)

    if(prime(j))n++;

    printf("a=%4d,b=%4d,n=%4d\n"a,b,n);}

  27. 共阴极LED数码管显示字符”2”的段码是(   )

    • A.02H
    • B.FEH
    • C.5BH
    • D.A4H
  28. 若int s=6;则表达式s%2+(s+1)%2的值是______。

  29. 在扩展系统中,能够提供地址信号的高8位的端口是(   )

    • A.P0口
    • B.P1口
    • C.P2口
    • D.P3口
  30. 在堆栈中压入一个数据时(   )

    • A.先压栈,再令SP+1
    • B.先令SP+1,再压栈
    • C.先压栈,再令SP-1
    • D.先令SP-1,再压栈
  31. 8031的外部程序存储器常采用的芯片是(   )

    • A.2764
    • B.8255
    • C.74LS06
    • D.2114
  32. 协调CPU与外围设备之间的数据传送的是(   )

    • A.三态门
    • B.锁存器
    • C.缓冲器
    • D.寄存器
  33. MCS-51的程序计数器PC为16位计数器,因此其寻址范围是(   )

    • A.8K
    • B.16K
    • C.32K
    • D.64K
  34. 8051定时器/计数器T0工作方式0和方式1的区别是(   )

    • A.前者是16位后者是13位
    • B.前者是16位后者是8位
    • C.前者是13位后者是8位
    • D.前者是13位后者是16位
  35. 带进位的循环移位指令是(   )

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

    • A.CPU处于开中断状态
    • B.低级中断源
    • C.高级中断源
    • D.一条指令执行完毕
  37. 对以下定义的表述中,正确的是(   )

    struct node

    {int num;char name[10];}stud;

    • A.stud是一个结构体变量
    • B.stud是一个结构体类型
    • C.node是一个结构体数据
    • D.node是一个结构体变量
  38. MCS-51内部RAM字节数是(   )

    • A.128
    • B.256
    • C.107
    • D.4K
  39. 若inti,j;则for(i=j=0;i<10&&j<8;i++,j+ =3)控制的循环体执行的次数是(   )

    • A.9
    • B.8
    • C.2
    • D.3
  40. 若定义char s[10];不表示s[1]的地址的是(   )

    • A.s+1
    • B.s++
    • C.&s[0]+1
    • D.&s[1]
  41. 当x为大于1的奇数时,值为0的表达式是(   )

    • A.x%2==1
    • B.x%2==0
    • C.x%2!==0
    • D.x/2
  42. 以下集成块型号中不属于MCS-96系列单片机型号的是(   )

    • A.8095BH
    • B.83C51FB
    • C.80C198
    • D.80C196KB
  43. 用8位(bit)二进制能够表示的无符号数的范围是(   )

    • A.253
    • B.254
    • C.255
    • D.256