查看全部128種考試
軟件水平考試
 考試動態(tài) 報考指南 歷年真題 模擬試題 復(fù)習(xí)資料 心得技巧 專業(yè)英語 技術(shù)文章 軟考論壇 考試用書
 程序員 軟件設(shè)計(jì)師 網(wǎng)絡(luò)管理員 網(wǎng)絡(luò)工程師 系統(tǒng)分析師 數(shù)據(jù)庫系統(tǒng)工程師
1
2
3
4
5
6
7
8
9
10
xihuyu2000  
【字體: 1991年程序員下午試卷及答案
1991年程序員下午試卷及答案
spks.exam8.com 來源:考試吧(Exam8.com) 更新:2005-4-10 8:40:00 軟件水平考試 考試論壇

試題 2

在 COMET 型計(jì)算機(jī)上可以使用試卷上所附的 CASL 匯編語言。閱讀下列程序說明和 CASL 程序,把應(yīng)填入程序中__(n)__ 處的字句,寫在答卷的對應(yīng)欄內(nèi)。

[程序說明]


本程序是一個除法程序。

(1)被除數(shù)、除數(shù)均是正整數(shù),分別存放在標(biāo)號為A,B的存貯字內(nèi)。

(2)商存貯在標(biāo)號為ANS的存貯字內(nèi),對商的小數(shù)點(diǎn)后第一位進(jìn)行舍入,結(jié)果為整數(shù)。

(3)假定除法過程不會產(chǎn)生溢出。

本程序在除法中實(shí)現(xiàn)四舍五入的方法是:將被除數(shù)乘以 10,除以除數(shù),對商作適當(dāng)處理,再將處理后的結(jié)果除以 10。

[問題]

在程序中的①~⑧處各填入一條正確的指令,以完成此程序。除非必要,標(biāo)號欄不要填寫。

[程序]

標(biāo)號 操作碼 操作數(shù)
START DGN
DGN LD GR0,A
__①__
__②__
ADD GR0,A
LD GRl,B
CALL DIV
L1 __③__
LEA GRl,10
CALL DIV
ST GR2,ANS
EXIT
A DS 1
B DS 1
ANS DS 1
DIV ST GRl,WORK
__④__
DIV1 CPA GR0,WORK
JMI DIV2
__⑤__
__⑥__
JMP DIV1
DIV2 RET
WORK DS 1
END

 

試題 3

閱讀下列程序說明和 C 程序,將應(yīng)填入程序中__(n)__處的字句寫在答卷紙的對應(yīng)欄內(nèi)。

[程序說明]


已知某數(shù)的前二項(xiàng)為2和3,其后繼項(xiàng)根據(jù)當(dāng)前最后二項(xiàng)的乘積按下列規(guī)則生成

。ǎ保┤舫朔e為一位數(shù),則該乘積即為數(shù)列的后繼項(xiàng);

。ǎ玻┤舫朔e為二位數(shù),則該乘積的十位數(shù)和個位數(shù)依次作為數(shù)列的兩個后繼項(xiàng)。

 本程序輸出該數(shù)列的前n項(xiàng)以及它們的和。其中,函數(shù)sum(n,pa)返回數(shù)列的前n項(xiàng)之和,并將生成的前n項(xiàng)存放于首指針為pa的數(shù)組中。程序中規(guī)定輸入的n值必須大于2并且不超過給定的常數(shù)值MAXNUM。

例如:若輸入n值為10,則程序輸出如下內(nèi)容:

sum(10)=44

2 3 6 1 8 8 6 4 2 4

[程序]

#include <stdio.h>

#define MAXNUM 100

int sum( n,pa )

int n, *pa;

{ int count,total,temp;

*pa=2;

__(1)__ = 3;

total = 5; count = 2;

while (count++<n)

{ temp=.(pa-1)..pa;

if (temp<10)

{ total+=temp;

*(++pa)=temp;

}

else

{

__(2)__ = temp/10;

total += *pa;

if ( count<n) 

{ count++;pa++;

 

__(3)__ = temp%10;

total += *pa;

}

}

}

__(4)__;

}

