c语言用中断方式发送字符串波特率2400,2008年4月全国自考(微型计算机原理与接口技术)真题试卷...

一、1.单项选择题

0. 以下集成块型号中不属于单片机型号的是(  )

A.8051AH

B.83C52JA

C.8096BH

D.80486DX

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

A.-3276~32767

B.-65535

C.-32768~32768

D.-32767~32767

2. 算式

602de3b9d2e10513d3759243e0093b00.png的C语言表达式是(  )

A.1/2/x+y

B.1/(2/x+y)

C.1/(2/x)+y

D.1/2/(x+y)

3. 执行以下循环语句后,正确的结果是(  )  i=0:  while(i++<5);

A.i=0

B.i=4

C.i=5

D.i=6

4. 执行以下循环语句后,正确的结果是(  )  for(s=0,i=0;i<5;i=i+2)s=s+i;

A.s=0

B.s=2

C.s=6

D.s=12

5. 关闭文件语句fclose(fp);中的标识符fp的类型是(  )

A.File*

B.FILE*

C.file

D.File

6. CPU每取1字节的指令操作码后,有一个寄存器的内容自动加1,这寄存器就是(  )

A.ACC

B.SP

C.PSW

D.PC

7. 51系列单片机内部数据存储器中的位寻址区(布尔处理区)的地址范围为(  )

A.20H~2FH

B.00H~0FH

C.30H~37H

D.10H~1FH

8. 8051系列单片机内部有很强的中断功能,它共有中断源(  )

A.3个

B.4个

C.5个

D.6个

9. 要进行出栈操作,其步骤正确的是(  )

A.先从SP指示的栈顶单元读出数据,然后SP内容减1

B.先从SP指示的栈顶单元读出数据,然后SP内容加1

C.先将SP内容加1,然后从其指示的单元读出数据

D.先将SP内容减1,然后从其指示的单元读出数据

10. 8751单片机内有4KB EPROM,如果从内部EPROM取指令必需将1个引脚作适当连接,即(  )

db91acdef3627cffb8189281974570ce.png

11. 程序存储器数据传送,采用的助记符是(  )

A.MOV

B.MOVX

C.MOVC

D.PUSH

12. 已知累加器(A)=87H,进位标志(CY)=0,执行RRC A指令后,(A)和(CY)的内容分别为(  )

A.0EH,1

B.0FH,0

C.C3H,0

D.43H,1

13. 8031单片外部中断1的中断服务程序入口地址是(  )

A.0000H

B.0003H

C.000BH

D.0013H

14. RS232串行口如传送一个二进制位所需的时间为0.208mS,则波特率为(  )

A.9600

B.4800

C.2400

D.1200

15. 8031单片机扩展外部存储器时,P0口用作(  )

A.数据总线

B.I/0口

C.地址总线

D.兼作数据和地址总线

二、2.填空题

0. 表达式5/3的值是______。

1. 已知x=5,y=6,表达式x>2‖y<5的值是______。

2. 以下程序是求100以内能被5和被7同时整除的所有数之和。

main()

{

int i=0,s=0;

while(i<100)

if(______)

s=s+i++;

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

}

3. 程序的功能是,在10个评委中,去除一个最高分和一个最低分,然后求平均分。

main()

{

int a[10],i,max,min;

float s=0:

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

{

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

s=s+a[i];

}

max=min=a[0];

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

{

if(max  max=a[i];

if(min>a[i])

min=a[i];

}

s=______;

s=s/8;

printf("平均分是:%f",s);

}

三、3.改错题

0. main()

{

int x,y;

scanf("%d",x);

y=x*x;

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

}

错误:______

改正:______

1. 以下程序功能是输入一个学生的成绩,如果输入的成绩不在0~100之间,则显示出错信息。

main()

{

int s;

scanf("%d",&s);

if(100>=s>=0)

printf("输入的成绩是%d ",s);

else

printf("输入成绩出错");

}

错误:______

改正:______

2. #include"stdio.h"

main()

{char a[10],*pa;

scanf("%s",pa);

printf("%s ",pa);

}

错误:______

改正:______

3. #include"stdio.h"

struct date

{int year=2000;

int month;

int day;

};

main()

{struct date d;

d.month=1;

d.day=31;

printf("%d-%d-%d",d.year,d.month,d.day);

}

错误:______

改正:______

四、4.程序阅读题

0. 写出程序运行结果

main()

{

int i,j;

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

{

for(j=5;j-i>0;j--)

printf("*");

printf(" ");

}

}

运行结果为: ______

1. #include"string.h"

#include”stdio.h”

main()

{

char str1[50],str2[50],str3[50];

gets(str1);

gets(str2);

if(strcmp(str1,str2)<0)

{

strcpy(str3,str1);

strcpy(str1,str2);

strcpy(str2,str3);

}

puts(str1);

puts(str2);

}

运行程序时输入的字符串为:"ABCD"和"abcd"

程序运行结果为:______

2. #include

int f=1;

int fac(int n)

{f=f*n;

return f;

}

main()

{int i;

for(i=1;i<=4,i++)

{printf("%d!=%d ",i,fac(i));}

}

程序运行结果为: ______

3. #include"stdio.h"

char*fun(s,c)

char*s,c;

{char*p=NULL;

while(*s!="

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值