1992年程序員級考試-下午試題_第1頁
1992年程序員級考試-下午試題_第2頁
1992年程序員級考試-下午試題_第3頁
1992年程序員級考試-下午試題_第4頁
1992年程序員級考試-下午試題_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第第頁1992年程序員級考試——下午試題1992年程序員級考試——下午試題

發(fā)表于:2023-05-26來源::點擊數(shù):標(biāo)簽:

1.本程序采用篩選法求質(zhì)數(shù)。程序用一個無符號整數(shù)數(shù)組代表篩,它的每一位對應(yīng)一個整數(shù)。因除2以外,其余所有的質(zhì)數(shù)都是奇數(shù),約定數(shù)組按位的順序,依次對應(yīng)整數(shù)3,5,7,9,11。程序首先將數(shù)組所能容納的上述奇數(shù)放入篩中,即將數(shù)組的全部位置成1

1.本程序采用篩選法求質(zhì)數(shù)。程序用一個無符號整數(shù)數(shù)組代表篩,它的每一位對應(yīng)一個整數(shù)。因除2以外,其

余所有的質(zhì)數(shù)都是奇數(shù),約定數(shù)組按位的順序,依次對應(yīng)整數(shù)3,5,7,9,11。程序首先將數(shù)組所能容

納的上述奇數(shù)放入篩中,即將數(shù)組的全部位置成1。從篩中找出最小的數(shù),該數(shù)即為質(zhì)數(shù),然后將該質(zhì)數(shù)的倍

數(shù)從篩中去掉,即將在數(shù)組中與它們對應(yīng)的位置成0。因偶數(shù)不在篩中,去掉的數(shù)是找到的質(zhì)數(shù)的1倍,3倍,

5倍……等整數(shù)。反復(fù)上述過程,直至篩為空。程序就能找到指定范圍內(nèi)的全部質(zhì)數(shù)。

【程序】

#includestdio.h

#defineN50

#defineLN16

main()

{

unsignedintsieve[N],primes[N];

unsignedintj,w,p,c;

for(j=0;jN;j++)

{sieve[j]=0xFFFFFFFF;

primes[j]=0x00;

}

w=0;j=0;

do{while(((0x01(j++))

p=________;

c=________;

primes[w]|=(___________);

do

{sieve[p/LN]

p+=c;

}while(pN*LN-LN);

while((sieve[w]==0x00)N-1))

{w++;

j=0;

}

}while(sieve[w]);

printf("%5d",2);

for(w=0;wN;w++)

{for(j=0;jLN;j++)

if((0x01j)

}

printf("\n");

}

2.設(shè)有兩整數(shù)向量A,B的比較矩陣M可定義為:

┏1a(j)b(i),

m(i)(j)=┃-1a(j)b(i),(i,j=0,1,┄,n-1)

┗0a(J)=b(I),

如圖所示。

┌──┬───────────┐

│B\A│894624│

├──┼───────────┤

│3│1111-11│

│7│11-1-1-1-1│

│7│11-1-1-1-1│

│5│11-11-1-1│

│3│1111-11│

│8│01-1-1-1-1│

└──┴───────────┘

(1)本程序?qū)o定的比較矩陣M,確定滿足a(k)=x條件的A,B的一個整數(shù)解。

(2)本程序的解法是:讀入M,k,x后

1.填充A,B,令b(i)=x-m(i)(k),a(i)=x(i=0,1,┄,n-1)

2.檢查a(j)與b(i)是否滿足m(i)(j)

.若滿足檢查下一個;

.否則向上調(diào)整相應(yīng)元素,并按以下約定回朔檢查:當(dāng)B的第i個元*

素調(diào)整時,則回朔到A的第一個元素;當(dāng)A的第j個元素調(diào)整時,則*

回朔到A的當(dāng)前元素和B的第一個元素.

本程序?qū)Ρ容^矩陣M的合理性未作檢查,并假定在指定的條件下一定能找到一個解。

【程序】

#includestdio.h

#defineMN20

typedefintVector[MN];

VectorMatrix[MN];

intN;

main(argc,argv)

intargc;char**argv;

{Vectora,b;

inti,j,x,k;

voidPrintVector();

voidFillVector();

FILE*fp,*fopen();

if((fp=fopen(argv[argc-1],"r"))==NULL)

{printf("Cannotopenfile%s\n",argv[argc-1]);

exit(1);

}

fscanf(fp,"%d",

for(i=0;iN;i++)

for(j=0;jN;j++)

fscanf(fp,"%d",

fscanf(fp,"%d%d",

fclose(fp);

FillVector(a,b,k,x);

printf("TheVectorAis:\n");

PrintVector(a);

printf("ThevectorBis:\n");

PrintVector(b);

}

voidPrintVector(v)

Vectorv;

{inti;

printf("[");

for(i=0;iN;i++)

printf("%5d",v);

printf("]\n");

}

voidFillVector(a,b,k,x)

Vectora,b;

intk,x;

{inti,j,temp;

for(i=0;iN;i++)

{b=x-Matrix[k];

a=x;

}

for(i=0;iN;i++)

{for(j=0;jN;j++)

{Temp=b+Matrix[j];

if(Matrix[j]==1a[j])

{_________;i=0;}

elseif(Matrix[j]==-1a[j])

{b=a[j]+1;_________;}

elseif(a[j]b)

{b=a[j];________;}

elseif(a[j]b)

{__________;__________;}

}

}

}

3.本子程序利用遞歸法判別用鏈表表示的兩個非遞歸鏈表是否相等.

程序中的非遞歸列表定義為:

(1)無元素的空列表;

(2)由元素序列組成的一個列表,其中的元素可以是一個字符,或者是滿足本定*

義的一個列表.

這種列表的一個例子是:

┌───┐┌─┬─┬─┐┌─┬─┬─┐

│├→┤0│a│├→┤1│││^│

└───┘└─┴─┴─┘└─┴┼┴─┘

┌─────┘

│┌─┬─┬─┐┌─┬─┬─┐

└→┤0│b│├→┤0│c│^│

└─┴─┴─┘└─┴─┴─┘

列表S由兩個元素組成,第一個元素是字符a(標(biāo)志為0),第二個元素是另一個列*

表(標(biāo)志為1),該元素又有兩個元素組成(標(biāo)志為0),分別為字符b和字符c.

在兩個列表中,若它們的元素個數(shù)相等,且表中元素依次相同,則兩個列表相等(*

子程序回答1),否則不相等(子程序回答0).

【程序】

typedefstructlnode

{inttag;

union

{chardata;

structlnode*dlink;

}un;

structlnode*link;

}listnode;

intequal(s,t)

listnode*s,*t;

{intx,res;

if(s==t)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論