main ()

{ int n,.p,.q,num[MAXNUM];

do { printf( "Input N=? (2<N<%d):",MAXNUM+1 );

scanf( "%d",&n );

} while ( __(5)__ );

printf( "\nsum(%d)=%d\n",n,sum(n,num) );

for ( p=num, q = __(6)__ ;p<q;p++) printf("%4d",*p );

printf("\n");

}

 

試題 7

在 COMET 型計(jì)算機(jī)上可以使用試卷上所附的 CASL 匯編語言,閱讀下列程序說明和 CASL 程序,把應(yīng)填入程序中__(n)__處的字句,寫在答卷的對應(yīng)欄內(nèi)。

[程序說明]


本程序用來復(fù)原被壓縮過的數(shù)據(jù)。

原始數(shù)據(jù)的壓縮規(guī)則如下:

(1)在原始數(shù)據(jù)中連續(xù)出現(xiàn) N( N≥2 ) 個相同的數(shù) X,則在壓縮數(shù)據(jù)中相繼存放 N 和 X 兩個數(shù)。

 

(2)在原始數(shù)據(jù)中,對于不屬于上述情況的數(shù)據(jù)段,即相鄰而又不相等的 M 個數(shù)據(jù),則在壓縮數(shù)據(jù)中先存放 -M,再存放這 M 個數(shù)。

(3)壓縮數(shù)據(jù)中數(shù)的存放次序與原始數(shù)據(jù)中數(shù)的出現(xiàn)次序相一致,并在壓縮數(shù)據(jù)的最后加上 0,作為結(jié)束標(biāo)記。

例: 原始數(shù)據(jù)中有以下數(shù):

-15 11 11 11 11 11 11 11 11 -2 14 9 9 9 9 9

則壓縮后的數(shù)據(jù)為

-1 -15 -8 11 -2 -2 14 5 9 0

程序中標(biāo)號為PACKED開始的存貯字中存放了上述壓縮后的數(shù)據(jù);程序執(zhí)行后,在標(biāo)號為 UNPACK 開始的 16 個存貯字中生成原始數(shù)據(jù)。

[問題]

在程序中的①~⑧處各填入一條正確的指令,以完成此程序。除非必要,標(biāo)號欄不要填寫。

[程序]

標(biāo)號 指令碼 操作數(shù)
START BEGIN
BEGIN __(1)__
LEA GR2,0
LOOP0 __(2)__
LD GR3,PACKED,GR1
LEA GR3,0,GR3
__(3)__
__(4)__
LEA GRl,1,GRl
LD GR0,PACKED,GRl
LOOP1 __(5)__
LEA GR2,1,GR2
LEA GR3,-1,GR3
JNZ LOOP1
JMP LOOP0
ONEONE __(6)__
LOOP2 LEA GRl,l,GRl
LD GR0,PACKED,GRl
__(7)__
LEA GR2,l,GR2
LEA GR3,-1,GR3
__(8)__
JMP LOOP0
ENDPGM EXIT
UNPACK DS 16
HXFFFF DC #FFFF
PACKED DC -1
DC -15
DC 8
DC 11
DC -2
DC -2
DC 14
DC 5
DC 9
DC 0
END



試題 8

閱讀下列程序說明和 C 程序,將應(yīng)填入程序中__(n)__ 處的字句,寫在答卷紙的對應(yīng)欄內(nèi)。

[程序說明]

本程序?qū)δ畴姶a文(原文)進(jìn)行加密形成密碼文.其加密算法如下:

假定原文為C123...Cn,加密后形成的密文為S123...Sn,首先讀入正整數(shù)Key

(Key>1)作為加密鑰匙,并將密文字符位置按順時針方向連成一個環(huán),如下圖所示:

    

