c语言中用符号操作p0口,全国自考(微型计算机原理与接口技术)模拟试卷1

一、1.单项选择题

0. 以下集成块型号中,不属于MCS-51系列单片机型号的是(  )

A.8094BH

B.83C452

C.80C32

D.8051AH

1. 用8位(bit)二进制能够表示的有符号数的范围是(  )

A.-127~+128

B.-128~+127

C.-127~+127

D.-128~+128

2. 下列选项中,合法的C语言关键字是(  )

A.default

B.get

C.integer

D.VAR

3. 已知char ch="B";则以下表达式的值是(  )  ch=(ch>="A"&&ch<="Z")?(ch+32):ch;

A.A

B.a

C.b

D.Z

4. 变量的指针是(  )

A.变量的首地址

B.变量的值

C.变量的名

D.变量的一个标志

5. 打开文件语句fp=fopen("a.dat","r");中fp的类型是(  )

A.File *

B.file

C.File

D.FILE *

6. 8051与8751的区别是(  )

A.内部数据存储器的数目不同

B.内部数据存储器的类型不同

C.内部程序存储器的类型不同

D.内部的寄存器的数目不同

7. 单片机的指令地址存放在(  )

A.PSW

B.DPTR

C.SP

D.PC

8. MCS-51外部中断1固定对应的中断入口地址为(  )

A.0003H

B.000BH

C.0013H

D.001BH

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

A.P0口

B.P1口

C.P2口

D.P3口

10. 控制串行口工作方式的寄存器是(  )

A.TCON

B.PCON

C.SCON

D.TMOD

11. 执行下列3条指令后,30H单元的内容是(  )  MOV R0,#30H  MOV 40H,#0EH  MOV @R0,40H

A.40H

B.30H

C.0EH

D.FFH

12. MOV C,00H指令中源操作数的寻址方式是(  )

A.位寻址

B.直接寻址

C.立即寻址

D.寄存器寻址

13. 若设串行控制寄存器SCON=40H,则串行口的工作方式是(  )

A.方式0

B.方式1

C.方式2

D.方式3

14. 地址指针DPTR是(  )

A.4位的专用寄存器

B.8位的专用寄存器

C.16位的专用寄存器

D.32位的专用寄存器

15. 一个EPROM的地址有A0-A11引脚,它的容量是(  )

A.2KB

B.4KB

C.11KB

D.12KB

二、2.填空题

0. 若int s=6;则表达式s%2+(s+1)%2的值是______。

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

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

main()

