- 試題排行
- 最新熱點(diǎn)
- 最新推薦
2
3
4
5
6
7
8
9
10
2008年上半年軟考軟件設(shè)計(jì)師考試試題(上午)
2008年上半年軟考網(wǎng)絡(luò)工程師考試試題(下午)
2008年上半年軟考軟件設(shè)計(jì)師考試試題(下午)
2008年上半年軟件水平考試程序員考試試題(上
2008年下半年軟考網(wǎng)絡(luò)工程師預(yù)測(cè)試題及答案
2008年上半年軟件水平考試程序員考試試題(下
2008下半年軟件水平考試軟件設(shè)計(jì)師押題試卷
08年上半年軟考數(shù)據(jù)庫(kù)系統(tǒng)工程師考試試題(上
2008下半年軟件水平考試程序員模擬試題及答
試題 12
在 COMET 型計(jì)算機(jī)上可以使用試卷上所附的 CASL 匯編語(yǔ)言。閱讀下列程序說(shuō)明和 CASL 程序,把應(yīng)填入程序中__(n)__ 處的字句,寫(xiě)在答卷的對(duì)應(yīng)欄內(nèi)。
[程序說(shuō)明]
本程序?qū)⒁粋(gè)漢字的點(diǎn)陣逆時(shí)針旋轉(zhuǎn) 90°,并輸出旋轉(zhuǎn)后的點(diǎn)陣字形。
圖12-1是漢字“轉(zhuǎn)”字的 16×16點(diǎn)陣字形。用“0”表示空白位置,用“1”表示非空白位置,“轉(zhuǎn)”字的第一行即可表示為
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0
若把它看作一個(gè)宇的16個(gè)Bit,“轉(zhuǎn)”字的第一行就可以用十六進(jìn)制的 1040 來(lái)表示。同理“轉(zhuǎn)”字的第二行可表示為 1040,第三行可表示為1048,……在 COMET 機(jī)中,用 16 個(gè)字即可存放一個(gè)漢字的點(diǎn)陣字形!稗D(zhuǎn)”字的點(diǎn)陣數(shù)據(jù)及字形如圖 12-1 所示。
將一個(gè)漢字點(diǎn)陣逆時(shí)針旋轉(zhuǎn) 90°,就是把該漢字點(diǎn)陣的最右列作為旋轉(zhuǎn)后點(diǎn)陣的第一行,次最右列作為第二行,依次類(lèi)推,形成一個(gè)旋轉(zhuǎn)后的點(diǎn)陣字形。圖 12-2 是將“轉(zhuǎn)”字逆時(shí)針旋轉(zhuǎn) 90° 后的點(diǎn)陣數(shù)據(jù)和字形。
1040 | ...x.....x...... | 0000 | ................. | |
1040 | ...x.....x...... | 0200 | ......x......... | |
1048 | ...x.....x..X... | 1640 | ...x.xx..x...... | |
FDFC | xxxxxx.xxxxxxx.. | 32E0 | ..xx..x.xxx..... | |
2040 | ..x......x...... | 1259 | ...x..x..x.xx..x | |
2844 | ..x.x....x...x.. | 1246 | ....x..x...x..xx. | |
4BFE | .x..x.xxxxxxxxx. | FE44 | xxxxxxx..x...x.. | |
7C80 | .xxxxx..x....... | 13C8 | ...x..xxxx..x... | |
0888 | ....x...x...x... | 1240 | ...x..x..x...... | |
09FC | ....x..xxxxxxx.. | 0200 | ......x......... | |
0C08 | ...xxx......x... | 1120 | ...x...x..x..... | |
E810 | xxx.x......x.... | 17FF | ...x.xxxxxxxxxxx | |
4890 | .x..x...x..x.... | F120 | xxxx...x..x..... | |
0860 | ....x....xx..... | 1D10 | ...xxx.x...x.... | |
0820 | ....x.....x..... | 1318 | ...x..xx...xx... | |
0810 | ..,,x.,....x..., | 1010 | ...x.,,,...x.... | |
圖 12-1 | 圖 12-2 |
程序中,標(biāo)號(hào)為 OLDPN 起的 16 個(gè)字中存放著“轉(zhuǎn)”字的點(diǎn)陣數(shù)據(jù),旋轉(zhuǎn)后的點(diǎn)陣數(shù)據(jù)存放在標(biāo)號(hào)為 NEWPN 起的 16 個(gè)字中。程序的前半部分,將該點(diǎn)陣數(shù)據(jù)逆時(shí)針旋轉(zhuǎn)90°;程序的后半部分,將旋轉(zhuǎn)后的點(diǎn)陣數(shù)據(jù)加以編輯。用字符“.”表示值為 0 的位,用字符“*”表示值為 1 的位。從而將新的點(diǎn)陣字形按行輸出。
[問(wèn)題]
在程序中的①~⑧處各填入一條正確的指令,以完成此程序。除非必要,標(biāo)號(hào)欄不要填寫(xiě)。
[程序]
標(biāo)號(hào) | 操作碼 | 操作數(shù) | |
START | BEGIN | ||
BEGIN | ST | GR4,SPSAVE | |
LEA | GR2,0 | ||
NEWLN | LEA | GR3,0 | |
ST | GR3,NEWPN,GR2 | ||
NEWCL | ST | GR3,WORK | |
LD | GR0,OLDPN,GR3 | ||
__①__ | |||
AND | GR0,NUM01 | ||
LEA | GR1,15 | ||
SUB | GR1,WORK | ||
SLL | GR0,0,GR1 | ||
__②__ | |||
ST | GR0,NEWPN,GR2 | ||
__③__ | |||
LEA | GRl,0,GRl | ||
JNZ | NEWCL | ||
__④__ | |||
CPA | GR2,NUMl6 | ||
JMI | NEWLN | ||
GETLN | LD | GR2,NEWPN,GR1 | |
LEA | GR3,15 | ||
SETLN | LEA | GR4,0,GR2 | |
AND | GR4,NUM01 | ||
__⑤__ | |||
ST | GR0,OUTLN,GR3 | ||
SRT * | GR2,1 | ||
__⑥__ | |||
JPZ | SETLN | ||
OUT | OUTLN,NUMl6 | ||
__ ⑦_(dá)_ | |||
LEA | GR0,-16,GR1 | ||
JNZ | GETLN | ||
__⑧__ | |||
EXIT | |||
OUTLN | DS | 16 | |
NEWPN | DS | 16 | |
NUM01 | DC | 1 | |
WORK | DS | 1 | |
NUMl6 | DC | 16 | |
CHRET | DC | '.X’ | |
OLDPN | DC | #1040 | |
DC | #1040 | ||
DC | #1048 | ||
DC | #FDFC | ||
DC | #2040 | ||
DC | #2844 | ||
DC | #4BFE | ||
DC | #7C80 | ||
DC | #0888 | ||
DC | #09FC | ||
DC | #1C08 | ||
DC | #E810 | ||
DC | #4890 | ||
DC | #0860 | ||
DC | #0820 | ||
DC | #08101 | ||
SPSAVE | DS | 1 | |
END |
*老頑童注:此指令有錯(cuò),疑為 SRL
試題13
閱讀下列程序說(shuō)明和 C 程序,將應(yīng)填入程序中__(?)__處的字句,寫(xiě)在答卷紙的對(duì)應(yīng)欄內(nèi)。
[程序說(shuō)明]
本程序?qū)⒁粋(gè)給定漢字的點(diǎn)陣逆時(shí)針旋轉(zhuǎn)90度,并輸出旋轉(zhuǎn)前后的點(diǎn)陣數(shù)據(jù)及字形。
附圖是漢字"轉(zhuǎn)"字的 16×16 點(diǎn)陣字形,用數(shù)字 '0' 表示空白位置,用數(shù)字 '1' 表示非空白位置,“轉(zhuǎn)”字的第一行機(jī)即可表示成如下的{0,1}序列:
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0
如果把它看作一個(gè)字的 16 個(gè)位,“轉(zhuǎn)”字的第一行可以用 16 進(jìn)制數(shù)的 1040 來(lái)表示.同理,"轉(zhuǎn)"字的第二行可以表示為1040 ,第三行可以表示為 1048,...等等。依次類(lèi)推,用16個(gè)雙字節(jié)整型數(shù)即可存放一個(gè)漢字點(diǎn)陣字形。"轉(zhuǎn)"字的點(diǎn)陣數(shù)據(jù)及字形如附圖的左半部分所示.將一個(gè)漢字逆時(shí)針旋轉(zhuǎn)90度,就是把該漢字點(diǎn)陣的最右列作為旋轉(zhuǎn)后點(diǎn)陣的第一行,次右列作為旋轉(zhuǎn)后點(diǎn)陣的第二行,...,來(lái)形成一個(gè)旋轉(zhuǎn)后的點(diǎn)陣字形。
附圖的右半部分就是將"轉(zhuǎn)"字旋轉(zhuǎn) 90 度后的點(diǎn)陣數(shù)據(jù)和字形。
程序中,數(shù)組 old 中存放著“轉(zhuǎn)”字的點(diǎn)陣數(shù)據(jù).函數(shù) turnleft 將該點(diǎn)陣數(shù)據(jù)逆時(shí)針旋轉(zhuǎn) 90 度,旋轉(zhuǎn)后的點(diǎn)陣數(shù)據(jù)存放在數(shù)組 new 中.函數(shù) display 將旋轉(zhuǎn)前后的點(diǎn)陣數(shù)據(jù)加以編輯,用字符 '.' 表示值為0的位,用字符 'x' 表示值為 1 的 位,從而將旋轉(zhuǎn)前后的點(diǎn)陣按行輸出其 16 進(jìn)制數(shù)據(jù)及字形,如同圖 13-3 和圖 13-2 所表示的那樣。
1040 | ...x.....x...... | 0000 | ................. | |
1040 | ...x.....x...... | 0200 | ......x......... | |
1048 | ...x.....x..X... | 1640 | ...x.xx..x...... | |
FDFC | xxxxxx.xxxxxxx.. | 32E0 | ..xx..x.xxx..... | |
2040 | ..x......x...... | 1259 | ...x..x..x.xx..x | |
2844 | ..x.x....x...x.. | 1246 | ....x..x...x..xx. | |
4BFE | .x..x.xxxxxxxxx. | FE44 | xxxxxxx..x...x.. | |
7C80 | .xxxxx..x....... | 13C8 | ...x..xxxx..x... | |
0888 | ....x...x...x... | 1240 | ...x..x..x...... | |
09FC | ....x..xxxxxxx.. | 0200 | ......x......... | |
0C08 | ...xxx......x... | 1120 | ...x...x..x..... | |
E810 | xxx.x......x.... | 17FF | ...x.xxxxxxxxxxx | |
4890 | .x..x...x..x.... | F120 | xxxx...x..x..... | |
0860 | ....x....xx..... | 1D10 | ...xxx.x...x.... | |
0820 | ....x.....x..... | 1318 | ...x..xx...xx... | |
0810 | ..,,x.,....x..., | 1010 | ...x.,,,...x.... | |
圖 13-1 | 圖 13-2 |
[程序]
#include <stdio.h>
#define EMPTY '.'
#define NONEMPTY 'X'
#define LEFT 0
#define RIGHT 1
main ()
{ static unsigned old[16]=
{ 0x1040,0x1040,0x1048,0xFDFC,0x2040,0x2844,
0x4BFE,0x7C80,0x0888,0x09FC,0x1C08,0xE810,
0x4890,0x0860,0x0820,0x0810
};
unsigned new[16];
trunleft( old,new );
display( old,new );
}
turnleft( old,new)
unsigned old[],new[];
{ int row,k;
for ( row=0;row<16;row++ )
for ( k=0, __(1)__ ;k<16;k++ )
new[row]|=(( old[k]>> __(2)__ ) &1) << __(3)__ ;
}
display( old,new )
unsigned *old,*new;
{
char out[2][17],letter[2];
int row,col;
letter[0] = EMPTY;
letter[1] = NONEMPTY;
out[LEFT][16]=out[RIGHT][16]=__(4)__;
for ( row = 0;row<16;row++,old++,new++ )
{ for ( col = 0;col<16;++col )
{ out[LEFT][col] = letter[ ( __(5)__) &1];
out[RIGHT][col] = letter[ (__(6)__) &1];
}
printf("\n %4x %s ",*old,&out[LEFT][0]);
printf(" %4x %s",*new,&out[RIGHT][0]);
}
}
C語(yǔ)言
試題3
(1)*++pa
(2)*++pa
(3)*pa
(4)return(total)
(5)n<3 || n>MAXNUM
(6)p+n
試題8
(1)*decode()
(2)(num==255)?num:hum-1
(3)CODE *
(4)p→forward
(5)p→forward
(6)p→backward
(7)*s++
試題13
(1)new[row]=0
(2)row
(3)15-k
(4)'\0'
(5)*old>>(15-col)
(6)*new7>>(15-col)
CASL
試題2
(1)SLL GR0,3
(2)ADD GR0,A
(3)LEA GR0,5,GR2
(4)LEA GR2,0
(5)LEA GR2,1,GR2
(6)SUB GRO,WORK
試題7
(1)LD GR1,HXFFFF
(2)LEA GR1,1,GR1
(3)JMI ONEONE
(4)JZE ENDPGM
(5)ST GR0,UNPACK,GR2
(6)EOR GR3,HXFFFF
(7)ST GRO,UNPACK,GR2
(8)JPZ LOOP2
試題12
(1)SRL GR0,0,GR2
(2)OR GR0,NEWPN,GR2
(3)LEA GR3,1,GR3
(4)LEA GR2,1,GR2
(5)LD GR0,CHRET,GR4
(6)LEA GR3,-1,GR3
(7)LEA GR1,1,GR1
(8)LD GR4,SPSAVE
- 推薦給朋友
- 收藏此頁(yè)
·2008年下半年軟考信息系統(tǒng)項(xiàng)目管理師試題(下午II) (2008-12-21 22:39:30)
·2008年下半年計(jì)算機(jī)軟考網(wǎng)絡(luò)工程師試題(下午) (2008-12-21 22:26:13)
·2008下半年軟考系統(tǒng)分析師考試試題(下午)II (2008-12-21 22:20:49)
·2008年下半年計(jì)算機(jī)軟考程序員試題(下午) (2008-12-21 22:18:18)
·2008年下半年計(jì)算機(jī)軟考程序員試題(上午) (2008-12-21 22:11:38)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。