x=a[y];
}
x=;y=。
16.unsignedcharx,y,a[5]={23,67,12,89,43};
x=12;
for(y=0;y<5;y++)
{
if(a[y]==x)
break;
}
x=;y=。
17.unsignedcharx,y,a[5]={23,67,12,89,43};
x=15;
for(y=0;y<5;y++)
{
if(a[y]==x)
break;
}
x=;y=。
18.unsignedcharx=15,y=0,a[5]={23,67,12,89,43};
while(a[y]!
=x)y++;
x=;y=。
19.unsignedcharx=15,y=0,a[5]={15,15,12,89,43};
while(a[y]==x)y++;
x=;y=。
20.voiddelay()
{inti,j,k;
for(i=1;i<8;i++)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
main()
{inti,temp;
while
(1)
{P2=0xff;
delay();
P2=0xfe;
temp=0xfe;
for(i=0;i<8;i++)
{P2=temp<
delay();
}
}
}
i=6时,P2=。
并说明其程序功能。
21.#include
charb[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
voiddelay()
{inti,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--);
}
voidmain()
{inta;
a=0;P2=0X3F;P3=0X3F;
while
(1)
{if(P1!
=0xff)
delay();
if(P1!
=0xff)
{
switch(P1)
{case0xfe:
a++;P2=b[a/10];P3=b[a%10];break;
case0xfd:
a--;P2=b[a/10];P3=b[a%10];break;
case0xfb:
a=0;P2=b[a/10];P3=b[a%10];break;
}
if(a==99)
a=0;
while(P1!
=0xff);
}}}
分别说明P1为0xfe时功能,P1为0xfd时功能
,P1为0xfb时功能。
22.#include
inta[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
b[2]={0x01,0x02};
intc=60,i,x[2],j,k;
main()
{TMOD=0x10;
TH1=0X9E;
TL1=0X58;
EA=1;
ET1=1;
TR1=1;
while
(1)
{
x[0]=c/10;
x[1]=c%10;
for(i=0;i<2;i++)
{P3=b[i];
P2=a[x[i]];
for(k=120;k>0;k--);
}
}}
voidds()interrupt3
{TH1=0X9E;
TL1=0X58;
j++;
if(j==40)
{j=0;
c--;
}
}
定时时间为,中断源编号为,并简要说明其功能
。
23.#include
main()
{
TMOD=0x01;
TH0=0XB1;
TL0=0XE0;
EA=0;
ET0=0;
TR0=1;
while
(1)
{if(TF0==1)
{TF0=0;
TH0=;
TL0=;
P1_0=~P1_0;
}
}
}
说明其功能。
24.
#include
main()
{while
(1)
switch(P1)
{case0xfe:
P2=0x01;break;
case0xfd:
P2=0x02;break;
case0xfb:
P2=0x04;break;
case0xf7:
P2=0x08;break;
case0xef:
P2=0x10;break;
case0xdf:
P2=0x20;break;
case0xbf:
P2=0x40;break;
case0x7f:
P2=0x80;break;
default:
P2=0xff;
}}
P1=0xbf时P2=,P1=0xfe时P2=,
P1=0xbe时P2=。
第三题改错
1.本小题共有5处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在答题卡相应位置。
每空1分,错改漏改均不得分。
行号程序
1include
2voidys(void)
3{
4unsignedcharj,k;
5for(i=2;i>0;i--)
6for(j=200;j>0;j--)
7for(k=250;k>0;k--)
8}
9voidmain(void)
10{
11unsignedcharj,k;
12j=0x01
13for(k=0;k<8;k++)
14{
15P2=~j;
16ys;
17j=j<<1;
18}
19}
①错误行号修改为
②错误行号修改为
③错误行号修改为
④错误行号修改为
⑤错误行号修改为
2.本小题共有5处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在答题卡相应位置。
每空1分,错改漏改均不得分。
行号程序
1#include
2unsignedchari;
3bitD1=P1^1;
4voidzd()interrupt3
5{
6THo=(65536-50000)/256;
7TLo=(65536-50000)%256;
8i++;
9if(i==20)
10{
11i=0;
12D1=!
D1;
13}
14}
15main()
16{
17tmod=0x01;
18TH0=(65536-50000)/256;
19TL0=(65536-50000)%256;
20EA=1;
21ET0=1;
22TR0=1;
23i=0;
24while
(1);
25}
①错误行号修改为
②错误行号修改为
③错误行号修改为
④错误行号修改为
⑤错误行号修改为
3.本小题共有5处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在答题卡相应位置。
每空1分,错改漏改均不得分。
行号程序
1#include{reg51.h}
2unsignedchari;
3bitD1=P1^1;
4voidzd()interrupt2
5{
6TH0=(65536-50000)/256;
7TL0=(65536-50000)%256;
8i++
9if(i==20)
10{
11i=0;
12D1=!
D1;
13}
14}
15main()
16{
17TMOD=0x01;
18TH0=(65536-50000)/256;
19TL0=(65536-50000)%256;
20EA=1;
21ET0=1;
22TR0=1;
23i=0;
24while
(1)
25}
①错误行号修改为
②错误行号修改为
③错误行号修改为
④错误行号修改为
⑤错误行号修改为4.本小题共有5处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在答题卡相应位置。
每空1分,错改漏改均不得分。
行号程序
1#include
2voidys1s(void)
3{
4unsignedchari,j,k
5for(i=10;i>0;i--)
6for(j=200;j>0;j--)
7for(k=250;k>0;k--);
8}
9voidmain()
10{
11unsignedchara,b;
12a=0x80;
13for(b=0,b<8,b++)
14{
15p1=~a;
16ys1s()
17a=a>>1;
18}}}
①错误行号修改为
②错误行号修改为
③错误行号修改为
④错误行号修改为
⑤错误行号修改为
5.改错题:
本大题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在答题卡相应位置。
每空1分,错改漏改均不得分,共20分。
行号程序
1#include(reg51.h)
2unsignedchari;
3sbitD1=P1.1;
4voidzdinterrupt1
5{
6TH0=(65536-50000)/256;
7TL0=(65536-50000)%256;
8i++
9if(i==20)
10{
11i=0;
12D1=!
D1;
13}
14}}
15main()
16{
17Tmod=0x01;
18Th0=(65536-50000)/256;
19Tl0=(65536-50000)%256;
20EA=1;
21ET0=1;
22TR0=1
23i=0;
24while
(1)
25}
①错误行号修改为
②错误行号修改为
③错误行号修改为
④错误行号修改为
⑤错误行号修改为
⑥错误行号修改为
⑦错误行号修改为
⑧错误行号修改为
⑨错误行号修改为
⑩错误行号修改为
6.本小题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在答题卡相应位置。
每空1分,错改漏改均不得分。
行号程序
1#includ
2main
3{
4switch
5{
6cace0xfe:
P1=0xfe;break;
7case0xfd;P1=0xfd;break;
8case0xfb:
P1=0xfb;breek;
9case0xf7:
p1=0xf7;break;
10case0x7f:
P1=0x7f;break
11case0xbf:
P1=0xbf;break;
12case0xdf:
P1=0xdf:
break;
13caseoxef:
P1=0xef;break;
14}
15}
①错误行号修改为
②错误行号修改为
③错误行号修改为
④错误行号修改为
⑤错误行号修改为
⑥错误行号修改为
⑦错误行号修改为
⑧错误行号修改为
⑨错误行号修改为
⑩错误行号修改为
7.本小题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在答题卡相应位置。
每空1分,错改漏改均不得分。
行号程序
1、#include
2、unsignedcharduanma[0]
3、={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
4、unsignedcharjianma[8]
5、={0xfe;0xfd;0xfb,0xf7;0xef;0xdf;0xbf;0x7f};
6、voidyanshi20ms(void)
7、{
8、unsignedcharj,k;
9、foor(j=40;j>0;j--)
10、for(k=250:
k>0:
k--);
11、}
12、voidmain(void)
13、{
14、unsignedcharjishu;jianhao,saomiao;
15、P2=0x3f;
16、while
(1);
17、{
18、P1=0xff;
19、saomiao=P1;
20、if(saomiao!
=0xff)
21、{
22、yanshi20ms;
23、saomiao=P1;
24、if(saomiao!
=0xff)
25、{
26、for(jishu=0;jishu<8;jishu++)
27、{
28、if(saomiao==jianma[jishu]);
29、{
30、jianhao=jishu+1;
31、break
32、}
33、}
34、P2=duanma{jianhao};
35、}}}}
①错误行号修改为
②错误行号修改为
③错误行号修改为
④错误行号修改为
⑤错误行号修改为
⑥错误行号修改为
⑦错误行号修改为
⑧错误行号修改为
⑨错误行号修改为
⑩错误行号修改为
8.改错题:
本大题共有10处错误,请在不删减原程序指令条数基础上加以改正,请将错误行号和改正后的结果写在对应行后的空白处。
每空1分,错改漏改均不得分,共20分。
行号程序
1#include
2ucharled[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
3voidys(chara)
4{
5unsignedchari,j,k;
6for(i=a;i>0;i--)
7for(j=200;j>0;j--)
8for(k=250;k>0;k--)
9}
10main()
11{
12Tmod=0X20;
13TH1=0XF3;
14scon=0X50;
15pcon=0;
16TR0=1;
17while
(1)
18{
19if(P1=0xfe)SBUF=led[0];ys(20);
20if(P1==0xfd)SBF=led[1];ys(20);
21if(P1==0xfb)SBUF=led[2];ys(20);
22if(P1==0xf7)SBUF=led[3];ys(20);
23if(P1==0xef)SBUF=led[4];ys(20);
24if(p1==0xdf)SBUF=led[5];ys(20);
25if(P1==0xbf)SBUF=led[6];ys(20);
26if(P1==0x7f)SBUF=led[7];ys(20);
27}
28while(TI