{int x,y;

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

{y=30-x;

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

}

3. 输入两个整数,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(" 请输入两个数:");

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 "a,b,n);}

三、3.改错题

0. #include<stdio.h>

main()

{

int a;

char ch;

ch="A":

scanf("%d",a);

printf("%c+%d=%c ",ch,ch+a);

}

错误:______

改正:______

1. main()

{

int a[3]={0,1,2};

int i;

scarf("%d",&a);

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

printf("a [0]=%d ",a[0]);

}

错误:______

改正:______

2. 下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z变成B。

#include "stdio.h"

main()

{char c;

while((c=getchar())!=" ")

{if(c>="a"&&c<="z")

c=c-30;

if(c>"z"||c<="z"+2)

c=c-26;}

printf("%c",c);

}

错误:______

改正:______

3. 以下程序的输出结果是29,改正错误。

fun(int x,int y)

{x*x+y*y;}

main()

{int a;

a=fun(5,2);

printf("%d",a);

}

错误:______

改正:______

四、4.程序阅读题

0. #include<stdio.h>

#define N 6

void main()

{int a[N]={4,5,8,3,6,1};

int j,i,t;

for(i=0;i<N-1;i++)

for(j=0;j<N-1-i;j++)

if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}

for(j=0;j<N;j++)printf("%5d",a[j]);

程序运行结果是:______

1. #include<stdio.h>

main()

{int x,sum;

scanf("%d",&x);

sum=0;

while(x>0)

{if(x%2==0)sum+=x;

scanf("%d",&x);}

printf("%d ",sum);

}

程序运行时输入1 9 3 4 0<回车>,则程序运行结果是:______

2. #include"stdio.h"

main()

{int i;

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

{if(i%2)printf("*");

else continue;

printf("#");}

printf("#");}

程序运行结果是:______

3. #include<stdio.h>

main()

{int n,sum=0;

scanf("%d",&n);

do{sum=sum+(n%10)*(n%10);

n=n/10;}while(n);

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

}

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

五、5.程序设计题

0. 编写程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩并输出。

六、6.填空题-单片机原理与接口技术

0. 一个机器周期包含______个晶振周期。若品振周期的频率为12MHz,则机器周期为______。

1. 12根地址线可选择______存储单元,32KB存储单元需要______根地址线。

2. 使用8031单片机时EA引脚接______电平,因其内部无______存储器。

3. 设(SP=60H),(ACC=30H),(B=70H)。执行下列指令后,SP的内容为______,61H单元的内容为______。

PUSH ACC

PUSH B

4. 执行下列程序后,(42H)=______,(55H)=______。

MOV SP,#40H

MOV 42H,#85H

MOV 55H,#37H

PUSH 42H

PUSH 55H

POP  42H

POP  55H

5. 当DAC 0832 D/A转换器的CS接8031的P2.0时,程序中0832的地址指针DPDR寄存器应置为______。

6. 存储器的地址线有14根,数据线有8根,其存储容量为______。

7. 80C51在作并行扩展时,如果采用全地址译码,扩展芯片的地址是______。

七、7.改错题-单片机原理与接口技术

0. 下面的程序完成5+4+3+2+1=15=0FH。

MOV R3,05H

CLR A

L00P: ADD A,R3

DJNZ @R3,LOOP

SJMP $

错误:______

改正:______

1. 设单片机的fosc=6MHz,下面程序是100ms延时的子程序。

DELAY: MOV R7,#64H

A0:  MOV R6,#0FAH

DJNZ R6,$

DJNZ R7.DELAY

RET

错误:______

改正:______

八、8.程序阅读题-单片机原理与接口技术

0. 下面程序是将片外RAM 2000H开始的单元中______字节的数据,传送到片内RAM______开始的单元中去。

MAIN:MOV DPTR,#2000H

MOV R1,#20H

MOV R0,#05H

LOOP:MOVX A,@DPTR

MOV @R1,A

INC DPTR

INC  R1

DJNZ R0,LOOP

RET

1. 下面程序是对8255进行初始化,使其A口按方式0______,B口按方式0输出,C口上半部按方式0______,C口下半部按方式1输入。

九、9.程序设计题-单片机原理与接口技术

0. 将4个单字节数放片内30H~39H,它们求和结果放在片内50H,51H单元。

十、10.微型计算机原理与接口技术-应用题

0. 下面程序的功能是信号灯控制程序,利用P1口控制八个发光二极管的亮与灭(设输出低电平时,对应发光二极管被点亮)。阅读程序完成说明语句。

ORG 0000H

AJMP MAIN  ;转主程序

ORG 001 BH  ;该地址是①的地址

AJMP CONT  ;当出现②时,才会执行到该指令

ORG 0100H

MAIN: MOV TMOD,#10H  ;执行该指令的目的是③

MOV TH1,#3CH  ;置50ms定时初值

MOV TL1,#OBOH  ;此时堆栈指针SP的内容是④

SETB EA  ;执行该指令前,EA的初始值是⑤

SETB ET1  ;定时器T1开中断

SETB TR1  ;执行该指令的目的是⑥

CLR 08H  ;清1s计满标志位

MOV R3,#14H  ;置50ms循环初值

DISP: MOV R2,07H

MOV A,#0FEH

NEXT:MOV P1,A  ;第2次执行完该指令后,对应⑦灯被点亮

JNB 08H,$  ;查询1s时间到否

CLR 08H  ;清标志位

RL  A

DJNZ R2,NEXT

MOV R2,#07H

NEXT1:MOV P1,A

JNB 08H,$

CLR 08H

RR  A

DJNZ R2,NEXT1

SJMP DISP

CONT: MOV TH1,#3CH  ;程序执行到此处时,堆栈指针SP的内容是⑧

MOV TL1,#OBOH

DJNZ R3,EXIT  ;判1s定时到否

MOV R3,#14H  ;重置50ms循环初值

SETB 08H  ;标志位置1

EXIT: RETI  ;该指令的功能是将堆栈的内容送至PC

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值