【微職位】區(qū)塊鏈微職位第三模塊考核作業(yè)_第1頁
【微職位】區(qū)塊鏈微職位第三模塊考核作業(yè)_第2頁
【微職位】區(qū)塊鏈微職位第三模塊考核作業(yè)_第3頁
【微職位】區(qū)塊鏈微職位第三模塊考核作業(yè)_第4頁
【微職位】區(qū)塊鏈微職位第三模塊考核作業(yè)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯【微職位】區(qū)塊鏈微職位第三模塊考核作業(yè)【微職位】區(qū)塊鏈微職位第三模塊考核作業(yè)

1.【單選題】3分|關(guān)于metamask的說法正確的是

Ametamask不存儲私鑰

Bmetamask存儲私鑰,并且會在網(wǎng)絡(luò)中傳播私鑰

Cmetamask存儲私鑰,但是不會傳播私鑰,傳遞私鑰簽名的數(shù)字簽名

Dmetamask將數(shù)據(jù)用戶數(shù)據(jù)存儲在互聯(lián)網(wǎng)上

2.【多選題】5分|關(guān)于以太坊三大測試網(wǎng)絡(luò)的的說法正確的是

A網(wǎng)絡(luò)id不同

B共識算法完全不同

C交易確認(rèn)時間相同

D三大測試網(wǎng)絡(luò)互不影響

3.【多選題】5分|下面說法正確的是:pragmasolidity^0.4.23;

contractcat{

uintpublica=5;

functioneat()publicreturns(uint){

a=256;

returna;

}

function(){

a=999;

}

}

contractanimalCall{

uintpublica=4;

addressc;

constructor(address_addr){

c=_addr;

}

functiontest()publicreturns(bool){

returnc.call("cat");

}

}

部署cat合約后部署animalCall合約,并且將cat合約地址傳遞到animalCall構(gòu)造函數(shù)中。

調(diào)用test方法后,:

AanimalCall合約中a的值為4

BanimalCall合約中a的值為5

Ccat合約中a的值為256

Dcat合約中a的值為999

4.【多選題】5分|pragmasolidity^0.4.23;

contractcat{

uintpublica=5;

bytesfail;

addresspublicaddr;

functioneat()publicreturns(uint){

a=256;

addr=msg.sender;

returna;

}

function(){

a=999;

fail=msg.data;

}

functiongetfail()returns(bytes){

returnfail;

}

}

contractanimalCall{

uintpublica=4;

addressc;

constructor(address_addr){

c=_addr;

}

functiontest()publicreturns(bool){

returnc.call("abc");

}

functiontest2()publicreturns(bool){

returnc.call(bytes4(keccak256("eat()")));

}

functiontest3()publicreturns(bool){

returnc.delegatecall(bytes4(keccak256("eat()")));

}

}

部署cat合約后部署animalCall合約,并且將cat合約地址傳遞到animalCall構(gòu)造函數(shù)中。下面說法正確的是:

A調(diào)用test方法,animalCall中a的值為256

B調(diào)用test2方法,cat中a的值為256

C調(diào)用test3方法,animalCall中a的值為256

D調(diào)用test3方法,cat合約中a的值為5

5.【多選題】5分|下面關(guān)于內(nèi)聯(lián)匯編的說法正確的是

A內(nèi)聯(lián)匯編不僅可以節(jié)約gas,也可以增加solidity功能

B內(nèi)聯(lián)匯編總是可以節(jié)約gas

C判斷一個地址是否為外部賬戶還是合約賬戶,只能夠使用內(nèi)聯(lián)匯編

D內(nèi)聯(lián)匯編阻止編譯器的優(yōu)化

6.【多選題】5分|下面說法正確的是

AToken本身是一串?dāng)?shù)字

BERC20代幣是一個協(xié)議、ERC223代幣是對于其的一個增強(qiáng)

C函數(shù)體內(nèi)部的storage變量,不為其賦任何的值,默認(rèn)引用memory空間的第一個值

Dsolidity使用隨機(jī)數(shù)會存在陷阱,所以我們不能夠使用

7.【單選題】3分|metamask中的12個助記詞(mnemonic),使用的是下面的哪個協(xié)議

ABIP39

BBIP44

CBIP32