加密時從 S1 位置起順時針計(jì)數(shù),當(dāng)數(shù)到第 Key 個字符位置時,將原文中的字符放入該密文字符位置中,同時從環(huán)中除去該字符位置;接著從環(huán)中下一個字符位置起繼續(xù)計(jì)數(shù),當(dāng)再次數(shù)到第 Key 個字符位置時,將原文中字符 C2 放入其中,并從環(huán)中除去該字符位置;依次類推,直至 n 個原文字符全部放入密文環(huán)中.由此產(chǎn)生的 S1S2...Sn 即為原文的密文。

例如,當(dāng) Key=3 時,原文: THIS IS AN DECODING SYSTEM 的密文為:

AOTGNHEDI YS D IMIETSNC SS

當(dāng)Key=4時,該原文的密文為:

SSDTYD HTEGIASISCNM E ION

本程序?qū)㈦姶a的原文存放在字符數(shù)組 old 中,加密鑰匙存放在整數(shù) Key 中.函數(shù) decode 用于將原文 old 加密并返回密文字符數(shù)組的首指針。其中函數(shù)采用一個雙向循環(huán)鏈表 CODE 來表示密文環(huán).函數(shù) strlen 用于計(jì)算一個字符串中的字符個數(shù)( 不包括字符串結(jié)尾符 '\0' )。為了簡單起見,程序中假設(shè)內(nèi)存容量足以滿足動態(tài)存貯單元分配的要求。

[程序]

#include <stdio.h>

#include <alloc.h>

#define CR 13

typedef struct node

{ char ch;

struct node *forward; /* Link to next node. */

struct node *backward;/* Link to previous node.*/

} CODE;

main()

{ char __(1)__ ,old[256];

int strlen() , key , num=0;

printf("\nPlease input the telegraph: \n")l

while ( num<255 && ( old[num++] = getch()) != CR );

old [ __(2)__ ] = '\0';

do { printf( "\nPlease input Key=?( Key>1 ):" );

scanf("%d",&key);

} while ( key<=1 );

printf( "\nThe decode of telegraph:'%s' is:\n'%s'\n",old,decode( old,key ) );

}

char *decode(old,key)

char *old; int key;

{ char *new; int length,count,i;

CODE *loop,*p;

length=strlen(old);

loop=( __(3)__ ) malloc( length.sizeof(CODE) );

for ( i = 1;i<length-1;i++ )

{ loop[i].forward = &loop[i+1];

loop[i].backward = &loop[i-1];

}

loop[0].backward = &loop[length-1];

loop[0].forward = &loop[1];

loop[length-1].forward = loop;

loop[length-1].backward = &loop[length-2];

for ( p = loop,i = 0;i<length;i++ )

{ for ( count = 1;count<key;count++ )

p= __(4)__ ;

p->ch=.old++;

p->backward->forward = __(5)__ ;

p->forward->backward = __(6)__ ;

p=p->forward;

}

new = ( char *)malloc( ( length+1 ) *sizeof(char) );

for ( i=0;i<length;i++ ) new[i] =l oop[i] *ch;

new[length]='\0';

return (new);

}

int strlen(s)

char *s;

{ int len = 0;

while ( __(7)__ != '\0' ) len++;

return( len );

}

 

 

[1] [2] 下一頁

轉(zhuǎn)帖于:軟件水平考試_考試吧
文章搜索  
看了本文的網(wǎng)友還看了:
網(wǎng)友評論
昵 稱: *  評 分: 1分 2分 3分 4分 5分
標(biāo)題:   匿名發(fā)表    (共有條評論)查看全部評論>>
版權(quán)聲明 -------------------------------------------------------------------------------------
  如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  付款方式  站內(nèi)導(dǎo)航  客服中心  友情鏈接  考試論壇  網(wǎng)站地圖
Copyright © 2004-2008 考試吧軟件水平考試網(wǎng) All Rights Reserved    
中國科學(xué)院研究生院權(quán)威支持(北京) 電 話:010-62168566 傳 真:010-62192699
百度大聯(lián)盟黃金認(rèn)證  十佳網(wǎng)絡(luò)教育機(jī)構(gòu)  經(jīng)營許可證號:京ICP060677