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

 

[程序]

#include "stdio.h"

#include "malloc.h"

typedef struct poly {

int coef;

int index;

struct poly *next;

} POLYNOME;

main( )

{

POLYNOME *p,*q,*blist();

p=blist(p);

q=blist(q);

poly add(p,q);

}

POLYNOME *blist(ptr)

POLYNOME *ptr;

{

int i,j,k,hnished;

POLYNOME *ptr1,*r;

finished=0;

ptr=(POLYNOME*)calloc( 1,sizeof(ptr) );

ptr→coef=0;

ptr→index=-1;

ptr→next=ptr;

r=ptr;

while ( finished == 0 ){

ptr1=( POLYNOME* )calloc( 1,sizeof(ptrl) );

scanf( "%d%d%d%d",&ptr1→coef,&i,&j,&k);

ptr1→index=i*l00+j*10+k;

__①__;

r=ptr1;

printf( "finished;?\n" );

scanf( "%d",&finished );

}

__②__;

return(ptr);

}

polyadd(p,q)

POLYNOME *p,*q;

{

POLYNOME *q1,*q2;

p=p→next3

q1=q;

q=q→next;

while ( p→index>=0 ){

while ( p→index<q→index ) {

__③__;

__④__;

}

if (p→index==q→index) {

q→coef += p→coef;

if ( q→cocf==0){

q2=q;

__⑤__;

q=q→next;

free((char*)q2);

p=p→next:

}

else{ 

q1=q;

p=p→next;

q=q→next;

}

}

else{

q2=( POlYNOME 9)calloc(1,sizeof(q2));

q2→coef=p→coef;

q2→index=p→index,

__⑥__;

__⑦_(dá)_;

q1=q2;

p=p→next;

}

}

} 

 

試題 12

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

[程序說明]


給定一個數(shù)組 X=( X0,X1,…,XN-1 ) N≤100 其中的元素是滿足下列條件的正整數(shù):Xi<Xi+1 ( i=0,1,…·,N一2 )

本程序用來求得滿足 Xi + Xj = 100 的所有元素對 Xi 和 Xj

程序中的輸入子程序 INPUT 把 Xi 輸入到標(biāo)號為 X 開始的存貯字中,輸入數(shù)據(jù)的個數(shù)存放在標(biāo)號為 N 的存貯字中;輸出子程序 OUTPUT 輸出滿足條件的元素對,這兩個子程序均不改變 GR0~GR3的內(nèi)容。

[問題1]

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

[問題2]

若給定的數(shù)組 X 中允許兩個相鄰的元素( 不允許三個相鄰元素 )具有相同的值,則程序求得的元素對可能會遺漏,現(xiàn)將標(biāo)號為L41,L42 的兩條指令換成下列指令組后,可避免遺漏情況,請在指令組中的 ⑥~⑨ 處,各填上一條正確指令,完成此指令組。

[指令組]

標(biāo)號 操作碼 操作數(shù)
L41 LD CR0,X,GR3
LEA GR3,1,GR3
__⑥__
__⑦_(dá)_
JZE L35
CPA GR0,X,GR3
JNZ L70
CAll OUTPUT
L42 LD GR0,X,GR2
__⑧__
__⑨__
JNZ L30
LEA GR3,-1,GR3
CALL OUTPUT


[程序]

標(biāo)號 指令碼 操作數(shù)
START L10
L10 CALL INPUT
LD GR2,N
LEA GR3,0
__①__
L20 LD GR0,X,GR3
ADD GR0,X,GR2
CPA GR0,C
__②__
JMI __③__
L28 LEA GR2,-l,GR2
L30 ST GR2,J
CPA GR3,J
JMI L20
L35 EXIT
L40 CALL OUTPUT
L41 __④__
L42 JMP L28
L50 __⑤__
JMP L30
X DS 100
N DS 1
J DS 1
C DC 100
INPUT (略)
OUTPUT (略)
END

 

試題13

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

[程序說明]


某服務(wù)公司征詢顧客意見,從 n(≤40) 位優(yōu)秀服務(wù)員中,評選十位服務(wù)明星:

(1)服務(wù)員按 1,2,… 順序連續(xù)編號,每個編號用2個字符表示,即0l,02,…。

(2)所收到的選票按以下格式存于文件 source 中,一行字符串對應(yīng)一張選票,其中姓名十個字符,地址 30 個字符,十個服務(wù)員編號 20 個字符。