DBIP49

8.【單選題】3分|關(guān)于測試網(wǎng)絡(luò)的說法正確的是

A同一個賬戶地址不能在多個測試網(wǎng)絡(luò)中使用

B將合約部署到測試網(wǎng)絡(luò),只能夠使用metamask

C同一個合約可以在測試網(wǎng)絡(luò)中共享

Dremix能夠?qū)⒑霞s部署到ropsten測試網(wǎng)絡(luò)借助了內(nèi)置的web3庫

9.【單選題】3分|關(guān)于library庫的用法正確的是

A能夠被繼承

B能夠接收以太幣

C能夠書寫狀態(tài)變量

D在合約中使用library,并不總是使用了遠(yuǎn)程調(diào)用的方式

10.【單選題】3分|下面函數(shù)的結(jié)果為下面的函數(shù)中,調(diào)用distribute函數(shù),傳入地址數(shù)組:

["0x14723a09acff6d2a60dcdf7aa4aff308fddc160c","0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db"]。查詢owner賬戶余額為多少?

contractTokenExample{

addresspublicowner;

mapping(address=uint256)publicbalances;

mapping(address=mapping(address=uint256))publicallowed;

eventTransfer(address_from,address_to,uint256_value);

modifieronlyOwner{

require(msg.sender==owner);

_;

}

constructor()public{

owner=msg.sender;

balances[owner]=2000*10**8;

}

functiondistribute(address[]addresses)publiconlyOwner{

for(uinti=0;ibalances[owner]-=2000*10**8;

balances[addresses[i]]+=2000*10**8;

emitTransfer(owner,addresses[i],2000*10**8);

}

}

}

A2**256-2000*10**8

B-2000*10**8

C2000*10**8

D操作不成功

11.【填空題】3分|functionisContract(address_addr)returns(boolis_contract){

uintlength;

assembly{

length:=extcodesize(_addr)

}

return(length0);

}

上面函數(shù)的功能是:_____

12.【填空題】3分|要通過call函數(shù)的方式調(diào)用函數(shù):functioneat(uint_a)publicreturns(uint)

call函數(shù)的第一個參數(shù)應(yīng)該為_____

13.【填空題】3分|uint256類型的最大值為______

14.【填空題】3分|ERC20代幣中,transferFrom函數(shù)必須與________函數(shù)配合使用

15.【填空題】3分|以太坊EVM中memory空間中0x40是一個特色的位置,它存儲的是:____

16.【編程題】15分|請寫出ERC20協(xié)議的函數(shù)聲明與其作用

17.【編程題】15分|下面的合約會帶來dos攻擊的陷阱,請寫出另一個攻擊合約pragmasolidity^0.4.23;

contractAuction{

addresspubliccurrentLeader;

uint256publichighestBid;

functionbid()publicpayable{

require(msg.valuehighestBid);

require(currentLeader.send(highestBid));

currentLeader=msg.sender;

highestBid=msg.value;

}

}

18.【編程題】15分|由于storage的預(yù)置性,下面的函數(shù)會帶來嚴(yán)重的陷阱,請指出它并修改它為安全的合約。pragmasolidity^0.4.18;

contractHodlFraud{

uintpublicownerAmount;//合約擁有者的金錢

uintpublicnumberOfPayouts;//次數(shù)

addresspublicowner;//合約的擁有者

structHoldRecord{

uintamount;//存儲的金錢

uintunlockTime;//解鎖的時間

}

mapping(address=HoldRecord)publicbalance;//地址=存儲的金錢,時間

//構(gòu)造函數(shù)初始化

functionHodlFraud()publicpayable{

owner=msg.sender;

ownerAmount=msg.value;

}

//某一個用戶存儲金錢,

//@paramholdTime代表的是解鎖時間

functionpayIn(uintholdTime)publicpayable{

require(msg.value0);

HoldRecordnewRecord;

newRecord.amount+=msg.value;

newRecord.unlockTime=now+holdTime;

balance[msg.sender]=newRecord;

}

//轉(zhuǎn)賬,使用這筆錢

functionwithdraw()public{

require(balance[msg.sender].unlockTimenowbalance[msg.sender].amount0);

msg.sender.transfer(balance[msg.sen

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論