天天看點

家庭作業

2.74計算x-y若導緻溢出,函數傳回1

家庭作業

溢出 函數傳回1

正常 函數傳回0

邊界測試

家庭作業
具體代碼:
家庭作業
6.27

高速

緩存

m C B E S t s b
1 32 8192 16 512 19 9 4
2 4096 256 22 8
3 128 23 7
2048 5

6.39

A. 寫總數為 16*16*4 = 1024

B.不命中總數為64。

C. 這種情況隻有冷不命中,一個block能存下16個int,不命中率為1/16。

6.40

B.不命中總數為256。

C. E = 1024/64 = 16,每4行才能容得下數組的一行,每次j在變化時,都會不斷驅逐掉之前的緩存。是以,隻有循環内是可以命中的。不命中率為1/4。

6.41

B. 

一行能保持4個square結構體的值,是以第一個雙循環不命中率為1/4。

第二個雙循環,不命中率為1/12。

總的不命中次數為 16*16/4 + 16*16*3/12 = 16*16/2 = 128。

C. 不命中率為 1/8。

10.6

輸出 fd2 = 4 

因為已經有0 1 2被打開,fd1是3,fd2是4,關閉fd2之後再打開,還是4。

10.10

int main(int argc, char **argv)

{

    int n;

    rio_t rio;

    char buf[MAXLINE];

    if(argc == 2){

        int fd = open(argv[2], O_RDONLY, 0);

        dup2(fd, STDIN_FILENO);

        close(fd);

    }

    Rio_readinitb(&rio, STDIN_FILENO);

    while((n = Rio_readlineb(&rio, buf, MAXLINE)) != 0)

        Rio_writen(STDOUT_FILENO, buf, n);

}  

8.9

程序對 是否并發
AB No
AC Yes
AD
BC
CD

8.12

8行

8.19

總共會輸出2^n行。