2
3
4
5
6
7
8
9
10
[程序]
#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
轉(zhuǎn)帖于:軟件水平考試_考試吧- 推薦給朋友
- 收藏此頁
·2008年下半年軟考信息系統(tǒng)項目管理師試題(下午II) (2008-12-21 22:39:30)
·2008年下半年計算機(jī)軟考網(wǎng)絡(luò)工程師試題(下午) (2008-12-21 22:26:13)
·2008下半年軟考系統(tǒng)分析師考試試題(下午)II (2008-12-21 22:20:49)
·2008年下半年計算機(jī)軟考程序員試題(下午) (2008-12-21 22:18:18)
·2008年下半年計算機(jī)軟考程序員試題(上午) (2008-12-21 22:11:38)
如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。