(3)對應(yīng)名次的服務(wù)員編號可以有空缺,但必須用 00 表示。

(4)若編號超出規(guī)定范圍,或編號重復(fù)出現(xiàn),作廢票處理。

(5)按選票中所列最佳服務(wù)員明星順序給所列服務(wù)員按以下標(biāo)準(zhǔn)評分:

15 12 9 7 6 5 4 3 2 1

(6)按各位服務(wù)員得分?jǐn)?shù)由高到低順序排隊,列出前十名最佳服務(wù)明星排行表:

名次 服務(wù)員編號 合計得分 合計得票數(shù)

若得分相同,則得票數(shù)多的在前;若得分和得票數(shù)都相同,則編號小的在前。

本程序中所用到的函數(shù) fopen,fclose,fgets 都是 I/O 程序庫中的函數(shù)。

[程序]

#include <stdio.h>

#define n 40

long int tn[n],td[n],score[n+1][10],order[n];

char s[80];

int mark[]={15,12,9,7,6,5,4,3,2,1};

FILE *fp,*fopen();

main()

{ int c,g,k,i,j,b[10];

long int e,d,t,n,dd;

char * p;

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

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

score[i][j]=0;

fp=fopen( "source","r" );/* 以讀方式打開文件source */

p=fgets( s,80,fp );/* 讀fp所指文件的下一行字符串于s */

while (*p){

g=l;k=0;p+=40;

while ( k<10 ) {

c=( (*p++)-'0')*10 + ((*p++)-'0' );

b[k++]=c;

if (c<=n){

if (c)

{ i=0;

while ( __①__ );

if ( __②__ ) { g=0;break;}

}

else { g=0;break ;}

}

if (g)

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

if (b[i])

__③__;

p=fgets( s, 80,fp );

}

fclose(fp);/* 關(guān)閉 fp 所指文件 */

for ( i=1;i<n;i++ ){

for ( t=0,d=0,j=0;j<10;j++ ){

t += ( e=score[i][j] );

d += e * mark[j];

}

tn[i-1]=t;td[i-1]=d;order[i—1]=i;

}

for ( i=0;i<n-1;i++){

k=i;

for ( j=i+1;j<n;j++ )

if ( (t=td[order[j]-1]) > (d=td[order[k]-1]) )

k=j(luò);

else

if (t==d){

n= __④__;dd= __⑤__ ;

for ( c=0;c<lO;c++ )

if ( ( e=__⑥__)>0 ){

k=j(luò);break;}

else

if (e<0) break;

}

if ( k != i ) {

t=order[k];order[k]=order[i];order[i]=t;

}

}

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

printf( "%2d%2d%d%d\n",

i+1,order[i],td[order[i]-1],tn[order[i]-1) );

}

}

 

                                  答案


C語言

試題3

(1)each,&max,&min

(2)*j=num%10

(3)j++,K++

(4)*min*10+*i

(5)max*10+*i

試題8

(1)
r→next=ptr1

(2)r→next=ptr 或 ptr1→next=ptr

(3)q1=q

(4)q=q→next

(5)q1→next=q→next

(6)q2→next=q

(7)q1→next=q2

其中(6)(7)的解答可以互換。

試題13 

(1)c!=b[i++]

(2)i<k

(3)score[b[i]][i]++

(4)order[j]

(5)order[k]
(6)score[tt][c]-score[dd][c]

    CASL

    試題2

    (1)LEA GR2,10

    (2)LEA GR1,1,GR1

    (3)ADD GR0,0,GR1

    (4)JMP NEXT

    (5)ADD GR0,F(xiàn)OUR

    (6)POP GR3

    (7)POP GR2

    (8)POP GR1

    試題7

    (1)LEA GR1,SOUT

    (2)LEA GR0,-4,GR1

    (3)LEA GR2,1,GR2

    (4)LEA GR3,-65,GR3

    (5)CPA GR3,TABLE 或 LEA GRO,-48,GR3

    (6)ADD GR0,TWO

    試題12

    (1)LEA GR2,-1,GR2

    (2)JNZ L40

    (3)L50

    (4)LEA GR3,1,GR3

    (5)LEA GR3,1,GR3

    (6)ST GR3,J

    (7)CPA GR2,J

    (8)LEA GR2,-1,GR2

    (9)CPA GR0,X,GR2

    上一頁  [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