日本无码中文字幕片|日本精品在线观看无码视频|国产精品免费啪啪|Av无码一区二区|亚洲在线黄片免费观看|亚洲日韩中文字幕在线观看|熟女激情乱伦在线观看a黄片|成年人观看毛片网址|AV色色色色日韩性草|国产高清无码免费

《詩經(jīng) 》的教案

時間:2025-09-13 00:55:53 教案 我要投稿

《詩經(jīng)兩首 》的教案

  1)32位機上根據(jù)下面的代碼,問哪些說法是正確的?(C)

《詩經(jīng)兩首 》的教案

  signed char a = 0xe0;

  unsigned int b = a;

  unsigned char c = a;

  A. a>0 && c>0 為真

  B. a == c 為真

  C. b 的十六進制表示是:0xffffffe0

  D.上面都不對

  解析:這個題目涉及到 有符號數(shù)和無符號數(shù)之間的轉(zhuǎn)換0xe0的最高位是1,因此作為有符號數(shù)就是負(fù)數(shù),作為無符號數(shù)就是正數(shù)

  所以 A 肯定是錯的, B也錯,c = 0xe0是正數(shù),原因是正數(shù)和負(fù)數(shù)怎么可能相等呢,C是對的 負(fù)數(shù)的高位用1補齊,這樣分析的話 D 自然不會對

  2)問下面的數(shù)據(jù)都存放在哪些存儲區(qū)?

  int main()

  {

  char *p = "hello,world";

  return 0;

  }

  解析:根據(jù)C語言中的特性和定義p是一個局部變量,而C語言中局部變量存在于棧中,"hello wrold"是一個字符串字面常量,因此存儲于程序的只讀存儲區(qū)中,p在這里其實只是指向了"hello wrold"在只讀存儲區(qū)中的地址而已。

  3)關(guān)于 int a[10]; 問下面哪些不可以表示 a[1] 的地址?(A)

  A. a+sizeof(int)

  B. &a[0]+1

  C. (int*)&a+1

  D. (int*)((char*)&a+sizeof(int))A. a+sizeof(int)

  解析:

  A. a+sizeof(int)

  /pic/p>

  B. &a[0]+1

  /pic/p>

  C. (int*)&a+1

  /pic/p>

  D. (int*)((char*)&a+sizeof(int))

  /pic/p>

  4)下面哪些說法正確?(B)

  A. 數(shù)組和鏈表都可以隨機訪問

  B. 數(shù)組的插入和刪除可以 O(1)

  C. 哈希表沒有辦法做范圍檢查

  D. 以上說法都不正確

  解析:數(shù)組可以直接通過下標(biāo)得到存儲的值 因此支持隨機,訪問鏈表是鏈?zhǔn)酱鎯Y(jié)構(gòu)時無法支持隨機訪問,要訪問一個指定位置的元素必須從頭開始做指針移動。哈希表支持直接通過關(guān)鍵碼得到值 其實數(shù)組就是一種哈希表 下標(biāo)就是關(guān)鍵碼 通過下標(biāo)直接得到值 因此哈希表肯定需要做范圍檢查也有辦法做范圍檢查的

  5)基于比較的排序的時間復(fù)雜度下限是多少?(C)

  A. O(n)

  B. O(n^2)

  C. O(nlogn)

  D. O(1)

  解析:大家記住這個結(jié)論就好 在當(dāng)前計算機科學(xué)界對于基于比較的排序 最快只是O(n*logn)

  6)有兩個線程,最初 n=0,一個線程執(zhí)行 n++; n++; 另一個執(zhí)行 n+=2; 問,最后可能的 n 值?(BCD)

  A. 1

  B. 2

  C. 3

  D. 4

  解析:大家要知道 C語言中的 ++ 和 += 并不是原子操作,而是通過多條微程序組成的,因此 ++ 和 += 在執(zhí)行過程中可能被中斷的

  第一種可能情況:現(xiàn)在假設(shè)兩個線程沒有并行順序執(zhí)行的那么結(jié)果顯然是 4。

  第二種可能情況:再假設(shè)現(xiàn)在第一個n++ 已經(jīng)執(zhí)行完了 但是結(jié)果還沒有寫回內(nèi)存 這個時候 n+=2 已經(jīng)全部執(zhí)行完 2 寫進了內(nèi)存 結(jié)束 然后回到n++的寫回操作 這個時候內(nèi)存就從2被改回1了,后面再來一次n++ 結(jié)果就為2。

  第三種可能情況: 第n+=2 先讀取n的值到寄存器 即0入寄存器 這個時候被中斷 第一個n++開始執(zhí)行 并直到結(jié)束 內(nèi)存被改成了1 ,然后 n+=2 繼續(xù)執(zhí)行 結(jié)束后內(nèi)存變?yōu)? 第二個n++再執(zhí)行 結(jié)果就是3了。

  我個人認(rèn)為 不可能得到1的執(zhí)行結(jié)果

  7)下面哪些函數(shù)調(diào)用必須進入內(nèi)核才能完成?(AB)

  A. fopen

  B. exit

  C. memcpy

  D. strlen

  解析:我覺得這題 肯定是 fopen 和 exit

  fopen是打開文件的函數(shù),文件也可以看成是一個設(shè)備,打開一個設(shè)備將導(dǎo)致給設(shè)備所屬的驅(qū)動程序發(fā)送一個IRP,而與真實硬件相關(guān)的驅(qū)動程序都運行于內(nèi)核.

  exit函數(shù)是結(jié)束進程的函數(shù),結(jié)束進程需要訪問PCB(進程控制塊)和TCB(線程控制塊)等等一些數(shù)據(jù)結(jié)構(gòu),而這些數(shù)據(jù)都存在于內(nèi)核中.原因很簡單 memcpy 和 strlen 我們可以直接不調(diào)用任意函數(shù)寫出來這種函數(shù)肯定不會實現(xiàn)在內(nèi)核的

  8)死鎖發(fā)生的必要條件?(ABCD)

  A. 互斥條件

  B. 請求和保持

  C. 不可剝奪

  D. 循環(huán)等待

  解析:互斥條件,請求和保持,不可剝奪 ,循環(huán)等待,這些都可能發(fā)生死鎖 所以以后大家在做多線程程序時一定要注意了。

  9)填空題

  #include

  #include

  #define M 3

  #define N 4

  int get(int *a, int i, int j)

  {

  return *(a+i*N+j);

  }

  int main()

  {

  int a[M][N] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};

  int v;

  v = get(a, 2, 1);

  printf("a[2][1] == %d\n", v );

  return 0;

  }

  解析:大家注意原型中的指針是int* a,所以必須用二維數(shù)組在內(nèi)存中是一維排布這個知識點來做,直接 return *(a+i*N+j);

  而不是 return *(*(a+i)+j);

【《詩經(jīng) 》的教案】相關(guān)文章:

《詩經(jīng)》精品.教案三篇《詩經(jīng)》三首.教案03-07

詩經(jīng)三首教案05-19

《詩經(jīng)》三首教案04-05

《詩經(jīng)》兩首教案03-05

詩經(jīng)三首教案范文01-12

詩經(jīng)三首教案事例05-15

《詩經(jīng)兩首》優(yōu)秀教案03-14

《詩經(jīng)·蒹葭》教案有哪些05-14

《詩經(jīng)·衛(wèi)風(fēng)·氓》優(yōu)秀教案11-01